# ChangeLog for gnome-base/gnome-session
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-session/ChangeLog,v 1.295 2011/08/19 12:07:06 nirbheek Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-session/ChangeLog,v 1.296 2011/09/12 10:01:54 pacho Exp $
+
+*gnome-session-2.32.1-r3 (12 Sep 2011)
+
+ 12 Sep 2011; Pacho Ramos <pacho@gentoo.org> -gnome-session-2.32.1.ebuild,
+ +gnome-session-2.32.1-r3.ebuild,
+ +files/gnome-session-2.32.1-dialog-size.patch,
+ +files/gnome-session-2.32.1-dialog-size2.patch,
+ +files/gnome-session-2.32.1-gsettings-conditions.patch,
+ +files/gnome-session-2.32.1-idle-transition.patch:
+ Also support Gsettings conditions to work with latest libcanberra, fix race
+ condition in idle monitor, fix dialog size, pull in x11-misc/xdg-user-dirs
+ stuff as done in gnome-session-3. Remove old.
19 Aug 2011; Nirbheek Chauhan <nirbheek@gentoo.org>
gnome-session-3.0.2.ebuild:
AUX Gnome 2391 RMD160 dee0875327352ae70f71b73257deb8ccc5bbc3ba SHA1 9d6f5c7c4f7aee36ea64b30c57b9cb9818664c42 SHA256 ffc912945278c88ef854c8988b0042675ffa78525592f34580ee76c1f25309d3
AUX defaults.list 14505 RMD160 1e15a5166728493f21987b530fafcae735a47a3c SHA1 927a883d98b7dbbed75f4480c284e0b0431ab000 SHA256 efe30d8f5be448661870fec6a5e49ae98ecfb73f06ee4ab0926990cb15223354
AUX gnome-session-2.32.0-session-saving-button.patch 21424 RMD160 11c4db9951859c2749473a7969693469c9d9e277 SHA1 f7c2f8d98c6deac63ca9448977bdcfa29ae80d52 SHA256 7a2dd8771180bc460fdc034ad95d61ed83b14952b16b17c3cb9a10aade8a1a97
+AUX gnome-session-2.32.1-dialog-size.patch 953 RMD160 436ac050715db19af87eb677e8a652e47f397ead SHA1 a4bf898f8c85b6870c61ddbd83816f7726e9fe5d SHA256 8f96daba40ae19223d54aa271f79e0a6541e4c936771815a4599077533c6948b
+AUX gnome-session-2.32.1-dialog-size2.patch 1114 RMD160 bd9587678b2bf4dffab7959b1377d5b9856cb22b SHA1 26702bba164b816dd34c53ad9669b6734c21c959 SHA256 fefa53adb80c531fecc4fa4e67f5faff7ee5cfd33a290c689dca9f2267525f6e
AUX gnome-session-2.32.1-gnome3-conditions.patch 4552 RMD160 429b39d3338fb26eb96c94d4087579c5620393b3 SHA1 d96cd45515d484c6d82fe135b5b678349850490b SHA256 88482711f19399b766ed562c43511d8a6db1e1df2790945cd1819d7f616af42e
+AUX gnome-session-2.32.1-gsettings-conditions.patch 5085 RMD160 257d3bd04034abad8e638d71ddf63226883ede4c SHA1 5e1d577e89b79ec252aafe99beb56deca388f4fb SHA256 a57d614d533a54d0d3c186d521c53caad7150d4dc19863b9171472b1a48c01b0
+AUX gnome-session-2.32.1-idle-transition.patch 1802 RMD160 aec519f8b0bfff589c079d365dbdf134333f4f69 SHA1 67bcb498be8410c3ea3f0bdfc0bc42a880827208 SHA256 6e80574672ff9e4b9a63796959d1e83af0f184eb4ad507bcbe6589c364b63038
DIST gnome-session-2.32.1.tar.bz2 774842 RMD160 c579bf197b38c8df7df14c751c056be86695a287 SHA1 7d4c7652247606a972a2f1e50a6a6339809a5b9e SHA256 22d93ce433fcf9c7ce6b5f36dd81f64e692ea0e41faaa0f61159ddac28c3686a
DIST gnome-session-3.0.2.tar.bz2 805690 RMD160 58268528a627ffe9be96e8d168ea278b98c5e693 SHA1 5559a71ef3134f3aaa48b7f06e2123714f71756f SHA256 4801a0cfdf351a1184780cc1c2bdd5cea6cd1ad31505d5fa8de4e56aa766ab96
EBUILD gnome-session-2.32.1-r2.ebuild 2181 RMD160 62ce137f70d6fabe0531cc10c8e5a66b884edafc SHA1 29e676cd69295adca01f209f7ed751a3690d1445 SHA256 1a0b4219a56f9e944d7badbc96769cc474058a7fc521b7a787060c72caf54c4f
-EBUILD gnome-session-2.32.1.ebuild 1818 RMD160 801e7c83e5964ca0fd1f377a2df4f65964c726e4 SHA1 dc5dfce1084b891237b290608d5f81551b139cbf SHA256 65381314484779e4b4391a72f896ab49a35396048f641bab49ea8b99f5aef459
+EBUILD gnome-session-2.32.1-r3.ebuild 2883 RMD160 695d2f1b4f3b341fc6b741bcd7edf06e4b6a4221 SHA1 6c9f03bd143d0f39ffd2be36b5acc80b38fec904 SHA256 784b3a46f5626a230d5247e19b36d0124d2e6cc01e46fa7052247e5efce6cb54
EBUILD gnome-session-3.0.2.ebuild 3008 RMD160 90605703cc0e6a6e83987714de0e9a53efb93658 SHA1 be7a5ea68af2605fc2cfafc1efd13a7e19294f6d SHA256 3ddabe923a9abd8bddcfef5a807f92532337cca125531f2b686f7aec051323bf
-MISC ChangeLog 42593 RMD160 b76ede6ca8185185b08c6dc6b8223712a4259345 SHA1 9a545d9c14a040406ae04c6cf785f6b2a475a795 SHA256 4fb34b9da5a62bc92f1f4337e044cdf8edf690150b8ef5f032bde0f18f7979ab
+MISC ChangeLog 43155 RMD160 ba1da7cbafe72874c39b6fc328582d7c3ad2af1a SHA1 ef08eddf30b3d53ba9fbe67097c67f255185c018 SHA256 fa33d1e10d5fd393f4756549dd2ccdd7ef2e6a8b25a95d7958b0a87d6dab050a
MISC metadata.xml 158 RMD160 c0e2bae8e91bb6be8922bac5e4f597302e06587e SHA1 38f78e9790bcd4382b4a49aa226aa6dda1d3a3d7 SHA256 3a7dbca0fdc557de69783e0663e2d76ddab129ea8a19b2d0ef6d3e5d1b947ce1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)
-iQIcBAEBAgAGBQJOTlH4AAoJEO/kOhxWD91koogP/3vknbchat6MvWcpFrBlsWsH
-toup5uJx+JgUGct1VaHSrsclvyb6oyVgjWlR5DtC2fmU44mTa+BYxxG1cORSN8wZ
-pTBU49f6CFz1syrvfynx8bnJdGf+Hvt3Fq3iv4Rzcz0IagnTe6e6SkLtVEFpUXDD
-io4qa8u5GMYgYXOO5vj9277YVfOfG14zJl2NlZGCkhm1hxNM3ktV0U6CQP2e1oG3
-2PaXU8Kr6OAJzkxCol47NGQ9YYzY+gfINV3eC/AkOzPhorywEDHurP41jRHRSdHf
-joJXFoyM7V0JzaHSlEtd8y+e+SarhZFDd5AClhwKseY5u53FAiyc5dZqzE/yrLCT
-FZ82dQ+ogtv5kzJve0uLhgLC0VBld+kcq7h+JRrm0P6RPe0Noish7i5NeoScquHx
-sG8FR8dUazB61+gKNB9eQdqhW3u/T2l1BoK/LsX+V2Dvl6F9OPbvO0StNxPu3C4e
-shmY+MAgdzlR+pa9lILKmOSZ3Y5bMCJuuewzxCo56f/KOlF9MBRdu211niENpeEW
-ZaUVss1sAv9FDlMu1PLHpO/aNTdEVvkSjseZWsGDUvM19DyPya5COQHvPE3ZL3Xm
-Aa0S24bQ2G9h2SufCwH8Pejw5omWQAQe3seY6HiY/q2UwVcx9Vq9h6S3AHDccvgy
-Zgs6EwLj6jFKZgMLJBZD
-=8k9x
+iEYEARECAAYFAk5t2JgACgkQCaWpQKGI+9RLcwCdETRgywLUFl4A+tfJDrjy4HLq
+UoMAnRmNlOT2yEHXpoRykh1qJu+7v/2X
+=no22
-----END PGP SIGNATURE-----
--- /dev/null
+From 8c4cdd5304929d19a27f876eb9cb5bbb67a4d59f Mon Sep 17 00:00:00 2001
+From: Vincent Untz <vuntz@gnome.org>
+Date: Mon, 29 Nov 2010 21:44:03 +0000
+Subject: capplet: Give the dialog a reasonable default height
+
+https://bugzilla.gnome.org/show_bug.cgi?id=635891
+---
+diff --git a/capplet/gsm-properties-dialog.c b/capplet/gsm-properties-dialog.c
+index 4432b09..8b51169 100644
+--- a/capplet/gsm-properties-dialog.c
++++ b/capplet/gsm-properties-dialog.c
+@@ -784,6 +784,7 @@ gsm_properties_dialog_init (GsmPropertiesDialog *dialog)
+ "main-notebook"));
+ gtk_box_pack_start (GTK_BOX (content_area), widget, TRUE, TRUE, 0);
+
++ gtk_window_set_default_size (GTK_WINDOW (dialog), -1, 450);
+ gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE);
+ gtk_container_set_border_width (GTK_CONTAINER (dialog), 6);
+ gtk_box_set_spacing (GTK_BOX (content_area), 2);
+--
+cgit v0.9.0.2
--- /dev/null
+From 6fd301895a39fc32f302ea3fced74fc03e5c75c9 Mon Sep 17 00:00:00 2001
+From: Vincent Untz <vuntz@gnome.org>
+Date: Mon, 29 Nov 2010 21:47:00 +0000
+Subject: capplet: Also give the dialog a reasonable width
+
+We don't want to depend on the natural size, which depends on the length
+of strings for this.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=635891
+---
+diff --git a/capplet/gsm-properties-dialog.c b/capplet/gsm-properties-dialog.c
+index 8b51169..487250e 100644
+--- a/capplet/gsm-properties-dialog.c
++++ b/capplet/gsm-properties-dialog.c
+@@ -784,7 +784,7 @@ gsm_properties_dialog_init (GsmPropertiesDialog *dialog)
+ "main-notebook"));
+ gtk_box_pack_start (GTK_BOX (content_area), widget, TRUE, TRUE, 0);
+
+- gtk_window_set_default_size (GTK_WINDOW (dialog), -1, 450);
++ gtk_window_set_default_size (GTK_WINDOW (dialog), 600, 450);
+ gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE);
+ gtk_container_set_border_width (GTK_CONTAINER (dialog), 6);
+ gtk_box_set_spacing (GTK_BOX (content_area), 2);
+--
+cgit v0.9.0.2
--- /dev/null
+--- gnome-session/gsm-autostart-app.c.old 2011-09-12 11:06:20.552420744 +0200
++++ gnome-session/gsm-autostart-app.c 2011-09-12 11:18:39.934966203 +0200
+@@ -66,6 +66,7 @@
+
+ GFileMonitor *condition_monitor;
+ guint condition_notify_id;
++ GSettings *condition_settings;
+
+ int launch_type;
+ GPid pid;
+@@ -164,6 +165,8 @@
+ kind = GSM_CONDITION_UNLESS_EXISTS;
+ } else if (!g_ascii_strncasecmp (condition_string, "GNOME", len)) {
+ kind = GSM_CONDITION_GNOME;
++ } else if (!g_ascii_strncasecmp (condition_string, "GSettings", len)) {
++ kind = GSM_CONDITION_GSETTINGS;
+ } else if (!g_ascii_strncasecmp (condition_string, "GNOME3", len)) {
+ condition_string = key;
+ space = condition_string + strcspn (condition_string, " ");
+@@ -289,6 +292,81 @@
+ }
+
+ static void
++gsettings_condition_cb (GSettings *settings,
++ const char *key,
++ gpointer user_data)
++{
++ GsmApp *app;
++ GsmAutostartAppPrivate *priv;
++ gboolean condition;
++
++ g_return_if_fail (GSM_IS_APP (user_data));
++
++ app = GSM_APP (user_data);
++
++ priv = GSM_AUTOSTART_APP (app)->priv;
++
++ condition = g_settings_get_boolean (settings, key);
++
++ g_debug ("GsmAutostartApp: app:%s condition changed condition:%d",
++ gsm_app_peek_id (app),
++ condition);
++
++ /* Emit only if the condition actually changed */
++ if (condition != priv->condition) {
++ priv->condition = condition;
++ g_signal_emit (app, signals[CONDITION_CHANGED], 0, condition);
++ }
++}
++
++static gboolean
++setup_gsettings_condition_monitor (GsmAutostartApp *app,
++ const char *key)
++{
++ GSettings *settings;
++ const char * const *schemas;
++ char **elems;
++ gboolean schema_exists;
++ guint i;
++ gboolean retval;
++ char *signal;
++
++ elems = g_strsplit (key, " ", 2);
++ if (elems == NULL)
++ return FALSE;
++ if (elems[0] == NULL || elems[1] == NULL) {
++ g_strfreev (elems);
++ return FALSE;
++ }
++
++ schemas = g_settings_list_schemas ();
++ schema_exists = FALSE;
++ for (i = 0; schemas[i] != NULL; i++) {
++ if (g_str_equal (schemas[i], elems[0])) {
++ schema_exists = TRUE;
++ break;
++ }
++ }
++
++ if (schema_exists == FALSE)
++ return FALSE;
++
++ settings = g_settings_new (elems[0]);
++ retval = g_settings_get_boolean (settings, elems[1]);
++
++ signal = g_strdup_printf ("changed::%s", elems[1]);
++ g_signal_connect (G_OBJECT (settings), signal,
++ G_CALLBACK (gsettings_condition_cb), app);
++ g_free (signal);
++
++ app->priv->condition_settings = settings;
++
++ g_strfreev (elems);
++
++ return retval;
++}
++
++static void
+ setup_condition_monitor (GsmAutostartApp *app)
+ {
+ guint kind;
+@@ -383,6 +461,8 @@
+ gconf_condition_cb,
+ app, NULL, NULL);
+ g_object_unref (client);
++ } else if (kind == GSM_CONDITION_GSETTINGS) {
++ disabled = !setup_gsettings_condition_monitor (app, key);
+ } else if (kind == GSM_CONDITION_IF_SESSION) {
+ /* We treat GNOME 2.32 as the same as gnome-fallback */
+ disabled = strcmp ("gnome-fallback", key) != 0;
+@@ -578,6 +658,11 @@
+ priv->condition_string = NULL;
+ }
+
++ if (priv->condition_settings) {
++ g_object_unref (priv->condition_settings);
++ priv->condition_settings = NULL;
++ }
++
+ if (priv->desktop_file) {
+ egg_desktop_file_free (priv->desktop_file);
+ priv->desktop_file = NULL;
+@@ -672,6 +757,12 @@
+ g_assert (GCONF_IS_CLIENT (client));
+ disabled = !gconf_client_get_bool (client, key, NULL);
+ g_object_unref (client);
++ } else if (kind == GSM_CONDITION_GSETTINGS &&
++ priv->condition_settings != NULL) {
++ char **elems;
++ elems = g_strsplit (key, " ", 2);
++ disabled = !g_settings_get_boolean (priv->condition_settings, elems[1]);
++ g_strfreev (elems);
+ } else if (kind == GSM_CONDITION_IF_SESSION) {
+ /* We treat GNOME 2.32 as the same as gnome-fallback */
+ disabled = strcmp ("gnome-fallback", key) != 0;
--- /dev/null
+From 861313503a741f0129611ca005cf6d7c27124b54 Mon Sep 17 00:00:00 2001
+From: Christopher Halse Rogers <chalserogers@gmail.com>
+Date: Thu, 26 May 2011 09:09:14 +0000
+Subject: gsm: Fix race condition in idle monitor
+
+In _xsync_alarm_set(), the positive and negative transition intervals
+are set to the same value. However, the SYNC extension defines the
+positive transition as set when the counter goes from strictly below the
+threshold to greater than or equal to the threshold and similarly a
+negative transition is triggered when the counter goes form strictly
+greater than the threshold to less than or equal to the threshold.
+
+Thus in the current set up there's a chance that the positive transition
+can trigger, marking the session as idle, and some user input occur on
+the same click so the IDLETIME count will hit the threshold but not go
+above so the negative transition will not trigger. Thus the session will
+not be marked as active.
+
+The negative transition threshold should be set to 1ms less than the
+positive transition to ensure that it always fires.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=627903
+---
+diff --git a/gnome-session/gs-idle-monitor.c b/gnome-session/gs-idle-monitor.c
+index cd38dcb..d25144f 100644
+--- a/gnome-session/gs-idle-monitor.c
++++ b/gnome-session/gs-idle-monitor.c
+@@ -463,6 +463,7 @@ _xsync_alarm_set (GSIdleMonitor *monitor,
+ watch->xalarm_positive = XSyncCreateAlarm (monitor->priv->display, flags, &attr);
+ }
+
++ attr.trigger.wait_value = _int64_to_xsyncvalue (_xsyncvalue_to_int64 (watch->interval) - 1);
+ attr.trigger.test_type = XSyncNegativeTransition;
+ if (watch->xalarm_negative != None) {
+ g_debug ("GSIdleMonitor: updating alarm for negative transition wait=%lld",
+--
+cgit v0.9.0.2
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-session/gnome-session-2.32.1.ebuild,v 1.11 2011/03/22 19:11:59 ranger Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gnome-session/gnome-session-2.32.1-r3.ebuild,v 1.1 2011/09/12 10:01:54 pacho Exp $
-EAPI="3"
+EAPI="4"
GCONF_DEBUG="yes"
+GNOME_TARBALL_SUFFIX="bz2"
inherit autotools eutils gnome2
LICENSE="GPL-2 LGPL-2 FDL-1.1"
SLOT="0"
-KEYWORDS="alpha amd64 arm ia64 ppc ppc64 sparc x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-solaris"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~x86-solaris"
IUSE="doc ipv6 elibc_FreeBSD"
+# x11-misc/xdg-user-dirs{,-gtk} are needed to create the various XDG_*_DIRs, and
+# create .config/user-dirs.dirs which is read by glib to get G_USER_DIRECTORY_*
+# xdg-user-dirs-update is run during login (see 10-user-dirs-update below).
RDEPEND=">=dev-libs/glib-2.16:2
>=x11-libs/gtk+-2.22.0:2
>=dev-libs/dbus-glib-0.76
x11-libs/libX11
x11-libs/libXext
x11-libs/libXtst
- x11-apps/xdpyinfo"
+ x11-apps/xdpyinfo
+
+ x11-misc/xdg-user-dirs
+ x11-misc/xdg-user-dirs-gtk"
DEPEND="${RDEPEND}
>=dev-lang/perl-5
>=sys-devel/gettext-0.10.40
# Add "session saving" button back, upstream bug #575544
epatch "${FILESDIR}/${PN}-2.32.0-session-saving-button.patch"
+ # Fix support for GNOME3 conditions, bug #XXXXXX
+ epatch "${FILESDIR}/${PN}-2.32.1-gnome3-conditions.patch"
+
+ # Also support Gsettings conditions to work with libcanberra
+ epatch "${FILESDIR}/${PN}-2.32.1-gsettings-conditions.patch"
+
+ # gsm: Fix race condition in idle monitor
+ epatch "${FILESDIR}/${PN}-2.32.1-idle-transition.patch"
+
+ # Fix dialog size
+ epatch "${FILESDIR}/${PN}-2.32.1-dialog-size.patch"
+ epatch "${FILESDIR}/${PN}-2.32.1-dialog-size2.patch"
+
intltoolize --force --copy --automake || die "intltoolize failed"
eautoreconf
}
src_install() {
gnome2_src_install
- dodir /etc/X11/Sessions || die "dodir failed"
+ dodir /etc/X11/Sessions
exeinto /etc/X11/Sessions
- doexe "${FILESDIR}/Gnome" || die "doexe failed"
+ doexe "${FILESDIR}/Gnome"
+
+ dodir /usr/share/gnome/applications/
+ insinto /usr/share/gnome/applications/
+ doins "${FILESDIR}/defaults.list"
+
+ dodir /etc/X11/xinit/xinitrc.d/
+ exeinto /etc/X11/xinit/xinitrc.d/
+ doexe "${FILESDIR}/15-xdg-data-gnome"
+
+ # FIXME: this should be done by x11-misc/xdg-user-dirs
+ doexe "${FILESDIR}/10-user-dirs-update"
}