Hi, I’m using GuixSD[1], a variant of the GNU system which does not follow the FHS in order to provide declarative system configuration and functional package management. As the functional package manager installs each package into its own directory under “/gnu/store”, the GTK+ libraries are obviously not installed in the same global tree as input method modules or themes. When a user installs, say, an IBus input method into their profile at “~/.guix-profile” they have no good way to tell the GTK libraries (somewhere in “/gnu/store/...-gtk.../lib”) about the location of these modules. As a user may have applications of which some use GTK+ 2 and others use GTK+ 3, the usual GTK+ environment variables cannot be used to direct a particular version of GTK+ to load compatible modules from a given path. The documentation at [2] explicitly warns about setting GTK_PATH or GTK_IM_MODULE_PATH system-wide, as both GTK+ 2.x and GTK+ 3.x will respect these variables. This is why I would like to propose two patches, one against GTK+ 2.x and the other against GTK+ 3.x, introducing the environment variables GTK2_PATH and GTK3_PATH, which allow users to specify additional search paths that are only respected by one major version of GTK+ (and not the other). I packaged IBus and the libpinyin input method module for Guix and could only make it work in all applications after patching both major versions of GTK+ to respect these additional environment variables.[3][4] We intend to use a slightly modified version of the attached patches for Guix (prefixing the variable names with “GUIX_”), but we think it would be best to see if upstream would be okay with these patches, or if there are better ways we haven’t thought of. The patches are inlined below. ~~ Ricardo ____ [1]: https://www.gnu.org/software/guix/ [2]: https://developer.gnome.org/gtk3/stable/gtk-running.html [2]: http://lists.gnu.org/archive/html/guix-devel/2015-09/msg00306.html [3]: http://lists.gnu.org/archive/html/guix-devel/2015-12/msg00046.html
Attachment:
gtk2-respect-GTK2_PATH.patch
Description: Text Data
Attachment:
gtk3-respect-GTK3_PATH.patch
Description: Text Data