about summary refs log tree commit diff
path: root/pkgs/desktops
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2013-04-17 19:01:28 +0200
committerVladimír Čunát <vcunat@gmail.com>2013-04-17 19:01:28 +0200
commit469d098083cc86972220bed527d1c38f6e09edfa (patch)
treefc015858a628c4253370d6fc00f22526ddcd3158 /pkgs/desktops
parentec736312d44e4cf63c1f86c7c38f2c2f28d1212e (diff)
downloadnixlib-469d098083cc86972220bed527d1c38f6e09edfa.tar
nixlib-469d098083cc86972220bed527d1c38f6e09edfa.tar.gz
nixlib-469d098083cc86972220bed527d1c38f6e09edfa.tar.bz2
nixlib-469d098083cc86972220bed527d1c38f6e09edfa.tar.lz
nixlib-469d098083cc86972220bed527d1c38f6e09edfa.tar.xz
nixlib-469d098083cc86972220bed527d1c38f6e09edfa.tar.zst
nixlib-469d098083cc86972220bed527d1c38f6e09edfa.zip
gnome2.libgnome: fix for new glib (my own patch)
Diffstat (limited to 'pkgs/desktops')
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnome/default.nix4
-rw-r--r--pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch65
2 files changed, 68 insertions, 1 deletions
diff --git a/pkgs/desktops/gnome-2/platform/libgnome/default.nix b/pkgs/desktops/gnome-2/platform/libgnome/default.nix
index 37dbfd129611..5ab6d5e813d6 100644
--- a/pkgs/desktops/gnome-2/platform/libgnome/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnome/default.nix
@@ -9,7 +9,9 @@ stdenv.mkDerivation rec {
     major = "2"; minor = "32"; patchlevel = "1";
     sha256 = "197pnq8y0knqjhm2fg4j6hbqqm3qfzfnd0irhwxpk1b4hqb3kimj";
   };
-  
+
+  patches = [ ./new-glib.patch ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ popt zlib intltool GConf gnome_vfs libcanberra libtool ];
   propagatedBuildInputs = [ glib libbonobo ];
diff --git a/pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch b/pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch
new file mode 100644
index 000000000000..ceabfbdd158e
--- /dev/null
+++ b/pkgs/desktops/gnome-2/platform/libgnome/new-glib.patch
@@ -0,0 +1,65 @@
+Porting libgnome to newer glib:
+ * remove g_thread_init and g_thread_supported, which are longer needed
+   https://developer.gnome.org/glib/2.36/glib-Deprecated-Thread-APIs.html#g-thread-init
+ * replace GStaticRecMutex by GRecMutex
+   https://developer.gnome.org/glib/2.36/glib-Deprecated-Thread-APIs.html#GStaticRecMutex
+
+diff --git a/libgnome/gnome-i18n.c b/libgnome/gnome-i18n.c
+index 531c56c..f13d61e 100644
+--- a/libgnome/gnome-i18n.c
++++ b/libgnome/gnome-i18n.c
+@@ -55,12 +55,14 @@
+ const GList *
+ gnome_i18n_get_language_list (const gchar *ignored)
+ {
+-  static GStaticRecMutex lang_list_lock = G_STATIC_REC_MUTEX_INIT;
++  static GRecMutex lang_list_lock;
++  g_rec_mutex_init (&lang_list_lock);
++
+   static GList *list = NULL;
+   const char * const* langs;
+   int i;
+ 
+-  g_static_rec_mutex_lock (&lang_list_lock);
++  g_rec_mutex_lock (&lang_list_lock);
+ 
+   if (list == NULL) {
+     langs = g_get_language_names ();
+@@ -71,7 +73,7 @@ gnome_i18n_get_language_list (const gchar *ignored)
+     list = g_list_reverse (list);
+   }
+ 
+-  g_static_rec_mutex_unlock (&lang_list_lock);
++  g_rec_mutex_unlock (&lang_list_lock);
+ 
+   return list;
+ }
+diff --git a/libgnome/gnome-init.c b/libgnome/gnome-init.c
+index fe3efd4..c6619af 100644
+--- a/libgnome/gnome-init.c
++++ b/libgnome/gnome-init.c
+@@ -115,9 +115,6 @@ gnome_bonobo_module_info_get (void)
+ static void
+ bonobo_activation_pre_args_parse (GnomeProgram *program, GnomeModuleInfo *mod_info)
+ {
+-        if (!g_thread_supported ())
+-		g_thread_init (NULL);
+-
+ 	if (!bonobo_activation_is_initialized ())
+ 		bonobo_activation_preinit (program, mod_info);
+ }
+diff --git a/libgnome/gnome-program.c b/libgnome/gnome-program.c
+index 739765e..cd14999 100644
+--- a/libgnome/gnome-program.c
++++ b/libgnome/gnome-program.c
+@@ -1878,10 +1878,6 @@ gnome_program_init (const char *app_id, const char *app_version,
+     GnomeProgram *program;
+     va_list args;
+ 
+-    /* g_thread_init() has to be the first GLib function called ever */
+-    if (!g_threads_got_initialized)
+-        g_thread_init (NULL);
+-
+     g_type_init ();
+ 
+     va_start(args, first_property_name);