From 05595ccae6456def62736a42dced9f90490858d3 Mon Sep 17 00:00:00 2001
From: "Daniel P. Berrange" <berrange@redhat.com>
Date: Thu, 1 Jan 1970 00:00:00 +0000
Subject: [PATCH] Update gtk to 2.14.2

---
 gtk2/compare.supp     |  2 ++
 gtk2/gail-leaks.patch | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 gtk2/info-leak.patch  | 17 +++++++++++++++++
 gtk2/mingw-gtk2.spec  | 16 ++++++++++++----
 4 files changed, 77 insertions(+), 4 deletions(-)
 create mode 100644 gtk2/gail-leaks.patch
 create mode 100644 gtk2/info-leak.patch

diff --git a/gtk2/compare.supp b/gtk2/compare.supp
index 22255eb..ec6fb7c 100644
--- a/gtk2/compare.supp
+++ b/gtk2/compare.supp
@@ -1,2 +1,4 @@
 missing source: 'update-gtk-immodules'
 missing source: 'update-gdk-pixbuf-loaders'
+missing patch 'workaround.patch'
+missing patch 'gtk+-2.13.5-lib64.patch'
diff --git a/gtk2/gail-leaks.patch b/gtk2/gail-leaks.patch
new file mode 100644
index 0000000..a368f76
--- /dev/null
+++ b/gtk2/gail-leaks.patch
@@ -0,0 +1,46 @@
+diff -up gtk+-2.14.2/modules/other/gail/gailcell.c.gail-leaks gtk+-2.14.2/modules/other/gail/gailcell.c
+--- gtk+-2.14.2/modules/other/gail/gailcell.c.gail-leaks	2008-09-19 00:55:50.000000000 -0400
++++ gtk+-2.14.2/modules/other/gail/gailcell.c	2008-09-19 00:56:24.000000000 -0400
+@@ -118,6 +118,7 @@ gail_cell_destroyed (GtkWidget       *wi
+    * GtkWidget. We set the  pointer location to NULL;
+    */
+   cell->widget = NULL;
++  g_signal_handlers_disconnect_by_func (widget, gail_cell_destroyed, cell);
+ }
+ 
+ static void
+diff -up gtk+-2.14.2/modules/other/gail/gailtreeview.c.gail-leaks gtk+-2.14.2/modules/other/gail/gailtreeview.c
+--- gtk+-2.14.2/modules/other/gail/gailtreeview.c.gail-leaks	2008-09-19 00:55:02.000000000 -0400
++++ gtk+-2.14.2/modules/other/gail/gailtreeview.c	2008-09-19 00:55:39.000000000 -0400
+@@ -3667,12 +3667,12 @@ static gboolean
+ garbage_collect_cell_data (gpointer data)
+ {
+       GailTreeView *tree_view;
+-      GList *temp_list;
++      GList *temp_list, *list;
+       GailTreeViewCellInfo *cell_info;
+ 
+       g_assert (GAIL_IS_TREE_VIEW (data));
+       tree_view = (GailTreeView *)data;
+-      temp_list = g_list_copy (tree_view->cell_data);
++      list = g_list_copy (tree_view->cell_data);
+ 
+       tree_view->garbage_collection_pending = FALSE;
+       if (tree_view->idle_garbage_collect_id != 0) 
+@@ -3682,6 +3682,7 @@ garbage_collect_cell_data (gpointer data
+       }
+ 
+       /* Must loop through them all */
++      temp_list = list;
+       while (temp_list != NULL)
+       {
+           cell_info = temp_list->data;
+@@ -3696,7 +3697,7 @@ garbage_collect_cell_data (gpointer data
+ 	  }
+           temp_list = temp_list->next;
+       }
+-      g_list_free (temp_list);
++      g_list_free (list);
+ 
+       return tree_view->garbage_collection_pending;
+ }
diff --git a/gtk2/info-leak.patch b/gtk2/info-leak.patch
new file mode 100644
index 0000000..b94106a
--- /dev/null
+++ b/gtk2/info-leak.patch
@@ -0,0 +1,17 @@
+diff -up gtk+-2.14.2/gdk-pixbuf/gdk-pixbuf-io.c.info-leak gtk+-2.14.2/gdk-pixbuf/gdk-pixbuf-io.c
+--- gtk+-2.14.2/gdk-pixbuf/gdk-pixbuf-io.c.info-leak	2008-09-18 14:34:02.000000000 -0400
++++ gtk+-2.14.2/gdk-pixbuf/gdk-pixbuf-io.c	2008-09-18 14:34:46.000000000 -0400
+@@ -688,9 +688,10 @@ gdk_pixbuf_load_module_unlocked (GdkPixb
+         if (fill_vtable) {
+ 		image_module->module = (void *) 1;
+                 (* fill_vtable) (image_module);
+-		image_module->info = g_new0 (GdkPixbufFormat, 1);
+-		(* fill_info) (image_module->info);
+-
++		if (image_module->info == NULL) {
++			image_module->info = g_new0 (GdkPixbufFormat, 1);
++			(* fill_info) (image_module->info);
++		}
+                 return TRUE;
+ 	}
+ 	else 
diff --git a/gtk2/mingw-gtk2.spec b/gtk2/mingw-gtk2.spec
index 16ece24..8c17f49 100644
--- a/gtk2/mingw-gtk2.spec
+++ b/gtk2/mingw-gtk2.spec
@@ -5,14 +5,17 @@
 %define __find_provides %{_mingw_findprovides}
 
 Name:           mingw-gtk2
-Version:        2.14.0
-Release:        5%{?dist}
+Version:        2.14.2
+Release:        1%{?dist}
 Summary:        MinGW Windows Gtk2 library
 
 License:        LGPLv2+
 Group:          Development/Libraries
 URL:            http://www.gtk.org
-Source0:        http://ftp.gnome.org/pub/GNOME/sources/gtk+/2.14/gtk+-%{version}.tar.bz2
+Source0:        http://download.gnome.org/sources/gtk+/2.14/gtk+-%{version}.tar.bz2
+Patch1:         gtk+-2.11.1-set-invisible-char-to-bullet.patch
+Patch2:         gail-leaks.patch
+Patch3:         info-leak.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildArch:      noarch
@@ -48,7 +51,9 @@ MinGW Windows Gtk2 library.
 
 %prep
 %setup -q -n gtk+-%{version}
-
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
 
 %build
 # Need to run the correct version of glib-mkenums.
@@ -126,6 +131,9 @@ rm -f %{_mingw_sysconfdir}/gtk-2.0/gdk-pixbuf.loaders
 
 
 %changelog
+* Mon Sep 22 2008 Daniel P. Berrange <berrange@redhat.com> - 2.14.2-1
+- Update to 2.14.2 release
+
 * Sun Sep 21 2008 Richard W.M. Jones <rjones@redhat.com> - 2.14.0-5
 - Remove manpages duplicating those in Fedora native packages.
 
-- 
1.8.3.1