← Back to team overview

compiz team mailing list archive

[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