#254 In Repository Gnome Shell Extesions Need Some TLC
Opened 6 months ago by jkomoroski. Modified 5 days ago

Context on this issue can be found here:

https://ask.fedoraproject.org/t/fedora-34-extensions-installed-from-dnf-disabled-after-upgrade-to-fedora-35/18017/24

The Problem


There are (at least) 27 Gnome Shell extension packages in the Fedora repository. Of the 27, I was able to quickly identify that there were 13 packages which have issues with Gnome 41. There may be more, but I checked with the upstream of all 27 to see if they declare support for gnome 41 as part of extension metadata.json file.

Specific issues I found include:

  • Extensions which Implement Features that are now part of the shell
  • Extensions which do not have gnome 41 declared in their metadata.json but would work
  • Extensions which have bugs or other issues upstream making them incompatible
  • At least one extension which hasn't pulled a new version from upstream in 3 years.

For example, the version of gnome-shell-extension-pidgin in the fedora repos is 3 years old, or 6 releases behind upstream. This makes me think that we have a gap in package maintainers and/or a process gap.

Possible Solutions


At very least, I believe we should remove the extensions which have been superseded by features which have been added to Gnome-Shell itself.

  • gnome-shell-extension-suspend-button - Not supported since Gnome 3.36
  • gnome-shell-extension-remove-bluetooth - Superseded by Gnome 3.6 (yikes)
  • gnome-shell-extension-remove-volume-icon - Superseded by Gnome 3.6

Next, We need to pull in the most recent versions of all Gnome Extensions before a release otherwise they simply will not work with latest Gnome due to the metadata check. I don't know how to enforce or encourage this update or improve the workflow. Maybe some sort of release checklist item?

Beyond that I don't want to be prescriptive in a solution, but the ask fedora thread posted above had some good ideas to improve the upgrade experience.

From Mathew Miller:

I guess would possibility would be: make RPM extract compatibility from metadata.json in each extension, for example

"shell-version": [
"3.32",
"3.34",
"3.36",
"3.38",
"40"
],

for gnome-shell-extension-sound-output-device-chooser, and generate automatic dependencies on the gnome-shell version. Then, on upgrade, if these packages are installed but > not updated, you’d get transaction errors and could decide to remove them with --allow-erasing — or decide to delay upgrading.

This would allow a user to put off the upgrade if an essential extension wasn't ready with the latest Gnome build, or decide to upgrade knowing that the extension won't work. This way a user isn't blindsided by missing extensions after an upgrade.

There may be a better approach, but in general this is an area that needs some attention and polish.

Package Details


The following is not exhaustive. It's mostly based on a quick dnf repoquery:

dnf -q repoquery -s $(dnf -q --latest-limit=1 repoquery gnome-shell-extension\*)

Known problem packages with notes:

gnome-shell-extension-argos-3-7.20211027git2eb03a7.fc35.src.rpm -- PR open but stuck in review
gnome-shell-extension-disconnect-wifi-17-9.fc35.src.rpm -- has open issue
gnome-shell-extension-emoji-selector-20-3.fc35.src.rpm -- has open issue(s)
gnome-shell-extension-freon-44-2.fc35.src.rpm -- has open issue
gnome-shell-extension-ibus-font-0.20210510-2.fc35.src.rpm -- Does not work? not a normal git repo: https://pwu.fedorapeople.org/ibus/ibus-font-setting/
gnome-shell-extension-openweather-1-0.49.20210509gitd714eb1.fc35.src.rpm -- has open issue
gnome-shell-extension-pidgin-1.0.3-9.fc35.src.rpm -- I opened an issue, did some testing, and opened a PR (version in repos is 3 years and 6 releases behind upstream)
gnome-shell-extension-refresh-wifi-6.0-9.fc35.src.rpm -- Open issue
gnome-shell-extension-sound-output-device-chooser-39^1.8c90ed0-1.fc35.src.rpm -- actually broken with 41 issue is open
gnome-shell-extension-suspend-button-19-9.20171024gita812520.fc35.src.rpm -- gnome now has this -- probably no longer useful
gnome-shell-extension-remove-bluetooth-icon-0.5.1-15.fc35.src.rpm -- delcared as no longer maintained (no longer useful)
gnome-shell-extension-remove-volume-icon-0.5.1-15.fc35.src.rpm -- declared as no longer maintained (no longer useful)
gnome-shell-extension-gamemode-1-6.fc35.src.rpm -- Open issue, broken

Packages which have an upstream that has declared support for Gnome 41. Since the Fedora repos may not be on latest, this does not mean they're working or actually up to date. It simply means that if we were using upstream, they have indicated some degree of compatibility.

