Subject: pkg/23697: devel/GConf2 update to 2.4.0.1
To: None <gnats-bugs@gnats.netbsd.org>
From: Min Sik Kim <minskim@bawi.org>
List: netbsd-bugs
Date: 12/08/2003 19:09:32
>Number:         23697
>Category:       pkg
>Synopsis:       devel/GConf2 update to 2.4.0.1
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Tue Dec 09 01:10:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Min Sik Kim
>Release:        NetBSD 1.6ZF
>Organization:
>Environment:
System: NetBSD mike.infnis.com 1.6ZF NetBSD 1.6ZF (MIKE) #9: Sun Nov 30 11:57:42 CST 2003 root@mike.infnis.com:/usr/obj/sys/arch/i386/compile/MIKE i386
Architecture: i386
Machine: i386
>Description:

Changes:

2.4.0.1
 - fix glib-gettext problem

2.4.0
 - print usage message when no options passed to gconftool
 - API docs updates
 - fix UTF-8 handling for command line output
 - fix reliability of writing out XML
 - ensure recursive unsets get synced
 - fix flag value that was "0"
 - fix recursive preloading
 - fix a memleak
 - fix some gconftool messages/segfaults
 - deinstall-related patch (patch-ae) was applied (uninstall-*).

2.3.3
 - new gconf_client_notify() API to fake a notification
 - fixes to gconftool --dump feature
 - implement schema uninstallation in gconftool so packages
   can avoid leaving junk
 - fix build issues with linc-free ORBit
 - new gconf_client_recursive_unset API
 - fix gcc 3.3 strict aliasing warnings

2.3.2
 - fix build on Cygwin
 - don't complain about missing saved_state in syslog
 - improve gconf-sanity-check error text
 - added --get-type, --get-list-size and --get-list-element
 - exported gconf_entry_copy
 - cleaned up headers for C++
 - added missing GCONF_CLIENT_GET_CLASS
 - hackaround fix for 2.3.1 lockfile breakage

>How-To-Repeat:
>Fix:

(tested with ORBit2-2.8.2 in PR pkg/23656)

 - does not depend on linc.
 - tarball doesn't have html docs.
 - patch-ae is redundant because --makefile-uninstall-rule option was added

Index: Makefile
===================================================================
RCS file: /cvsroot/pkgsrc/devel/GConf2/Makefile,v
retrieving revision 1.18
diff -u -r1.18 Makefile
--- Makefile	2003/12/04 19:48:24	1.18
+++ Makefile	2003/12/09 01:03:14
@@ -4,7 +4,6 @@
 .include "../../devel/GConf2/Makefile.common"
 
 PKGNAME=	${DISTNAME:S/GConf/GConf2/}
-PKGREVISION=	4
 
 USE_PKGINSTALL=	YES
 
@@ -27,7 +26,6 @@
 .include "../../devel/glib2/buildlink2.mk"
 .include "../../devel/popt/buildlink2.mk"
 .include "../../net/ORBit2/buildlink2.mk"
-.include "../../net/linc/buildlink2.mk"
 .include "../../textproc/libxml2/buildlink2.mk"
 .include "../../textproc/xmlcatmgr/buildlink2.mk"
 .include "../../mk/bsd.pkg.mk"
Index: Makefile.common
===================================================================
RCS file: /cvsroot/pkgsrc/devel/GConf2/Makefile.common,v
retrieving revision 1.6
diff -u -r1.6 Makefile.common
--- Makefile.common	2003/07/17 21:29:16	1.6
+++ Makefile.common	2003/12/09 01:03:14
@@ -1,9 +1,9 @@
 # $NetBSD: Makefile.common,v 1.6 2003/07/17 21:29:16 grant Exp $
 #
 
-DISTNAME=		GConf-2.2.0
+DISTNAME=		GConf-2.4.0.1
 CATEGORIES=		devel gnome
-MASTER_SITES=		${MASTER_SITE_GNOME:=sources/GConf/2.2/}
+MASTER_SITES=		${MASTER_SITE_GNOME:=sources/GConf/2.4/}
 EXTRACT_SUFX=		.tar.bz2
 
 MAINTAINER=		jmmv@NetBSD.org
