GNOME package guidelines
CLR – Cross – Eclipse – Free Pascal – GNOME – Go – Haskell – Java – KDE – Kernel – Lisp – MinGW – Node.js – Nonfree – OCaml – Perl – PHP – Python – Ruby – VCS – Web – Wine
The GNOME packages on Arch Linux follow a certain schema.
Contents
GConf schemas
Some GNOME packages install GConf schemas, even though many others already migrated to GSettings. Those packages should depend on gconf.
Gconf schemas get installed in the system GConf database, which has to be avoided.
Some packages provide a --disable-schemas-install
switch for ./configure, which hardly ever works. However, gconftool-2 has a variable called GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL
which you can set to tell gconftool-2 to not update any databases.
When creating packages that install GConf schema files, use
make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=${pkgdir} install
for the package installation step in the PKGBUILD.
Do not call gconfpkg
in the .install file, as GConf schemas are automatically installed/removed (while installing/removing the GNOME package) via pacman hooks since gconf=3.2.6-4
GSettings schemas
The GConf schemas were migrated to GSettings schemas, so many GNOME applications can be found using this new schema file. GSettings uses dconf as backend, so all packages that contain GSettings schemas require dconf as dependency. When a new GSettings schema installed on the system, the GSettings database has to be recompiled, but not when packaging.
To avoid recompiling GSettings database on packaging, use the --disable-schemas-compile
switch for ./configure.
Do not call glib-compile-schemas
in the .install file, as GSettings schema databases are automatically recompiled via pacman hooks since glib2=2.48.0-2.
Scrollkeeper documentation
Starting from GNOME 2.20 there is no need to handle scrollkeeper anymore, as rarian reads its OMF files directly. Scrollkeeper-update is a dummy these days. The only required thing now is to makedepend on gnome-doc-utils>=0.11.2.
It can be disabled using --disable-scrollkeeper
switch from ./configure.
GTK icon cache
Quite some packages install icons in the hicolor icon theme. These packages should depend on gtk-update-icon-cache.
Do not call gtk-update-icon-cache
in the .install file, as the icon cache is updated via pacman hooks since gtk-update-icon-cache=3.20.3-2.
.desktop files
Many packages install Freedesktop.org compatible .desktop
files and register MimeType entries in them. They should depend on desktop-file-utils
Do not call update-desktop-database
in the .install file, as the database is automatically updated via pacman hooks since desktop-file-utils=0.22-2.
.install files
Previously, most of the GNOME packages had a .install file calling commands like glib-compile-schemas
, gtk-update-icon-cache
, and update-desktop-database
in order to install/update local cache or databases. This is deprecated since pacman 5.0 implemented hooks which call those commands automatically when installing the package.
To avoid being called twice, the above mentioned commands should be removed from .install file.