Bug 1737872 - terminator depends on Python 2
Summary: terminator depends on Python 2
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: terminator
Version: 31
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Dominic Hopf
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F31_PY2REMOVAL
TreeView+ depends on / blocked
 
Reported: 2019-08-06 10:08 UTC by Lumír Balhar
Modified: 2019-12-18 15:35 UTC (History)
6 users (show)

Fixed In Version: terminator-1.91-12.fc32
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-12-18 15:35:45 UTC
Type: Bug


Attachments (Terms of Use)

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

Thank you.

Comment 1 Ben Cotton 2019-08-13 17:05:44 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:50:26 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-15 07:41:05 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 4 Matt Rose 2019-08-16 17:45:48 UTC
- 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?)

It is written in Python

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

I'm not up-to-date with upstream plans, but I see no evidence of upstream moving forward with porting to python3.  I'd be glad if there were, but I don't see any evidence in the upstream source code repo or bug tracker that a python3 effort is in place.

- 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?)

Unfortunately, I'm not familiar with the python to python3 conversion, but terminator is thousands of LOC, all written in python2.  Anyone who wanted to take on porting would be starting from scratch.

Terminator is an extremely popular terminal emulator, possibly the most popular 3rd party terminal emulator (ie not packaged with a DE or WM) in existence, if it were to be abandoned as non-working I think that a lot of people would be very upset.  Unfortunately, I don't have the time to take this on by myself, though I would be happy to spearhead an effort to port it to python3, I'm v familiar with python2 but not familiar at all with python3.

Comment 5 Petr Viktorin 2019-08-19 07:55:42 UTC
Does the upstream have a bug tracker, or some other kind of place for discussions? (I didn't check the listed URL; it seems to require non-free Javascript.)
It would be great to see if upstream would accept patches, or even help coding/testing.


On the Fedora side, this might be a candidate for a Python 2 exception, to give us more time.

Could you review terminator's dependencies, to see which ones are really necessary?
Let the maintainers know that these are needed, and agree co-maintainership if they don't want the python2 parts any more.
(There should be bugs like this one open for all python2 components; those are good places to talk.)

The dependencies are tracked at: https://fedora.portingdb.xyz/pkg/terminator/
Looks like testing libraries (python2-pytest, python-mock) bring in most of them.
pycairo is needed by Gimp and Inkscape; python-psutil by Calibre and Chromium. Both have a chance of staying a bit longer.

Comment 6 Matt Rose 2019-08-19 13:51:59 UTC
Hmm.  I thought I put a new comment in after some investigation.

As it stands, there is an upstream bug in Launchpad https://bugs.launchpad.net/terminator/+bug/1662544 and there is even a branch[1] where a few of us have gotten things working[2] under python3.  The conversion was fairly easy, and actually improves the code somewhat, IMO.

However...  The bug referenced above was opened in 2017, and there has been no feedback from the upstream maintainers that I've seen.  It is marked as "Wishlist" and there is no indication that the changes will be merged into a release anytime soon.

One of the ideas I had was to update the Fedora packages with a massive "python3.patch" based on the contents of the python3 branch file and update that, but for obvious reasons that is not an ideal solution

[1]  https://code.launchpad.net/~hellodeargrandma/terminator/python3 
[2] "Working" is a somewhat uncertain statement.  It works for me, and doesn't throw any unexpected errors, but I would call it a beta, at best because there's only a few of us using it at this moment.

Comment 7 Petr Viktorin 2019-08-19 14:20:20 UTC
Hooray! It looks like things are moving on Launchpad.
Does Launchpad allow doing a release from that branch?

> It works for me, and doesn't throw any unexpected errors, but I would call it a beta, at best because there's only a few of us using it at this moment.

Putting it in Rawhide might give it more users. If there are no known bugs, I don't see a problem with packaging it there.



To set the time: we're planning to remove Python 2 packages mid-November. That should be enough time, but if not, we'll need a FESCo exception for terminator (and its dependencies) to stay on Python 2. Let us know if that seems likely.

Comment 8 Petr Viktorin 2019-11-01 17:41:49 UTC
Any news here? Do you think you can get the "beta" into Rawhide in the next two weeks? Or do you need more time?

Comment 9 Matt Rose 2019-11-10 19:43:54 UTC
Well, the maintainer came back a couple of weeks ago and agreed to move forward with the python3 branches in the short term, but I think he's busy and hasn't gotten around to putting out a release.  Could we get a FESCo exception for this release, and I'm sure that this will be fixed by the next time around.

Comment 10 Matt Rose 2019-11-10 20:07:28 UTC
Figured out how to apply for a FESCo exception and opened https://pagure.io/fesco/issue/2273

Comment 11 Egmont Koblinger 2019-11-14 10:37:19 UTC
The work-in-progress python3 port has already received quite some testing in Debian and Ubuntu. See https://bugs.launchpad.net/terminator/+bug/1662544 comment 51 for details.

Probably you should just go ahead with the python3 port, rather than applying for exception.

Comment 12 Miro Hrončok 2019-11-18 13:21:03 UTC
I agree with Egmont.

Comment 13 Matt Rose 2019-12-18 14:23:39 UTC
Checked in terminator-1.91-12.fc32 with no python2 dependencies.

Comment 14 Matt Rose 2019-12-18 14:26:31 UTC
Thanks go to a bunch of people who are working on keeping the terminator code up-to-date even though there hasn't been an official release in a couple of years.

Egmont Koblinger
Roman Kovtyukh
Emilio Pozuelo Monfort, who is also the debian maintainer.


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