Category Archives: General

GSettings update

after quite some time, the GVariant, GSettings, dconf saga is coming to an end. for quite some time Codethink has been sponsoring me to spend a fair bit of time on this stuff and i’m happy to say that it’s reaching the point of usability.

first of all: all existing code is now merged to its final destination. no weird branches or anything are required to use the latest stuff. in fact, i made a pair of tarball releases yesterday: one for glib and one for dconf. those are all you need.

install instructions are something like this:

1) install glib
2) install dconf
3) profit!!

i hacked together a quick example of what #3 might look like. check it out on git.desrt.ca (not in gnome git due to the fact that it will probably bit-rot soon).

a few notes with respect to the recent releases:

1) the m4 macro for GSettings has changed. if you’re an early adopter this will burn you and i am sorry. the new macro is much nicer, though. it’s less typing for you and it fixes a few problems with the old macro.

to use it, you just need to have two lines in your Makefile.am:

gsettings_SCHEMAS = one.gschema.xml two.gscema.xml ...
@GSETTINGS_RULES@

make sure your ACLOCAL_FLAGS is setup properly if you’re using glib installed in a strange prefix because otherwise aclocal won’t find gsettings.m4.

2) the dconf release as of yesterday has a small bug with an extremely large impact: the gio-querymodule support is broken which causes the dconf GSettings backend not to be seen if you run the gio-querymodule tool. this has been fixed in git and will be in the next release (which should be along in a few days) and it only affects you if you run the tool. my understanding is that vendor packages are working around the issue already.

vendor packages are coming for fedora (rawhide) and ubuntu (maverick, plus backported to lucid in an official ppa). your least-pain option is probably to wait for these.

the next release of dconf will be focused on using it outside of GSettings; a standalone client-side library, and a commandline tool. Robert Ancell has also signed on to do some work on a graphical editor.

one last note: dconf is currently extremely slow. “hilariously slow” might be the appropriate thing to say. don’t worry — it’s just a small fix to make that better. for now i’m more interested in features work, though.

one more last note: the dconf file format might change. just so you know. :)

two notes on gsettings

1: the gsettings hackfest is on. april 12 – 17 in cambridge mass. see http://live.gnome.org/Hackfests/GSettings2010 for more information. the goal is to get gsettings stable and merged into glib and to port some of the big desktop applications to it (panel, nautilus, evolution, etc). walking away from this hackfest we should be in a spot where it is reasonable for other applications to port themselves.

2: gvariant (the type system on which dconf, gsettings, gdbus and other things are based) is almost entirely merged into glib. only one small part (parsing of text values) is outstanding. all other functionality is there as it will be in the next glib stable release. if you’re a present user of gvariant from the branch then please take a look at the master branch and make sure everything is as you expected — if you don’t say anything then this is what will become the official API.

i also did my first release of glib today (including the latest gvariant goodness). i think that was a good thing, although now i’m starting to have second thoughts…

12:24 <bratsche> desrt: Are you maintaining glib now or something?
12:25 <desrt> bratsche: no.  just helping a little.
12:25 <mclasen> bratsche: psst, he doesn't know yet

i just returned from boston summit. boston summit is always scheduled on canadian thanksgiving which usually means that i can’t attend, but this year i bit the bullet.

i’m glad i did.

the three days of the conference were perhaps the three most productive days i have spent at any event. the entire attendence was on the order of about 30-40 people. this allowed the format to be very informal, and the level of focus allowed by that was fantastic.

for me, one of the happiest things to report is that i had a “hallway track” talk with davidz, mclasen and wjt. a very nice conclusion came from this talk. the upshot of that conversion is that the following items are all likely to occur:

  • GVariant will be included in the next stable release of glib
  • GDBus will be included in the next stable release of glib
  • GDBus will be modified to be based on GVariant

already, davidz has ported GDBus to GVariant and he reports that it’s working very nicely. you can see that work in the gdbus-standalone git repository.

while in boston, i proposed dconf as a new module for GNOME 2.30. reception on d-d-l has been very positive. this means that the following two points are also likely:

  • GSettings will be included in the next stable release of glib
  • dconf will ship with GNOME 3.0

a couple of other things that really stuck out for me from the summit:

gnome-shell: it seemed to me that the number of people using gnome-shell on their laptops increased substantially over the course of the summit. i’ve personally switched over to using it full-time. it’s weird and a little bit strange, but there are some things about it that i really like. i’ve also been showing it to some “normal humans” since coming back and they think that it’s pretty cool too.

splinter: in case you haven’t heard, we now have patch review integrated into GNOME bugzilla. click the “review” button beside the patch. kudos to owen for this.

that’s all for this post. i have a couple of new projects that i’m working on as a result of the summit that i will talk about soon.

“be excellent to each other”

it’s perhaps a bug in the ubuntu code of conduct that it does not include something that we can find elsewhere — in the KDE code of conduct.

i believe that “be excellent to each other” very much includes “assume that people mean well”.

i’m personally a bit tired of seeing people repeatedly publicly flogged for an innocent action (where i define innocent as “very obviously without malice”).

ps: can we please get back to work? boston summit just ended today and i can tell you that there is certainly no lack of actual interesting things to be spending time on.

edit: thanks to murray for pointing out that the “assume people mean well” language appears also in the GNOME code of conduct. KDE just had better google juice for the term :)

maybe this saves you some time

if you want to install seed on your ubuntu jaunty system and you are looking for a version of webkit that is sufficiently recent to work with seed, is sufficiently old enough that it doesn’t require you to install a new libsoup and sufficiently unbroken enough to actually compile, then i have a number for you: revision 45557.

that is all :)

#gnome-hackers


21:56 <@hub> desrt: the yet another rewrite of Evo IMAP... more bugs for less features
21:56 * hub wonder why they didn't use Tinymail instead
21:57 <@desrt> i'd like to take a moment to declare that i love pvanhoof
21:58 <@desrt> not for any particular piece of software that he has written; just 'cause.
21:58 <@hub> desrt: I dare you to post that on pgo

some nice gnio facts

here’s a post to go with my last post about gsettings.

there’s really only one nice fact to mention about gnio:

it’s in glib now. go get it. use it.

huge thanks are due, of course, to alex and danw for all the hard work and attention in tweaking the api and merging.