Also support Gsettings conditions to work with latest libcanberra, fix race condition...
authorPacho Ramos <pacho@gentoo.org>
Mon, 12 Sep 2011 10:01:54 +0000 (10:01 +0000)
committerPacho Ramos <pacho@gentoo.org>
Mon, 12 Sep 2011 10:01:54 +0000 (10:01 +0000)
Package-Manager: portage-2.1.10.14/cvs/Linux x86_64

gnome-base/gnome-session/ChangeLog
gnome-base/gnome-session/Manifest
gnome-base/gnome-session/files/gnome-session-2.32.1-dialog-size.patch [new file with mode: 0644]
gnome-base/gnome-session/files/gnome-session-2.32.1-dialog-size2.patch [new file with mode: 0644]
gnome-base/gnome-session/files/gnome-session-2.32.1-gsettings-conditions.patch [new file with mode: 0644]
gnome-base/gnome-session/files/gnome-session-2.32.1-idle-transition.patch [new file with mode: 0644]
gnome-base/gnome-session/gnome-session-2.32.1-r3.ebuild [moved from gnome-base/gnome-session/gnome-session-2.32.1.ebuild with 52% similarity]

index 0ec49255e81a0b57f4044501d39a37b9cd1db835..b052b0b5b640ee04d80827cb603b6f3744228227 100644 (file)
@@ -1,6 +1,18 @@
 # 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:
index b9826b97c99b987cad09f388d1eb701c542d9069..09dae26e5c29911ea9f38da22cc04b7581c9101c 100644 (file)
@@ -6,28 +6,22 @@ AUX 15-xdg-data-gnome 227 RMD160 b42bf6342d18a00fe38b49264ef8a43c8ce87af9 SHA1 a
 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-----
diff --git a/gnome-base/gnome-session/files/gnome-session-2.32.1-dialog-size.patch b/gnome-base/gnome-session/files/gnome-session-2.32.1-dialog-size.patch
new file mode 100644 (file)
index 0000000..c5cfceb
--- /dev/null
@@ -0,0 +1,21 @@
+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
diff --git a/gnome-base/gnome-session/files/gnome-session-2.32.1-dialog-size2.patch b/gnome-base/gnome-session/files/gnome-session-2.32.1-dialog-size2.patch
new file mode 100644 (file)
index 0000000..39a0280
--- /dev/null
@@ -0,0 +1,25 @@
+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
diff --git a/gnome-base/gnome-session/files/gnome-session-2.32.1-gsettings-conditions.patch b/gnome-base/gnome-session/files/gnome-session-2.32.1-gsettings-conditions.patch
new file mode 100644 (file)
index 0000000..9c27237
--- /dev/null
@@ -0,0 +1,135 @@
+--- 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;
diff --git a/gnome-base/gnome-session/files/gnome-session-2.32.1-idle-transition.patch b/gnome-base/gnome-session/files/gnome-session-2.32.1-idle-transition.patch
new file mode 100644 (file)
index 0000000..4fb2151
--- /dev/null
@@ -0,0 +1,37 @@
+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
similarity index 52%
rename from gnome-base/gnome-session/gnome-session-2.32.1.ebuild
rename to gnome-base/gnome-session/gnome-session-2.32.1-r3.ebuild
index fd4691c2a6f78572f86a17c0558d3fff56054b35..2e9424e5a04e40764e2fc2ccb024916d2c12daf5 100644 (file)
@@ -1,9 +1,10 @@
 # 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
 
@@ -12,10 +13,13 @@ HOMEPAGE="http://www.gnome.org/"
 
 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
@@ -28,7 +32,10 @@ RDEPEND=">=dev-libs/glib-2.16:2
        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
@@ -59,6 +66,19 @@ src_prepare() {
        # 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
 }
@@ -66,7 +86,18 @@ src_prepare() {
 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"
 }