summaryrefslogtreecommitdiff
path: root/devel/GConf2
diff options
context:
space:
mode:
authorjmmv <jmmv@pkgsrc.org>2003-12-28 14:24:49 +0000
committerjmmv <jmmv@pkgsrc.org>2003-12-28 14:24:49 +0000
commit465bbfe921664a23e34f938271df7f1a27a1cec3 (patch)
tree553fa3fbe9fa4f9dc743e262cef83bedb3684d3e /devel/GConf2
parent808d1053a839c455510c692c6f9c962ae8b08e65 (diff)
downloadpkgsrc-465bbfe921664a23e34f938271df7f1a27a1cec3.tar.gz
Implement a framework to handle .entries files. If a package installs
one or more .entries files, it can set GCONF2_ENTRIES to the names of those files and they will get (un)registered at (de)installation time. Installation is handled after .schemas are installed, and uninstallation before .schemas are deinstalled. To achieve this, we need to implement an --unload flag in gconftool-2 to allow clean removal of .entries from the database. This will be fed back to authors. Bump PKGREVISION to 1.
Diffstat (limited to 'devel/GConf2')
-rw-r--r--devel/GConf2/Makefile.common3
-rw-r--r--devel/GConf2/distinfo3
-rw-r--r--devel/GConf2/files/deinstall.tmpl7
-rw-r--r--devel/GConf2/files/install.tmpl7
-rw-r--r--devel/GConf2/patches/patch-ae116
-rw-r--r--devel/GConf2/schemas.mk6
6 files changed, 136 insertions, 6 deletions
diff --git a/devel/GConf2/Makefile.common b/devel/GConf2/Makefile.common
index 2096f892ad5..9274d07815b 100644
--- a/devel/GConf2/Makefile.common
+++ b/devel/GConf2/Makefile.common
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile.common,v 1.8 2003/12/14 19:44:38 jmmv Exp $
+# $NetBSD: Makefile.common,v 1.9 2003/12/28 14:24:49 jmmv Exp $
#
DISTNAME= GConf-2.4.0.1
+PKGREVISION= 1
CATEGORIES= devel gnome
MASTER_SITES= ${MASTER_SITE_GNOME:=sources/GConf/2.4/}
EXTRACT_SUFX= .tar.bz2
diff --git a/devel/GConf2/distinfo b/devel/GConf2/distinfo
index efe3f0ec906..0cfeddbc2a8 100644
--- a/devel/GConf2/distinfo
+++ b/devel/GConf2/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.7 2003/12/14 19:44:38 jmmv Exp $
+$NetBSD: distinfo,v 1.8 2003/12/28 14:24:49 jmmv Exp $
SHA1 (GConf-2.4.0.1.tar.bz2) = 190ed06d34699976a9a425e9e14d4ccb26220ba8
Size (GConf-2.4.0.1.tar.bz2) = 1288876 bytes
@@ -6,3 +6,4 @@ SHA1 (patch-aa) = 7bac8f0cc027a135b8bd1f55f5608a0691b13f51
SHA1 (patch-ab) = eb9ffa0ec87fe21b0f754aef019221d619b37b11
SHA1 (patch-ac) = de42b523072ff5eac020525c2ccb4ce93ed792c6
SHA1 (patch-ad) = 50b0d919768b179d0209c49aee25a7c64ca5b497
+SHA1 (patch-ae) = 292895b5a71e9b21963d258c6eeed976c9b01d30
diff --git a/devel/GConf2/files/deinstall.tmpl b/devel/GConf2/files/deinstall.tmpl
index 693cb277dec..1e2421859d5 100644
--- a/devel/GConf2/files/deinstall.tmpl
+++ b/devel/GConf2/files/deinstall.tmpl
@@ -1,15 +1,20 @@
-# $NetBSD: deinstall.tmpl,v 1.4 2003/12/14 19:44:38 jmmv Exp $
+# $NetBSD: deinstall.tmpl,v 1.5 2003/12/28 14:24:49 jmmv Exp $
#
# Unregister GConf2 schema files from GConf2's database at install time.
#
GCONFTOOL2="@GCONFTOOL2@"
+GCONF2_ENTRIES="@GCONF2_ENTRIES@"
GCONF2_SCHEMAS="@GCONF2_SCHEMAS@"
GCONF2_SCHEMAS_DIR="@GCONF2_SCHEMAS_DIR@"
GCONF2_CONFIG_SOURCE="@GCONF2_CONFIG_SOURCE@"
case ${STAGE} in
DEINSTALL)
+ for f in ${GCONF2_ENTRIES}; do
+ ${GCONFTOOL2} --config-source=${GCONF2_CONFIG_SOURCE} \
+ --direct --unload ${GCONF2_SCHEMAS_DIR}/$f >/dev/null
+ done
for f in ${GCONF2_SCHEMAS}; do
GCONF_CONFIG_SOURCE="${GCONF2_CONFIG_SOURCE}" \
${GCONFTOOL2} --makefile-uninstall-rule \
diff --git a/devel/GConf2/files/install.tmpl b/devel/GConf2/files/install.tmpl
index 48f54b054fc..c8241477e9d 100644
--- a/devel/GConf2/files/install.tmpl
+++ b/devel/GConf2/files/install.tmpl
@@ -1,9 +1,10 @@
-# $NetBSD: install.tmpl,v 1.3 2003/06/20 10:49:18 jmmv Exp $
+# $NetBSD: install.tmpl,v 1.4 2003/12/28 14:24:49 jmmv Exp $
#
# Register GConf2 schema files into GConf2's database at install time.
#
GCONFTOOL2="@GCONFTOOL2@"
+GCONF2_ENTRIES="@GCONF2_ENTRIES@"
GCONF2_SCHEMAS="@GCONF2_SCHEMAS@"
GCONF2_SCHEMAS_DIR="@GCONF2_SCHEMAS_DIR@"
GCONF2_CONFIG_SOURCE="@GCONF2_CONFIG_SOURCE@"
@@ -15,6 +16,10 @@ POST-INSTALL)
${GCONFTOOL2} --makefile-install-rule \
${GCONF2_SCHEMAS_DIR}/$f >/dev/null
done
+ for f in ${GCONF2_ENTRIES}; do
+ ${GCONFTOOL2} --config-source=${GCONF2_CONFIG_SOURCE} \
+ --direct --load ${GCONF2_SCHEMAS_DIR}/$f >/dev/null
+ done
;;
*)
;;
diff --git a/devel/GConf2/patches/patch-ae b/devel/GConf2/patches/patch-ae
new file mode 100644
index 00000000000..2835685fa17
--- /dev/null
+++ b/devel/GConf2/patches/patch-ae
@@ -0,0 +1,116 @@
+$NetBSD: patch-ae,v 1.3 2003/12/28 14:24:49 jmmv Exp $
+
+--- gconf/gconftool.c.orig 2003-08-18 20:13:20.000000000 +0200
++++ gconf/gconftool.c
+@@ -59,6 +59,7 @@ static char* long_desc = NULL;
+ static char* owner = NULL;
+ static char* schema_file = NULL;
+ static char* entry_file = NULL;
++static char* unload_entry_file = NULL;
+ static const char* config_source = NULL;
+ static int use_local_source = FALSE;
+ static int makefile_install_mode = FALSE;
+@@ -167,6 +168,15 @@ struct poptOption options[] = {
+ NULL
+ },
+ {
++ "unload",
++ '\0',
++ POPT_ARG_STRING,
++ &unload_entry_file,
++ 0,
++ N_("Unload a set of values described in an XML file."),
++ NULL
++ },
++ {
+ "recursive-list",
+ 'R',
+ POPT_ARG_NONE,
+@@ -838,6 +848,18 @@ main (int argc, char** argv)
+ return retval;
+ }
+
++ if (unload_entry_file != NULL)
++ {
++ const gchar** args = poptGetArgs(ctx);
++ gint retval;
++
++ retval = do_load_file(conf, LOAD_ENTRY_FILE, unload_entry_file, args);
++
++ gconf_engine_unref(conf);
++
++ return retval;
++ }
++
+ if (spawn_gconfd)
+ {
+ do_spawn_daemon(conf);
+@@ -2760,15 +2782,14 @@ set_values(GConfEngine* conf, const gcha
+ else
+ full_key = g_strdup(key);
+
+- if (schema_key)
++ full_schema_key = NULL;
++ if (unload_entry_file == NULL && schema_key)
+ {
+ if (base_dir && *schema_key != '/')
+ full_schema_key = gconf_concat_dir_and_key(base_dir, schema_key);
+ else
+ full_schema_key = g_strdup(schema_key);
+ }
+- else
+- full_schema_key = NULL;
+
+ tmp = values;
+ while (tmp)
+@@ -2776,21 +2797,21 @@ set_values(GConfEngine* conf, const gcha
+ GConfValue* value = tmp->data;
+ GError* error;
+
+- if (full_schema_key)
++ error = NULL;
++ if (!gconf_engine_associate_schema(conf, full_key, full_schema_key, &error))
+ {
+- error = NULL;
+- if (!gconf_engine_associate_schema(conf, full_key, full_schema_key, &error))
+- {
+- g_assert(error != NULL);
+-
+- g_printerr (_("WARNING: failed to associate schema `%s' with key `%s': %s\n"),
+- full_schema_key, full_key, error->message);
+- g_error_free(error);
+- }
++ g_assert(error != NULL);
++
++ g_printerr (_("WARNING: failed to associate schema `%s' with key `%s': %s\n"),
++ full_schema_key, full_key, error->message);
++ g_error_free(error);
+ }
+
+ error = NULL;
+- gconf_engine_set(conf, full_key, value, &error);
++ if (unload_entry_file != NULL)
++ gconf_engine_unset(conf, full_key, &error);
++ else
++ gconf_engine_set(conf, full_key, value, &error);
+ if (error != NULL)
+ {
+ g_printerr (_("Error setting value: %s\n"), error->message);
+@@ -3307,7 +3328,7 @@ process_key_list(GConfEngine* conf, cons
+ GSList* tmp;
+ GError* error = NULL;
+
+- if (makefile_uninstall_mode)
++ if (makefile_uninstall_mode || unload_entry_file != NULL)
+ {
+ schema_name = NULL;
+ }
+@@ -3504,7 +3525,7 @@ process_schema(GConfEngine* conf, xmlNod
+
+ hash_foreach_info.conf = conf;
+ hash_foreach_info.key = schema_key;
+- if (makefile_uninstall_mode)
++ if (makefile_uninstall_mode || unload_entry_file != NULL)
+ g_hash_table_foreach(schemas_hash, hash_uninstall_foreach, &hash_foreach_info);
+ else
+ g_hash_table_foreach(schemas_hash, hash_install_foreach, &hash_foreach_info);
diff --git a/devel/GConf2/schemas.mk b/devel/GConf2/schemas.mk
index c41a24c1b2c..e43aab371b4 100644
--- a/devel/GConf2/schemas.mk
+++ b/devel/GConf2/schemas.mk
@@ -1,4 +1,4 @@
-# $NetBSD: schemas.mk,v 1.3 2003/04/21 00:12:33 rh Exp $
+# $NetBSD: schemas.mk,v 1.4 2003/12/28 14:24:49 jmmv Exp $
#
# This Makefile fragment is intended to be included by packages that install
# GConf2 schema files. It takes care of registering them in the GConf2
@@ -37,9 +37,11 @@ CONFIGURE_ARGS+= --disable-schemas-install
CONFIGURE_ARGS+= --with-gconf-schema-file-dir=${GCONF2_SCHEMAS_DIR}
.endif
-.if defined(GCONF2_SCHEMAS) && !empty(GCONF2_SCHEMAS)
+.if (defined(GCONF2_SCHEMAS) && !empty(GCONF2_SCHEMAS)) || \
+ (defined(GCONF2_ENTRIES) && !empty(GCONF2_ENTRIES))
FILES_SUBST+= GCONFTOOL2="${GCONFTOOL2}"
FILES_SUBST+= GCONF2_CONFIG_SOURCE="${GCONF2_CONFIG_SOURCE}"
+FILES_SUBST+= GCONF2_ENTRIES="${GCONF2_ENTRIES}"
FILES_SUBST+= GCONF2_SCHEMAS="${GCONF2_SCHEMAS}"
FILES_SUBST+= GCONF2_SCHEMAS_DIR="${GCONF2_SCHEMAS_DIR}"
INSTALL_EXTRA_TMPL+= ${.CURDIR}/../../devel/GConf2/files/install.tmpl