Revision: 118243 https://trac.macports.org/changeset/118243 Author: devans@macports.org Date: 2014-03-26 20:29:11 -0700 (Wed, 26 Mar 2014) Log Message: ----------- GNOME-3/stable: rebuild dependents of json-glib due to library reversioning. Modified Paths: -------------- users/devans/GNOME-3/stable/dports/devel/zeitgeist/Portfile users/devans/GNOME-3/stable/dports/gnome/frogr/Portfile users/devans/GNOME-3/stable/dports/gnome/gfbgraph/Portfile users/devans/GNOME-3/stable/dports/gnome/libsocialweb/Portfile users/devans/GNOME-3/stable/dports/graphics/clutter/Portfile Added Paths: ----------- users/devans/GNOME-3/stable/dports/devel/zeitgeist/ users/devans/GNOME-3/stable/dports/gnome/frogr/ users/devans/GNOME-3/stable/dports/gnome/frogr/files/patch-configure.ac.diff users/devans/GNOME-3/stable/dports/gnome/gfbgraph/ users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/Portfile users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/Portfile-3.12.0 users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/files/ users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/files/patch-alarm.diff users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/files-3.12.0/ users/devans/GNOME-3/stable/dports/gnome/libsocialweb/ users/devans/GNOME-3/stable/dports/graphics/clutter/ Removed Paths: ------------- users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/Portfile-3.11.92 users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/files/ Property changes on: users/devans/GNOME-3/stable/dports/devel/zeitgeist ___________________________________________________________________ Added: svn:mergeinfo + /branches/mld-qt-481/dports/devel/zeitgeist:92720,92813,92891,92963,93522,93556,93699,93743,93771-93773,93806,93817-93818,93856 /users/cal/ports/devel/zeitgeist:96570-97031 Modified: users/devans/GNOME-3/stable/dports/devel/zeitgeist/Portfile =================================================================== --- trunk/dports/devel/zeitgeist/Portfile 2014-03-26 23:00:31 UTC (rev 118238) +++ users/devans/GNOME-3/stable/dports/devel/zeitgeist/Portfile 2014-03-27 03:29:11 UTC (rev 118243) @@ -5,7 +5,7 @@ name zeitgeist version 0.9.14 -revision 1 +revision 2 license LGPL-2.1 set branch [join [lrange [split ${version} .] 0 1] .] description Zeitgeist is a service which logs the users's activities and \ Property changes on: users/devans/GNOME-3/stable/dports/gnome/frogr ___________________________________________________________________ Added: svn:mergeinfo + /branches/mld-qt-481/dports/gnome/frogr:92720,92813,92891,92963,93522,93556,93699,93743,93771-93773,93806,93817-93818,93856 /users/rmstonecipher/gnome/frogr:102363-103172 Modified: users/devans/GNOME-3/stable/dports/gnome/frogr/Portfile =================================================================== --- trunk/dports/gnome/frogr/Portfile 2014-03-26 23:00:31 UTC (rev 118238) +++ users/devans/GNOME-3/stable/dports/gnome/frogr/Portfile 2014-03-27 03:29:11 UTC (rev 118243) @@ -5,6 +5,7 @@ name frogr version 0.9 +revision 1 license GPL-3 set branch [join [lrange [split ${version} .] 0 1] .] description Flickr Remote Organizer for GNOME. @@ -44,7 +45,8 @@ port:yelp \ port:epiphany -patchfiles patch-export-dynamic-Makefile.am.diff +patchfiles patch-configure.ac.diff \ + patch-export-dynamic-Makefile.am.diff # reconfigure with our intltool.m4 Added: users/devans/GNOME-3/stable/dports/gnome/frogr/files/patch-configure.ac.diff =================================================================== --- users/devans/GNOME-3/stable/dports/gnome/frogr/files/patch-configure.ac.diff (rev 0) +++ users/devans/GNOME-3/stable/dports/gnome/frogr/files/patch-configure.ac.diff 2014-03-27 03:29:11 UTC (rev 118243) @@ -0,0 +1,11 @@ +--- configure.ac.orig 2014-03-26 16:55:11.000000000 -0700 ++++ configure.ac 2014-03-26 16:55:29.000000000 -0700 +@@ -4,7 +4,7 @@ + AC_PROG_RANLIB + AC_CONFIG_HEADERS([config.h]) + IT_PROG_INTLTOOL([0.35.0]) +-YELP_HELP_INIT([3.1.1]) ++YELP_HELP_INIT + + # Support silent build rules, requires at least automake-1.11. Disable + # by either passing --disable-silent-rules to configure or passing V=1 Property changes on: users/devans/GNOME-3/stable/dports/gnome/gfbgraph ___________________________________________________________________ Added: svn:mergeinfo + /branches/mld-qt-481/dports/gnome/gfbgraph:92720,92813,92891,92963,93522,93556,93699,93743,93771-93773,93806,93817-93818,93856 /users/rmstonecipher/gnome/gfbgraph:102363-103172 Modified: users/devans/GNOME-3/stable/dports/gnome/gfbgraph/Portfile =================================================================== --- trunk/dports/gnome/gfbgraph/Portfile 2014-03-26 23:00:31 UTC (rev 118238) +++ users/devans/GNOME-3/stable/dports/gnome/gfbgraph/Portfile 2014-03-27 03:29:11 UTC (rev 118243) @@ -5,6 +5,7 @@ name gfbgraph version 0.2.2 +revision 1 license GPL-2.1 set branch [join [lrange [split ${version} .] 0 1] .] description A GObject library for Facebook Graph API. Added: users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/Portfile =================================================================== --- users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/Portfile (rev 0) +++ users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/Portfile 2014-03-27 03:29:11 UTC (rev 118243) @@ -0,0 +1,72 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4 +# $Id: Portfile 117360 2014-02-24 01:59:47Z devans@macports.org $ + +PortSystem 1.0 + +name gnome-online-accounts +version 3.8.5 +revision 1 +license LGPL-2 +set branch [join [lrange [split ${version} .] 0 1] .] +description Single sign-on framework for GNOME +long_description \ + ${description} +maintainers devans openmaintainer +categories gnome +platforms darwin +homepage https://wiki.gnome.org/Projects/GnomeOnlineAccounts +master_sites gnome:sources/${name}/${branch}/ + +use_xz yes + +checksums rmd160 21889d886fa262e536929ecb6905cfcd3f50a462 \ + sha256 34d6fbc33bda4c7bba8aa52343ebe1eb8afe1033097c10a2d9979c0a99593e5d + +depends_build port:pkgconfig \ + port:intltool \ + port:gtk-doc \ + port:gnome-common + +depends_lib port:gtk3 \ + path:lib/pkgconfig/webkitgtk-3.0.pc:webkit-gtk3 \ + port:libsoup \ + port:json-glib \ + port:rest \ + port:libsecret \ + port:libxml2 \ + port:gobject-introspection \ + port:gcr + +patchfiles patch-alarm.diff + +# autoreconf with MacPorts intltool.m4 + +use_autoreconf yes +autoreconf.args -fvi + +configure.cflags-append -Wno-format-nonliteral +configure.args --enable-introspection=yes + +# TODO: Check ${configure.cxx_stdlib} directly once MacPorts 2.3 is released +platform darwin { + set cxxstdlib {} + + if {[info exists configure.cxx_stdlib] && + ${configure.cxx_stdlib} ne {} && + [string match *clang* ${configure.cxx}]} { + set cxxstdlib ${configure.cxx_stdlib} + } elseif {[string match *clang* ${configure.cxx}] && + ${os.major} >= 13} { + set cxxstdlib libc++ + } else { + set cxxstdlib libstdc++ + } + + if {${cxxstdlib} eq "libstdc++"} { + depends_lib-delete path:lib/pkgconfig/webkitgtk-3.0.pc:webkit-gtk3 + depends_lib-append path:lib/pkgconfig/webkitgtk-3.0.pc:webkit-gtk3-2.0 + } +} + +livecheck.type gnome + Deleted: users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/Portfile-3.11.92 =================================================================== --- users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/Portfile-3.11.92 2014-03-27 03:21:22 UTC (rev 118242) +++ users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/Portfile-3.11.92 2014-03-27 03:29:11 UTC (rev 118243) @@ -1,73 +0,0 @@ -# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4 -# $Id: Portfile 116271 2014-01-23 17:32:19Z devans@macports.org $ - -PortSystem 1.0 - -name gnome-online-accounts -version 3.11.92 -license LGPL-2 -set branch [join [lrange [split ${version} .] 0 1] .] -description Single sign-on framework for GNOME -long_description \ - ${description} -maintainers devans openmaintainer -categories gnome -platforms darwin -homepage https://wiki.gnome.org/Projects/GnomeOnlineAccounts -master_sites gnome:sources/${name}/${branch}/ - -use_xz yes - -checksums rmd160 fe9ef1880ba7c3deea963b8fddb1d4d7cc4ec72c \ - sha256 013a2e6ee2b9896a5e61a9d045245363f165abef52d9301e0c60844e264bb6cc - -depends_build port:pkgconfig \ - port:intltool \ - port:gtk-doc - -depends_lib port:gtk3 \ - path:lib/pkgconfig/webkitgtk-3.0.pc:webkit-gtk3 \ - port:libsoup \ - port:json-glib \ - port:rest \ - port:libsecret \ - port:libxml2 \ - port:gobject-introspection \ - port:gcr \ - port:telepathy-glib - -#patchfiles patch-return-val-if-fail.diff - -# use upstream autogen.sh to update m4/intltool.m4 and telepathy-account-widgets/m4/intltool.m4 and reconfigure - -post-patch { - xinstall -m 755 ${filespath}/autogen.sh ${worksrcpath} -} - -configure.cmd ./autogen.sh - -configure.cflags-append -Wno-format-nonliteral -configure.args --enable-introspection=yes - -# TODO: Check ${configure.cxx_stdlib} directly once MacPorts 2.3 is released -platform darwin { - set cxxstdlib {} - - if {[info exists configure.cxx_stdlib] && - ${configure.cxx_stdlib} ne {} && - [string match *clang* ${configure.cxx}]} { - set cxxstdlib ${configure.cxx_stdlib} - } elseif {[string match *clang* ${configure.cxx}] && - ${os.major} >= 13} { - set cxxstdlib libc++ - } else { - set cxxstdlib libstdc++ - } - - if {${cxxstdlib} eq "libstdc++"} { - depends_lib-delete path:lib/pkgconfig/webkitgtk-3.0.pc:webkit-gtk3 - depends_lib-append path:lib/pkgconfig/webkitgtk-3.0.pc:webkit-gtk3-2.0 - } -} - -livecheck.type gnome-with-unstable Added: users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/Portfile-3.12.0 =================================================================== --- users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/Portfile-3.12.0 (rev 0) +++ users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/Portfile-3.12.0 2014-03-27 03:29:11 UTC (rev 118243) @@ -0,0 +1,73 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4 +# $Id: Portfile 116271 2014-01-23 17:32:19Z devans@macports.org $ + +PortSystem 1.0 + +name gnome-online-accounts +version 3.12.0 +license LGPL-2 +set branch [join [lrange [split ${version} .] 0 1] .] +description Single sign-on framework for GNOME +long_description \ + ${description} +maintainers devans openmaintainer +categories gnome +platforms darwin +homepage https://wiki.gnome.org/Projects/GnomeOnlineAccounts +master_sites gnome:sources/${name}/${branch}/ + +use_xz yes + +checksums rmd160 be68c2054eada0c3579ae4766161563df6bf0e71 \ + sha256 81d44afb3b993b7fb465d19b1b572db423bc7591e309f829d0639c802d7dfcc2 + +depends_build port:pkgconfig \ + port:intltool \ + port:gtk-doc + +depends_lib port:gtk3 \ + path:lib/pkgconfig/webkitgtk-3.0.pc:webkit-gtk3 \ + port:libsoup \ + port:json-glib \ + port:rest \ + port:libsecret \ + port:libxml2 \ + port:gobject-introspection \ + port:gcr \ + port:telepathy-glib + +#patchfiles patch-return-val-if-fail.diff + +# use upstream autogen.sh to update m4/intltool.m4 and telepathy-account-widgets/m4/intltool.m4 and reconfigure + +post-patch { + xinstall -m 755 ${filespath}/autogen.sh ${worksrcpath} +} + +configure.cmd ./autogen.sh + +configure.cflags-append -Wno-format-nonliteral +configure.args --enable-introspection=yes + +# TODO: Check ${configure.cxx_stdlib} directly once MacPorts 2.3 is released +platform darwin { + set cxxstdlib {} + + if {[info exists configure.cxx_stdlib] && + ${configure.cxx_stdlib} ne {} && + [string match *clang* ${configure.cxx}]} { + set cxxstdlib ${configure.cxx_stdlib} + } elseif {[string match *clang* ${configure.cxx}] && + ${os.major} >= 13} { + set cxxstdlib libc++ + } else { + set cxxstdlib libstdc++ + } + + if {${cxxstdlib} eq "libstdc++"} { + depends_lib-delete path:lib/pkgconfig/webkitgtk-3.0.pc:webkit-gtk3 + depends_lib-append path:lib/pkgconfig/webkitgtk-3.0.pc:webkit-gtk3-2.0 + } +} + +livecheck.type gnome Added: users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/files/patch-alarm.diff =================================================================== --- users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/files/patch-alarm.diff (rev 0) +++ users/devans/GNOME-3/stable/dports/gnome/gnome-online-accounts/files/patch-alarm.diff 2014-03-27 03:29:11 UTC (rev 118243) @@ -0,0 +1,539 @@ +From cd6ee762c3bfcd2d103f3ff50698032eb0fe6e91 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray <debarshir@gnome.org> +Date: Fri, 08 Nov 2013 17:33:49 +0000 +Subject: alarm: Do not clear the wrong objects when setting the time + +When the time is set using goa_alarm_set_time, we cancel the existing +self->priv->cancellable and replace it with a new one. Then we take a +reference to a new context and time. However, since when we cancelled +the old cancellable, we triggered a chain of events which cause +clear_scheduled_wakeups to be invoked from a idle callback. By the time +it gets invoked, self->priv->cancellable, self->priv->context and +self->priv->time point to the new objects that were set up in +goa_alarm_set_time, which we don't want to clear. + +Actually, there is no point in clearing them in +clear_scheduled_wakeups, because goa_alarm_set_time already clears up +the older objects and the only other time we want to clear them is in +dispose. + +Fixes: https://bugzilla.gnome.org/711696 +--- +diff --git a/src/goaidentity/goaalarm.c b/src/goaidentity/goaalarm.c +index 5f50243..112cb00 100644 +--- src/goaidentity/goaalarm.c ++++ src/goaidentity/goaalarm.c +@@ -151,15 +151,9 @@ clear_scheduled_wakeups (GoaAlarm *self) + break; + } + +- g_clear_object (&self->priv->cancellable); +- +- g_clear_pointer (&self->priv->context, (GDestroyNotify) g_main_context_unref); +- + g_clear_pointer (&self->priv->previous_wakeup_time, + (GDestroyNotify) g_date_time_unref); + +- g_clear_pointer (&self->priv->time, (GDestroyNotify) g_date_time_unref); +- + g_assert (self->priv->timeout.source == NULL); + + self->priv->type = GOA_ALARM_TYPE_UNSCHEDULED; +@@ -167,6 +161,18 @@ clear_scheduled_wakeups (GoaAlarm *self) + } + + static void ++goa_alarm_dispose (GObject *object) ++{ ++ GoaAlarm *self = GOA_ALARM (object); ++ ++ g_clear_object (&self->priv->cancellable); ++ g_clear_pointer (&self->priv->context, (GDestroyNotify) g_main_context_unref); ++ g_clear_pointer (&self->priv->time, (GDestroyNotify) g_date_time_unref); ++ ++ G_OBJECT_CLASS (goa_alarm_parent_class)->dispose (object); ++} ++ ++static void + goa_alarm_finalize (GObject *object) + { + GoaAlarm *self = GOA_ALARM (object); +@@ -223,6 +229,7 @@ goa_alarm_class_init (GoaAlarmClass *klass) + + object_class = G_OBJECT_CLASS (klass); + ++ object_class->dispose = goa_alarm_dispose; + object_class->finalize = goa_alarm_finalize; + object_class->get_property = goa_alarm_get_property; + object_class->set_property = goa_alarm_set_property; +@@ -637,6 +644,7 @@ goa_alarm_set_time (GoaAlarm *self, GDateTime *time, GCancellable *cancellable) + + self->priv->time = time; + ++ g_clear_pointer (&self->priv->context, (GDestroyNotify) g_main_context_unref); + self->priv->context = g_main_context_ref (g_main_context_default ()); + + schedule_wakeups (self); +-- +cgit v0.9.2 +From 5cbed5062f292a69fe1a514425ced1bd19589cbc Mon Sep 17 00:00:00 2001 +From: Debarshi Ray <debarshir@gnome.org> +Date: Fri, 08 Nov 2013 17:36:46 +0000 +Subject: alarm: The global default main context is always the same + +Fixes: https://bugzilla.gnome.org/711696 +--- +diff --git a/src/goaidentity/goaalarm.c b/src/goaidentity/goaalarm.c +index 112cb00..e51df73 100644 +--- src/goaidentity/goaalarm.c ++++ src/goaidentity/goaalarm.c +@@ -644,8 +644,8 @@ goa_alarm_set_time (GoaAlarm *self, GDateTime *time, GCancellable *cancellable) + + self->priv->time = time; + +- g_clear_pointer (&self->priv->context, (GDestroyNotify) g_main_context_unref); +- self->priv->context = g_main_context_ref (g_main_context_default ()); ++ if (self->priv->context == NULL) ++ self->priv->context = g_main_context_ref (g_main_context_default ()); + + schedule_wakeups (self); + +-- +cgit v0.9.2 +From 8d0d36ecd67f4e020965efb74373db4644008bef Mon Sep 17 00:00:00 2001 +From: Debarshi Ray <debarshir@gnome.org> +Date: Mon, 11 Nov 2013 10:51:42 +0000 +Subject: alarm: Use the same GSource pointer for TIMER and TIMEOUT alarms + +Simplifies the code so that it is easier to tag the "cancelled" +handler with the correct GSource and GInputStream (if any) that are to +be cleaned. + +Fixes: https://bugzilla.gnome.org/711696 +--- +diff --git a/src/goaidentity/goaalarm.c b/src/goaidentity/goaalarm.c +index e51df73..eccfa09 100644 +--- src/goaidentity/goaalarm.c ++++ src/goaidentity/goaalarm.c +@@ -1,6 +1,6 @@ + /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ + /* +- * Copyright (C) 2012 Red Hat, Inc. ++ * Copyright (C) 2012, 2013 Red Hat, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -39,17 +39,6 @@ + + #include "goalogging.h" + +-typedef struct +-{ +- GSource *source; +- GInputStream *stream; +-} Timer; +- +-typedef struct +-{ +- GSource *source; +-} Timeout; +- + #define MAX_TIMEOUT_INTERVAL (10 *1000) + + typedef enum +@@ -70,11 +59,8 @@ struct _GoaAlarmPrivate + GRecMutex lock; + + GoaAlarmType type; +- union +- { +- Timer timer; +- Timeout timeout; +- }; ++ GSource *scheduled_wakeup_source; ++ GInputStream *stream; /* NULL, unless using timerfd */ + }; + + enum +@@ -110,10 +96,10 @@ clear_scheduled_timer_wakeups (GoaAlarm *self) + GError *error; + gboolean is_closed; + +- g_clear_pointer (&self->priv->timer.source, (GDestroyNotify) g_source_destroy); ++ g_clear_pointer (&self->priv->scheduled_wakeup_source, (GDestroyNotify) g_source_destroy); + + error = NULL; +- is_closed = g_input_stream_close (self->priv->timer.stream, NULL, &error); ++ is_closed = g_input_stream_close (self->priv->stream, NULL, &error); + + if (!is_closed) + { +@@ -121,14 +107,14 @@ clear_scheduled_timer_wakeups (GoaAlarm *self) + g_error_free (error); + } + +- g_clear_object (&self->priv->timer.stream); ++ g_clear_object (&self->priv->stream); + #endif + } + + static void + clear_scheduled_timeout_wakeups (GoaAlarm *self) + { +- g_clear_pointer (&self->priv->timeout.source, (GDestroyNotify) g_source_destroy); ++ g_clear_pointer (&self->priv->scheduled_wakeup_source, (GDestroyNotify) g_source_destroy); + } + + static void +@@ -154,8 +140,6 @@ clear_scheduled_wakeups (GoaAlarm *self) + g_clear_pointer (&self->priv->previous_wakeup_time, + (GDestroyNotify) g_date_time_unref); + +- g_assert (self->priv->timeout.source == NULL); +- + self->priv->type = GOA_ALARM_TYPE_UNSCHEDULED; + g_rec_mutex_unlock (&self->priv->lock); + } +@@ -435,7 +419,7 @@ clear_timer_source (GTask *task) + GoaAlarm *self; + + self = g_task_get_source_object (task); +- self->priv->timer.source = NULL; ++ self->priv->scheduled_wakeup_source = NULL; + + g_object_unref (task); + } +@@ -480,19 +464,19 @@ schedule_wakeups_with_timerfd (GoaAlarm *self) + } + + self->priv->type = GOA_ALARM_TYPE_TIMER; +- self->priv->timer.stream = g_unix_input_stream_new (fd, TRUE); ++ self->priv->stream = g_unix_input_stream_new (fd, TRUE); + + task = g_task_new (self, self->priv->cancellable, NULL, NULL); + + source = + g_pollable_input_stream_create_source (G_POLLABLE_INPUT_STREAM +- (self->priv->timer.stream), ++ (self->priv->stream), + self->priv->cancellable); +- self->priv->timer.source = source; +- g_source_set_callback (self->priv->timer.source, ++ self->priv->scheduled_wakeup_source = source; ++ g_source_set_callback (self->priv->scheduled_wakeup_source, + (GSourceFunc) on_timer_source_ready, task, + (GDestroyNotify) clear_timer_source); +- g_source_attach (self->priv->timer.source, self->priv->context); ++ g_source_attach (self->priv->scheduled_wakeup_source, self->priv->context); + g_source_unref (source); + + return TRUE; +@@ -528,7 +512,7 @@ out: + static void + clear_timeout_source_pointer (GoaAlarm *self) + { +- self->priv->timeout.source = NULL; ++ self->priv->scheduled_wakeup_source = NULL; + } + + static void +@@ -556,13 +540,13 @@ schedule_wakeups_with_timeout_source (GoaAlarm *self) + + source = g_timeout_source_new (interval); + +- self->priv->timeout.source = source; +- g_source_set_callback (self->priv->timeout.source, ++ self->priv->scheduled_wakeup_source = source; ++ g_source_set_callback (self->priv->scheduled_wakeup_source, + (GSourceFunc) + on_timeout_source_ready, + self, (GDestroyNotify) clear_timeout_source_pointer); + +- g_source_attach (self->priv->timeout.source, self->priv->context); ++ g_source_attach (self->priv->scheduled_wakeup_source, self->priv->context); + g_source_unref (source); + } + +-- +cgit v0.9.2 +From b7deea49691d7a9c1f4b2c7acdf9b77f2d69fda4 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray <debarshir@gnome.org> +Date: Mon, 11 Nov 2013 12:11:28 +0000 +Subject: alarm: Tag the "cancelled" handler with the correct source and stream + +When a time is set using goa_alarm_set_time, we try to clear the older +source and stream by cancelling self->priv->cancellable. However, +before we have had a chance to actually clear them in an idle callback, +a new source and stream corresponding to the new time is set. This +causes the older source and stream to be leaked, and instead the newly +created objects are cleared. + +This is wrong. To set things right, we tag the cancelled handler with +the older source and stream before they are overwritten. + +Fixes: https://bugzilla.gnome.org/711696 +--- +diff --git a/src/goaidentity/goaalarm.c b/src/goaidentity/goaalarm.c +index eccfa09..442f275 100644 +--- src/goaidentity/goaalarm.c ++++ src/goaidentity/goaalarm.c +@@ -90,16 +90,16 @@ clear_scheduled_immediate_wakeup (GoaAlarm *self) + } + + static void +-clear_scheduled_timer_wakeups (GoaAlarm *self) ++clear_scheduled_timer_wakeups (GoaAlarm *self, GSource *source, GInputStream *stream) + { + #ifdef HAVE_TIMERFD + GError *error; + gboolean is_closed; + +- g_clear_pointer (&self->priv->scheduled_wakeup_source, (GDestroyNotify) g_source_destroy); ++ g_source_destroy (source); + + error = NULL; +- is_closed = g_input_stream_close (self->priv->stream, NULL, &error); ++ is_closed = g_input_stream_close (stream, NULL, &error); + + if (!is_closed) + { +@@ -107,18 +107,18 @@ clear_scheduled_timer_wakeups (GoaAlarm *self) + g_error_free (error); + } + +- g_clear_object (&self->priv->stream); ++ g_object_unref (stream); + #endif + } + + static void +-clear_scheduled_timeout_wakeups (GoaAlarm *self) ++clear_scheduled_timeout_wakeups (GoaAlarm *self, GSource *source) + { +- g_clear_pointer (&self->priv->scheduled_wakeup_source, (GDestroyNotify) g_source_destroy); ++ g_source_destroy (source); + } + + static void +-clear_scheduled_wakeups (GoaAlarm *self) ++clear_scheduled_wakeups (GoaAlarm *self, GSource *source, GInputStream *stream) + { + g_rec_mutex_lock (&self->priv->lock); + clear_scheduled_immediate_wakeup (self); +@@ -126,11 +126,11 @@ clear_scheduled_wakeups (GoaAlarm *self) + switch (self->priv->type) + { + case GOA_ALARM_TYPE_TIMER: +- clear_scheduled_timer_wakeups (self); ++ clear_scheduled_timer_wakeups (self, source, stream); + break; + + case GOA_ALARM_TYPE_TIMEOUT: +- clear_scheduled_timeout_wakeups (self); ++ clear_scheduled_timeout_wakeups (self, source); + break; + + default: +@@ -161,7 +161,7 @@ goa_alarm_finalize (GObject *object) + { + GoaAlarm *self = GOA_ALARM (object); + +- clear_scheduled_wakeups (self); ++ clear_scheduled_wakeups (self, self->priv->scheduled_wakeup_source, self->priv->stream); + + G_OBJECT_CLASS (goa_alarm_parent_class)->finalize (object); + } +@@ -250,9 +250,18 @@ goa_alarm_init (GoaAlarm *self) + static gboolean + async_alarm_cancel_idle_cb (gpointer user_data) + { +- GoaAlarm *self = user_data; ++ GoaAlarm *self; ++ GInputStream *stream; ++ GSource *source; ++ GTask *task = G_TASK (user_data); ++ gpointer task_data; + +- clear_scheduled_wakeups (self); ++ self = g_task_get_source_object (task); ++ source = (GSource *) g_object_get_data (G_OBJECT (task), "alarm-scheduled-wakeup-source"); ++ task_data = g_object_get_data (G_OBJECT (task), "alarm-stream"); ++ stream = (task_data == NULL) ? NULL : G_INPUT_STREAM (task_data); ++ ++ clear_scheduled_wakeups (self, source, stream); + return G_SOURCE_REMOVE; + } + +@@ -261,13 +270,25 @@ on_cancelled (GCancellable *cancellable, gpointer user_data) + { + GoaAlarm *self = GOA_ALARM (user_data); + GSource *idle_source; ++ GTask *task; + ++ task = g_task_new (self, NULL, NULL, NULL); ++ ++ g_object_set_data_full (G_OBJECT (task), ++ "alarm-scheduled-wakeup-source", ++ g_source_ref (self->priv->scheduled_wakeup_source), ++ (GDestroyNotify) g_source_unref); ++ ++ if (self->priv->stream != NULL) ++ g_object_set_data_full (G_OBJECT (task), "alarm-stream", g_object_ref (self->priv->stream), g_object_unref); + + idle_source = g_idle_source_new (); + g_source_set_priority (idle_source, G_PRIORITY_HIGH_IDLE); +- g_source_set_callback (idle_source, async_alarm_cancel_idle_cb, g_object_ref (self), g_object_unref); ++ g_source_set_callback (idle_source, async_alarm_cancel_idle_cb, g_object_ref (task), g_object_unref); + g_source_attach (idle_source, self->priv->context); + g_source_unref (idle_source); ++ ++ g_object_unref (task); + } + + static void +@@ -412,17 +433,6 @@ out: + g_rec_mutex_unlock (&self->priv->lock); + return run_again; + } +- +-static void +-clear_timer_source (GTask *task) +-{ +- GoaAlarm *self; +- +- self = g_task_get_source_object (task); +- self->priv->scheduled_wakeup_source = NULL; +- +- g_object_unref (task); +-} + #endif + + static gboolean +@@ -475,7 +485,7 @@ schedule_wakeups_with_timerfd (GoaAlarm *self) + self->priv->scheduled_wakeup_source = source; + g_source_set_callback (self->priv->scheduled_wakeup_source, + (GSourceFunc) on_timer_source_ready, task, +- (GDestroyNotify) clear_timer_source); ++ (GDestroyNotify) g_object_unref); + g_source_attach (self->priv->scheduled_wakeup_source, self->priv->context); + g_source_unref (source); + +-- +cgit v0.9.2 +From 72e6d277de953b24e488a7b75464883a4abb5ca1 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray <debarshir@gnome.org> +Date: Mon, 11 Nov 2013 13:49:06 +0000 +Subject: alarm: Remove redundant preprocessor conditional + +Reading the rest of the code, it appears to me that the preprocessor +conditionals were meant to surpress compiler warnings and errors +caused by the lack of timerfd support. For the rest of the logic, +GoaAlarmType is used to separate the different kinds of timers. + +Fixes: https://bugzilla.gnome.org/711696 +--- +diff --git a/src/goaidentity/goaalarm.c b/src/goaidentity/goaalarm.c +index 442f275..9e0ab64 100644 +--- src/goaidentity/goaalarm.c ++++ src/goaidentity/goaalarm.c +@@ -92,7 +92,6 @@ clear_scheduled_immediate_wakeup (GoaAlarm *self) + static void + clear_scheduled_timer_wakeups (GoaAlarm *self, GSource *source, GInputStream *stream) + { +-#ifdef HAVE_TIMERFD + GError *error; + gboolean is_closed; + +@@ -108,7 +107,6 @@ clear_scheduled_timer_wakeups (GoaAlarm *self, GSource *source, GInputStream *st + } + + g_object_unref (stream); +-#endif + } + + static void +-- +cgit v0.9.2 +From c4f25c45758875a430af39663b3f8b81091320f1 Mon Sep 17 00:00:00 2001 +From: Debarshi Ray <debarshir@gnome.org> +Date: Tue, 12 Nov 2013 10:00:05 +0000 +Subject: alarm: Consolidate clear_scheduled_time*_wakeups into one function + +Since we are using the same GSource pointer for TIMER and TIMEOUT +alarms, there is no reason to continue having separate functions. + +Fixes: https://bugzilla.gnome.org/711696 +--- +diff --git a/src/goaidentity/goaalarm.c b/src/goaidentity/goaalarm.c +index 9e0ab64..ed805d7 100644 +--- src/goaidentity/goaalarm.c ++++ src/goaidentity/goaalarm.c +@@ -90,49 +90,31 @@ clear_scheduled_immediate_wakeup (GoaAlarm *self) + } + + static void +-clear_scheduled_timer_wakeups (GoaAlarm *self, GSource *source, GInputStream *stream) +-{ +- GError *error; +- gboolean is_closed; +- +- g_source_destroy (source); +- +- error = NULL; +- is_closed = g_input_stream_close (stream, NULL, &error); +- +- if (!is_closed) +- { +- goa_warning ("GoaAlarm: could not close timer stream: %s", error->message); +- g_error_free (error); +- } +- +- g_object_unref (stream); +-} +- +-static void +-clear_scheduled_timeout_wakeups (GoaAlarm *self, GSource *source) +-{ +- g_source_destroy (source); +-} +- +-static void + clear_scheduled_wakeups (GoaAlarm *self, GSource *source, GInputStream *stream) + { + g_rec_mutex_lock (&self->priv->lock); + clear_scheduled_immediate_wakeup (self); + +- switch (self->priv->type) ++ if (self->priv->type != GOA_ALARM_TYPE_UNSCHEDULED) + { +- case GOA_ALARM_TYPE_TIMER: +- clear_scheduled_timer_wakeups (self, source, stream); +- break; ++ g_source_destroy (source); + +- case GOA_ALARM_TYPE_TIMEOUT: +- clear_scheduled_timeout_wakeups (self, source); +- break; ++ if (stream != NULL) ++ { ++ GError *error; ++ gboolean is_closed; + +- default: +- break; ++ error = NULL; ++ is_closed = g_input_stream_close (stream, NULL, &error); ++ ++ if (!is_closed) ++ { ++ goa_warning ("GoaAlarm: could not close timer stream: %s", error->message); ++ g_error_free (error); ++ } ++ ++ g_object_unref (stream); ++ } + } + + g_clear_pointer (&self->priv->previous_wakeup_time, +-- +cgit v0.9.2 Property changes on: users/devans/GNOME-3/stable/dports/gnome/libsocialweb ___________________________________________________________________ Added: svn:mergeinfo + /branches/mld-qt-481/dports/gnome/libsocialweb:92720,92813,92891,92963,93522,93556,93699,93743,93771-93773,93806,93817-93818,93856 /users/rmstonecipher/gnome/libsocialweb:102363-103172 Modified: users/devans/GNOME-3/stable/dports/gnome/libsocialweb/Portfile =================================================================== --- trunk/dports/gnome/libsocialweb/Portfile 2014-03-26 23:00:31 UTC (rev 118238) +++ users/devans/GNOME-3/stable/dports/gnome/libsocialweb/Portfile 2014-03-27 03:29:11 UTC (rev 118243) @@ -5,6 +5,7 @@ name libsocialweb version 0.25.21 +revision 1 license LGPL-2.1 set branch [join [lrange [split ${version} .] 0 1] .] description A personal social data server. Modified: users/devans/GNOME-3/stable/dports/graphics/clutter/Portfile =================================================================== --- trunk/dports/graphics/clutter/Portfile 2014-03-26 23:00:31 UTC (rev 118238) +++ users/devans/GNOME-3/stable/dports/graphics/clutter/Portfile 2014-03-27 03:29:11 UTC (rev 118243) @@ -5,6 +5,7 @@ name clutter version 1.18.0 +revision 1 license LGPL-2.1 set branch [join [lrange [split ${version} .] 0 1] .] categories graphics
participants (1)
-
devans@macports.org