Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 377107 - [gnome-overlay] gnome-extra/gnome-shell-extensions must either get a USE_EXPAND variable or be split up
Summary: [gnome-overlay] gnome-extra/gnome-shell-extensions must either get a USE_EXPA...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GNOME (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-07-30 20:45 UTC by Alexandre Rostovtsev (RETIRED)
Modified: 2011-08-12 09:50 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
proposed USE_EXPANDed gnome-shell-extensions-3.0.2.ebuild (gnome-shell-extensions-3.0.2.ebuild,2.25 KB, text/plain)
2011-07-30 20:47 UTC, Alexandre Rostovtsev (RETIRED)
Details
proposed USE_EXPANDed gnome-shell-extensions-3.0.2.ebuild (gnome-shell-extensions-3.0.2.ebuild,2.16 KB, text/plain)
2011-07-30 20:51 UTC, Alexandre Rostovtsev (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-07-30 20:45:45 UTC
gnome-shell-3.0.x by default loads and runs all extensions that are installed on the machine.
The gnome-shell-extensions-3.0.x ebuild currently installs all extensions provided in the tarball (and in fact offers no way to disable or not install individual extensions).

This obviously leads to problems because
(a) only a tiny minority of crazy people would want to use *all* of these extensions simultaneously;
(b) some extensions are known to make gnome-shell outright crash (possibly depends on the user's video drivers).

The current behavior is basically equivalent to providing a "firefox-extensions" ebuild that installs a dozen browser extensions, some useful (but only to a few people), some nearly useless, some that make the browser crash - and have no way to control which set of extensions gets installed. Basically, insane.

I see two possible solutions to the problem.

First, add a USE_EXPAND variable (say, GNOME_SHELL_EXTENSIONS) that controls what extensions get installed. I would have already done this in the overlay, except that adding a new USE_EXPAND apparently requires messing with the base profile and a discussion on the gentoo-dev mailing list (and I am not a gentoo dev).

Second, split up the package into gnome-shell-extensions-alternative-status-menu, gnome-shell-extensions-user-theme, etc. This is what Fedora does, but it doesn't feel like the "Gentoo way" of doing things.

This *must* be fixed before gnome3 is unmasked in gx86 because one of the extensions (alternative-status-menu) is basically required for certain corporate deployments; see https://bugzilla.gnome.org/show_bug.cgi?id=643457
Comment 1 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-07-30 20:47:22 UTC
Created attachment 281619 [details]
proposed USE_EXPANDed gnome-shell-extensions-3.0.2.ebuild
Comment 2 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-07-30 20:51:02 UTC
Created attachment 281621 [details]
proposed USE_EXPANDed gnome-shell-extensions-3.0.2.ebuild

Same as above, but without a duplicate gnome-desktop dep
Comment 3 Pacho Ramos gentoo-dev 2011-07-31 11:51:20 UTC
I would prefer the "splitted" way over USE flags if it's not too hard to handle. That way, I wouldn't need to re-compile all extensions if I decide to enable/disable one of them :-/

But it's only my opinion, better wait for more :-)
Comment 4 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-07-31 17:36:30 UTC
(In reply to comment #3)
> I would prefer the "splitted" way over USE flags if it's not too hard to
> handle. That way, I wouldn't need to re-compile all extensions if I decide to
> enable/disable one of them :-/

Almost all shell extensions are written purely in javascript and don't need to be compiled :)
Comment 5 Pacho Ramos gentoo-dev 2011-07-31 17:38:24 UTC
Nice to know :D
Comment 6 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-08-09 17:55:48 UTC
After thinking about this problem further, I've decided that the best solution would be an eselect module.

By default, extensions would be installed in some directory where they wouldn't be loaded automatically (e.g. /usr/share/gnome-shell/extensions.available/), and eselect will symlink the ones that the administrator wants to enable into /usr/share/gnome-shell/extensions.

The eselect solution has the following advantages:
1. The administrator will be able to change the list of extensions enabled systemwide without rebuilding gnome-shell-extensions (although there is no compilation step, running configure 20 times is still annoying).
2. It reduces the future maintenance burden on the gnome team, since there will be no need to keep the list of USE flags in sync with the list of provided extensions in all shell-extension packages (and it's inevitable that we will add various third-party hell extension packages).
3. Unlike the USE_EXPAND solution, the eselect solution doesn't require configure script sedding and hackery in the gnome-shell-extensions ebuild.

Unless anyone objects, I will implement this in the overlay tomorrow or so.
Comment 7 Alexandre Rostovtsev (RETIRED) gentoo-dev 2011-08-12 09:50:42 UTC
Fixed in overlay with a gnome-shell-extensions eselect module that works in a somewhat more elegant manner (it manages a gsettings vendor override for the org.gnome.shell disabled-extensions key).