In some circumstances, gconf isn't able to save configurations because ~/.config folder aka root_dir doesn't exist.
For example when saving settings using matchbox-appearance, the following error is shown: GConf Error: Configuration server couldn't be contacted: D-BUS error: Can't overwrite existing read-only value: Value for `/desktop/poky/interface/font_name' set in a read-only source at the front of your configuration path This issue was not seen before because ~/.config directory is shared between several packages and one of those packages usually creates it by the time gconf wants to use it. This patch makes sure that gconf creates the .config directory if it doesn't exist, along with the gconf directory inside it. [YOCTO #12632] Signed-off-by: Alejandro Hernandez <aleja...@xilinx.com> Signed-off-by: Jaewon Lee <jaewon....@xilinx.com> --- .../gnome/gconf/create_config_directory.patch | 28 ++++++++++++++++++++++ meta/recipes-gnome/gnome/gconf_3.2.6.bb | 1 + 2 files changed, 29 insertions(+) create mode 100644 meta/recipes-gnome/gnome/gconf/create_config_directory.patch diff --git a/meta/recipes-gnome/gnome/gconf/create_config_directory.patch b/meta/recipes-gnome/gnome/gconf/create_config_directory.patch new file mode 100644 index 0000000..e02932c --- /dev/null +++ b/meta/recipes-gnome/gnome/gconf/create_config_directory.patch @@ -0,0 +1,28 @@ +Upstream-Status: Pending + +In some circumstances, gconf isn't able to save configurations +because ~/.config folder aka root_dir doesn't exist. +This issue was not seen before because ~/.config directory is shared +between several packages and one of those packages usually creates it +by the time gconf wants to use it. + +This patch makes sure that gconf creates the .config directory if it +doesn't exist, along with the gconf directory inside it. + +Signed-off-by: Jaewon Lee <jaewon....@xilinx.com> +Signed-off-by: Alejandro Hernandez <aleja...@xilinx.com> + + +Index: GConf-3.2.6/backends/markup-backend.c +=================================================================== +--- GConf-3.2.6.orig/backends/markup-backend.c ++++ GConf-3.2.6/backends/markup-backend.c +@@ -276,7 +276,7 @@ resolve_address (const char *address, + /* dir_mode without search bits */ + file_mode = dir_mode & (~0111); + } +- else if (g_mkdir (root_dir, dir_mode) < 0) ++ else if (g_mkdir_with_parents (root_dir, dir_mode) < 0) + { + /* Error out even on EEXIST - shouldn't happen anyway */ + gconf_set_error (err, GCONF_ERROR_FAILED, diff --git a/meta/recipes-gnome/gnome/gconf_3.2.6.bb b/meta/recipes-gnome/gnome/gconf_3.2.6.bb index 92fd12c..120ae3e 100644 --- a/meta/recipes-gnome/gnome/gconf_3.2.6.bb +++ b/meta/recipes-gnome/gnome/gconf_3.2.6.bb @@ -11,6 +11,7 @@ inherit gnomebase gtk-doc gettext gobject-introspection gio-module-cache SRC_URI = "${GNOME_MIRROR}/GConf/${@gnome_verdir("${PV}")}/GConf-${PV}.tar.xz;name=archive \ file://remove_plus_from_invalid_characters_list.patch \ file://unable-connect-dbus.patch \ + file://create_config_directory.patch \ " SRC_URI[archive.md5sum] = "2b16996d0e4b112856ee5c59130e822c" -- 2.7.4 This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately. -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core