#2267 Python 2 exception: sugar desktop environment
Closed: Rejected 13 days ago by zbyszek. Opened a month ago by aperezbios.

A Python3 compatible version of Sugar (0.116) was recently released, however it is an unstable release, and while the core work has been done to Sugar itself, many, if not most, of the Sugar activities are not yet ported to Python 3. While we are most of the way towards Python 3 compatibility, we are not yet where we want to be, and therefore request a FESCO exception for all sugar-* packages and dependencies, for Fedora 32. We believe we will have our act sufficiently together for F33.

The Sugar desktop has a decade-plus long history with Fedora, and removal of these packages would also mean the death of the Sugar on a Stick (SoaS) Fedora spin. These builds are and have been, for years, the primary way most people try out Sugar, and run it on modern devices.


Could you please explicitly include the entire list of packages meant by "all sugar-* packages and dependencies"?

For example, currently, sugar-toolkit-gtk3 uses python-dateutil uses python-setuptools_scm uses python2-pytest.

As a maintainer of python2-pytest, I was planning to drop it. There are more packages like that currently listed at https://fedora.portingdb.xyz/grp/olpc/

Metadata Update from @churchyard:
- Issue tagged with: python 2 exception

a month ago

For example, currently, sugar-toolkit-gtk3 uses python-dateutil uses python-setuptools_scm uses python2-pytest.
As a maintainer of python2-pytest, I was planning to drop it. There are more packages like that currently listed at https://fedora.portingdb.xyz/grp/olpc/

I'll add this list based on what was shipped in F-31 shortly, the aim will be to reduce the dependencies as quick as possible as things get moved over.

Metadata Update from @pbrobinson:
- Issue untagged with: python 2 exception

a month ago

Metadata Update from @churchyard:
- Issue tagged with: python 2 exception

a month ago

I trimmed the unused deps to the ones I believe have python deps but the list is basically as follows in the installed F-31 SoaS image:

Any of the activities that aren't ported to sugar-toolkit-gtk3 and with a release built in Fedora by Jan I'm going to retire which will in turn remove the older sugar-toolkit and a bunch of it's older dependencies too.

Dependencies resolved.
================================================================================
 Package                        Arch   Version                  Repo       Size
================================================================================
Removing:
 python2                        x86_64 2.7.16-4.fc31            @anaconda  76 k
 python2-abiword                x86_64 1:3.0.2-20.fc30          @anaconda 616  
 python2-beautifulsoup          noarch 1:3.2.1-20.fc31          @anaconda 149 k
 python2-cairo                  x86_64 1.18.1-2.fc31            @anaconda 325 k
 python2-dateutil               noarch 1:2.8.0-3.fc31           @anaconda 763 k
 python2-dbus                   x86_64 1.2.8-6.fc31             @anaconda 511 k
 python2-decorator              noarch 4.4.0-2.fc31             @anaconda  64 k
 python2-elements               noarch 0.13-20.20100110svn.fc31 @anaconda 193 k
 python2-gobject                x86_64 3.34.0-3.fc31            @anaconda  24 k
 python2-gobject-base           x86_64 3.34.0-3.fc31            @anaconda 1.3 M
 python2-gwebsockets            noarch 0.6-1.fc31               @anaconda  39 k
 python2-hippo-canvas           x86_64 0.3.0-29.fc31            @anaconda 139 k
 python2-libs                   x86_64 2.7.16-4.fc31            @anaconda  26 M
 python2-numpy                  x86_64 1:1.16.4-5.fc31          @anaconda  19 M
 python2-olpcgames              noarch 1.6-21.fc31              @anaconda 282 k
 python2-pip                    noarch 19.1.1-4.fc31            @anaconda 8.4 M
 python2-pybox2d                x86_64 2.3.2-8.fc31             @anaconda 3.8 M
 python2-pygame                 x86_64 1.9.6-1.fc31             @anaconda 8.6 M
 python2-setuptools             noarch 41.2.0-1.fc31            @anaconda 3.1 M
 python2-simplejson             x86_64 3.16.0-3.fc31            @anaconda 1.0 M
 python2-six                    noarch 1.12.0-2.fc31            @anaconda 107 k
 python2-telepathy              noarch 0.15.19-20.fc31          @anaconda 1.1 M
 python2-xapian                 x86_64 1.4.12-1.fc31            @anaconda 2.5 M
