Hi Miro,

in general I think explicit is better than implicit
(and since I am Dutch, this seems obvious to me).

But regarding your question, I think a better argument for creating a macro is to prevent mistakes from packagers. I think that is more relevant than avoiding a few lines of code in a spec file.

For myself, I am happy as long as I can find or print the definition of a macro easily. For some this is easy enough, i.e.:

> rpm --eval '%py3_install'
\
CFLAGS="${CFLAGS:-${RPM_OPT_FLAGS}}" LDFLAGS="${LDFLAGS:-${RPM_LD_FLAGS}}"\
/usr/bin/python3 setup.py install -O1 --skip-build --root $HOME/rpmbuild/BUILDROOT/%{NAME}-%{VERSION}-%{RELEASE}.x86_64 rm -rfv $HOME/rpmbuild/BUILDROOT/%{NAME}-%{VERSION}-%{RELEASE}.x86_64/usr/bin/__pycache__

and this also illustrates my earlier point, since I am sure I would forget setting this CFLAGS and LD_FLAGS often (are they really needed for plain python packages?).

But for other macros this just doesn't work, i.e.:

> rpm --eval '%autosetup'
error: lua script failed: attempt to index a nil value

And actually, it is also not obvious to me where this one is defined (a grep on the files in /usr/lib/rpm/macros.d/ did not tell me anything relevant).

Cheers,

Jos.

On 3/16/21 10:32 AM, Miro Hrončok wrote:
Hello Pythonistas.


I find myself cop-pasting this boring snippet each time I create a Python package (using the old macros or the new):


   %package -n python3-foo
   Summary:        %{summary}

   %description -n python3-foo %_description

And using one of those in %files:

   %files -n python3-foo
   %files -n python3-foo -f %{pyproject_files}

I wonder whether it makes sense to macronize this.

For example:

   Name: python-foo
   ...

   %global _description %{expand:
   This is the description for both SRPM and the python3-foo package.}

   %description %_description

   %py3_package %_description

   ...

   %py3_files
   ...


Or maybe even (if possible):

   Name: python-foo
   ...

   %py3_package_with_description
   This is the description for both SRPM and the python3-foo package.

   ...

   %py3_files
   ...


Both macros would figure the package name by replacing the python- prefix from %{name} with python3-.


Pros: No more copy-paste-edit \o/

Cons: The more is hidden from the reader behind automagic macros, the less obvious is the spec file to somebody who tries to read or modify it :(


What is your opinion?
_______________________________________________
python-devel mailing list -- python-devel@lists.fedoraproject.org
To unsubscribe send an email to python-devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to