Hey,
GConf is finally on the way out, it is being replaced by GSettings/DConf. From a packaging perspective, the following facts are important to know if your package starts using GSettings:
GSettings uses schemas. These are installed as xml files in /usr/share/glib-2.0/schemas. The schemas need to be compiled into binary form using glib-compile-schemas, so you will have to add the following to your spec:
%postun glib-compile-schemas /usr/share/glib-2.0/schemas ||:
%posttrans glib-compile-schemas /usr/share/glib-2.0/schemas ||:
If the schema is ported 1-1 from a GConf schema and uses key names including _ or other characters outside [a-z0-9-], you need to use the --allow-any-name option when calling glib-compile-schemas
You can look at the rawhide evince package for an example.
Matthias
On Sun, 2010-05-16 at 22:04 -0400, Matthias Clasen wrote:
Hey,
GConf is finally on the way out, it is being replaced by GSettings/DConf. From a packaging perspective, the following facts are important to know if your package starts using GSettings:
Do you have a reference handy for more general information about the new system - what's changed, what the rationale/benefits are etc? Thanks.
On Mon, 2010-05-17 at 23:44 +0100, Adam Williamson wrote:
On Sun, 2010-05-16 at 22:04 -0400, Matthias Clasen wrote:
Hey,
GConf is finally on the way out, it is being replaced by GSettings/DConf. From a packaging perspective, the following facts are important to know if your package starts using GSettings:
Do you have a reference handy for more general information about the new system - what's changed, what the rationale/benefits are etc? Thanks.
GSettings: http://blogs.gnome.org/desrt/2009/06/09/some-nice-gsettings-facts/
And as you can see "many backends".
GConf is a possible backend, but we'll soon switch to dconf: http://live.gnome.org/dconf
This also means being able to use plists on MacOS X, or the registry on Windows. GSettings lives in glib, and dconf will use the dbus support in glib as well. So it will reduce the dependency stack of a lot of GNOME and GTK+ software (and probably make some XFCE and LXDE projects redundant when the only difference was the avoidance of GConf).
On Mon, 2010-05-17 at 23:44 +0100, Adam Williamson wrote:
On Sun, 2010-05-16 at 22:04 -0400, Matthias Clasen wrote:
Hey,
GConf is finally on the way out, it is being replaced by GSettings/DConf. From a packaging perspective, the following facts are important to know if your package starts using GSettings:
Do you have a reference handy for more general information about the new system - what's changed, what the rationale/benefits are etc? Thanks.
I am not trying to sell GSettings here, merely trying to point out the effects on packaging... but I can give you some pointers and highlights:
GSettings is just the API, with pluggable backends. From a 10.000 ft perspective, the GSettings API is fairly similar to GConf. If you look closer, there are some nice improvements, such as the ability to bind settings to GObject properties.
The actual storage implementation will (very soon) be provided by dconf. DConf uses dbus where GConf uses ORBit. And it is optimized for reading - there are no roundtrips, reading is all in-process.
API documentation: http://library.gnome.org/devel/gio/2.25/settings.html
Man pages: http://library.gnome.org/devel/gio/2.25/tools.html
Porting guide: http://library.gnome.org/devel/gio/2.25/ch23.html
Porting example: http://git.gnome.org/browse/gnome-utils/log/?h=gsettings-tutorial
Matthias
desktop@lists.fedoraproject.org