Removing dependent packages:
 sugar-abacus                   noarch 60-4.fc31                @anaconda 712 k
 sugar-browse                   noarch 203.1-1.fc31             @anaconda 1.6 M
 sugar-calculator               noarch 44-6.fc30                @anaconda 2.5 M
 sugar-chat                     noarch 85-2.fc31                @anaconda 2.2 M
 sugar-clock                    noarch 21-2.fc31                @anaconda 1.4 M
 sugar-countries                noarch 33-17.fc31               @anaconda 5.1 M
 sugar-cp-all                   noarch 0.114-1.fc31             @anaconda   0  
 sugar-finance                  noarch 14-4.fc31                @anaconda 1.1 M
 sugar-fototoon                 noarch 23-6.fc31                @anaconda 717 k
 sugar-getiabooks               noarch 18.2-2.fc31              @anaconda 1.0 M
 sugar-imageviewer              noarch 64-3.fc31                @anaconda 470 k
 sugar-infoslicer               noarch 25-7.fc31                @anaconda 4.6 M
 sugar-jukebox                  noarch 34-4.fc31                @anaconda 479 k
 sugar-labyrinth                noarch 16-12.fc31               @anaconda 696 k
 sugar-log                      noarch 40-2.fc31                @anaconda 495 k
 sugar-maze                     noarch 28-3.fc31                @anaconda 390 k
 sugar-memorize                 noarch 55-3.fc31                @anaconda 1.8 M
 sugar-moon                     noarch 19-3.fc31                @anaconda 648 k
 sugar-paint                    x86_64 68-2.fc30                @anaconda 1.6 M
 sugar-physics                  noarch 34-3.fc31                @anaconda 1.4 M
 sugar-pippy                    x86_64 72-5.fc31                @anaconda 1.1 M
 sugar-portfolio                noarch 51-3.fc31                @anaconda 964 k
 sugar-read                     noarch 122-2.fc31               @anaconda 969 k
 sugar-record                   noarch 200.2-3.fc31             @anaconda 745 k
 sugar-speak                    noarch 57-3.fc31                @anaconda  20 M
 sugar-stopwatch                noarch 20.1-3.fc31              @anaconda 313 k
 sugar-story                    noarch 19-3.fc31                @anaconda 583 k
 sugar-terminal                 noarch 46-2.fc31                @anaconda 527 k
 sugar-turtleart                noarch 218-3.fc31               @anaconda  13 M
 sugar-typing-turtle            noarch 31-11.fc31               @anaconda 2.8 M
 sugar-visualmatch              noarch 49-12.fc31               @anaconda 1.6 M
 sugar-words                    noarch 23-5.fc31                @anaconda  74 M
 sugar-write                    noarch 100-2.fc31               @anaconda 860 k
 sugar-xoirc                    noarch 12-11.fc31               @anaconda 221 k
Removing unused dependencies:
 gnome-python2                  x86_64 2.28.1-30.fc31           @anaconda 155 k
 gnome-python2-gconf            x86_64 2.28.1-30.fc31           @anaconda 152 k
 gnome-python2-rsvg             x86_64 2.32.0-38.fc31           @anaconda  20 k
 guile22                        x86_64 2.2.6-2.fc31             @anaconda  44 M
 hippo-canvas                   x86_64 0.3.0-29.fc31            @anaconda 260 k
 pygobject2                     x86_64 2.28.7-6.fc31            @anaconda 923 k
 pygtk2                         x86_64 2.24.0-26.fc31           @anaconda 4.0 M
 sugar                          noarch 0.114-1.fc31             @anaconda 5.0 M
 sugar-artwork                  x86_64 0.114-1.fc31             @anaconda 1.7 M
 sugar-base                     x86_64 0.98.0-17.fc31           @anaconda 154 k
 sugar-cp-background            noarch 0.114-1.fc31             @anaconda  20 k
 sugar-cp-backup                noarch 0.114-1.fc31             @anaconda  63 k
 sugar-cp-datetime              noarch 0.114-1.fc31             @anaconda  16 k
 sugar-cp-frame                 noarch 0.114-1.fc31             @anaconda  24 k
 sugar-cp-keyboard              noarch 0.114-1.fc31             @anaconda  46 k
 sugar-cp-language              noarch 0.114-1.fc31             @anaconda  48 k
 sugar-cp-modemconfiguration    noarch 0.114-1.fc31             @anaconda  50 k
 sugar-cp-network               noarch 0.114-1.fc31             @anaconda  84 k
 sugar-cp-updater               noarch 0.114-1.fc31             @anaconda  32 k
 sugar-cp-webaccount            noarch 0.114-1.fc31             @anaconda  11 k
 sugar-datastore                x86_64 0.114-1.fc31             @anaconda 150 k
 sugar-toolkit                  x86_64 0.112-8.fc31             @anaconda 1.3 M
 sugar-toolkit-gtk3             x86_64 0.114-1.fc31             @anaconda 2.1 M
 xapian-bindings                x86_64 1.4.12-1.fc31            @anaconda 158 k
 xapian-core-libs               x86_64 1.4.12-1.fc31            @anaconda 2.6 M

Are all the packages maintainers of all the listed packages aware of this exception request?

A quick peek gives me for example python2-six, maintained by me.

The reason we've opened https://bugzilla.redhat.com/show_bug.cgi?id=1737929 3 months ago was that we would know your plans and coordinate with you about all the dependent packages. You've decided to dump a dnf output on us instead :(

sugar* packages skipped
python2 subpackages skipped
python2-pip skipped (no longer available in Fedora 32)

pygtk2 has exception
pycairo has exception
pygobject2 has exception
python2-numpy has an existing exception request, @limb is on board
python2-setuptools has an existing exception request, I'm on board

gnome-python2 maintained by you
gnome-python2 maintained by you
hippo-canvas maintained by you
python-elements maintained by you
gwebsockets maintained by you
hippo-canvas maintained by you
python-olpcgames maintained by you
pybox2d maintained by you
python-telepathy maintained by you
xapian-bindings maintained by you
xapian-bindings maintained by you
xapian-core maintained by you

gnome-python2-desktop maintained by @rstrode @rhughes @johnp @alexl @caolanm @ssp @moezroy @limb @caillon @walters
guile22 maintained by @mlichvar @jdulaney
abiword maintained by @huzaifas @uwog @herrold
python-BeautifulSoup maintained by @kwizart @terjeros
python-dateutil maintained by @hguemar @jspaleta @tomspur @pjp @limb
dbus-python maintained by @rstrode @rhughes @phuang @besser82 @johnp @alexl @caolanm @ssp @rdieter @mbarnes @stefanok @caillon
python-decorator maintained by @ralph @fale @kevin
pygobject3 maintained by @johnp @nacho @walters
pygame maintained by @limb @jskarvad
python-simplejson maintained by @kylev @ignatenkobrain @bowlofeggs @mrunge
python-six maintained by @bkabrda @pviktori @churchyard @apevec @mrunge

What about olpc-update, olpc-utils, olpc-switch-desktop, olpc-netutils?

I will retire sugar-toolkit before F-32 branches in Jan and any of the Activities that haven't been ported (currently 12) and that will drop the following out of the dep chain:

As part of that sugar-base and hippo-canvas will also be retired.

Removing:
 sugar-toolkit             x86_64      0.112-8.fc31        @anaconda      1.3 M
Removing unused dependencies:
 gnome-python2             x86_64      2.28.1-30.fc31      @anaconda      155 k
 gnome-python2-gconf       x86_64      2.28.1-30.fc31      @anaconda      152 k
 gnome-python2-rsvg        x86_64      2.32.0-38.fc31      @anaconda       20 k
 hippo-canvas              x86_64      0.3.0-29.fc31       @anaconda      260 k
 pygobject2                x86_64      2.28.7-6.fc31       @anaconda      923 k
 pygtk2                    x86_64      2.24.0-26.fc31      @anaconda      4.0 M
 python2-decorator         noarch      4.4.0-2.fc31        @anaconda       64 k
 python2-hippo-canvas      x86_64      0.3.0-29.fc31       @anaconda      139 k
 python2-simplejson        x86_64      3.16.0-3.fc31       @anaconda      1.0 M
 sugar-base                x86_64      0.98.0-17.fc31      @anaconda      154 k

What about olpc-update, olpc-utils, olpc-switch-desktop, olpc-netutils?

I'll add them to the review list.

I'm OK with maintaining python2-six for one more Fedora release.

python2-six is totally fine. the rest is unknown. there seem to have been no coordination here at all.

After 7 days, this exception request is still not complete.

After 7 days, this exception request is still not complete.

It's awaiting for @aperezbios but what's missing?

The exact list of packages with their maintainers being aware about this.

@churchyard , @pbrobinson said he would "add this list based on what was shipped in F-31 shortly, the aim will be to reduce the dependencies as quick as possible as things get moved over." and I thought he did so seven days ago.

When you ask "Are all the packages maintainers of all the listed packages aware of this exception request?" I don't think they are, as most of the packages that aren't already owned by @pbrobinson or myself have not changed or been updated in a significant amount of time, and many of those packages themselves are effectively abandoned, with the original packagers AWOL for the most part. Are you sure what you are asking for is reasonable, given that?

Where is the list? I see a dnf output from Fedora 31. Do we parse that dnf ouput, take all listed packages from that and consider them for the exception, but no other packages?

I've explicitly asked about olpc-update, olpc-utils, olpc-switch-desktop, olpc-netutils and @pbrobinson said he will add them to the "review list". They were not added anywhere.

You have listed no buildrequired packages, so some of the packages on the list might get an exception, but will fail to build.

Can I please ask for a structured list of package names, for example one package name on a line, either "binary" package names (such as python2-simplejson) or source package names (such as python-simplejson), so everybody knows what list we are actually voting about?

I'm sure that contacting the dependent package owners to keep their Python 2 packages is reasonable ask, yes.

When the list is provided, FESCo can certainly vote whether the packages get exception, but if the package owners have not been told, they might very well just remove their Python 2 packages. If you are OK with that, we will proceed with voting after that list is provided.

What about olpc-update, olpc-utils, olpc-switch-desktop, olpc-netutils?

These are now either fixed or retired so no longer on this list.

I'm sure that contacting the dependent package owners to keep their Python 2 packages is reasonable ask, yes.

When the list is provided, FESCo can certainly vote whether the packages get exception, but if the package owners have not been told, they might very well just remove their Python 2 packages. If you are OK with that, we will proceed with voting after that list is provided.

That just happened with python2-simplejson for example.

I don't think they are, as most of the packages that aren't already owned by @pbrobinson or myself have not changed or been updated in a significant amount of time, and many of those packages themselves are effectively abandoned, with the original packagers AWOL for the most part.

This means that they may go away at any time, for example based on the FTBFS policy, or is somebody opens a non-responsive maintainer ticket. Buidling

Like @churchyard said, a full list of package names is necessary. We need that to make people aware, and to plug it into various scripts that retire python2 packages so that they don't get lost through the automatic processes.

This was discussed during today's meeting:
AGREED: "Python 2 exception: sugar desktop environment" close the
request, and ask the submitters to reopen with a concrete list of
packages. (+7,0,0)

Note: please resubmit the request before the end of the year, packages will
be retired after that.

Metadata Update from @zbyszek:
- Issue close_status updated to: Rejected
- Issue status updated to: Closed (was: Open)

13 days ago

Login to comment on this ticket.

Metadata