Bug 1194422

Summary: Packages requiring Python are broken for Leap 15.3
Product: [openSUSE] openSUSE Distribution Reporter: Axel Braun <axel.braun>
Component: OtherAssignee: Matej Cepl <mcepl>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Critical    
Priority: P5 - None CC: code, ecsos, meissner
Version: Leap 15.3   
Target Milestone: ---   
Hardware: Other   
OS: Other   
See Also: https://bugzilla.suse.com/show_bug.cgi?id=1187473
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Axel Braun 2022-01-09 09:02:07 UTC
Since the recent changes to the Python setup, see
https://lists.opensuse.org/archives/list/python@lists.opensuse.org/thread/FEVHW5NBBOZ5ERGIVS3YP6NDD2TTQZR2/
many applications requiring Python are currently broken.

Example:
https://build.opensuse.org/package/show/Application:ERP:GNUHealth:Factory/gnuhealth

Error:
unresolvable: nothing provides python3-aiocontextvars needed by python3-loguru, nothing provides python3-cffi = 1.13.2 needed by python3-cryptography, (got version 1.15.0-lp153.2.1), nothing provides python3-cryptography >= 3.3 needed by python3-pyOpenSSL, (got version 2.8-10.1) 

(Needless to say that GNUHealth was building fine beforehand)

The proposed setup 
   <repository name="15.3">
     <path project="devel:languages:python:backports" repository="15.3"/>
     <path project="openSUSE:Leap:15.3" repository="standard"/>
     <arch>x86_64</arch>
   </repository>
does not fix it, neither if openSUSE:Leap:15.3:Update is used.
Please advise!
Comment 1 Eric Schirra 2022-01-09 10:10:03 UTC
I think the reason is, that in your example the repo named openSUSE_Leap_15.3.
But in d:l:p:Backports this repo was delete. 
There exist now only 15.3.
Comment 2 Axel Braun 2022-01-09 10:43:52 UTC
(In reply to Eric Schirra from comment #1)
> I think the reason is, that in your example the repo named
> openSUSE_Leap_15.3.
> But in d:l:p:Backports this repo was delete. 
> There exist now only 15.3.

And this is what is used:
<path project="devel:languages:python:backports" repository="15.3"/>
Comment 3 Benjamin Greiner 2022-01-09 10:53:10 UTC
With all the back and forth deleting and recreation, formerly built binary packages were wiped from :backports

Both in d:l:p as well as in :backports, python-cffi builds in 15.3, while python-cryptography does not anymore. So you get the python3-cryptography either from plain 15.3 or the last build on Nov 25 from d:l:p, which does not match python3-cffi from :backports or d:l:p.

You have to disable cffi for 15.3 or make cryptography work in d:l:p(:backports). With all the implications discussed in the "Python 3.6 EOL ..." thread.

There would not be any difference if the repo would be named "openSUSE_Leap_15.3" instead.
Comment 4 Axel Braun 2022-01-09 12:25:29 UTC
(In reply to Benjamin Greiner from comment #3)
> With all the back and forth deleting and recreation, formerly built binary
> packages were wiped from :backports

Clear.....
 
> Both in d:l:p as well as in :backports, python-cffi builds in 15.3, while
> python-cryptography does not anymore. So you get the python3-cryptography
> either from plain 15.3 or the last build on Nov 25 from d:l:p, which does
> not match python3-cffi from :backports or d:l:p.

I did in fact not read good enough, as I just was focussed on 'backports'. But originally I never build against d:l:p (if possible) but against 15.3

So with
  <repository name="15.3">
    <path project="openSUSE:Backports:SLE-15-SP3:Update" repository="standard"/>
    <path project="openSUSE:Leap:15.3:Update" repository="standard"/>
    <arch>x86_64</arch>
  </repository>
It is working again. @Ben, maybe you should propose this as default 15.3 setup?
I guess we do have (or will have) a openSUSE:Backports:SLE-15-SP4 ? or is this currently the same as Leap 15.4?
Comment 5 Benjamin Greiner 2022-01-09 12:35:50 UTC
It essentially boils down to my last paragraph in

https://lists.opensuse.org/archives/list/python@lists.opensuse.org/message/J24KGJWHUDRGVP2JDPRTWKC4WRBMBT

With all the "Python 3.6 is EOL" and "We don't want to support packages for both 3.6 and 3.10 at the same time", maybe it is better to just disable all SLE and Leap repositories in d:l:p*.  Devel projects outside of those namespace can use plain 15.3 or *:Update and see if it works with the system shipped packages. If not, they have to maintain their own set of backported packages compatible with each other.

I am glad it works for you. So maybe you add your suggestion to the thread.

BTW, openSUSE:Leap:15.3:Update includes openSUSE:Backports:SLE-15-SP3:Update:

https://build.opensuse.org/projects/openSUSE:Leap:15.3:Update/meta
Comment 6 Axel Braun 2022-01-09 15:08:27 UTC
(In reply to Benjamin Greiner from comment #5)
> It essentially boils down to my last paragraph in
> 
> https://lists.opensuse.org/archives/list/python@lists.opensuse.org/message/
> J24KGJWHUDRGVP2JDPRTWKC4WRBMBT

I get a page-not-found error.....

> With all the "Python 3.6 is EOL" and "We don't want to support packages for
> both 3.6 and 3.10 at the same time", maybe it is better to just disable all
> SLE and Leap repositories in d:l:p*.  Devel projects outside of those
> namespace can use plain 15.3 or *:Update and see if it works with the system
> shipped packages. If not, they have to maintain their own set of backported
> packages compatible with each other.
> 
> I am glad it works for you. So maybe you add your suggestion to the thread.

Will do.
Still there is a set of packages that build before but not now. Maybe you have an idea?
python-cairocffi (fails in d:l:p as well)
python-weasyprint misses python3-flit-core
python-stripe - needs pytest 6 - easiest is probably just to branch

and most notably, home:DocB:python kept a set of packages for boo#1191311 that now completely fails. So there must be a delta between <before> and <after>

> BTW, openSUSE:Leap:15.3:Update includes openSUSE:Backports:SLE-15-SP3:Update:
> 
> https://build.opensuse.org/projects/openSUSE:Leap:15.3:Update/meta

Good to know, thank you
Comment 7 Benjamin Greiner 2022-01-09 15:22:29 UTC
(In reply to Axel Braun from comment #6)
> python-cairocffi (fails in d:l:p as well)

Number 3 and 4 from my mailinglist post. Recent python-rpm-macros and the prjconf redeclaration of %python_module is missing, which was previously pulled in from :backports.

> python-weasyprint misses python3-flit-core

Fixed a few minutes ago: https://build.opensuse.org/request/show/945129

> python-stripe - needs pytest 6 - easiest is probably just to branch.

Exactly. It's not building in d:l:p because pytest sits in d:l:p:pytest. :backports would have it. Number 1 and 2 in my mailinglist post. So this is a case where you have to maintain the compatible stack for yourself. (Or switch of testing, not recommended).
Comment 9 Matej Cepl 2022-02-08 08:11:23 UTC
I believe that this has been resolved. If anybody complaints here, I will reopen.