Bug 1738016

Summary: libxslt depends on Python 2
Product: [Fedora] Fedora Reporter: Lumír Balhar <lbalhar>
Component: libxsltAssignee: Devrim Gündüz <devrim>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 32CC: amigadave, awilliam, djc, igor.raits, jspaleta, mhroncok, michel, rjones, veillard
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libxslt-1.1.33-4.fc31 libxslt-1.1.33-4.fc32 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1750660 (view as bug list) Environment:
Last Closed: 2020-04-15 08:25:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1698500, 1750660, 1750724    

Description Lumír Balhar 2019-08-06 12:31:29 UTC
Python 2.7 will reach end-of-life in January 2020, over 9 years after it was released. This falls within the Fedora 31 lifetime.
Packages that depend on Python 2 are being switched to Python 3 or removed from Fedora: https://fedoraproject.org/wiki/Changes/F31_Mass_Python_2_Package_Removal#Information_on_Remaining_Packages
Python 2 will be retired in Fedora 32: https://fedoraproject.org/wiki/Changes/RetirePython2

To help planning, we'd like to know the plans for libxslt's future. Specifically:


- What is the reason for the Python2 dependency? (Is it software written in Python, or does it just provide Python bindings, or use Python in the build system or test runner?) 

- What are the upstream/community plans/timelines regarding Python 3?

- What is the guidance for porting to Python 3? (Assuming that there is someone who generally knows how to port to Python 3, but doesn't know anything about the particular package, what are the next steps to take?)


This bug is filed semi-automatically, and might not have all the context specific to libxslt.
If you need anything from us, or something is unclear, please mention it here.

Thank you.

Comment 1 Ben Cotton 2019-08-13 17:04:07 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to '31'.

Comment 2 Ben Cotton 2019-08-13 17:48:39 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to 31.

Comment 3 Lumír Balhar 2019-08-14 09:08:52 UTC
Please answer the above questions. If you don't the package can be orphaned: https://fedoraproject.org/wiki/Changes/F31_Mass_Python_2_Package_Removal#Information_on_Remaining_Packages

If you need any information or help, please let us know.

Comment 4 Lumír Balhar 2019-08-21 13:32:21 UTC
Please answer the above questions. If you don't, the package can be orphaned: https://fedoraproject.org/wiki/Changes/F31_Mass_Python_2_Package_Removal#Information_on_Remaining_Packages

If you need any information or help, or if you need some more time, please let us know.

Comment 5 Lumír Balhar 2019-08-29 05:34:35 UTC
Please answer the above questions. If you don't, the package can be orphaned: https://fedoraproject.org/wiki/Changes/F31_Mass_Python_2_Package_Removal#Information_on_Remaining_Packages

If you need any information or help, or if you need some more time, please let us know.

Comment 6 Miro Hrončok 2019-09-05 10:41:54 UTC
According to the procedure described in https://fedoraproject.org/wiki/Changes/F31_Mass_Python_2_Package_Removal#Information_on_Remaining_Packages the package was now orphaned. If you think it was a mistake, you can provide the answers and claim the package back.

Let us know if you need any help or just need more time.

Comment 7 Richard W.M. Jones 2019-09-10 07:30:00 UTC
I can answer the question, hopefully ...

The package depends on Python 2 because it includes Python bindings.

The upstream Python bindings appear to have been ported to Python 3, so they can
be compiled against either Python 2 or Python 3.

However the way the bindings are compiled in Fedora's libxslt package is that
they are only compiled against Python 2 (not 2 and 3, nor just 3).

Therefore it appears that a solution to this will be to change the bindings
so they are only compiled against Python 3.  This should be a simple change,
but I'm looking at it now.

Comment 8 Richard W.M. Jones 2019-09-10 07:45:35 UTC
(In reply to Richard W.M. Jones from comment #7)
> The upstream Python bindings appear to have been ported to Python 3, so they
> can
> be compiled against either Python 2 or Python 3.

The link to git on the libxslt website points to the _libxml2_ source
tree, not the libxslt source tree.  When I looked at the right source
tree I see that libxslt bindings have _not_ been converted to Python 3.
In fact there are some fairly fundamental problems including Python 2
syntax everywhere including the configure script.

So my new suggestion is we remove the Python 2 bindings for now, which
I'm going to look into ...

Comment 9 Fedora Update System 2019-09-10 08:01:46 UTC
FEDORA-2019-5c32b4908a has been submitted as an update to Fedora 31. https://bodhi.fedoraproject.org/updates/FEDORA-2019-5c32b4908a

Comment 10 Miro Hrončok 2019-09-10 08:03:38 UTC
Not sure this is fair to do in Fedora 31:

$ repoquery --repo=rawhide{,-source} --whatrequires python2-libxslt
bamf-0:0.5.4-2.fc31.1.src
beaker-0:26.5-1.fc31.src
beaker-client-0:26.5-1.fc31.noarch

Comment 11 Dominik 'Rathann' Mierzejewski 2019-09-10 09:19:18 UTC
There's an old bug report at GNOME bugzilla, last modified in 2015 (not counting the two confused comments from 2017).

Comment 12 Richard W.M. Jones 2019-09-10 09:30:36 UTC
(In reply to Miro Hrončok from comment #10)
> Not sure this is fair to do in Fedora 31:
> 
> $ repoquery --repo=rawhide{,-source} --whatrequires python2-libxslt
> bamf-0:0.5.4-2.fc31.1.src
> beaker-0:26.5-1.fc31.src
> beaker-client-0:26.5-1.fc31.noarch

Indeed, I forgot to check this.  We could do this only in Fedora 32 (and unpush
the Fedora 31 package)?

We have to do this eventually however unless someone fixes the upstream Python-2-only
bindings.  It's not a big job but someone will need to do it.

Comment 13 Miro Hrončok 2019-09-10 09:41:20 UTC
Looping in bamf and beaker maintainers.

Comment 14 Fedora Update System 2019-09-10 14:32:23 UTC
libxslt-1.1.33-3.fc31 has been pushed to the Fedora 31 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-5c32b4908a

Comment 15 greg.hellings 2019-09-26 17:40:40 UTC
I just pushed a new build of Beaker that builds against Python 3. That package, if successful, will drop dependency on python*-libxslt and include, directly, python3-libxml2 instead.

Comment 16 greg.hellings 2019-11-25 05:13:08 UTC
Beaker packages are now clear of this dependency.

Comment 17 Ben Cotton 2020-02-11 15:43:12 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 32 development cycle.
Changing version to 32.

Comment 18 David King 2020-04-15 08:25:41 UTC
Seems fixed in Fedora 31 and 32 (and 30, even).