Index: PLIST
===================================================================
RCS file: /cvsroot/pkgsrc/devel/GConf2/PLIST,v
retrieving revision 1.10
diff -u -r1.10 PLIST
--- PLIST	2003/02/24 17:19:35	1.10
+++ PLIST	2003/12/09 01:03:14
@@ -20,57 +20,36 @@
 lib/pkgconfig/gconf-2.0.pc
 libexec/gconfd-2
 share/aclocal/gconf-2.m4
-share/doc/html/gconf/c120.html
-share/doc/html/gconf/c21.html
-share/doc/html/gconf/c381.html
-share/doc/html/gconf/c490.html
-share/doc/html/gconf/conventions.html
-share/doc/html/gconf/gconf-client-reference.html
-share/doc/html/gconf/gconf-client.html
-share/doc/html/gconf/gconf-gconf-backend.html
-share/doc/html/gconf/gconf-gconf-changeset.html
-share/doc/html/gconf/gconf-gconf-engine.html
-share/doc/html/gconf/gconf-gconf-error.html
-share/doc/html/gconf/gconf-gconf-internals.html
-share/doc/html/gconf/gconf-gconf-listeners.html
-share/doc/html/gconf/gconf-gconf-locale.html
-share/doc/html/gconf/gconf-gconf-schema.html
-share/doc/html/gconf/gconf-gconf-sources.html
-share/doc/html/gconf/gconf-gconf-value.html
-share/doc/html/gconf/gconf-gconf.html
-share/doc/html/gconf/gconf-internals-reference.html
-share/doc/html/gconf/gconf-reference.html
-share/doc/html/gconf/gconfclient.html
-share/doc/html/gconf/gconftool.html
-share/doc/html/gconf/index.html
-share/doc/html/gconf/index.sgml
-share/doc/html/gconf/x184.html
-share/doc/html/gconf/x236.html
-share/doc/html/gconf/x289.html
-share/doc/html/gconf/x42.html
-share/doc/html/gconf/x462.html
-share/doc/html/gconf/x485.html
 share/examples/GConf2/path
+${PKGLOCALEDIR}/locale/am/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/ar/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/az/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/be/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/bg/LC_MESSAGES/GConf2.mo
+${PKGLOCALEDIR}/locale/bn/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/ca/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/cs/LC_MESSAGES/GConf2.mo
+${PKGLOCALEDIR}/locale/cy/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/da/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/de/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/el/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/es/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/eu/LC_MESSAGES/GConf2.mo
+${PKGLOCALEDIR}/locale/fa/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/fi/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/fr/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/ga/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/gl/LC_MESSAGES/GConf2.mo
+${PKGLOCALEDIR}/locale/hi/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/hu/LC_MESSAGES/GConf2.mo
+${PKGLOCALEDIR}/locale/id/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/it/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/ja/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/ko/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/lv/LC_MESSAGES/GConf2.mo
+${PKGLOCALEDIR}/locale/mk/LC_MESSAGES/GConf2.mo
+${PKGLOCALEDIR}/locale/ml/LC_MESSAGES/GConf2.mo
+${PKGLOCALEDIR}/locale/mn/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/ms/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/nl/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/nn/LC_MESSAGES/GConf2.mo
@@ -82,10 +61,14 @@
 ${PKGLOCALEDIR}/locale/ru/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/sk/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/sl/LC_MESSAGES/GConf2.mo
+${PKGLOCALEDIR}/locale/sq/LC_MESSAGES/GConf2.mo
+${PKGLOCALEDIR}/locale/sr/LC_MESSAGES/GConf2.mo
+${PKGLOCALEDIR}/locale/sr@Latn/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/sv/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/tr/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/uk/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/vi/LC_MESSAGES/GConf2.mo
+${PKGLOCALEDIR}/locale/yi/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/zh_CN/LC_MESSAGES/GConf2.mo
 ${PKGLOCALEDIR}/locale/zh_TW/LC_MESSAGES/GConf2.mo
 share/sgml/gconf/gconf-1.0.dtd