gnome-shell-extension-appindicator-41-1.fc35.src.rpm
gnome-shell-extension-netspeed-3.30-0.15.20210621git1598dc3.fc35.src.rpm
gnome-shell-extension-background-logo-41.0-1.fc35.src.rpm
gnome-shell-extension-bubblemail-14-2.fc35.src.rpm
gnome-shell-extension-caffeine-39-1.fc35.src.rpm
gnome-shell-extension-dash-to-dock-71-1.fc35.src.rpm
gnome-shell-extension-material-shell-12-3.fc35.src.rpm
gnome-shell-extension-mediacontrols-17-1.fc35.src.rpm
gnome-shell-extension-gsconnect-48-1.fc35.src.rpm
gnome-shell-extension-no-overview-8-4.fc35.src.rpm
gnome-shell-extension-pop-shell-1.2.0^4.1fddaa8-1.fc35.src.rpm
gnome-shell-extension-system-monitor-applet-38-15.20211103git11d43a8.fc35.src.rpm
gnome-shell-extension-unite-8-10.fc35.src.rpm
gnome-shell-extension-vertical-overview-8-1.fc35.src.rpm

Thanks for this awesome ticket, @jkomoroski . It's really useful and some of your suggestions make obvious sense.

We'll discuss this at the next workstation working group meeting. Feel free to join us if you're able to make it. Either way, it would be great to have your help resolving these issues.

Metadata Update from @aday:
- Issue tagged with: meeting

6 months ago

@jkomoroski can you provide links to each of the issues for the packages you've listed?

What we could really do with is a comprehensive list of packages - those which are obviously obsolete, those with metadata issues, those that are broken.

@aday I missed the meeting this morning by about 20 minutes I think. I had the timezone wrong :cry:

The issues I referred to in my previous comments were open issues with the upstream (usually github) with reference to a request for Gnome 41 support.

