Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1737919 - a2jmidid depends on Python 2
Summary: a2jmidid depends on Python 2
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: a2jmidid
Version: 31
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Guido Aulisi
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F31_PY2REMOVAL 1738949
TreeView+ depends on / blocked
 
Reported: 2019-08-06 11:32 UTC by Lumír Balhar
Modified: 2019-09-26 14:02 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-09-26 14:02:07 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Lumír Balhar 2019-08-06 11:32:51 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 a2jmidid'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 a2jmidid.
If you need anything from us, or something is unclear, please mention it here.

Thank you.

Comment 1 Guido Aulisi 2019-08-09 11:38:42 UTC
This package uses the WAF build system, a very old version (year 2008); it's not compatible with python3.
Upstream is not updating this package from about 2014, so it will be very difficult to port it to python3.

But this package is still in use IMHO, I sometimes use it too.
I will try to patch the build system to get it working with python3, but it's a hard job, I don't have much time to spend on that and I don't know if I will be able to do that.

Comment 2 Lumír Balhar 2019-08-09 14:05:54 UTC
WAF with Python 3 support is available in Fedora so IMHO you don't have to patch the build system itself, you just need to switch to the newer version with Python 3 support.

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

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

Comment 5 Lumír Balhar 2019-08-19 11:34:56 UTC
The current plan is to remove packages with dependency on Python 2 from Fedora 32 in the middle of November 2019. If you want to keep your package in Fedora after that date and you cannot port it to Python 3 yet, you need to request a FESCo exception for the package and all its Python 2 dependencies (even transitive) [1]. If you don't want to maintain it anymore, please orphan the package.
If you want to maintain the package but not the Python 2 part, either coordinate with packages that depend on this one, or let us know.

If you're considering filing the exception request, let us know. We can help (for example, we can help find all the dependencies).

[1] https://fedoraproject.org/wiki/Changes/RetirePython2#FESCo_exceptions

Comment 6 Orcan Ogetbil 2019-09-18 05:36:40 UTC
(In reply to Lumír Balhar from comment #2)
> WAF with Python 3 support is available in Fedora so IMHO you don't have to
> patch the build system itself, you just need to switch to the newer version
> with Python 3 support.

It's not that trivial. a2jmidid doesn't build with the waf-3 that comes with Fedora.
It is an old, yet an important package. Do you know of any guidelines to port old waf scripts to waf-3?
We might be able to write a Makefile from scratch if all else fails.

Comment 7 Guido Aulisi 2019-09-18 06:33:58 UTC
I'm patching a2jmidid to let build with python3, I think it's almost done.
You can see it at https://github.com/tartina/a2jmidid/tree/ftbfs

I also merged Fedora's patches.

I tried to contact upstream with no success, so I think I'm going to bump version on github and ship that version in Fedora.
What do you think about that?

Comment 8 Orcan Ogetbil 2019-09-18 12:43:33 UTC
Great work! Thank you for taking care of this.

Not sure about the policy for bumping the version for nonresponsive upstream. There might be a guideline disallowing it. Better to ask in Fedora-devel list or Fedora-packaging list.

Comment 9 Lumír Balhar 2019-09-19 05:31:13 UTC
Well, if you want to maintain the project or fix Python 3 compatibility at least, in my opinion, it's okay to create a new upstream on Github and use it as a source for Fedora package. We did basically the same for python-ethtool package when the upstream disappeared from the Internet together with fedorahosted.org site. Take a look at what we have in readme: https://github.com/fedora-python/python-ethtool/

Comment 10 Guido Aulisi 2019-09-19 09:06:59 UTC
I think I'm going to create a new upstream on Github.
According to [1] it might be acceptable to patch and maintain the software.

[1] https://fedoraproject.org/wiki/Staying_close_to_upstream_projects#Some_Examples_Of_Exceptions

Comment 11 Guido Aulisi 2019-09-26 12:05:45 UTC
There is now a new upstream for this package, it's a common effort from also other distributions to maintain this package at least till it will be included in JACK2.

Upstream is: https://github.com/linuxaudio/a2jmidid

They have ported the build system to meson. Fedora's patches have been included too.

I did a successful build in rawhide: https://koji.fedoraproject.org/koji/taskinfo?taskID=37871612 and https://bodhi.fedoraproject.org/updates/FEDORA-2019-6f12ab4573

This package doesn't depend on python2 anymore.

Comment 12 Miro Hrončok 2019-09-26 14:02:07 UTC
Thank you.


Note You need to log in before you can comment on or make changes to this bug.