Index: buildlink2.mk
===================================================================
RCS file: /cvsroot/pkgsrc/devel/GConf2/buildlink2.mk,v
retrieving revision 1.18
diff -u -r1.18 buildlink2.mk
--- buildlink2.mk	2003/11/12 01:31:47	1.18
+++ buildlink2.mk	2003/12/09 01:03:14
@@ -9,7 +9,7 @@
 GCONF2_BUILDLINK2_MK=	# defined
 
 BUILDLINK_PACKAGES+=			GConf2
-BUILDLINK_DEPENDS.GConf2?=		GConf2>=2.2.0nb3
+BUILDLINK_DEPENDS.GConf2?=		GConf2>=2.4.0.1
 BUILDLINK_PKGSRCDIR.GConf2?=		../../devel/GConf2
 
 EVAL_PREFIX+=	BUILDLINK_PREFIX.GConf2=GConf2
@@ -30,7 +30,6 @@
 .include "../../devel/glib2/buildlink2.mk"
 .include "../../devel/popt/buildlink2.mk"
 .include "../../net/ORBit2/buildlink2.mk"
-.include "../../net/linc/buildlink2.mk"
 .include "../../textproc/libxml2/buildlink2.mk"
 
 BUILDLINK_TARGETS+=	GConf2-buildlink
Index: distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/devel/GConf2/distinfo,v
retrieving revision 1.6
diff -u -r1.6 distinfo
--- distinfo	2003/02/14 20:04:07	1.6
+++ distinfo	2003/12/09 01:03:14
@@ -1,9 +1,8 @@
 $NetBSD: distinfo,v 1.6 2003/02/14 20:04:07 jmmv Exp $
 
-SHA1 (GConf-2.2.0.tar.bz2) = 498cfd3d4d26b765fe4e54d7bacef01285a37b02
-Size (GConf-2.2.0.tar.bz2) = 1049910 bytes
-SHA1 (patch-aa) = bbafe6158ed1dd45df5c38264a2a34e1536860da
-SHA1 (patch-ab) = eb9ffa0ec87fe21b0f754aef019221d619b37b11
-SHA1 (patch-ac) = 32f8bc70f3f384c7c044104520fa412530b90846
+SHA1 (GConf-2.4.0.1.tar.bz2) = 190ed06d34699976a9a425e9e14d4ccb26220ba8
+Size (GConf-2.4.0.1.tar.bz2) = 1288876 bytes
+SHA1 (patch-aa) = 841d0bbe471f199f12201decd1ab0af0837c1bf3
+SHA1 (patch-ab) = 0916c727497978ce8a3771dce397edec347c0e9f
+SHA1 (patch-ac) = b95ddfda0db72c9d4d862047fa5e07ef03868d53
 SHA1 (patch-ad) = 50b0d919768b179d0209c49aee25a7c64ca5b497
-SHA1 (patch-ae) = 158845de022ac4e6a33782658835c8834044e02f
Index: files/deinstall.tmpl
===================================================================
RCS file: /cvsroot/pkgsrc/devel/GConf2/files/deinstall.tmpl,v
retrieving revision 1.3
diff -u -r1.3 deinstall.tmpl
--- files/deinstall.tmpl	2003/06/20 10:49:18	1.3
+++ files/deinstall.tmpl	2003/12/09 01:03:14
@@ -12,7 +12,7 @@
 DEINSTALL)
 	for f in ${GCONF2_SCHEMAS}; do
 		GCONF_CONFIG_SOURCE="${GCONF2_CONFIG_SOURCE}" \
-			${GCONFTOOL2} --makefile-deinstall-rule \
+			${GCONFTOOL2} --makefile-uninstall-rule \
 			${GCONF2_SCHEMAS_DIR}/$f >/dev/null
 	done
 	;;
