On 14. 04. 20 15:56, Troy Dawson wrote:
Hi Miro,
I've taken a look, but haven't done any testing.

Thanks.

EPEL6 patch - no.  Even if it works, I'd say no.  We're at the last 7
months before EOL and I don't want the EPEL6 stuff to have changes
like this.  I could be outvoted by this, but I believe most of the
other EPEL packagers would feel this way.

Makes perfect sense.

EPEL7 patch - This would require some testing.  When we tried to turn
on the python automatic-dependency checking, there were things that
broke on EPEL7 so they never got implemented.  What, or how they
broke, I don't currently know.  I just know that they did, and there
wasn't a big enough demand to debug.  As in zero demand.  Nobody asked
for it in EPEL7, only EPEL8.  So I'm not even sure this would be worth
the testing.  Has anyone asked for this?

Not yet. But If we want packagers to start using %pycached, I know there are some of them who would blindly merge their master branch to epel7 and they expect it will work. I suggest that we backport %pycached only, the name is unlikely to clash with anything. %python can be separated and not backported. Sounds good?

EPEL8 patch - We've had requests to have EPEL8 be as close to Fedora,
so I'm in favor of this.
I'm pretty sure the %pycached shouldn't be a problem.

I agree.

What is %python supposed to resolve to?  To me it looks like
/usr/bin/python ... which there isn't any in RHEL8.  And, I thought
Fedora got rid of it also, in favor of specifically doing python2 or
python3.  Or did that change?

So the main idea was that based on some FPC and RPMdevs discussions about underscor-prefixed macros, packagers should not be using those directly, however our guidelines were full of referecens to %{__python3}. We have come up with a conclusion:

Macros with underscores, such as %__python3 are intended to be reset to change bahvior of other macros (e.g. when you set %__python to /usr/bin/pythhon3.4 on EPEL 7, %{python3_version{ will be 3.4), macros without underscores are to be used in specs (e.g. you do `%{python3} -m pytest` rather than `%{__python3} -m pytest`.

Details:
https://pagure.io/packaging-committee/issue/907
https://src.fedoraproject.org/rpms/python-rpm-macros/pull-request/27#comment-30941

The only problem was the %{python} macro. When you redefine %__python to a sane (explicit) value, you want %{python} to work, because e.g. %{python_version} works. But we didn't want to encourage usage of "unversioned python" by adding %{python}.

So Fedora now has a %{python} macro: If %__python is /usr/bin/python (backwards compatible default), %{python} gives you an error. If %__python is anything else, %{python} gives that to you.

Fedora 32:

$ rpm --define '__python /usr/bin/python3.6' --eval '%python_version'
3.6

$ rpm --define '__python /usr/bin/python3.6' --eval '%python'
/usr/bin/python3.6

$ rpm --eval '%python_version'
3.8

$ rpm --eval '%python'
error: Cannot use %python if %__python wasn't redefined to something other than /usr/bin/python.


EPEL 8:

$ rpm --define '__python /usr/bin/python3.6' --eval '%python_version'
3.6

$ rpm --define '__python /usr/bin/python3.6' --eval '%python'
%python

$ rpm --eval '%python_version'
error: attempt to use unversioned python, define %__python to /usr/bin/python2 or /usr/bin/python3 explicitly

$ rpm --eval '%python'
%python


--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
_______________________________________________
epel-devel mailing list -- epel-devel@lists.fedoraproject.org
To unsubscribe send an email to epel-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/epel-devel@lists.fedoraproject.org

Reply via email to