Mailinglist Archive: opensuse-packaging (202 mails)

< Previous Next >
[opensuse-packaging] Desktop-related macros for scriptlets
Hi,

Something I probably failed to document properly in 11.4 is the new
macros that got introduced for desktop-related things (some of them
being, arguably, GTK+-only). They were introduced to fix various issues,
and move away from the SuSEconfig scripts.

With rpm 4.9, we might be able to use another solution. In that case,
the macros listed below will just expand to an empty string and do
nothing. So it won't harm to use them either.

Desktop-related macros
======================

a) Package installs a .desktop file in /usr/share/applications

Macros: %desktop_database_post/%desktop_database_postun

What it does: calls update-desktop-database to update a cache mapping
MIME types to apps handling them. This is needed to make the desktops
aware that an app can handle a MIME type.

b) Package installs a MIME definition (in /usr/share/mime):

Macros: %mime_database_post/%mime_database_postun

What it does: calls update-mime-database to update the database
containing information about all MIME definitions.

c) Package installs an icon in hicolor (/usr/share/icons/hicolor):

Macros: %icon_theme_cache_post/%icon_theme_cache_postun

What it does: calls gtk-update-icon-cache (if existing) to update the
GTK+ icon cache for hicolor, as specified by the spec. This is needed
to make the icon visible to GTK+ apps.

d) Package installs an icon in another icon theme (let's say "geeko"
theme, /usr/share/icons/geeko)

Macros: %icon_theme_cache_post geeko / %icon_theme_cache_postun geeko

What it does: calls gtk-update-icon-cache (if existing) to update the
GTK+ icon cache for geeko. This is needed to make the icon visible to
GTK+ apps.

e) Package installs a GSettings schema (in /usr/share/glib-2.0/schemas):

Macros: %glib2_gsettings_schema_post/%glib2_gsettings_schema_postun
%glib2_gsettings_schema_requires (similar to %py_requires)

What it does: calls glib-compile-schemas to build the blob containing
the data for all schemas. This is needed to have your app not crash
:-)

f) Package installs a gio module (in /usr/lib/gio/modules):

Macros: %glib2_gio_module_post/%glib2_gio_module_postun
%glib2_gio_module_requires (similar to %py_requires)

What it does: calls gio-querymodules to update a cache listing all
gio modules and the extension points they are using. This is needed
to make the gio module known to gio.

g) Package installs a gdk-pixbuf loader (in
/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders):

Macros: %gdk_pixbuf_loader_post/%gdk_pixbuf_loader_postun
%gdk_pixbuf_loader_requires (similar to %py_requires)

What it does: calls gdk-pixbuf-query-loaders to update a cache
listing all gdk-pixbuf loaders and their abilities. This is needed to
make the gdk-pixbuf loader known to gdk-pixbuf.

h) Package installs a GTK+ (2 or 3) IM module (in
/usr/lib/gtk-2.0/2.10.0/immodules or
/usr/lib/gtk-3.0/3.0.0/immodules):

Macros: %gtk2_immodule_post/%gtk2_immodule_postun
%gtk2_immodule_requires
%gtk3_immodule_post/%gtk3_immodule_postun
%gtk3_immodule_requires

What it does: calls gtk-query-immodules-2.0/gtk-query-immodules-3.0
to build a cache listing all IM modules and the locale/language they
apply to. You obviously need to only call the gtk2/gtk3 version,
depending on which version of GTK+ you target. This is needed to make
the IM module known to GTK+.

i) Package installs a pango module (in /usr/lib/pango/1.6.0/modules):

Macros: %pango_module_post/%pango_module_postun
%pango_module_requires (similar to %py_requires)

What it does: calls pango-querymodules to update a cache listing all
pango modules and information about what they handle. This is needed
to make the module known to pango.


Thanks,

Vincent

--
Les gens heureux ne sont pas pressés.

--
Les gens heureux ne sont pas pressés.
--
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-packaging+help@xxxxxxxxxxxx

< Previous Next >