Index: patches/patch-aa
===================================================================
RCS file: /cvsroot/pkgsrc/devel/GConf2/patches/patch-aa,v
retrieving revision 1.3
diff -u -r1.3 patch-aa
--- patches/patch-aa	2003/02/14 20:04:08	1.3
+++ patches/patch-aa	2003/12/09 01:03:14
@@ -2,18 +2,18 @@
 
 Disable GTK2 support.  This is a workaround until bug #102825 gets fixed.
 See http://bugzilla.gnome.org/show_bug.cgi?id=102825 for more details.
+
+--- configure.orig	2003-11-19 20:08:44.000000000 -0600
++++ configure
+@@ -18961,6 +18961,7 @@ fi
  
---- configure.orig	2003-01-21 04:29:24.000000000 +0100
-+++ configure	2003-02-13 13:16:42.000000000 +0100
-@@ -8549,6 +8549,7 @@
- 
    fi
  
 +if [ "$PKG_USE_GTK" = "yes" ]; then
    if test "$PKG_CONFIG" = "no" ; then
       echo "*** The pkg-config script could not be found. Make sure it is"
       echo "*** in your path, or set the PKG_CONFIG environment variable"
-@@ -8592,6 +8593,7 @@
+@@ -19004,6 +19005,7 @@ echo "${ECHO_T}$DEPENDENT_WITH_GTK_LIBS"
          echo "*** See http://www.freedesktop.org/software/pkgconfig"
       fi
    fi
@@ -21,7 +21,7 @@
  
    if test $succeeded = yes; then
       HAVE_GTK=yes
-@@ -8645,6 +8647,7 @@
+@@ -19057,6 +19059,7 @@ fi
  
    fi
  
@@ -29,7 +29,7 @@
    if test "$PKG_CONFIG" = "no" ; then
       echo "*** The pkg-config script could not be found. Make sure it is"
       echo "*** in your path, or set the PKG_CONFIG environment variable"
-@@ -8688,6 +8691,7 @@
+@@ -19100,6 +19103,7 @@ echo "${ECHO_T}$DEPENDENT_WITH_XML_AND_G
          echo "*** See http://www.freedesktop.org/software/pkgconfig"
       fi
    fi
Index: patches/patch-ab
===================================================================
RCS file: /cvsroot/pkgsrc/devel/GConf2/patches/patch-ab,v
retrieving revision 1.1
diff -u -r1.1 patch-ab
--- patches/patch-ab	2003/02/14 20:04:09	1.1
+++ patches/patch-ab	2003/12/09 01:03:14
@@ -1,8 +1,8 @@
 $NetBSD: patch-ab,v 1.1 2003/02/14 20:04:09 jmmv Exp $
 
---- Makefile.in.orig	Mon Jan 27 11:12:15 2003
+--- Makefile.in.orig	2003-11-19 19:02:48.000000000 -0600
 +++ Makefile.in
-@@ -455,10 +455,6 @@ mostlyclean distclean maintainer-clean
+@@ -461,10 +461,6 @@ mostlyclean distclean maintainer-clean
  install-data-local:
  	-mkdir -p $(DESTDIR)$(datadir)/aclocal
  	$(INSTALL_DATA) gconf.m4 $(DESTDIR)$(datadir)/aclocal/gconf-$(MAJOR_VERSION).m4
Index: patches/patch-ac
===================================================================
RCS file: /cvsroot/pkgsrc/devel/GConf2/patches/patch-ac,v
retrieving revision 1.1
diff -u -r1.1 patch-ac
--- patches/patch-ac	2003/02/14 20:04:10	1.1
+++ patches/patch-ac	2003/12/09 01:03:14
@@ -1,17 +1,19 @@
 $NetBSD: patch-ac,v 1.1 2003/02/14 20:04:10 jmmv Exp $
 
---- gconf/Makefile.in.orig	2003-01-21 04:30:18.000000000 +0100
+--- gconf/Makefile.in.orig	2003-09-10 14:23:41.000000000 -0500
 +++ gconf/Makefile.in
