@@ -0,0 +1,3267 @@
+Index: extensions/pref/system-pref/src/nsSystemPref.h
+================================================================================
+--- browser/installer/unix/packages-static
++++ browser/installer/unix/packages-static
+@@ -210,6 +210,7 @@
+ bin/components/nsUpdateService.js
+ bin/components/extensions.xpt
+ bin/components/update.xpt
++bin/components/libsystem-pref-gconf.so
+ bin/components/nsBookmarkTransactionManager.js
+ bin/components/nsSessionStartup.js
+ bin/components/nsSessionStore.js
+--- config/autoconf.mk.in
++++ config/autoconf.mk.in
+@@ -226,6 +226,7 @@
+ MOZ_GNOMEVFS_CFLAGS = @MOZ_GNOMEVFS_CFLAGS@
+ MOZ_GNOMEVFS_LIBS = @MOZ_GNOMEVFS_LIBS@
+
++MOZ_ENABLE_GCONF = @MOZ_ENABLE_GCONF@
+ MOZ_GCONF_CFLAGS = @MOZ_GCONF_CFLAGS@
+ MOZ_GCONF_LIBS = @MOZ_GCONF_LIBS@
+
+--- configure.in
++++ configure.in
+@@ -4709,6 +4709,7 @@
+ ])
+ fi
+
++ AC_SUBST(MOZ_ENABLE_GCONF)
+ AC_SUBST(MOZ_GCONF_CFLAGS)
+ AC_SUBST(MOZ_GCONF_LIBS)
+
+--- extensions/pref/system-pref/src/Makefile.in
++++ extensions/pref/system-pref/src/Makefile.in
+@@ -47,14 +47,13 @@
+ include $(DEPTH)/config/autoconf.mk
+
+ MODULE = system-pref
+-LIBRARY_NAME = system-pref_s
++LIBRARY_NAME = system-pref
+ ifneq ($(OS_ARCH),WINNT)
+ SHORT_LIBNAME = syspref
+ endif
+
+-# We want to force the creation of a static lib.
+-FORCE_STATIC_LIB = 1
+ MOZILLA_INTERNAL_API = 1
++GRE_MODULE = 1
+
+ REQUIRES = xpcom \
+ string \
+@@ -62,27 +61,25 @@
+ pref \
+ $(NULL)
+
+-ifdef MOZ_ENABLE_GTK2
++ifdef MOZ_ENABLE_GCONF
+ DIRS = gconf
+ endif
+
+-EXTRA_DSO_LDOPTS = \
+- -L$(DIST)/bin \
+- $(MOZ_COMPONENT_LIBS) \
+- $(NULL)
+-
+ CPPSRCS = \
+ nsSystemPref.cpp \
++ nsSystemPrefFactory.cpp \
+ $(NULL)
+
++EXTRA_DSO_LDOPTS = \
++ $(MOZ_COMPONENT_LIBS) \
++ $(NULL)
++
+ EXPORTS = \
+- nsSystemPrefLog.h \
++ nsISystemPrefService.h \
+ $(NULL)
+
+-include $(topsrcdir)/config/rules.mk
++EXPORT_LIBRARY = 1
++IS_COMPONENT = 1
++MODULE_NAME = nsSystemPrefModule
+
+-ifdef MOZ_ENABLE_GTK2
+-INCLUDES += \
+- -I$(srcdir)/gconf \
+- $(NULL)
+-endif
++include $(topsrcdir)/config/rules.mk
+--- extensions/pref/system-pref/src/gconf/Makefile.in
++++ extensions/pref/system-pref/src/gconf/Makefile.in
+@@ -46,44 +46,36 @@
+
+ include $(DEPTH)/config/autoconf.mk
+
+-MODULE = system-pref
+-LIBRARY_NAME = system-pref
++MODULE = system-pref-gconf
++LIBRARY_NAME = system-pref-gconf
+ GRE_MODULE = 1
+ MOZILLA_INTERNAL_API = 1
+
++PACKAGE_FILE = gconf.pkg
++
+ REQUIRES = pref \
++ system-pref \
+ string \
+ xpcom \
+ embedcomponents \
++ necko \
+ $(NULL)
+
+ CPPSRCS = \
+ nsSystemPrefService.cpp \
+- nsSystemPrefFactory.cpp \
+ $(NULL)
+
+-SHARED_LIBRARY_LIBS = $(DIST)/lib/libsystem-pref_s.a
+-
+ EXTRA_DSO_LDOPTS = \
+- -L$(DIST)/bin \
+ $(MOZ_COMPONENT_LIBS) \
+- $(MOZ_GTK2_LIBS) \
++ $(MOZ_GTK2_LIBS) \
++ $(MOZ_GCONF_LIBS) \
+ $(NULL)
+
+-EXPORT_LIBRARY = 1
++#EXPORT_LIBRARY = 1
+ IS_COMPONENT = 1
+-MODULE_NAME = nsSystemPrefModule
+-
+-EXPORTS = \
+- nsSystemPrefService.h \
+- $(NULL)
++FORCE_SHARED_LIB = 1
+
+ include $(topsrcdir)/config/rules.mk
+
+-CFLAGS += $(MOZ_GTK2_CFLAGS)
+-CXXFLAGS += $(MOZ_GTK2_CFLAGS)
+-
+-LOCAL_INCLUDES = -I$(srcdir)/..
+-
+-export::
+- $(INSTALL) $(srcdir)/../nsSystemPrefFactory.cpp .
++CFLAGS += $(MOZ_GTK2_CFLAGS) $(MOZ_GCONF_CFLAGS)
++CXXFLAGS += $(MOZ_GTK2_CFLAGS) $(MOZ_GCONF_CFLAGS)
+--- extensions/pref/system-pref/src/gconf/nsSystemPrefService.cpp
++++ extensions/pref/system-pref/src/gconf/nsSystemPrefService.cpp
+@@ -23,7 +23,7 @@
+ *
+ * Original Author: Bolian Yin (bolian.yin@sun.com)
+ *
+- * Contributor(s):
++ * Contributor(s): Robert O'Callahan/Novell (rocallahan@novell.com)
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+@@ -41,6 +41,7 @@
+
+ #include <glib.h>
+ #include <glib-object.h>
++#include <gconf/gconf-client.h>
+
+ #include "plstr.h"
+ #include "nsCOMPtr.h"
+@@ -48,837 +49,1259 @@
+ #include "nsIServiceManager.h"
+ #include "nsIObserver.h"
+ #include "nsWeakReference.h"
+-
++#include "nsIPrefBranch2.h"
++#include "nsISystemPrefService.h"
++#include "nsDataHashtable.h"
++#include "nsHashKeys.h"
++#include "nsICategoryManager.h"
++#include "nsIGenericFactory.h"
+ #include "nsString.h"
+-#include "nsSystemPrefLog.h"
+-#include "nsSystemPrefService.h"
+-
+-/*************************************************************************
+- * The strange thing here is that we load the gconf library manually and
+- * search the function pointers we need. If that process fails, no gconf
+- * support is available in mozilla. The aim is to make mozilla independent
+- * on gconf, in both compile time and run time.
+- ************************************************************************/
+-
+-//gconf types
+-extern "C" {
+-
+- typedef enum {
+- GCONF_VALUE_INVALID,
+- GCONF_VALUE_STRING,
+- GCONF_VALUE_INT,
+- GCONF_VALUE_FLOAT,
+- GCONF_VALUE_BOOL,
|