Jiri Moskovcak 5b8372
From ecfc461fd979aeb2d3ce4b9d811e4bf4a7730532 Mon Sep 17 00:00:00 2001
Jiri Moskovcak 5b8372
From: Jiri Moskovcak <jmoskovc@redhat.com>
Jiri Moskovcak 5b8372
Date: Sat, 5 Nov 2011 18:04:54 +0100
Jiri Moskovcak 5b8372
Subject: [PATCH 3/3] - glib 2.31 build fixes
Jiri Moskovcak 5b8372
Jiri Moskovcak 5b8372
---
Jiri Moskovcak 5b8372
 src/applet/applet.c |   14 +++++++++++++-
Jiri Moskovcak 5b8372
 src/gui-gtk/main.c  |    4 ++--
Jiri Moskovcak 5b8372
 2 files changed, 15 insertions(+), 3 deletions(-)
Jiri Moskovcak 5b8372
Jiri Moskovcak 5b8372
diff --git a/src/applet/applet.c b/src/applet/applet.c
Jiri Moskovcak 5b8372
index 95b7091..bead61f 100644
Jiri Moskovcak 5b8372
--- a/src/applet/applet.c
Jiri Moskovcak 5b8372
+++ b/src/applet/applet.c
Jiri Moskovcak 5b8372
@@ -766,10 +766,20 @@ int main(int argc, char** argv)
Jiri Moskovcak 5b8372
     textdomain(PACKAGE);
Jiri Moskovcak 5b8372
 #endif
Jiri Moskovcak 5b8372
 
Jiri Moskovcak 5b8372
+  /* Glib 2.31:
Jiri Moskovcak 5b8372
+    * Major changes to threading and synchronisation
Jiri Moskovcak 5b8372
+     - threading is now always enabled in GLib
Jiri Moskovcak 5b8372
+     - support for custom thread implementations (including our own internal
Jiri Moskovcak 5b8372
+     - support for errorcheck mutexes) has been removed
Jiri Moskovcak 5b8372
+  */
Jiri Moskovcak 5b8372
+#if (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION < 31)
Jiri Moskovcak 5b8372
+    //can't use log(), because g_verbose is not set yet
Jiri Moskovcak 5b8372
+    g_print("abrt-applet: glib < 2.31 - init threading\n");
Jiri Moskovcak 5b8372
     /* Need to be thread safe */
Jiri Moskovcak 5b8372
     g_thread_init(NULL);
Jiri Moskovcak 5b8372
     gdk_threads_init();
Jiri Moskovcak 5b8372
     gdk_threads_enter();
Jiri Moskovcak 5b8372
+#endif
Jiri Moskovcak 5b8372
 
Jiri Moskovcak 5b8372
     gtk_init(&argc, &argv);
Jiri Moskovcak 5b8372
 
Jiri Moskovcak 5b8372
@@ -869,8 +879,10 @@ int main(int argc, char** argv)
Jiri Moskovcak 5b8372
 
Jiri Moskovcak 5b8372
     /* Enter main loop */
Jiri Moskovcak 5b8372
     gtk_main();
Jiri Moskovcak 5b8372
-
Jiri Moskovcak 5b8372
+#if (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION < 31)
Jiri Moskovcak 5b8372
     gdk_threads_leave();
Jiri Moskovcak 5b8372
+#endif
Jiri Moskovcak 5b8372
+
Jiri Moskovcak 5b8372
     if (notify_is_initted())
Jiri Moskovcak 5b8372
         notify_uninit();
Jiri Moskovcak 5b8372
 
Jiri Moskovcak 5b8372
diff --git a/src/gui-gtk/main.c b/src/gui-gtk/main.c
Jiri Moskovcak 5b8372
index b31509b..a24745a 100644
Jiri Moskovcak 5b8372
--- a/src/gui-gtk/main.c
Jiri Moskovcak 5b8372
+++ b/src/gui-gtk/main.c
Jiri Moskovcak 5b8372
@@ -912,7 +912,7 @@ static gboolean handle_signal_pipe(GIOChannel *gio, GIOCondition condition, gpoi
Jiri Moskovcak 5b8372
      */
Jiri Moskovcak 5b8372
     gchar buf[16];
Jiri Moskovcak 5b8372
     gsize bytes_read;
Jiri Moskovcak 5b8372
-    g_io_channel_read(gio, buf, sizeof(buf), &bytes_read);
Jiri Moskovcak 5b8372
+    g_io_channel_read_chars(gio, buf, sizeof(buf), &bytes_read, NULL);
Jiri Moskovcak 5b8372
 
Jiri Moskovcak 5b8372
     /* Destroy zombies */
Jiri Moskovcak 5b8372
     while (safe_waitpid(-1, NULL, WNOHANG) > 0)
Jiri Moskovcak 5b8372
@@ -975,7 +975,7 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin
Jiri Moskovcak 5b8372
     /* We read inotify events, but don't analyze them */
Jiri Moskovcak 5b8372
     gchar buf[sizeof(struct inotify_event) + PATH_MAX + 64];
Jiri Moskovcak 5b8372
     gsize bytes_read;
Jiri Moskovcak 5b8372
-    while (g_io_channel_read(gio, buf, sizeof(buf), &bytes_read) == G_IO_ERROR_NONE
Jiri Moskovcak 5b8372
+    while (g_io_channel_read_chars(gio, buf, sizeof(buf), &bytes_read, NULL) == G_IO_STATUS_NORMAL
Jiri Moskovcak 5b8372
         && bytes_read > 0
Jiri Moskovcak 5b8372
     ) {
Jiri Moskovcak 5b8372
         continue;
Jiri Moskovcak 5b8372
-- 
Jiri Moskovcak 5b8372
1.7.7
Jiri Moskovcak 5b8372