Dne 02. 07. 23 v 23:15 Smith, Stewart via devel napsal(a):
3. Per distro package features (in some include file somewhere? Probably not 
the SPEC file itself… maybe an include to it?)

In the Avahi example above, the WITH_PYTHON is distro dependent for some 
reason, but is local to the package, it isn’t something that’s distro-wide.

Perhaps a package-local distro file?
i.e. adding in something like the following in the package spec file

Source1234: %{_vendor}-macros.inc
%include %{_vendor}-macros.inc

and then having the include have the %if{amzn/rhel/fedora} <>= VERSION logic 
there


Thoughts?


My real world example:

%if 0%{?fedora} || 0%{?rhel} >= 8
BuildRequires:  (python%{python3_pkgversion}-tomli if python%{python3_pkgversion} 
< 3.11)
%else
BuildRequires:  python%{python3_pkgversion}-tomli
%endif
# grammar
%if 0%{?fedora} || 0%{?rhel} > 8
BuildRequires:  python3dist(lark-parser)
%endif

This will require macro %distro_has_python-lark-parser (can I use dashes in macro?). In this case it is forwad only, but if there would be;

%if 0%{?rhel} && 0%{?rhel} < 8

then I will have to negate this formul (and not make mistake) or I will need to add it to RHEL7 retroactively. Which takes time and in the mean time the builds will be broken. Or you had to define the macro yourself on the top of the spec file. And once you add it there, it will likely stay there forever.

And wene if you implement it your way, then you will have to keep for transition period of 10 years the oldfashioned %if-rhel.

It seems to me that it would be cat'n'mouse game with no winner. It seems 
better to me to use the rich dependencies like:

BuildRequires:  (python%{python3_pkgversion}-tomli if python%{python3_pkgversion} 
< 3.11)

I reckognize though that this cannot be applied in all situations.

--

Miroslav Suchy, RHCA
Red Hat, Manager, Packit and CPT, #brno, #fedora-buildsys
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to 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/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to