[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: gconf changes



Le vendredi 08 juillet 2005 à 16:41 -0400, Jeff Bailey a écrit :
> # Sysadmin forced settings
> xml:readonly:/etc/gconf/gconf.xml.defaults

This one should be /etc/gconf/gconf.xml.mandatory.

> # Local Forced settings (Packaged)
> xml:readonly:/usr/share/gconf/local-optional

Is this one really necessary? Is it meant for sysadmins preferring to
package their branding instead of running gconftool?

> # Sabayon mandatory FIXME - Is this the right path?  How is it made
> mandatory?
> include "$(HOME)/.gconf.path.mandatory"
> 
> # User Preferences
> 
> # Now see where users want us to look - basically the user can stick
> arbitrary
> # sources in a ~/.gconf.path file and they're inserted here
> include "$(HOME)/.gconf.path"
> 
> # Give users a default storage location, ~/.gconf
> xml:readwrite:$(HOME)/.gconf
> 
> # Sabayon optional FIXME - Is this the right path?  Shouldn't this be
> system-wide?
> include "$(HOME)/.gconf.path.defaults"

Here, we should add the current default path:
xml:readonly:/etc/gconf/gconf.xml.defaults

> # Local Branding (Packaged)
> xml:readonly:/usr/share/gconf/local-optional
> 
> # CDD Branding
> xml:readonly:/usr/share/gconf/cdd

Maybe local and CDD branding could be merged.

> # Debian branding
> xml:readonly:/usr/share/gconf/debian
> 
> # Application default
> xml:readonly:/var/lib/gconf/

/var/lib/gconf/defaults maybe ?

Final note: that really makes a lot. Are there any performances issues
when using so many sources?

We also have to check that gconftool-2 --get-default-source will still
return xml::/etc/gconf/gconf.xml.defaults. This is the base for:
- manual installation of software using gconf;
- the path gconf-editor uses;
- the path packages already using dh_gconf use.
Looking at the source this should still be the case, making this move
transparent to installed applications.

The schedule should be the following:

1) Update gconf with the proposed changes. We should also provide
scripts for use in dh_gconf, named gconf-register-schemas and
gconf-unregister-schemas, looking like:
#! /bin/sh
set -e
tmp_home=`mktemp -d`
schema_location=/usr/share/gconf/schemas
for schema in "$@"; do
  if [ `echo "$schema" | cut -c1` != / ]; then
    schema="$schema_location"/"$schema"
  fi
  if [ -e $schema ]; then
    HOME="$tmp_home" GCONF_CONFIG_SOURCE=/var/lib/gconf/defaults \
        gconftool-2 --makefile-install-rule "$schema" >/dev/null
  else
    echo Cannot find "$schema".
    exit 1
  fi
done
rm -rf "$tmp_home"
kill -s HUP `pidof gconfd-2` >/dev/null 2>&1 || true

For gconf-unregister-schemas, just s/install-rule/uninstall-rule/, and
no need for the kill.

2) Update dh_gconf in debhelper:
  - bump the ${misc:Depends} to the new version;
  - replace the autogenerated stuff, making use of
gconf-register-schemas:
if [ "$1" = "configure" ]; then
    /usr/sbin/gconf-register-schemas #SCHEMAS#
fi
and gconf-unregister-schemas:
if [ "$1" = remove ] || [ "$1" = upgrade ]; then
    /usr/sbin/gconf-unregister-schemas #SCHEMAS#
fi

3) Rebuild all applications, fixing those not using ${misc:Depends} yet.

Regards,
-- 
 .''`.           Josselin Mouette        /\./\
: :' :           josselin.mouette@ens-lyon.org
`. `'                        joss@debian.org
  `-  Debian GNU/Linux -- The power of freedom

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: