Archive:Giomodules packaging guideline (draft)

GIO modules
GIO is a library that is part of the glib2 package. It is a low-level part of the GNOME stack. GIO can be extended by implementing extension points in loadable modules. These loadable modules have to be installed in %{_libdir}/gio/modules. To avoid opening all modules in that directory unnecessarily, GIO maintains a cache with information about the available modules in the text file giomodule.cache in the same directory. This cache file needs to be updated when the set of installed modules changes, by calling the gio-querymodules binary. Multilib considerations force us to install the binary in -32 and -64 variants.

The proposed scriptlets to maintain the cache file are: %postun gio-querymodules-%{__isa_bits} %{_libdir}/gio/modules || :

%posttrans gio-querymodules-%{__isa_bits} %{_libdir}/gio/modules || :

Note the use of %{__isa_bits}, which is an rpm macro that expands to either 32 or 64, depending on the architecture of the package.

In order to ensure that gio-querymodules is available when the scriptlets are run, add Requires as necessary:

Requires(postun): glib2 Requires(posttrans): glib2