diff --git a/SOURCES/GCancellable_drop_lock_for_callback.patch b/SOURCES/GCancellable_drop_lock_for_callback.patch new file mode 100644 index 0000000..21c5256 --- /dev/null +++ b/SOURCES/GCancellable_drop_lock_for_callback.patch @@ -0,0 +1,43 @@ +From 44606b2e5219d114cfaae2c8fbc48c7fffb2a9c0 Mon Sep 17 00:00:00 2001 +From: Ryan Lortie +Date: Mon, 28 Oct 2013 11:44:16 -0700 +Subject: [PATCH] GCancellable: drop lock for callback during connect() + +Don't hold the lock when calling the user's callback during +g_cancellable_connect() for the case that the cancellable has already +fired. + +Taken from a patch by Alex Larsson. + +https://bugzilla.gnome.org/show_bug.cgi?id=705395 +--- + gio/gcancellable.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/gio/gcancellable.c b/gio/gcancellable.c +index fc56b87..2e52141 100644 +--- a/gio/gcancellable.c ++++ b/gio/gcancellable.c +@@ -557,6 +557,8 @@ g_cancellable_connect (GCancellable *cancellable, + void (*_callback) (GCancellable *cancellable, + gpointer user_data); + ++ g_mutex_unlock (&cancellable_mutex); ++ + _callback = (void *)callback; + id = 0; + +@@ -571,9 +573,10 @@ g_cancellable_connect (GCancellable *cancellable, + callback, data, + (GClosureNotify) data_destroy_func, + 0); ++ ++ g_mutex_unlock (&cancellable_mutex); + } + +- g_mutex_unlock (&cancellable_mutex); + + return id; + } +-- +1.8.3.1 \ No newline at end of file diff --git a/SOURCES/gmain_fix_double_unlock.patch b/SOURCES/gmain_fix_double_unlock.patch new file mode 100644 index 0000000..4c2ff69 --- /dev/null +++ b/SOURCES/gmain_fix_double_unlock.patch @@ -0,0 +1,38 @@ +From 0513c855cba69b96e4c9d2200719249a8a0c586e Mon Sep 17 00:00:00 2001 +From: Dan Winship +Date: Wed, 10 Apr 2013 11:39:12 -0400 +Subject: [PATCH] gmain: fix double-unlock in g_main_context_unref() + +When unreffing a context with sources still attached, it would end up +unlocking an already-unlocked context, causing crashes on platforms +that (unlike Linux) actually check for that. + +https://bugzilla.gnome.org/show_bug.cgi?id=697595 +--- + glib/gmain.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/glib/gmain.c b/glib/gmain.c +index 68a7f8e..d6037ba 100644 +--- a/glib/gmain.c ++++ b/glib/gmain.c +@@ -520,12 +520,16 @@ g_main_context_unref (GMainContext *context) + main_context_list = g_slist_remove (main_context_list, context); + G_UNLOCK (main_context_list); + ++ /* g_source_iter_next() assumes the context is locked. */ ++ LOCK_CONTEXT (context); + g_source_iter_init (&iter, context, TRUE); + while (g_source_iter_next (&iter, &source)) + { + source->context = NULL; +- g_source_destroy_internal (source, context, FALSE); ++ g_source_destroy_internal (source, context, TRUE); + } ++ UNLOCK_CONTEXT (context); ++ + for (sl_iter = context->source_lists; sl_iter; sl_iter = sl_iter->next) + { + list = sl_iter->data; +-- +1.8.1.4 \ No newline at end of file diff --git a/SPECS/glib2.spec b/SPECS/glib2.spec index c32ea27..f77c726 100644 --- a/SPECS/glib2.spec +++ b/SPECS/glib2.spec @@ -1,13 +1,15 @@ Summary: A library of handy utility functions Name: glib2 Version: 2.36.3 -Release: 2%{?dist} +Release: 5%{?dist} License: LGPLv2+ Group: System Environment/Libraries URL: http://www.gtk.org #VCS: git:git://git.gnome.org/glib Source: http://download.gnome.org/sources/glib/2.36/glib-%{version}.tar.xz Patch0: 0001-Revert-g_file_set_contents-don-t-fsync-on-ext3-4.patch +Patch1: GCancellable_drop_lock_for_callback.patch +Patch2: gmain_fix_double_unlock.patch BuildRequires: pkgconfig BuildRequires: gettext @@ -66,6 +68,8 @@ The glib2-fam package contains the FAM (File Alteration Monitor) module for GIO. %prep %setup -q -n glib-%{version} %patch0 -p1 +%patch1 -p1 +%patch2 -p1 autoreconf -i -f @@ -188,6 +192,18 @@ gio-querymodules-%{__isa_bits} %{_libdir}/gio/modules %{_libdir}/gio/modules/libgiofam.so %changelog +* Tue Feb 11 2014 Colin Walters - 2.36.3-5 +- Backport patch to fix gnome-shell lockups + Resolves: #1030601 +- Backport patch to fix vmtoolsd hangs + Resolves: #1063789 + +* Fri Jan 24 2014 Daniel Mach - 2.36.3-4 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 2.36.3-3 +- Mass rebuild 2013-12-27 + * Thu Jun 20 2013 Colin Walters - 2.36.3-2 - Backport patch from upstream to fix dconf corruption, among other failures. (#975521)