summaryrefslogtreecommitdiffstats
path: root/devel/gconf2
diff options
context:
space:
mode:
authormarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2004-07-09 05:19:17 +0800
committermarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2004-07-09 05:19:17 +0800
commit7b692afdf1117b5e9a12900c920ef7f192ed77de (patch)
tree82ba594051a57c2fa76681db2f867ce85b10f7c0 /devel/gconf2
parent7b0837a92840e991962842bbd08249f196b959d9 (diff)
downloadmarcuscom-ports-7b692afdf1117b5e9a12900c920ef7f192ed77de.tar
marcuscom-ports-7b692afdf1117b5e9a12900c920ef7f192ed77de.tar.gz
marcuscom-ports-7b692afdf1117b5e9a12900c920ef7f192ed77de.tar.bz2
marcuscom-ports-7b692afdf1117b5e9a12900c920ef7f192ed77de.tar.lz
marcuscom-ports-7b692afdf1117b5e9a12900c920ef7f192ed77de.tar.xz
marcuscom-ports-7b692afdf1117b5e9a12900c920ef7f192ed77de.tar.zst
marcuscom-ports-7b692afdf1117b5e9a12900c920ef7f192ed77de.zip
Fix a BIG bug where the GConf schemas wouldn't acually apply at install
time. A 2.7.3.1 is being rolled to correct this, but this is so bad, I figured we should have a fix in our tree ASAP. We can all blame mezz for the impact of this bug. The only real solution is for all devel users to do a portupgrade -rf gconf2. Relax, mezz, I was just kidding about blaming you :-). I'm serious about the portupgrade, though. git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@2466 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'devel/gconf2')
-rw-r--r--devel/gconf2/Makefile1
-rw-r--r--devel/gconf2/files/patch-gconf_gconftool.c89
2 files changed, 90 insertions, 0 deletions
diff --git a/devel/gconf2/Makefile b/devel/gconf2/Makefile
index 246b158c0..3597b6cd2 100644
--- a/devel/gconf2/Makefile
+++ b/devel/gconf2/Makefile
@@ -7,6 +7,7 @@
PORTNAME= gconf2
PORTVERSION= 2.7.3
+PORTREVISION= 1
CATEGORIES= devel gnome
MASTER_SITES= ${MASTER_SITE_GNOME}
MASTER_SITE_SUBDIR= sources/GConf/2.7
diff --git a/devel/gconf2/files/patch-gconf_gconftool.c b/devel/gconf2/files/patch-gconf_gconftool.c
new file mode 100644
index 000000000..c7ea143f7
--- /dev/null
+++ b/devel/gconf2/files/patch-gconf_gconftool.c
@@ -0,0 +1,89 @@
+--- gconf/gconftool.c.orig Thu Jul 8 17:10:37 2004
++++ gconf/gconftool.c Thu Jul 8 17:15:05 2004
+@@ -460,8 +460,7 @@
+
+ static int do_break_key(GConfEngine* conf, const gchar** args);
+ static int do_break_directory(GConfEngine* conf, const gchar** args);
+-static int do_makefile_install(GConfEngine* conf, const gchar** args);
+-static int do_makefile_uninstall(GConfEngine* conf, const gchar** args);
++static int do_makefile_install(GConfEngine* conf, const gchar** args, gboolean unload);
+ static int do_recursive_list(GConfEngine* conf, const gchar** args);
+ static int do_dump_values(GConfEngine* conf, const gchar** args);
+ static int do_all_pairs(GConfEngine* conf, const gchar** args);
+@@ -888,7 +887,7 @@
+ if (makefile_install_mode)
+ {
+ const gchar** args = poptGetArgs(ctx);
+- gint retval = do_makefile_install (conf, args);
++ gint retval = do_makefile_install (conf, args, FALSE);
+
+ gconf_engine_unref (conf);
+
+@@ -898,7 +897,7 @@
+ if (makefile_uninstall_mode)
+ {
+ const gchar** args = poptGetArgs(ctx);
+- gint retval = do_makefile_uninstall (conf, args);
++ gint retval = do_makefile_uninstall (conf, args, TRUE);
+
+ gconf_engine_unref (conf);
+
+@@ -3381,7 +3380,7 @@
+ {
+ GError* error = NULL;
+
+- if (!gconf_engine_associate_schema(conf, tmp->data, unload ? schema_name : NULL, &error))
++ if (!gconf_engine_associate_schema(conf, tmp->data, !unload ? schema_name : NULL, &error))
+ {
+ g_assert(error != NULL);
+
+@@ -3708,7 +3707,7 @@
+ }
+
+ static int
+-do_makefile_install(GConfEngine* conf, const gchar** args)
++do_makefile_install(GConfEngine* conf, const gchar** args, gboolean unload)
+ {
+ GError* err = NULL;
+
+@@ -3720,39 +3719,7 @@
+
+ while (*args)
+ {
+- if (do_load_file(conf, LOAD_SCHEMA_FILE, FALSE, *args, NULL) != 0)
+- return 1;
+-
+- ++args;
+- }
+-
+- gconf_engine_suggest_sync(conf, &err);
+-
+- if (err != NULL)
+- {
+- g_printerr (_("Error syncing config data: %s"),
+- err->message);
+- g_error_free(err);
+- return 1;
+- }
+-
+- return 0;
+-}
+-
+-static int
+-do_makefile_uninstall(GConfEngine* conf, const gchar** args)
+-{
+- GError* err = NULL;
+-
+- if (args == NULL)
+- {
+- g_printerr (_("Must specify some schema files to uninstall\n"));
+- return 1;
+- }
+-
+- while (*args)
+- {
+- if (do_load_file(conf, LOAD_SCHEMA_FILE, TRUE, *args, NULL) != 0)
++ if (do_load_file(conf, LOAD_SCHEMA_FILE, unload, *args, NULL) != 0)
+ return 1;
+
+ ++args;