Comment 1 for bug 1074928

Revision history for this message
moma (osmoma) wrote : Re: udio-recorder doesn't run under Quantal Ubuntu distribution

This bug has been fixed in version 0.9.8.
Audio-recorder failed to find configuration settings in DConf and exited (in version 0.9.7 of audio-recorder).
Some facts:
1) The /apps/audio-recorder/ schema was visible in dconf-editor.
$ dconf-editor

2) Dump of /apps/ did not returned anything for a.r when this bug was present.
$ dconf dump /apps/

3) The schema (template) was correctly installed to /usr/share/glib-2.0/schemas/
$ ls -l /usr/share/glib-2.0/schemas/*audio*
-rw-r--r-- 1 root root 4897 Nov 4 21:43 /usr/share/glib-2.0/schemas/org.gnome.audio-recorder.gschema.xml

4) Gsettings list-schemas correctly reported all keys.
$ gsettings list-schemas | grep -i audio
  org.gnome.audio-recorder
  org.gnome.audio-recorder.track
  org.gnome.audio-recorder.skype
  org.gnome.audio-recorder.players

5) The user's private values for /apps/audio-recorder/ are saved to "$HOME/.config/dconf/user" file. It's a binary file. This file had no entries for a.r because it was never started in the actual Ubuntu-machine (with this bug).
$ ls -l $HOME/.config/dconf/user

The error was located in src/dconf.c, function conf_get_base_settings() where g_settings_schema_source_lookup() failed to find config schema for /apps/audio-recorder/. This schema is configured by data/org.gnome.audio-recorder.gschema.xml that is compiled and installed to the system.

This error was fixed by calling g_settings_schema_source_lookup() and setting its last parameter to TRUE. (recursive=TRUE).
GSettingsSchema *schema = g_settings_schema_source_lookup(source, APPLICATION_SETTINGS_SCHEMA, TRUE);

Now the program correctly finds the /apps/audio-recorder/ in Gsettings (with DConf backend). User's private values (values != default) are saved to $HOME/.config/dconf/user. And all is good.

Thanks to Yéna for making several tests to fix this bug.