-@@ -136,7 +136,7 @@ NULL = 
- 
- GCONFD_BINARY_NAME = gconfd-2
- 
--INCLUDES =  	-I$(top_srcdir)								-I$(top_builddir)							$(DEPENDENT_WITH_XML_AND_GTK_CFLAGS) 					-DG_LOG_DOMAIN=\"GConf\"						-DGCONF_LOCALE_DIR=\""$(gconflocaledir)"\"			        -DGCONF_SRCDIR=\""$(absolute_top_srcdir)"\"				-DGCONF_CONFDIR=\""$(sysconfdir)/gconf/$(MAJOR_VERSION)"\"		-DGCONF_ETCDIR=\""$(sysconfdir)/gconf"\"				-DGCONF_BINDIR=\""$(bindir)"\"						-DGCONF_SERVERDIR=\""$(libexecdir)"\"           	-DGCONF_BUILDDIR=\""$(top_builddir)"\"					-DGCONF_BACKEND_DIR=\""$(pkglibdir)/$(MAJOR_VERSION)"\"			-DVERSION=\""$(VERSION)"\"						-DGCONF_ENABLE_INTERNALS=1						-DGCONFD=\""$(GCONFD_BINARY_NAME)"\"					$(NULL)
-+INCLUDES =  	-I$(top_srcdir)								-I$(top_builddir)							$(DEPENDENT_WITH_XML_AND_GTK_CFLAGS) 					-DG_LOG_DOMAIN=\"GConf\"						-DGCONF_LOCALE_DIR=\""$(gconflocaledir)"\"			        -DGCONF_SRCDIR=\""$(absolute_top_srcdir)"\"				-DGCONF_CONFDIR=\""$(sysconfdir)/$(MAJOR_VERSION)"\"		-DGCONF_ETCDIR=\""$(sysconfdir)"\"				-DGCONF_BINDIR=\""$(bindir)"\"						-DGCONF_SERVERDIR=\""$(libexecdir)"\"           	-DGCONF_BUILDDIR=\""$(top_builddir)"\"					-DGCONF_BACKEND_DIR=\""$(pkglibdir)/$(MAJOR_VERSION)"\"			-DVERSION=\""$(VERSION)"\"						-DGCONF_ENABLE_INTERNALS=1						-DGCONFD=\""$(GCONFD_BINARY_NAME)"\"					$(NULL)
- 
- 
- EFENCE = 
-@@ -614,8 +614,8 @@ $(CORBA_SOURCECODE): $(srcdir)/GConfX.id
+@@ -148,8 +148,8 @@ INCLUDES = \
+ 	-DG_LOG_DOMAIN=\"GConf\"					\
+ 	-DGCONF_LOCALE_DIR=\""$(gconflocaledir)"\"			\
+         -DGCONF_SRCDIR=\""$(absolute_top_srcdir)"\"			\
+-	-DGCONF_CONFDIR=\""$(sysconfdir)/gconf/$(MAJOR_VERSION)"\"	\
+-	-DGCONF_ETCDIR=\""$(sysconfdir)/gconf"\"			\
++	-DGCONF_CONFDIR=\""$(sysconfdir)/$(MAJOR_VERSION)"\"	\
++	-DGCONF_ETCDIR=\""$(sysconfdir)"\"			\
+ 	-DGCONF_BINDIR=\""$(bindir)"\"					\
+ 	-DGCONF_SERVERDIR=\""$(libexecdir)"\"           \
+ 	-DGCONF_BUILDDIR=\""$(top_builddir)"\"				\
+@@ -606,8 +606,8 @@ $(CORBA_SOURCECODE): $(srcdir)/GConfX.id
  	$(ORBIT_IDL) $(srcdir)/GConfX.idl
  
  install-data-local:
