Bug 1738916 - bup depends on Python 2
Summary: bup depends on Python 2
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: bup
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Tadej Janež
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F31_PY2REMOVAL
TreeView+ depends on / blocked
 
Reported: 2019-08-08 11:45 UTC by Lumír Balhar
Modified: 2019-09-13 09:20 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-09-13 09:20:23 UTC
Type: Bug


Attachments (Terms of Use)

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

Thank you.

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

Comment 2 Lumír Balhar 2019-08-16 09:07:51 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 3 Lumír Balhar 2019-08-23 15:30:54 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 Lumír Balhar 2019-09-02 05:32:36 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 Miro Hrončok 2019-09-11 09:21:17 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 6 Tadej Janež 2019-09-11 15:48:13 UTC
Hey Miro, Lumír,

sorry for such a late response.

So, bup is a backup tool (http://bup.github.io/) and as such it could be quite a critical package for people that rely on it.

I've asked the upstream on their Python 3 plans back in June 2019 (https://groups.google.com/d/msg/bup-list/bPuHZBQXIZw/_UaGt8dpAgAJ) and the maintainer, Rob Browning responded by outlining the issues that lie ahead of porting to Python 3 (https://groups.google.com/d/msg/bup-list/bPuHZBQXIZw/_UaGt8dpAgAJ). The two biggest issues being:

  - making sure that either all the relevant Python 3 apis can return
    binary strings for users/groups/paths/acls/etc., or that we've
    written our own C wrappers that do.

  - finding and adjusting all of the relevant bup code to make sure it
    never uses the new unicode default strings, or that it always uses
    the more recent "byte smuggling" support in a safe way (with the
    attendant inefficiency).  (This may be ugly.) 

Nevertheless, he ended the message by saying:

> Anyway, I suspect we'll end up with a Python 3 bup, and if I end up
> being the one to implement most of it, I'd love to have it more or less
> working by the end of the year, but I haven't really focused on it yet. 

Meanwhile, a new version of bup was released, 0.29.3 (https://groups.google.com/forum/#!topic/bup-list/CNcIbMfLjis).

So, I have some questions:
- Can we wait for upstream a bit longer, i.e. until the end of the year, to port bup to Python 3?
- Would that mean bup needs an exception to be built against python27?
- Additionally, bup requires some python2 packages (pyxattr, pylibacl, fuse-python). Do those also need exceptions to be built?
  (NOTE: Although fuse-python was orphaned, upstream has a new release that provides Python 3 compatibility (https://github.com/libfuse/python-fuse).)
- Can I at least update bup to version 0.29.3 in Fedora 31?

Comment 7 Lumír Balhar 2019-09-12 06:20:28 UTC
> So, I have some questions:
> - Can we wait for upstream a bit longer, i.e. until the end of the year, to
> port bup to Python 3?

Yes

> - Would that mean bup needs an exception to be built against python27?

Yes (example of a fesco exception: https://pagure.io/fesco/issue/2214)

> - Additionally, bup requires some python2 packages (pyxattr, pylibacl,
> fuse-python). Do those also need exceptions to be built?

Yes, you have to include bup's dependencies (even transitive) in your request.

>   (NOTE: Although fuse-python was orphaned, upstream has a new release that
> provides Python 3 compatibility (https://github.com/libfuse/python-fuse).)

Orphaned package mostly means that a maintainer is unresponsive or doesn't want to maintain a package anymore. If your package needs fuse-python, it'd make sense to claim it as well, switch it to Python 3 and maintain it.

> - Can I at least update bup to version 0.29.3 in Fedora 31?

Yes, claim this package back and you can continue to be the main admin.

Comment 8 Miro Hrončok 2019-09-12 08:14:33 UTC
> If your package needs fuse-python, it'd make sense to claim it as well, switch it to Python 3 and maintain it.

Well, the "switch" won't work here, since bup needs the Python 2 version.

Comment 9 Miro Hrončok 2019-09-12 08:24:10 UTC
> > - Additionally, bup requires some python2 packages (pyxattr, pylibacl,
> > fuse-python). Do those also need exceptions to be built?
> 
> Yes, you have to include bup's dependencies (even transitive) in your
> request.

That should be:

bup (orphaned, but I can revert that)
fuse-python (orphaned, you need to claim it via a releng ticket if you want it)
python2-setuptools (mine, will gladly make you a co-maintainer)
pylibacl (maintained by szpak and kevin - I recommend asking them whether they would keep maintianing the Python 2 package for a while longer if it gets exception)
pyxattr  (same as above, + also maintained by defolos)

Comment 10 Miro Hrončok 2019-09-12 08:25:42 UTC
(Assigned bup back to @tadej.)

Comment 11 Tadej Janež 2019-09-12 09:45:46 UTC
Hi Lumír, Miro,

thanks for your replies.

On a second thought, I think I'm not willing to spend so much energy on bup (on Python 2) and its dependencies.

In my opinion, we could retire it in Fedora 32 and when/if the upstream ports it to Python 3, then someone can pick it up and unretire it.
At the same time, this gives users enough time to either help bup port to Python 3 or migrate to another backup utility.

What do you think?

(In reply to Miro Hrončok from comment #10)
> (Assigned bup back to @tadej.)

I'll proceed with updating it to 0.29.3 in Fedora 31.

Comment 12 Miro Hrončok 2019-09-12 10:01:40 UTC
> In my opinion, we could retire it in Fedora 32 and when/if the upstream ports it to Python 3, then someone can pick it up and unretire it.
> At the same time, this gives users enough time to either help bup port to Python 3 or migrate to another backup utility.

IMHO that is the best solution. Please do retire it.

Comment 13 Tadej Janež 2019-09-12 10:06:35 UTC
(In reply to Miro Hrončok from comment #12)
> > In my opinion, we could retire it in Fedora 32 and when/if the upstream ports it to Python 3, then someone can pick it up and unretire it.
> > At the same time, this gives users enough time to either help bup port to Python 3 or migrate to another backup utility.
> 
> IMHO that is the best solution. Please do retire it.

Ok, will do.

Comment 14 Tadej Janež 2019-09-13 09:20:23 UTC
(In reply to Tadej Janež from comment #13)
> 
> Ok, will do.

bup has been retired in rawhide:
https://src.fedoraproject.org/rpms/bup/c/2b965ce2edaaa53326824af3606a06089c21a84d?branch=master


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