[Slackbuilds-users] Two questions about building GNOME apps

Willy Sudiarto Raharjo willysr at slackbuilds.org
Fri May 1 08:32:58 UTC 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 05/01/2015 03:16 PM, Niki Kovacs wrote:
> Hi,
> 
> I have two questions about building GNOME apps.
> 
> 1. Some applications use the following option:
> 
> --disable-scrollkeeper
> 
> What exactly does this do?


Taken from some sources online

What is scrollkeeper?

ScrollKeeper is a cataloging system for documentation on open systems.
It manages documentation metadata and provides a simple API to allow
help browsers to find, sort, and search the document catalog.

AFAIK nothing beyond the Gnome and KDE help browsers does anything
usefull with it.

How does it work?

Scrollkeeper reads files with meta data (provided in the packages of
programs that use this) and templates (provided by the scrollkeeper
package). It combines these into a database. This database can in turn
be read by the help browsers.

What does this mean for package builders?

Packages for programs that provide information through scrollkeeper
should contain *.omf files and put these in a directory under
${DEST}/usr/share/omf. If this directory is created, but does not
contain any files, then there probably went something wrong in the
build process.

The make install process for some programs generates a scrollkeeper
database under ${DEST}/var/lib/scrollkeeper or
${DEST}/var/scrollkeeper. Since the scrollkeeper database is a system
wide resource and system specific, these files should not end up in
the package. So the build scripts for programs that do this should
contain some command to remove this redundant database.

The database on the system where the package will be installed does
not update automatically when new files appear under /usr/share/omf.
So the doinst.sh script must take care of updating the scrollkeeper
database.

> 2. Some applications use this build option:
> 
> -- disable-schemas-install
> 
> or sometimes:
> 
> --disable-schemas-compile
> 
> Usually, the corresponding doinst.sh contains something similar to
> this:
> 
> if [ -e usr/share/glib-2.0/schemas ]; then if [ -x
> /usr/bin/glib-compile-schemas ]; then /usr/bin/glib-compile-schemas
> usr/share/glib-2.0/schemas >/dev/null 2>&1 fi fi
> 
> What exactly does this do?

What is gconf?

GConf is a configuration scheme currently used by the GNOME desktop.
Programs which use it setup default values in a $NAME.schemas file
which is installed under /etc/gconf/schemas/$NAME.schemas. These
defaults are then registered with the gconf daemon which monitors the
configuration values and alerts applications when values the
applications are interested in change. The schema files also provide
documentation about what each value in the configuration system means
(which gets displayed when you browse the database in the gconf-editor
program).

For packaging purposes, we have to disable schema installation during
build, or these will get installed in the packager's system instead of
put in the package itself. They can then be created and placed in the
package manually.

Disabling schemas installation

When a package requires the installation of gconf schemas, there is
usually a "--disable-schemas-install" configure option that can be
used to not let the makefile install any schemas to the system. You
can check if the configure script provides such an option with
"configure --help".


- -- 
Willy Sudiarto Raharjo
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iEYEAREIAAYFAlVDOjoACgkQiHuDdNczM4EuXgCfbge/DXQ9ya1C/1q/k9YKsw1a
GnQAniMM00qEVxhgXUgN/lrcQDOM6Xub
=nIXe
-----END PGP SIGNATURE-----


More information about the SlackBuilds-users mailing list