compiz team mailing list archive
-
compiz team
-
Mailing list archive
-
Message #31013
[Merge] lp:~sil2100/libcompizconfig-backend-gconf/quilt_fix into lp:~compiz/libcompizconfig-backend-gconf/ubuntu
Łukasz Zemczak has proposed merging lp:~sil2100/libcompizconfig-backend-gconf/quilt_fix into lp:~compiz/libcompizconfig-backend-gconf/ubuntu.
Requested reviews:
compiz packagers (compiz)
For more details, see:
https://code.launchpad.net/~sil2100/libcompizconfig-backend-gconf/quilt_fix/+merge/99519
Trivial fix: there was no support for quilt patches in the packaging information, so I just re-added it. I also removed some unused patches and fixed the newly added one.
--
https://code.launchpad.net/~sil2100/libcompizconfig-backend-gconf/quilt_fix/+merge/99519
Your team compiz packagers is requested to review the proposed merge of lp:~sil2100/libcompizconfig-backend-gconf/quilt_fix into lp:~compiz/libcompizconfig-backend-gconf/ubuntu.
=== modified file 'debian/changelog'
--- debian/changelog 2012-03-23 15:34:26 +0000
+++ debian/changelog 2012-03-27 13:20:29 +0000
@@ -1,3 +1,12 @@
+compizconfig-backend-gconf (0.9.5.92-0ubuntu4) UNRELEASED; urgency=low
+
+ * debian/source/format:
+ - added quilt for distro patches, so that fix_953214 can be correctly
+ applied
+ * Removed unused/deprecated patches
+
+ -- Łukasz 'sil2100' Zemczak <lukasz.zemczak@xxxxxxxxxxxxx> Tue, 27 Mar 2012 14:59:54 +0200
+
compizconfig-backend-gconf (0.9.5.92-0ubuntu3) precise-proposed; urgency=low
* debian/patches/fix_953214.patch
=== removed file 'debian/patches/01_add_transition_gconf.patch'
--- debian/patches/01_add_transition_gconf.patch 2011-07-18 18:11:50 +0000
+++ debian/patches/01_add_transition_gconf.patch 1970-01-01 00:00:00 +0000
@@ -1,862 +0,0 @@
-From 7c16ffc637df7cb245698b63ab042154bbe1c31e Mon Sep 17 00:00:00 2001
-From: Sam Spilsbury <sam.spilsbury@xxxxxxxxxxxxx>
-Date: Mon, 29 Nov 2010 17:07:51 +0800
-Subject: [PATCH] transition module gconf
-
----
- CMakeLists.txt | 3 +-
- src/gconf.c | 17 +-
- src/transition.h | 40 +++
- src/transition_gconf.cpp | 720 ++++++++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 774 insertions(+), 6 deletions(-)
- create mode 100644 src/transition.h
- create mode 100644 src/transition_gconf.cpp
-
-Index: compizconfig-backend-gconf-0.9.5.0/CMakeLists.txt
-===================================================================
---- compizconfig-backend-gconf-0.9.5.0.orig/CMakeLists.txt 2011-07-13 15:10:29.000000000 +0200
-+++ compizconfig-backend-gconf-0.9.5.0/CMakeLists.txt 2011-07-18 20:09:58.862043592 +0200
-@@ -1,10 +1,11 @@
- project (compizconfig-backend-gconf)
-
- find_package (CompizConfig REQUIRED)
-+find_package (Boost 1.34.0 REQUIRED)
-
- include (LibCompizConfigCommon)
-
--compizconfig_backend (gconf PKGDEPS glib-2.0 gconf-2.0)
-+compizconfig_backend (gconf PKGDEPS glib-2.0 gconf-2.0 gio-2.0 INCDIRS ${Boost_INCLUDE_DIRS} LIBRARIES ${Boost_LIBRARIES})
-
- compiz_print_configure_header ("CompizConfig GConf Storage Backend")
- compiz_print_configure_footer ()
-Index: compizconfig-backend-gconf-0.9.5.0/src/gconf.c
-===================================================================
---- compizconfig-backend-gconf-0.9.5.0.orig/src/gconf.c 2011-07-13 15:10:29.000000000 +0200
-+++ compizconfig-backend-gconf-0.9.5.0/src/gconf.c 2011-07-18 20:09:58.862043592 +0200
-@@ -6,7 +6,7 @@
- *
- * Copyright (c) 2007 Danny Baumann <maniac@xxxxxxxxxxxxxxxxxxx>
- *
-- * Parts of this code are taken from libberylsettings
-+ * Parts of this code are taken from libberylsettings
- * gconf backend, written by:
- *
- * Copyright (c) 2006 Robert Carr <racarr@xxxxxxxxxxxxxxxxxxx>
-@@ -42,6 +42,8 @@
- #include <gconf/gconf-client.h>
- #include <gconf/gconf-value.h>
-
-+#include "transition.h"
-+
- #define CompAltMask (1 << 16)
- #define CompMetaMask (1 << 17)
- #define CompSuperMask (1 << 18)
-@@ -1096,7 +1098,7 @@
- ccsGetButton (setting, &button);
-
- button.buttonModMask = getGnomeMouseButtonModifier ();
--
-+
- resizeWithRightButton =
- gconf_client_get_bool (client, METACITY
- "/general/resize_with_right_button",
-@@ -1653,7 +1655,7 @@
- setButtonBindingForSetting (context, "move",
- "initiate_button", 1, modMask);
- setButtonBindingForSetting (context, "resize",
-- "initiate_button",
-+ "initiate_button",
- resizeWithRightButton ? 3 : 2,
- modMask);
- setButtonBindingForSetting (context, "core",
-@@ -1808,7 +1810,7 @@
- {
- GConfSchema *schema;
- GConfValue *value;
--
-+
- schema = gconf_schema_new ();
- if (!schema)
- return;
-@@ -1927,6 +1929,11 @@
- {
- g_type_init ();
-
-+ /* Before doing anything, make sure that our old settings have
-+ * been transitioned over */
-+
-+ do_transition ();
-+
- conf = gconf_engine_get_default ();
- initClient (context);
-
-Index: compizconfig-backend-gconf-0.9.5.0/src/transition.h
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ compizconfig-backend-gconf-0.9.5.0/src/transition.h 2011-07-18 20:09:58.866043618 +0200
-@@ -0,0 +1,40 @@
-+/*
-+ * transition_gconf.cpp
-+ *
-+ * A small executable to be run at first launch which moves
-+ * old settings paths to new ones so that the user's settings
-+ * are preserved
-+ *
-+ * Copyright (C) 2010 Canonical Ltd
-+ *
-+ * GConf Backend code taken from compizconfig-backend-gconf:
-+ * Copyright (c) 2007 Danny Baumann <maniac@xxxxxxxxxxxxxxxxxxx>
-+ *
-+ * Parts of this code are taken from libberylsettings
-+ * gconf backend, written by:
-+ *
-+ * Copyright (c) 2006 Robert Carr <racarr@xxxxxxxxxxxxxxxxxxx>
-+ * Copyright (c) 2007 Dennis Kasprzyk <onestone@xxxxxxxxxxxxxxxxxxx>
-+ *
-+ * Licence Terms:
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 3 as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
-+ *
-+ * Authored by: Sam Spilsbury <sam.spilsbury@xxxxxxxxxxxxx>
-+ */
-+
-+void do_transition ();
-Index: compizconfig-backend-gconf-0.9.5.0/src/transition_gconf.cpp
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ compizconfig-backend-gconf-0.9.5.0/src/transition_gconf.cpp 2011-07-18 20:09:58.866043618 +0200
-@@ -0,0 +1,720 @@
-+/*
-+ * transition_gconf.cpp
-+ *
-+ * A small executable to be run at first launch which moves
-+ * old settings paths to new ones so that the user's settings
-+ * are preserved
-+ *
-+ * Copyright (C) 2010 Canonical Ltd
-+ *
-+ * GConf Backend code taken from compizconfig-backend-gconf:
-+ * Copyright (c) 2007 Danny Baumann <maniac@xxxxxxxxxxxxxxxxxxx>
-+ *
-+ * Parts of this code are taken from libberylsettings
-+ * gconf backend, written by:
-+ *
-+ * Copyright (c) 2006 Robert Carr <racarr@xxxxxxxxxxxxxxxxxxx>
-+ * Copyright (c) 2007 Dennis Kasprzyk <onestone@xxxxxxxxxxxxxxxxxxx>
-+ *
-+ * Licence Terms:
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 3 as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
-+ *
-+ * Authored by: Sam Spilsbury <sam.spilsbury@xxxxxxxxxxxxx>
-+ */
-+
-+#include <iostream>
-+#include <fstream>
-+#include <sstream>
-+#include <boost/algorithm/string.hpp>
-+#include <boost/foreach.hpp>
-+#include <cstring>
-+#include <cstdio>
-+#include <list>
-+
-+#include <gconf/gconf.h>
-+#include <gconf/gconf-client.h>
-+#include <gconf/gconf-value.h>
-+
-+#include <gio/gio.h>
-+
-+using namespace std;
-+
-+void move_dir_recursively (GFile *from, GFile *to)
-+{
-+ GFileEnumerator *enumerator;
-+ GFileInfo *current_info;
-+ GFileQueryInfoFlags q_flags;
-+ GFileCopyFlags c_flags;
-+
-+ memset (&q_flags, sizeof (GFileCopyFlags), 0);
-+ memset (&c_flags, sizeof (GFileCopyFlags), 0);
-+
-+ /* First of all ensure that the dir that we want to copy to actually exists */
-+
-+ g_file_make_directory_with_parents (to, NULL, NULL);
-+
-+ enumerator = g_file_enumerate_children (from, "*", q_flags, NULL, NULL);
-+ current_info = g_file_enumerator_next_file (enumerator, NULL, NULL);
-+
-+ while (current_info)
-+ {
-+ GFile *nfrom = g_file_new_for_path (string (string (g_file_get_path (from)) + "/" + g_file_info_get_edit_name (current_info)).c_str ());
-+ GFile *nto = g_file_new_for_path (string (string (g_file_get_path (to)) + "/" + g_file_info_get_edit_name (current_info)).c_str ());
-+ /* Recursively copy subdirectories */
-+ if (g_file_info_get_file_type (current_info) == G_FILE_TYPE_DIRECTORY)
-+ {
-+ cout << "[LOG]: Copying subdirectory from " << string (g_file_get_path (nfrom)) << " to " << string (g_file_get_path (nto)) << endl;
-+
-+ move_dir_recursively (nfrom, nto);
-+ g_file_delete (nfrom, NULL, NULL);
-+
-+ current_info = g_file_enumerator_next_file (enumerator, NULL, NULL);
-+ continue;
-+ }
-+
-+ cout << "[LOG]: Copied file " << string (g_file_get_path (nfrom)) << " to " << string (g_file_get_path (nto)) << endl;
-+
-+ g_file_copy (nfrom, nto, c_flags, NULL, NULL, NULL, NULL);
-+ g_file_delete (nfrom, NULL, NULL);
-+
-+ g_object_unref (current_info);
-+ g_object_unref (nfrom);
-+ g_object_unref (nto);
-+
-+ current_info = g_file_enumerator_next_file (enumerator, NULL, NULL);
-+ }
-+
-+ g_object_unref (enumerator);
-+}
-+
-+bool move_internal_dirs (void)
-+{
-+ char *homedir = getenv ("HOME");
-+ char old_dir[512], new_dir[512];
-+ GFile *old_dir_p, *new_dir_p;
-+
-+ snprintf (old_dir, sizeof (old_dir), "%s/.compiz", homedir);
-+ snprintf (new_dir, sizeof (new_dir), "%s/.compiz-1", homedir);
-+
-+ old_dir_p = g_file_new_for_path (old_dir);
-+ new_dir_p = g_file_new_for_path (new_dir);
-+
-+ move_dir_recursively (old_dir_p, new_dir_p);
-+ g_file_delete (old_dir_p, NULL, NULL);
-+
-+ g_object_unref (old_dir_p);
-+ g_object_unref (new_dir_p);
-+
-+ return true;
-+}
-+
-+static void
-+copy_gconf_values (GConfEngine *engine,
-+ const gchar *from,
-+ const gchar *to,
-+ bool associate,
-+ const gchar *schemaPath)
-+{
-+ GSList *values, *tmp;
-+ GError *err = NULL;
-+
-+ values = gconf_engine_all_entries (engine, from, &err);
-+ tmp = values;
-+
-+ while (tmp)
-+ {
-+ GConfEntry *entry = (GConfEntry *) tmp->data;
-+ GConfValue *value;
-+ const char *key = gconf_entry_get_key (entry);
-+ char *name, *newKey, *newSchema = NULL;
-+
-+ name = strdup (strrchr (key, '/'));
-+ if (!name)
-+ continue;
-+
-+ if (to)
-+ {
-+ asprintf (&newKey, "%s/%s", to, name + 1);
-+
-+ if (associate && schemaPath)
-+ asprintf (&newSchema, "%s/%s", schemaPath, name + 1);
-+
-+ if (newKey && newSchema)
-+ gconf_engine_associate_schema (engine, newKey, newSchema, NULL);
-+
-+ if (newKey)
-+ {
-+ value = gconf_engine_get (engine, key, NULL);
-+ if (value)
-+ {
-+ gconf_engine_set (engine, newKey, value, NULL);
-+ gconf_value_free (value);
-+ }
-+ }
-+
-+ if (newSchema)
-+ free (newSchema);
-+ if (newKey)
-+ free (newKey);
-+ }
-+ else
-+ {
-+ if (associate)
-+ gconf_engine_associate_schema (engine, key, NULL, NULL);
-+ gconf_engine_unset (engine, key, NULL);
-+ }
-+
-+ gconf_entry_unref (entry);
-+ tmp = g_slist_next (tmp);
-+ }
-+
-+ if (values)
-+ g_slist_free (values);
-+}
-+
-+void
-+copy_gconf_recursively (GConfEngine *engine,
-+ GSList *subdirs,
-+ const gchar *to,
-+ bool associate,
-+ const gchar *schemaPath)
-+{
-+ GSList* tmp;
-+
-+ tmp = subdirs;
-+
-+ while (tmp)
-+ {
-+ gchar *path = (gchar *) tmp->data;
-+ char *newKey, *newSchema = NULL, *name;
-+
-+ name = strrchr (path, '/');
-+ if (name)
-+ {
-+ if (to)
-+ asprintf (&newKey, "%s/%s", to, name + 1);
-+ else
-+ newKey = NULL;
-+
-+ if (associate && schemaPath)
-+ asprintf (&newSchema, "%s/%s", schemaPath, name + 1);
-+
-+ copy_gconf_values (engine, path, newKey, associate, newSchema);
-+ copy_gconf_recursively (engine, gconf_engine_all_dirs (engine, path, NULL),
-+ newKey, associate, newSchema);
-+
-+ if (newSchema)
-+ free (newSchema);
-+
-+ if (newKey)
-+ free (newKey);
-+
-+ if (!to)
-+ gconf_engine_remove_dir (engine, path, NULL);
-+ }
-+
-+ g_free (path);
-+ tmp = g_slist_next (tmp);
-+ }
-+
-+ if (subdirs)
-+ g_slist_free (subdirs);
-+}
-+
-+void
-+copy_gconf_tree (GConfClient **client,
-+ GConfEngine *engine,
-+ const gchar *from,
-+ const gchar *to,
-+ bool associate,
-+ const gchar *schemaPath)
-+{
-+ GSList* subdirs;
-+
-+ /* We can't have the GConfClient object open at the same time as the engine
-+ * so close the client for now */
-+
-+ gconf_client_suggest_sync (*client, NULL);
-+
-+ g_object_unref (*client);
-+ *client = NULL;
-+
-+ subdirs = gconf_engine_all_dirs (engine, from, NULL);
-+ gconf_engine_suggest_sync (engine, NULL);
-+
-+ copy_gconf_recursively (engine, subdirs, to, associate, schemaPath);
-+
-+ gconf_engine_suggest_sync (engine, NULL);
-+
-+ *client = gconf_client_get_for_engine (engine);
-+}
-+
-+bool rename_gconf_path (GConfClient **client,
-+ GConfEngine *engine,
-+ const gchar *old_path,
-+ const gchar *new_path,
-+ const gchar *schema_path)
-+{
-+ GConfUnsetFlags flags;
-+ gboolean should_associate = schema_path ? TRUE : FALSE;
-+ memset (&flags, 0, sizeof (GConfUnsetFlags));
-+ cout << "[LOG]: Moving " << string (old_path) << " to " << string (new_path) << endl;
-+
-+ copy_gconf_tree (client, engine, old_path, new_path, should_associate, schema_path);
-+
-+ /* reset tree */
-+ gconf_client_recursive_unset (*client, old_path, flags, NULL);
-+
-+ return true;
-+}
-+
-+
-+GSList * rename_gconf_plugin (GSList *value_list,
-+ const gchar *old_plugin_name,
-+ const gchar *new_plugin_name)
-+{
-+ GSList *tmp = value_list, *insert_pos = NULL;
-+
-+ while (tmp)
-+ {
-+ if (string ((gchar *) tmp->data).find (old_plugin_name) != string::npos)
-+ {
-+ insert_pos = tmp;
-+ break;
-+ }
-+
-+ tmp = g_slist_next (tmp);
-+ }
-+
-+ if (insert_pos)
-+ insert_pos = g_slist_next (insert_pos);
-+
-+ if (insert_pos)
-+ {
-+ gchar *data;
-+
-+ data = strdup (new_plugin_name);
-+ value_list = g_slist_insert_before (value_list, insert_pos, (gpointer) data);
-+ }
-+ else
-+ {
-+ cout << "[LOG]: Could not find plugin "<< string (old_plugin_name) << " in loaded plugin data" << endl;
-+ }
-+
-+ tmp = value_list;
-+
-+ while (tmp)
-+ {
-+ if (string ((gchar *) tmp->data).find (old_plugin_name) != string::npos)
-+ {
-+ insert_pos = tmp;
-+ break;
-+ }
-+
-+
-+ tmp = g_slist_next (tmp);
-+ }
-+
-+ if (insert_pos)
-+ {
-+ value_list = g_slist_delete_link (value_list, insert_pos);
-+ }
-+
-+ return value_list;
-+}
-+
-+void move_gconf_setting (GConfClient **client,
-+ GConfEngine *engine,
-+ const gchar *setting,
-+ const gchar *prefix,
-+ const gchar *old_plugin,
-+ const gchar *new_plugin)
-+{
-+ GConfValue *value;
-+ string new_key_name, old_key_name;
-+
-+ old_key_name = string (string (prefix) + string (old_plugin) + "/screen0/options/" + string (setting)).c_str ();
-+
-+ value = gconf_client_get (*client, old_key_name.c_str (), NULL);
-+
-+ cout << "[LOG]: Transitioning setting " << string (setting) << " from " << string (old_plugin) << " to " << string (new_plugin) << endl;
-+
-+ if (value)
-+ {
-+ new_key_name = string (string (prefix) + string (new_plugin) + "/screen0/options/" + string (setting));
-+
-+ switch (value->type)
-+ {
-+ case GCONF_VALUE_STRING:
-+ gconf_client_set_string (*client, new_key_name.c_str (),
-+ gconf_value_get_string (value), NULL);
-+ break;
-+
-+ case GCONF_VALUE_INT:
-+ gconf_client_set_int (*client, new_key_name.c_str (),
-+ gconf_value_get_int (value), NULL);
-+ break;
-+ case GCONF_VALUE_FLOAT:
-+ gconf_client_set_float (*client, new_key_name.c_str (),
-+ gconf_value_get_float (value), NULL);
-+ break;
-+ case GCONF_VALUE_BOOL:
-+ gconf_client_set_bool (*client, new_key_name.c_str (),
-+ gconf_value_get_bool (value), NULL);
-+ break;
-+ case GCONF_VALUE_SCHEMA:
-+ gconf_client_set_schema (*client, new_key_name.c_str (),
-+ gconf_value_get_schema (value), NULL);
-+ break;
-+ case GCONF_VALUE_LIST:
-+ gconf_client_set_list (*client, new_key_name.c_str (), gconf_value_get_list_type (value),
-+ gconf_value_get_list (value), NULL);
-+ break;
-+ case GCONF_VALUE_PAIR:
-+ case GCONF_VALUE_INVALID:
-+ default:
-+ cout << "[WARNING]: Invalid value given" << endl;
-+ }
-+ }
-+}
-+
-+bool convert_gconf_tree (GConfClient **client,
-+ GConfEngine *engine,
-+ const gchar *path,
-+ const gchar *schema_path)
-+{
-+ string cold_path = string (path);
-+ string cnew_path = string (path);
-+ GSList *subdirs, *tmp, *plugins, *insert_pos = NULL;
-+ gboolean should_associate = schema_path ? TRUE : FALSE;
-+
-+ GConfUnsetFlags flags;
-+ memset (&flags, 0, sizeof (GConfUnsetFlags));
-+
-+ cout << "[LOG]: Converting tree " << string (path) << endl;
-+
-+ /* First, rename the plugins as needed */
-+ cold_path = string (path) + "/plugins/decoration";
-+ cnew_path = string (path) + "/plugins/decor";
-+
-+ cout << "[LOG]: Renaming plugin with path " << cold_path << " to " << cnew_path << endl;
-+
-+ /* decoration -> decor */
-+ rename_gconf_path (client, engine, cold_path.c_str (), cnew_path.c_str (), schema_path);
-+
-+ cold_path = string (path) + "/plugins/png";
-+ cnew_path = string (path) + "/plugins/imgpng";
-+
-+ cout << "[LOG]: Renaming plugin with path " << cold_path << " to " << cnew_path << endl;
-+
-+ /* png -> imgpng */
-+ rename_gconf_path (client, engine, cold_path.c_str (), cnew_path.c_str (), schema_path);
-+
-+ cold_path = string (path) + "/plugins/svg";
-+ cnew_path = string (path) + "/plugins/imgsvg";
-+
-+ cout << "[LOG]: Renaming plugin with path " << cold_path << " to " << cnew_path << endl;
-+
-+ /* svg -> imgsvg */
-+ rename_gconf_path (client, engine, cold_path.c_str (), cnew_path.c_str (), schema_path);
-+
-+ cold_path = string (path) + "/plugins/jpeg";
-+ cnew_path = string (path) + "/plugins/imgjpeg";
-+
-+ cout << "[LOG]: Renaming plugin with path " << cold_path << " to " << cnew_path << endl;
-+
-+ /* jpeg -> imgjpeg */
-+ rename_gconf_path (client, engine, cold_path.c_str (), cnew_path.c_str (), schema_path);
-+
-+ /* Now convert allscreens -> screen0 */
-+
-+ cold_path = string (path) + "/general/allscreens";
-+ cnew_path = string (path) + "/general/screen0";
-+
-+ /* core */
-+
-+ cout << "[LOG]: Moving display/screen settings from " << cold_path.c_str () << " to " << cnew_path.c_str () << endl;
-+
-+ copy_gconf_tree (client, engine, cold_path.c_str (), cnew_path.c_str (), should_associate, schema_path);
-+ gconf_client_recursive_unset (*client, cold_path.c_str (), flags, NULL);
-+
-+ /* plugins:
-+ * We can't have the GConfClient object open at the same time as the engine
-+ * so close the client for now */
-+
-+ gconf_client_suggest_sync (*client, NULL);
-+
-+ g_object_unref (*client);
-+ *client = NULL;
-+
-+ cold_path = string (path) + "/plugins";
-+
-+ cout << "[LOG]: Traversing directory " << cold_path << endl;
-+
-+ tmp = subdirs = gconf_engine_all_dirs (engine, cold_path.c_str (), NULL);
-+
-+ *client = gconf_client_get_for_engine (engine);
-+
-+ while (tmp)
-+ {
-+ gchar *path = (gchar *) tmp->data;
-+
-+ cnew_path = string (path) + "/screen0";
-+ cold_path = string (path) + "/allscreens";
-+
-+ cout << "[LOG]: Moving display/screen settings from " << cold_path.c_str () << " to " << cnew_path.c_str () << endl;
-+
-+ copy_gconf_tree (client, engine, cold_path.c_str (), cnew_path.c_str (), should_associate, schema_path);
-+ gconf_client_recursive_unset (*client, cold_path.c_str (), flags, NULL);
-+
-+ g_free (path);
-+ tmp = g_slist_next (tmp);
-+ }
-+
-+ if (subdirs)
-+ g_slist_free (subdirs);
-+
-+ /* Now append the plugins we need into core */
-+
-+ cout << "[LOG]: Appending new plugins to " << string (string (path) + "/general/screen0/options/active_plugins") << endl;
-+
-+ tmp = plugins = gconf_client_get_list (*client, string (string (path) + "/general/screen0/options/active_plugins").c_str (), GCONF_VALUE_STRING, NULL);
-+
-+ while (tmp)
-+ {
-+ if (string ((gchar *) tmp->data).find ("core") != string::npos)
-+ {
-+ insert_pos = tmp;
-+ break;
-+ }
-+
-+ tmp = g_slist_next (tmp);
-+ }
-+
-+ if (insert_pos)
-+ insert_pos = g_slist_next (insert_pos);
-+
-+ if (!insert_pos)
-+ insert_pos = g_slist_last (plugins);
-+
-+ if (insert_pos)
-+ {
-+ char *data;
-+
-+ data = strdup ("bailer");
-+ plugins = g_slist_insert_before (plugins, insert_pos, (gpointer) data);
-+
-+ data = strdup ("detection");
-+ plugins = g_slist_insert_before (plugins, insert_pos, (gpointer) data);
-+
-+ data = strdup ("composite");
-+ plugins = g_slist_insert_before (plugins, insert_pos, (gpointer) data);
-+
-+ data = strdup ("opengl");
-+ plugins = g_slist_insert_before (plugins, insert_pos, (gpointer) data);
-+
-+ data = strdup ("compiztoolbox");
-+ plugins = g_slist_insert_before (plugins, insert_pos, (gpointer) data);
-+ }
-+ else
-+ {
-+ cout << "[WARNING]: Could not find ccp plugin in loaded plugin data" << endl;
-+ }
-+
-+ plugins = rename_gconf_plugin (plugins, "decoration", "decor");
-+ plugins = rename_gconf_plugin (plugins, "svg", "imgsvg");
-+ plugins = rename_gconf_plugin (plugins, "png", "imgpng");
-+ plugins = rename_gconf_plugin (plugins, "jpeg", "imgjpeg");
-+
-+ /* Remove the glib plugin */
-+
-+ tmp = plugins;
-+
-+ while (tmp)
-+ {
-+ if (string ((gchar *) tmp->data).find ("glib") != string::npos)
-+ {
-+ insert_pos = tmp;
-+ break;
-+ }
-+
-+ tmp = g_slist_next (tmp);
-+ }
-+
-+ if (insert_pos)
-+ {
-+ plugins = g_slist_delete_link (plugins, insert_pos);
-+ }
-+
-+ tmp = plugins;
-+
-+ cout << "[LOG]: New plugins list is [";
-+
-+ tmp = plugins;
-+
-+ gconf_client_set_list (*client, string (string (path) + "/general/screen0/options/active_plugins").c_str (), GCONF_VALUE_STRING, plugins, NULL);
-+
-+ while (tmp)
-+ {
-+ gchar *plugin = (gchar *) tmp->data;
-+
-+ cout << string (plugin) << ", ";
-+ if (tmp->data)
-+ g_free (tmp->data);
-+
-+ tmp = g_slist_next (tmp);
-+ }
-+
-+ cout << "]" << endl;
-+
-+ if (plugins)
-+ g_slist_free (plugins);
-+
-+ /* Now move settings around */
-+
-+ move_gconf_setting (client, engine, "slow_animations_key", path, "/general", "/plugins/composite");
-+ move_gconf_setting (client, engine, "detect_refresh_rate", path, "/general", "/plugins/composite");
-+ move_gconf_setting (client, engine, "refresh_rate", path, "/general", "/plugins/composite");
-+ move_gconf_setting (client, engine, "unredirect_fullscreen_windows", path, "/general", "/plugins/composite");
-+ move_gconf_setting (client, engine, "force_independent_output_painting", path, "/general", "/plugins/composite");
-+ move_gconf_setting (client, engine, "texture_compression", path, "/general", "/plugins/opengl");
-+ move_gconf_setting (client, engine, "texture_filter", path, "/general", "/plugins/opengl");
-+ move_gconf_setting (client, engine, "lighting", path, "/general", "/plugins/opengl");
-+ move_gconf_setting (client, engine, "sync_to_vblank", path, "/general", "/plugins/opengl");
-+
-+ return true;
-+}
-+
-+
-+bool convert_gconf_settings ()
-+{
-+ GConfEngine *engine = gconf_engine_get_default ();
-+ GConfClient *client = gconf_client_get_for_engine (engine);
-+ GSList *dir_list;
-+ GSList *tmp;
-+
-+ cout << "[LOG]: Copying GConf settings from /apps/compiz to /apps/compiz-1" << endl;
-+
-+ copy_gconf_tree (&client, engine, "/apps/compiz", "/apps/compiz-1", true, "/schemas/apps/compiz-1");
-+
-+ cout << "[LOG]: Copying GConf settings from /apps/compizconfig to /apps/compizconfig-1" << endl;
-+
-+ copy_gconf_tree (&client, engine, "/apps/compizconfig", "/apps/compizconfig-1", false, NULL);
-+
-+ cout << "[LOG]: Converting settings in /apps/compiz-1" << endl;
-+
-+ if (convert_gconf_tree (&client, engine, "/apps/compiz-1", "/schemas/apps/compiz-1"))
-+ cout << "[LOG]: Successfully converted settings in /apps/compiz-1" << endl;
-+ else
-+ cout << "[WARNING]: Unable to convert setttings in /apps/compiz-1, some settings may be lost!" << endl;
-+
-+ /* We can't have the GConfClient object open at the same time as the engine
-+ * so close the client for now */
-+
-+ gconf_client_suggest_sync (client, NULL);
-+
-+ g_object_unref (client);
-+ client = NULL;
-+
-+ tmp = dir_list = gconf_engine_all_dirs (engine, "/apps/compizconfig-1/profiles", NULL);
-+
-+ client = gconf_client_get_for_engine (engine);
-+
-+ while (tmp)
-+ {
-+ gchar *path = (gchar *) tmp->data;
-+
-+ cout << "[LOG]: Converting profile stored in " << string (path) << endl;
-+
-+ if (convert_gconf_tree (&client, engine, path, (string ("/schemas") + string (path)).c_str ()))
-+ cout << "[LOG]: Successfully converted settings in " << string (path) << endl;
-+ else
-+ cout << "[WARNING]: Unable to convert setttings in " << string (path) << ", some settings may be lost!" << endl;
-+
-+ if (path)
-+ g_free (path);
-+
-+ tmp = g_slist_next (tmp);
-+ }
-+
-+ if (dir_list)
-+ g_slist_free (dir_list);
-+
-+ gconf_client_suggest_sync (client, NULL);
-+
-+ g_object_unref (client);
-+ client = NULL;
-+
-+ return true;
-+}
-+
-+void transition_settings ()
-+{
-+ char *homedir = getenv ("HOME");
-+ GFile *old_home_internal_p = g_file_new_for_path (string (string (homedir) + string ("/.compiz")).c_str ());
-+ GConfEngine *engine = gconf_engine_get_default ();
-+
-+ cout << "Checking if settings need to be migrated ...";
-+
-+ if (!gconf_engine_dir_exists (engine, "/apps/compiz-1", NULL) &&
-+ !gconf_engine_dir_exists (engine, "/apps/compizconfig-1", NULL))
-+ {
-+ cout << "yes" << endl;
-+ cout << "Compiz Migration Script for Ubuntu 11.04" << endl;
-+ cout << "Moving settings from Compiz 0.8.6 to Compiz 0.9.4" << endl;
-+
-+ cout << "[LOG]: Moving and rewriting GConf Settings" << endl;
-+
-+ gconf_engine_suggest_sync (engine, NULL);
-+
-+ if (convert_gconf_settings ())
-+ cout << "[LOG]: Successfully converted gconf settings" << endl;
-+ else
-+ cout << "[WARNING]: Could not convert all gconf settings, your settings may be reset" << endl;
-+ }
-+ else
-+ {
-+ gconf_engine_suggest_sync (engine, NULL);
-+
-+ cout << "no" << endl;
-+ }
-+
-+ cout << "Checking if internal files need to be migrated ...";
-+
-+ if (g_file_query_exists (old_home_internal_p, NULL))
-+ {
-+ cout << "yes" << endl;
-+
-+ cout << "[LOG]: Moving Internal Files" << endl;
-+
-+ if (move_internal_dirs ())
-+ cout << "[LOG]: Successfully moved internal files" << endl;
-+ else
-+ cout << "[WARNING]: Could not move internal files" << endl;
-+ }
-+ else
-+ cout << "no" << endl;
-+}
-+
-+extern "C"
-+{
-+ void do_transition ()
-+ {
-+ transition_settings ();
-+ }
-+}
=== removed file 'debian/patches/02_debug.patch'
--- debian/patches/02_debug.patch 2010-10-19 16:35:20 +0000
+++ debian/patches/02_debug.patch 1970-01-01 00:00:00 +0000
@@ -1,29 +0,0 @@
-Description: Better debug output for invalid values
-Author: Michael Vogt <michael.vogt@xxxxxxxxxx>
-
-diff --git a/src/gconf.c b/src/gconf.c
-index 8d104b3..ca1ee7a 100644
---- a/src/gconf.c
-+++ b/src/gconf.c
-@@ -1287,8 +1287,8 @@ readOption (CCSSetting * setting)
- ret = readListValue (setting, gconfValue);
- break;
- default:
-- printf("GConf backend: attempt to read unsupported setting type %d!\n",
-- setting->type);
-+ printf("GConf backend: attempt to read unsupported setting type %d from path %s!\n",
-+ setting->type, pathName);
- break;
- }
-
-@@ -1388,8 +1388,8 @@ writeListValue (CCSSetting *setting,
- }
- break;
- default:
-- printf("GConf backend: attempt to write unsupported list type %d!\n",
-- setting->info.forList.listType);
-+ printf("GConf backend: attempt to write unsupported list type %d at path %s!\n",
-+ setting->info.forList.listType, pathName);
- valueType = GCONF_VALUE_INVALID;
- break;
- }
=== modified file 'debian/patches/fix_953214.patch'
--- debian/patches/fix_953214.patch 2012-03-19 18:24:53 +0000
+++ debian/patches/fix_953214.patch 2012-03-27 13:20:29 +0000
@@ -1,6 +1,5 @@
-=== modified file 'src/gconf.c'
---- src/gconf.c 2011-09-09 09:33:52 +0000
-+++ src/gconf.c 2012-03-19 18:18:20 +0000
+--- a/src/gconf.c 2011-09-09 09:33:52 +0000
++++ b/src/gconf.c 2012-03-19 18:18:20 +0000
@@ -1958,8 +1958,6 @@
static Bool
finiBackend (CCSContext * context)
=== modified file 'debian/patches/series'
--- debian/patches/series 2012-03-19 18:24:53 +0000
+++ debian/patches/series 2012-03-27 13:20:29 +0000
@@ -1,2 +1,1 @@
-01_add_transition_gconf.patch
fix_953214.patch
=== added directory 'debian/source'
=== added file 'debian/source/format'
--- debian/source/format 1970-01-01 00:00:00 +0000
+++ debian/source/format 2012-03-27 13:20:29 +0000
@@ -0,0 +1,1 @@
+3.0 (quilt)
Follow ups