I provided a list of known broken packages (hard to say if it's exhaustive) and a note about why each one is broken already. The notes are with reference to the state of the upstream. I'll repeat it here:

gnome-shell-extension-argos-3-7.20211027git2eb03a7.fc35.src.rpm -- PR open but stuck in review
gnome-shell-extension-disconnect-wifi-17-9.fc35.src.rpm -- has open issue
gnome-shell-extension-emoji-selector-20-3.fc35.src.rpm -- has open issue(s)
gnome-shell-extension-freon-44-2.fc35.src.rpm -- has open issue
gnome-shell-extension-ibus-font-0.20210510-2.fc35.src.rpm -- Does not work? not a normal git repo: https://pwu.fedorapeople.org/ibus/ibus-font-setting/
gnome-shell-extension-openweather-1-0.49.20210509gitd714eb1.fc35.src.rpm -- has open issue
gnome-shell-extension-pidgin-1.0.3-9.fc35.src.rpm -- I opened an issue, did some testing, and opened a PR (version in repos is 3 years and 6 releases behind upstream)
gnome-shell-extension-refresh-wifi-6.0-9.fc35.src.rpm -- Open issue
gnome-shell-extension-sound-output-device-chooser-39^1.8c90ed0-1.fc35.src.rpm -- actually broken with 41 issue is open
gnome-shell-extension-suspend-button-19-9.20171024gita812520.fc35.src.rpm -- gnome now has this -- probably no longer useful
gnome-shell-extension-remove-bluetooth-icon-0.5.1-15.fc35.src.rpm -- delcared as no longer maintained (no longer useful)
gnome-shell-extension-remove-volume-icon-0.5.1-15.fc35.src.rpm -- declared as no longer maintained (no longer useful)
gnome-shell-extension-gamemode-1-6.fc35.src.rpm -- Open issue, broken

I'll repeat the remaining packages I looked into here. The following packages have declared support upstream, but I haven't checked them in the fedora repos to see if fedora is current with upstream (the fact that I have to mention this indicates a possible maintenance process issue with these packages).

gnome-shell-extension-netspeed-3.30-0.15.20210621git1598dc3.fc35.src.rpm
gnome-shell-extension-background-logo-41.0-1.fc35.src.rpm
gnome-shell-extension-bubblemail-14-2.fc35.src.rpm
gnome-shell-extension-caffeine-39-1.fc35.src.rpm
gnome-shell-extension-dash-to-dock-71-1.fc35.src.rpm
gnome-shell-extension-material-shell-12-3.fc35.src.rpm
gnome-shell-extension-mediacontrols-17-1.fc35.src.rpm
gnome-shell-extension-gsconnect-48-1.fc35.src.rpm
gnome-shell-extension-no-overview-8-4.fc35.src.rpm
gnome-shell-extension-pop-shell-1.2.0^4.1fddaa8-1.fc35.src.rpm
gnome-shell-extension-system-monitor-applet-38-15.20211103git11d43a8.fc35.src.rpm
gnome-shell-extension-unite-8-10.fc35.src.rpm
gnome-shell-extension-vertical-overview-8-1.fc35.src.rpm

@jkomoroski Sorry to hear about your timezone mix up! It would have been great to have had you at the meeting.

Do you have links to the issues you mention for each extension?

@aday I do not have the links nor do I have a current state of things. Just this summary from when I started my ask fedora thread. My goal wasn't to fix it, I was simply trying to provide an accurate summary of the current the state of things to see if policy/procedure changes could be implemented.I thought that if some procedure change was adopted, simply notifying the fedora package maintainers would get the ball rolling for the next fedora version.

@jkomoroski OK. It's a bit unclear from you summary what "has open issue" means or what the state of those extensions is. I was hoping to get more information.

@tpopela you mentioned that you'd we willing to ping the maintainers of obsolete extension packages. I've tried the three extensions that @jkomoroski has identified as being obsolete, and agree with that verdict. They are:

  • gnome-shell-extension-suspend-button
  • gnome-shell-extension-remove-bluetooth-icon
  • gnome-shell-extension-remove-volume-icon

Getting these three removed might be a good start.

I have some time today. I'll gather the links.

An open issue in this case meant that the project does not declare support for Gnome 41, but this has already been reported to the upstream. Nothing more.

If we do clean up extensions and get them into a better state, what is going to changes will be made to keep things from slipping back into this state?

If we have a dependency generator, then unmaintained extensions would become uninstallable pretty quickly.

I don't think the WG should take responsibility for packages that it doesn't maintain. Ultimately, extension packages are maintained by individuals, and those individuals are responsible for keeping them updated.

Here are my findings as of today:

Package Issue/PR Link Comment
gnome-shell-extension-argos https://github.com/p-e-w/argos/pull/127 Stale PR for gnome 40 (not 41)
gnome-shell-extension-disconnect-wifi https://github.com/kgshank/gse-disconnect-wifi/issues/34 Issue Closed Gnome 41 now supported upstream
gnome-shell-extension-emoji-selector https://github.com/maoschanz/emoji-selector-for-gnome/issues/151 Fedora Package Maintainer Engaged not ready
gnome-shell-extension-freon https://github.com/UshakovVasilii/gnome-shell-extension-freon/issues/211 Issue Closed Gnome 41 now supported upstream
gnome-shell-extension-ibus-font https://pwu.fedorapeople.org/ibus/ibus-font-setting ??? I am unsure of what this is
gnome-shell-extension-openweather https://gitlab.com/jenslody/gnome-shell-extension-openweather/-/issues/303 Issue and Open Merge Request
gnome-shell-extension-pidgin https://github.com/muffinmad/pidgin-im-gnome-shell-extension/issues/57 Support Declared Upstream, (Fedora Repos are 3.5 years out of date)
gnome-shell-extension-refresh-wifi https://github.com/kgshank/gse-refresh-wifi/pull/21 Pr Open for 13 days
gnome-shell-extension-sound-output-device-chooser https://github.com/kgshank/gse-sound-output-device-chooser Issue Closed Upstream now supports 41
gnome-shell-extension-gamemode https://github.com/gicmo/gamemode-extension/issues/44 Issue Closed Upstream now supports 41

I've omitted the three packages you already commented on.

I don't think the WG should take responsibility for packages that it doesn't maintain. Ultimately, extension packages are maintained by individuals, and those individuals are responsible for keeping them updated.

On the flip side, it is a poor user experience if people are installing packages that don't work, and these packages are only really relevant on workstation. Not saying we need to make this our responsibility, but helping to join the dots of any cleanup effort seems useful...

The distro is in a bit of a pickle, isn't it.

Extensions will not work by default in any release that includes a major gnome version change. If we want to package these extensions, every extension in the fedora repos must be updated during the beta period to retain functionality (even if it's just incrementing a number in a metadata file). .

There is an upgrade treadmill here. There is no good way around that, unless the distro decides to run with scissors and turn of the gnome version check (bad).

We're left with mitigating the issue. We can try to get package maintainers more involved during the release window, but ultimately what will we do when an extension actually is broken and not updated in time for the fedora release?

We're left with mitigating the issue. We can try to get package maintainers more involved during the release window, but ultimately what will we do when an extension actually is broken and not updated in time for the fedora release?

If we had an RPM dependency generator, then GNOME Software would inform the user that incompatible packages will be uninstalled before starting the distro upgrade.

@tpopela you mentioned that you'd we willing to ping the maintainers of obsolete extension packages.

Emails were sent.

Thanks @tpopela ! Any response yet?

I've opened #257 to track the dependency generator issue specifically.

Thanks @tpopela ! Any response yet?

No response from @fab or @besser82 yet.

Metadata Update from @aday:
- Issue untagged with: meeting

5 months ago

Metadata Update from @aday:
- Issue tagged with: qa

5 days ago

Login to comment on this ticket.

Metadata