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