On Sun, Dec 19, 2021 at 12:14:29PM +0100, Miro Hrončok wrote:
On 17. 12. 21 17:58, Matthew Miller wrote:
>The modern Python macros are ... kind of a lot to pick up as a casual
>packager
If you could share a more constructive feedback, I'd gladly iterate
on the documentation or the macros themselves.
I guess I mostly meant that literally: it's a lot! I started using pyp2rpm,
which says
Convert Python packages to RPM SPECFILES. The packages can be downloaded
from PyPI and the produced SPEC is in line with Fedora Packaging
Guidelines or Mageia Python Policy.
... which was probably my first mistake, because that uses a previous
generation, and I should know better than to trust that random package
descriptions are current. :)
I should have just thrown all of that out and gone with the template
https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_empty_...
.
On that template in specific:
1. It's not immediately clear that "..." means "put package name
here".
2. You mentioned in the review request — and Zbyszek said something similar
— that it'd be better to repeat the package name throughout the spec
file in the various place it's needed. That doesn't feel right to me.
I know the macros replace a lot of boilerplate, which is a good direction,
but having the name be different in every file _throughout_ the file makes
it harder to pick up when something is different from standard. It seems
that a lot of python packages could be identical _except_ for the header.
(And maybe then all of that eventually hidden completely with just some
thing near the top that indicates "standard python package".)
3. The machinery to make every package be python-... while generating an
actual python3-... subpackage is awkward. Are we stuck with that forever?
Overall in the guideline doc, back to the "it's a lot!" feeling...
What do you think about having a "Quick Version" at the top, which includes
the spec file template, followed by a line-by line commentary — or at least,
section by section. Like this:
Name: python-...
Version: ...
Release: 0%{?dist}
Summary: ...
Packages primarily providing a python library must have names starting
with `python-` and that should be followed by the name of the main
importable module. Applications which happen to be written in Python
should follow the standard Fedora guidelines. See [Naming] for details
Version, Release, and Summary are as standard for Fedora packages.
License: ...
URL: https://...
Source0: %{url}/archive/v%{version}/...-%{version}.tar.gz / %{pypi_source
...}
These are also as normal, but also see [Source files from PyPI].
BuildArch: noarch
BuildRequires: gcc
Pick **one** of the above, depending on the package. (Note on the
generate-buildrequires macro here. Will that work for archful devel
package requirements?)
BuildRequires: python3-devel
This is mandatory for every package that uses Python at runtime.
... and so on.
--
Matthew Miller
<mattdm(a)fedoraproject.org>
Fedora Project Leader