Index: patches/patch-ae
===================================================================
RCS file: /cvsroot/pkgsrc/devel/GConf2/patches/patch-ae,v
retrieving revision 1.1
diff -u -r1.1 patch-ae
--- patches/patch-ae	2003/02/14 20:04:10	1.1
+++ patches/patch-ae	2003/12/09 01:03:14
@@ -1,306 +0,0 @@
-$NetBSD: patch-ae,v 1.1 2003/02/14 20:04:10 jmmv Exp $
-
-Implement a --makefile-deinstall-rule option.  This is beeing tracked in
-bug #104487. See http://bugzilla.gnome.org/show_bug.cgi?id=104487
-
---- gconf/gconftool.c.orig	19 Sep 2002 02:49:08 -0000
-+++ gconf/gconftool.c	26 Jan 2003 21:15:51 -0000
-@@ -52,6 +52,7 @@
- static const char* config_source = NULL;
- static int use_local_source = FALSE;
- static int makefile_install_mode = FALSE;
-+static int makefile_deinstall_mode = FALSE;
- static int break_key_mode = FALSE;
- static int break_dir_mode = FALSE;
- static int short_docs_mode = FALSE;
-@@ -282,6 +283,15 @@
-     NULL
-   },
-   {
-+    "makefile-deinstall-rule",
-+    '\0',
-+    POPT_ARG_NONE,
-+    &makefile_deinstall_mode,
-+    0,
-+    N_("Properly deinstalls schema files on the command line from the database. GCONF_CONFIG_SOURCE environment variable should be set to a non-default config source or set to the empty string to use the default."),
-+    NULL
-+  },
-+  {
-     "break-key",
-     '\0',
-     POPT_ARG_NONE,
-@@ -376,6 +386,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_deinstall(GConfEngine* conf, const gchar** args);
- static int do_recursive_list(GConfEngine* conf, const gchar** args);
- static int do_all_pairs(GConfEngine* conf, const gchar** args);
- static void list_pairs_in_dir(GConfEngine* conf, const gchar* dir, guint depth);
-@@ -499,7 +510,8 @@
- 
-   if (ping_gconfd && (shutdown_gconfd || set_mode || get_mode || unset_mode ||
-                       all_subdirs_mode || all_entries_mode || recursive_list || 
--                      spawn_gconfd || dir_exists || schema_file || makefile_install_mode ||
-+                      spawn_gconfd || dir_exists || schema_file ||
-+                      makefile_install_mode || makefile_deinstall_mode ||
-                       break_key_mode || break_dir_mode || short_docs_mode ||
-                          long_docs_mode || schema_name_mode))
-     {
-@@ -510,7 +522,8 @@
-   if (dir_exists && (shutdown_gconfd || set_mode || get_mode || unset_mode ||
-                      all_subdirs_mode || all_entries_mode || recursive_list || 
-                      spawn_gconfd || schema_file || makefile_install_mode ||
--                     break_key_mode || break_dir_mode || short_docs_mode ||
-+                     makefile_deinstall_mode || break_key_mode ||
-+                     break_dir_mode || short_docs_mode ||
-                          long_docs_mode || schema_name_mode))
-     {
-       fprintf(stderr, _("--dir-exists option must be used by itself.\n"));
-@@ -520,7 +533,8 @@
-   if (schema_file && (shutdown_gconfd || set_mode || get_mode || unset_mode ||
-                       all_subdirs_mode || all_entries_mode || recursive_list || 
-                       spawn_gconfd || dir_exists || makefile_install_mode ||
--                      break_key_mode || break_dir_mode || short_docs_mode ||
-+                      makefile_deinstall_mode || break_key_mode ||
-+                      break_dir_mode || short_docs_mode ||
-                          long_docs_mode || schema_name_mode))
-     {
-       fprintf(stderr, _("--install-schema-file must be used by itself.\n"));
-@@ -530,6 +544,7 @@
- 
-   if (makefile_install_mode && (shutdown_gconfd || set_mode || get_mode || unset_mode ||
-                                 all_subdirs_mode || all_entries_mode || recursive_list || 
-+                                makefile_deinstall_mode ||
-                                 spawn_gconfd || dir_exists || schema_file ||
-                                 break_key_mode || break_dir_mode || short_docs_mode ||
-                          long_docs_mode || schema_name_mode))
-@@ -539,10 +554,24 @@
-     }
- 
- 
-+  if (makefile_deinstall_mode && (shutdown_gconfd || set_mode || get_mode ||
-+                                unset_mode || all_subdirs_mode ||
-+                                all_entries_mode || recursive_list || 
-+                                makefile_install_mode ||
-+                                spawn_gconfd || dir_exists || schema_file ||
-+                                break_key_mode || break_dir_mode || short_docs_mode ||
-+                         long_docs_mode || schema_name_mode))
-+    {
-+      fprintf(stderr, _("--makefile-deinstall-rule must be used by itself.\n"));
-+      return 1;
-+    }
-+
-+
-   if (break_key_mode && (shutdown_gconfd || set_mode || get_mode || unset_mode ||
-                                 all_subdirs_mode || all_entries_mode || recursive_list || 
-                                 spawn_gconfd || dir_exists || schema_file ||
--                                makefile_install_mode || break_dir_mode || short_docs_mode ||
-+                                makefile_install_mode || makefile_deinstall_mode ||
-+                                break_dir_mode || short_docs_mode ||
-                          long_docs_mode || schema_name_mode))
-     {
-       fprintf(stderr, _("--break-key must be used by itself.\n"));
-@@ -553,7 +582,8 @@
-   if (break_dir_mode && (shutdown_gconfd || set_mode || get_mode || unset_mode ||
-                                 all_subdirs_mode || all_entries_mode || recursive_list || 
-                                 spawn_gconfd || dir_exists || schema_file ||
--                                break_key_mode || makefile_install_mode || short_docs_mode ||
-+                                break_key_mode || makefile_install_mode ||
-+                                makefile_deinstall_mode || short_docs_mode ||
-                          long_docs_mode || schema_name_mode))
-     {
-       fprintf(stderr, _("--break-directory must be used by itself.\n"));
-@@ -608,8 +638,15 @@
-       g_print (_("GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL is set, not installing schemas\n"));
-       makefile_install_mode = FALSE;
-     }
--  
--  if (makefile_install_mode)
-+
-+  if (makefile_deinstall_mode &&
-+      g_getenv ("GCONF_DISABLE_MAKEFILE_SCHEMA_DEINSTALL"))
-+    {
-+      g_print (_("GCONF_DISABLE_MAKEFILE_SCHEMA_DEINSTALL is set, not deinstalling schemas\n"));
-+      makefile_deinstall_mode = FALSE;
-+    }
-+ 
-+  if (makefile_install_mode || makefile_deinstall_mode)
-     {
-       g_assert (config_source == NULL);
- 
-@@ -701,6 +738,16 @@
-       return retval;
-     }
- 
-+  if (makefile_deinstall_mode)
-+    {
-+      const gchar** args = poptGetArgs(ctx);
-+      gint retval = do_makefile_deinstall (conf, args);
-+      
-+      gconf_engine_unref (conf);
-+
-+      return retval;
-+    }
-+
-   if (break_key_mode)
-     {
-       const gchar** args = poptGetArgs(ctx);
-@@ -2158,7 +2205,7 @@
- }
- 
- static void
--hash_foreach(gpointer key, gpointer value, gpointer user_data)
-+hash_foreach_install(gpointer key, gpointer value, gpointer user_data)
- {
-   SchemaInfo* info;
-   GConfSchema* schema;
-@@ -2186,6 +2233,36 @@
-   gconf_schema_free(schema);
- }
- 
-+static void
-+hash_foreach_deinstall(gpointer key, gpointer value, gpointer user_data)
-+{
-+  SchemaInfo* info;
-+  GConfSchema* schema;
-+  GError* error = NULL;
-+  
-+  info = user_data;
-+  schema = value;
-+
-+  //if (!gconf_engine_set_schema(info->conf, info->key, schema, &error))
-+  if (!gconf_engine_unset(info->conf, info->key, &error))
-+    {
-+      g_assert(error != NULL);
-+
-+      fprintf(stderr, _("WARNING: failed to deinstall schema `%s' locale `%s': %s\n"),
-+              info->key, gconf_schema_get_locale(schema), error->message);
-+      g_error_free(error);
-+      error = NULL;
-+    }
-+  else
-+    {
-+      g_assert(error == NULL);
-+      printf(_("Deinstalled schema `%s' from locale `%s'\n"),
-+             info->key, gconf_schema_get_locale(schema));
-+    }
-+      
-+  gconf_schema_free(schema);
-+}
-+
- 
- static int
- process_key_list(GConfEngine* conf, const gchar* schema_name, GSList* keylist)
-@@ -2197,22 +2274,47 @@
- 
-   while (tmp != NULL)
-     {
--      if (!gconf_engine_associate_schema(conf, tmp->data, schema_name,  &error))
-+      if (!makefile_deinstall_mode)
-         {
--          g_assert(error != NULL);
--          
--          fprintf(stderr, _("WARNING: failed to associate schema `%s' with key `%s': %s\n"),
--                  schema_name, (gchar*)tmp->data, error->message);
--          g_error_free(error);
--          error = NULL;
-+          if (!gconf_engine_associate_schema(conf, tmp->data, schema_name,
-+              &error))
-+            {
-+              g_assert(error != NULL);
-+
-+              fprintf(stderr, _("WARNING: failed to associate schema `%s' "
-+                                "with key `%s': %s\n"),
-+                      schema_name, (gchar*)tmp->data, error->message);
-+              g_error_free(error);
-+              error = NULL;
-+            }
-+          else
-+            {
-+              g_assert(error == NULL);
-+              printf(_("Attached schema `%s' to key `%s'\n"),
-+                     schema_name, (gchar*)tmp->data);
-+            }
-         }
-       else
-         {
--          g_assert(error == NULL);
--          printf(_("Attached schema `%s' to key `%s'\n"),
--                 schema_name, (gchar*)tmp->data);
-+          if (!gconf_engine_associate_schema(conf, tmp->data, NULL,
-+              &error))
-+            {
-+              g_assert(error != NULL);
-+
-+              fprintf(stderr, _("WARNING: failed to deassociate schema `%s' "
-+                                "with key `%s': %s\n"),
-+                      schema_name, (gchar*)tmp->data, error->message);
-+              g_error_free(error);
-+              error = NULL;
-+            }
-+          else
-+            {
-+              g_assert(error == NULL);
-+              printf(_("Deattached schema `%s' from key `%s'\n"),
-+                     schema_name, (gchar*)tmp->data);
-+            }
-         }
--          
-+
-       tmp = g_slist_next(tmp);
-     }
-   
-@@ -2292,8 +2394,11 @@
-       return 1;
-     }
-       
--  /* Now install each schema in the hash into the GConfEngine */
--  g_hash_table_foreach(info.hash, hash_foreach, &info);
-+  /* Now (de)install each schema in the hash into the GConfEngine */
-+  if (makefile_deinstall_mode)
-+    g_hash_table_foreach(info.hash, hash_foreach_deinstall, &info);
-+  else
-+    g_hash_table_foreach(info.hash, hash_foreach_install, &info);
- 
-   g_hash_table_destroy(info.hash);
- 
-@@ -2416,6 +2521,38 @@
-   if (args == NULL)
-     {
-       fprintf(stderr, _("Must specify some schema files to install\n"));
-+      return 1;
-+    }
-+
-+  while (*args)
-+    {
-+      if (do_load_schema_file(conf, *args) != 0)
-+        return 1;
-+
-+      ++args;
-+    }
-+
-+  gconf_engine_suggest_sync(conf, &err);
-+
-+  if (err != NULL)
-+    {
-+      fprintf(stderr, _("Error syncing config data: %s"),
-+              err->message);
-+      g_error_free(err);
-+      return 1;
-+    }
-+  
-+  return 0;
-+}
-+
-+static int
-+do_makefile_deinstall(GConfEngine* conf, const gchar** args)
-+{
-+  GError* err = NULL;
-+  
-+  if (args == NULL)
-+    {
-+      fprintf(stderr, _("Must specify some schema files to deinstall\n"));
-       return 1;
-     }
- 
>Release-Note:
>Audit-Trail:
>Unformatted: