[Nix-dev] odd output when compiling gnome

Eelco Dolstra eelco at cs.uu.nl
Thu Sep 13 14:05:50 CEST 2007


Hi,

Erick Tryzelaar wrote:

> I'm getting this repeated for every locale whenever I build gnome:
> 
> WARNING: failed to install schema
> `/schemas/desktop/gnome/file-views/icon_theme' locale `sk': Unable to
> store a value at key '/schemas/desktop/gnome/file-views/icon_theme',
> as the configuration server has no writable databases. There are some
> common causes of this problem: 1) your configuration path file
> /nix/store/3c919chqmjh71qcxzgzyx4y2rm91a0ph-GConf-2.14.0/etc/gconf/2/path
[snip]
> 
> Is this a packaging problem?

More or less.

Many Gnome packages try to register their GConf schema in the system-wide GConf
schema directory, but they don't have write permission there (and it would be
impure in any case).  I think Gnome packages have a configure flag to disable
this, we should turn it on.  (I made an issue about it:
https://bugs.cs.uu.nl/browse/NIXPKGS-74)

However it's not a big deal since the schema does get installed in
$out/etc/gconf/schema, so it can be registered with GConf later.  For instance,
the Upstart job for the X server on NixOS does this to install the Metacity
schema in the user's GConf directory (~/.gconf):

  GCONF_CONFIG_SOURCE=xml::~/.gconf ${gnome.GConf}/bin/gconftool-2 \
    --makefile-install-rule ${compiz}/etc/gconf/schemas/*.schemas

Still, it's a problem that GConf needs these schema registrations and that you
can't just set an environment variable to point to the schemas, or even better,
that an application could just tell GConf about its own schema location (say,
when it starts).  So GConf has a very imperative model, which means among other
things that it's tricky to have multiple versions of a GConf-based application
installed at the same time (at least, not if the schemas are different between
versions).  In other words, GConf has the same problems as the Windows registry.

-- 
Eelco Dolstra | http://www.cs.uu.nl/~eelco



More information about the nix-dev mailing list