aboutsummaryrefslogtreecommitdiff
path: root/x11/gnome-session
diff options
context:
space:
mode:
authorJoe Marcus Clarke <marcus@FreeBSD.org>2007-03-19 05:14:07 +0000
committerJoe Marcus Clarke <marcus@FreeBSD.org>2007-03-19 05:14:07 +0000
commit951c257ea3655de6e80c26a36c18c69ee8047ea8 (patch)
tree249b59a23d9c6fae8db5e5639385f6273d237705 /x11/gnome-session
parent91926e92b73e3751382216a16044c5d8b24ad126 (diff)
downloadports-951c257ea3655de6e80c26a36c18c69ee8047ea8.tar.gz
ports-951c257ea3655de6e80c26a36c18c69ee8047ea8.zip
Presenting GNOME 2.18 for FreeBSD. GNOME 2.18 is a departure from recent GNOME
releases in that it focuses more on stability and functionality than on new features. Not that it doesn't have its share of new and exciting items. See http://www.gnome.org/start/2.18/ for all the goodies in this release. GNOME 2.18 for FreeBSD would not have been possible without the hard work of the FreeBSD GNOME Team and our intrepid band of testers including J. W. Ballantine, Pawel Worach, Yasuda Keisuke, Pascal Hofstee, miwi, Yoshihiro Ota, Vladimir Grebenschikov, Jukka A. Ukkonen, Phillip Neumann, Franz Klammer, and Neal Delmonico.
Notes
Notes: svn path=/head/; revision=187702
Diffstat (limited to 'x11/gnome-session')
-rw-r--r--x11/gnome-session/Makefile21
-rw-r--r--x11/gnome-session/distinfo12
-rw-r--r--x11/gnome-session/files/patch-data_Makefile.in20
-rw-r--r--x11/gnome-session/files/patch-dbus429
-rw-r--r--x11/gnome-session/files/patch-gnome-session_Makefile.in26
-rw-r--r--x11/gnome-session/files/patch-gnome-session_gsm-dbus.c35
-rw-r--r--x11/gnome-session/pkg-plist7
7 files changed, 78 insertions, 472 deletions
diff --git a/x11/gnome-session/Makefile b/x11/gnome-session/Makefile
index 0aecfac1bbd4..de1faae3983e 100644
--- a/x11/gnome-session/Makefile
+++ b/x11/gnome-session/Makefile
@@ -3,17 +3,16 @@
# Whom: Joe Marcus Clarke <marcus@FreeBSD.org>
#
# $FreeBSD$
-# $MCom: ports/x11/gnome-session/Makefile,v 1.96 2006/10/07 19:45:39 marcus Exp $
+# $MCom: ports/x11/gnome-session/Makefile,v 1.110 2007/03/18 20:55:55 marcus Exp $
#
PORTNAME= gnome-session
-PORTVERSION= 2.16.3
+PORTVERSION= 2.18.0
+PORTREVISION= 3
CATEGORIES= x11 gnome
MASTER_SITES= ${MASTER_SITE_GNOME} \
- ${MASTER_SITE_LOCAL:S/$/:local/} \
- http://people.FreeBSD.org/~adamw/images/gnome_splashes/2.12/:local
-MASTER_SITE_SUBDIR= sources/gnome-session/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/} \
- adamw/:local
+ http://www.marcuscom.com/downloads/:local
+MASTER_SITE_SUBDIR= sources/gnome-session/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
${SPLASHES}:local
DIST_SUBDIR= gnome2
@@ -27,6 +26,7 @@ LIB_DEPENDS= dbus-glib-1.2:${PORTSDIR}/devel/dbus-glib \
gnome-keyring.0:${PORTSDIR}/security/gnome-keyring
RUN_DEPENDS= ${LOCALBASE}/libexec/gnome-settings-daemon:${PORTSDIR}/sysutils/gnome-control-center
+INSTALLS_ICONS= yes
USE_GETTEXT= yes
USE_BZIP2= yes
USE_XLIB= yes
@@ -34,6 +34,7 @@ USE_GNOME= gnomeprefix gnomehack intlhack gnomedesktop
GNOME_DESKTOP_VERSION=2
USE_GMAKE= yes
GNU_CONFIGURE= yes
+CONFIGURE_ARGS= --mandir=${PREFIX}/man
CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include -I${X11BASE}/include" \
LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib"
@@ -42,18 +43,18 @@ MAN1= gnome-session.1 gnome-wm.1 session-properties.1 \
MAN5= default.session.5
GCONF_SCHEMAS= gnome-session.schemas
-SPLASHES= freebsd-splashes-gnome-2.12.1.tar
+SPLASHES= freebsd-splashes-gnome-2.18_1.tar
post-extract:
cd ${WRKDIR} && ${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/${SPLASHES}
post-install:
- ${INSTALL_DATA} ${WRKSRC}/gnome-session/gnome-splash.png \
+ ${INSTALL_DATA} ${WRKSRC}/data/gnome-splash.png \
${PREFIX}/share/gnome/pixmaps/splash/original-gnome-splash.png
# ${INSTALL_DATA} ${WRKDIR}/freebsd-splashes-gnome-2.12/domix-splash-2.12.png \
# ${PREFIX}/share/gnome/pixmaps/splash/gnome-splash.png
-.for splash in MaMBaNgGaoX-2.12.png adamw-piggy-2.12.png adamw-trophy-2.12.png andreas-slogan-2.12.png andreas-splash-2.12.png domix-splash-2.12.png domix-splash2-2.12.png mumija-2.12.png mumija2-2.12.png mumija3-2.12.png tremulant-2.12.png tremulant-blood-2.12.png tremulant-brushed-metal-2.12.png
- ${INSTALL_DATA} ${WRKDIR}/freebsd-splashes-gnome-2.12/${splash} \
+.for splash in MaMBaNgGaoX-2.12.png adamw-piggy-2.12.png adamw-trophy-2.12.png andreas-slogan-2.12.png andreas-splash-2.12.png domix-splash-2.12.png domix-splash2-2.12.png mumija-2.12.png mumija2-2.12.png mumija3-2.12.png tremulant-2.12.png tremulant-blood-2.12.png tremulant-brushed-metal-2.12.png franz-splash_218.png adamw-bat-2.18.jpg adamw-conky-2.18.png adamw-cow-2.18.png adamw-mouth-2.18.png adamw-swing-2.18.png
+ ${INSTALL_DATA} ${WRKDIR}/freebsd-splashes-gnome-2.18/${splash} \
${PREFIX}/share/gnome/pixmaps/splash
.endfor
diff --git a/x11/gnome-session/distinfo b/x11/gnome-session/distinfo
index b6f8d04ceab4..b4bcd8ea2c2a 100644
--- a/x11/gnome-session/distinfo
+++ b/x11/gnome-session/distinfo
@@ -1,6 +1,6 @@
-MD5 (gnome2/gnome-session-2.16.3.tar.bz2) = d35a7f541adecc112b7c73f95353a183
-SHA256 (gnome2/gnome-session-2.16.3.tar.bz2) = 00135b65275f17343bcfc25f37249d3f6449a3c9243f60b4cd4e3d6b4505b142
-SIZE (gnome2/gnome-session-2.16.3.tar.bz2) = 683140
-MD5 (gnome2/freebsd-splashes-gnome-2.12.1.tar) = 4a098f0f2295c3333acff185d4bed5aa
-SHA256 (gnome2/freebsd-splashes-gnome-2.12.1.tar) = c7008fc8f43cf07e3d84cbf0bd9b2846fa31aaf37d4f97993b185b4155f8ee27
-SIZE (gnome2/freebsd-splashes-gnome-2.12.1.tar) = 1280000
+MD5 (gnome2/gnome-session-2.18.0.tar.bz2) = 830dbabe74474da49018889d27eefaae
+SHA256 (gnome2/gnome-session-2.18.0.tar.bz2) = 4a1ce73fedcfae94673eeef2655937ff6c9ebc2f52ba817466659d2b583df330
+SIZE (gnome2/gnome-session-2.18.0.tar.bz2) = 707392
+MD5 (gnome2/freebsd-splashes-gnome-2.18_1.tar) = 80eb8c52fcf9fe977e0bf8ed48b85fe5
+SHA256 (gnome2/freebsd-splashes-gnome-2.18_1.tar) = fcca0f6eb759a4ef0211ecd61340f84ce8ad4d7493f725ac8613724faadbb508
+SIZE (gnome2/freebsd-splashes-gnome-2.18_1.tar) = 1630720
diff --git a/x11/gnome-session/files/patch-data_Makefile.in b/x11/gnome-session/files/patch-data_Makefile.in
new file mode 100644
index 000000000000..17d12d395c3b
--- /dev/null
+++ b/x11/gnome-session/files/patch-data_Makefile.in
@@ -0,0 +1,20 @@
+--- data/Makefile.in.orig Sun Jan 28 20:39:50 2007
++++ data/Makefile.in Sun Jan 28 20:41:03 2007
+@@ -253,7 +253,7 @@ sharedstatedir = @sharedstatedir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ SUBDIRS = icons
+-defaultdir = $(datadir)/gnome
++defaultdir = $(datadir)
+ default_in_files = default.session.in
+ default_DATA = $(default_in_files:.session.in=.session)
+ settingsdir = $(datadir)/applications
+@@ -271,7 +271,7 @@ EXTRA_DIST = \
+ session-properties.desktop.in
+
+ CLEANFILES = default.session gnome-session.schemas session-properties.desktop
+-all: all-recursive
++all: all-recursive default.session
+
+ .SUFFIXES:
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
diff --git a/x11/gnome-session/files/patch-dbus b/x11/gnome-session/files/patch-dbus
deleted file mode 100644
index e7982166670a..000000000000
--- a/x11/gnome-session/files/patch-dbus
+++ /dev/null
@@ -1,429 +0,0 @@
---- gnome-session/gsm-dbus.h.orig Sun Apr 23 23:01:47 2006
-+++ gnome-session/gsm-dbus.h Sun Apr 23 23:00:53 2006
-@@ -0,0 +1,27 @@
-+/* gsm-dbus.h - Handle the dbus-daemon process.
-+ *
-+ * Copyright (c) 2006 Julio M. Merino Vidal <jmmv@NetBSD.org>
-+ *
-+ * 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
-+ * the Free Software Foundation; either version 2, or (at your option)
-+ * any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-+ * 02111-1307, USA.
-+ */
-+
-+#ifndef GSM_DBUS_H
-+#define GSM_DBUS_H
-+
-+gboolean gsm_dbus_daemon_start (void);
-+void gsm_dbus_daemon_stop (void);
-+
-+#endif /* GSM_DBUS_H */
---- gnome-session/gsm-dbus.c.orig Sun Apr 23 23:09:40 2006
-+++ gnome-session/gsm-dbus.c Sun Apr 23 23:10:21 2006
-@@ -0,0 +1,360 @@
-+/* gsm-dbus.c - Handle the dbus-daemon process.
-+ *
-+ * Copyright (c) 2006 Julio M. Merino Vidal <jmmv@NetBSD.org>
-+ *
-+ * 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
-+ * the Free Software Foundation; either version 2, or (at your option)
-+ * any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-+ * 02111-1307, USA.
-+ */
-+
-+#if HAVE_CONFIG_H
-+#include "config.h"
-+#endif
-+
-+#include <sys/wait.h>
-+
-+#include <errno.h>
-+#include <fcntl.h>
-+#include <limits.h>
-+#include <signal.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+
-+#include <glib.h>
-+#include <glib/gprintf.h>
-+
-+#include "gsm-dbus.h"
-+
-+static pid_t dbus_daemon_pid = 0;
-+
-+static gboolean have_dbus_daemon (void);
-+static gboolean have_running_instance (void);
-+static int read_line (int, char *, ssize_t);
-+static void start_child (int, int);
-+static void start_parent (int, int, pid_t);
-+
-+/* ---------------------------------------------------------------------
-+ * PUBLIC INTERFACE
-+ * --------------------------------------------------------------------- */
-+
-+/*
-+ * Starts the dbus-daemon if not already running and attaches it to the
-+ * current environment by defining DBUS_SESSION_BUS_ADDRESS. Returns
-+ * true if we launch a new dbus-daemon so that we know if we have to call
-+ * gsm_dbus_daemon_stop later on or not.
-+ *
-+ * This function can only be called if dbus-daemon is not already running
-+ * (i.e., if gnome-session is starting up or if gsm_dbus_daemon_stop was
-+ * previously called).
-+ */
-+gboolean
-+gsm_dbus_daemon_start (void)
-+{
-+ int address_pipe[2];
-+ int pid_pipe[2];
-+ pid_t tmp_pid;
-+
-+ g_assert (dbus_daemon_pid == 0);
-+
-+ if (have_running_instance ())
-+ return FALSE;
-+ if (! have_dbus_daemon ())
-+ return FALSE;
-+
-+ /*
-+ * At this point, dbus-daemon is not running for the current session
-+ * and the binary exists. Spawn it.
-+ */
-+
-+ if (pipe (address_pipe) == -1)
-+ {
-+ g_printerr ("Cannot create address pipe for dbus-daemon\n");
-+ return FALSE;
-+ }
-+
-+ if (pipe (pid_pipe) == -1)
-+ {
-+ close (address_pipe[0]);
-+ close (address_pipe[1]);
-+ g_printerr ("Cannot create pid pipe for dbus-daemon\n");
-+ return FALSE;
-+ }
-+
-+ tmp_pid = fork ();
-+ if (tmp_pid == -1)
-+ {
-+ close (address_pipe[0]);
-+ close (address_pipe[1]);
-+ close (pid_pipe[0]);
-+ close (pid_pipe[1]);
-+ g_printerr ("Cannot create child process for dbus-daemon\n");
-+ return FALSE;
-+ }
-+ else if (tmp_pid == 0)
-+ {
-+ close (address_pipe[0]);
-+ close (pid_pipe[0]);
-+ start_child (address_pipe[1], pid_pipe[1]);
-+ /* NOTREACHED */
-+ }
-+ else
-+ {
-+ close (address_pipe[1]);
-+ close (pid_pipe[1]);
-+ start_parent (address_pipe[0], pid_pipe[0], tmp_pid);
-+ }
-+
-+ g_assert (dbus_daemon_pid != 0);
-+ return TRUE;
-+}
-+
-+/*
-+ * Stops the running dbus-daemon. Can only be called if we own the process;
-+ * i.e., if gsm_dbus_daemon_start returned true.
-+ */
-+void
-+gsm_dbus_daemon_stop (void)
-+{
-+ g_assert (dbus_daemon_pid != 0);
-+
-+ if (kill (dbus_daemon_pid, SIGTERM) == -1)
-+ g_printerr ("Failed to kill dbus-daemon (pid %d)\n",
-+ dbus_daemon_pid);
-+ else
-+ {
-+ dbus_daemon_pid = 0;
-+ g_unsetenv ("DBUS_SESSION_BUS_ADDRESS");
-+ }
-+}
-+
-+/* ---------------------------------------------------------------------
-+ * PRIVATE FUNCTIONS
-+ * --------------------------------------------------------------------- */
-+
-+/*
-+ * Check whether the dbus-daemon binary is in the path and raise an
-+ * appropriate error message if it is not.
-+ */
-+static gboolean
-+have_dbus_daemon (void)
-+{
-+ gboolean result;
-+ gchar *file_name;
-+
-+ file_name = g_find_program_in_path ("dbus-daemon");
-+ if (file_name == NULL)
-+ g_printerr ("Cannot locate dbus-daemon\n");
-+ result = file_name != NULL;
-+ g_free (file_name);
-+
-+ return result;
-+}
-+
-+/*
-+ * Check whether there is a dbus-daemon session instance currently running
-+ * (not spawned by us). If there is, do nothing and return TRUE.
-+ */
-+static gboolean
-+have_running_instance (void)
-+{
-+ const gchar *address_str;
-+
-+ g_assert (dbus_daemon_pid == 0);
-+
-+ address_str = g_getenv ("DBUS_SESSION_BUS_ADDRESS");
-+ return address_str != NULL;
-+}
-+
-+/*
-+ * Reads a single line from the given file descriptor and stores it in the
-+ * buffer pointed to by 'buf'.
-+ *
-+ * After finding the first new line character, the function returns. This
-+ * is to avoid reading dbus' pid multiple times from its file descriptor.
-+ */
-+static int
-+read_line (int fd, char *buf, ssize_t bufsize)
-+{
-+ gboolean discard, done;
-+ ssize_t bytes;
-+
-+ bytes = 0;
-+ discard = FALSE;
-+ done = FALSE;
-+ do
-+ {
-+ ssize_t i, result;
-+
-+ result = read (fd, &buf[bytes], bufsize - bytes);
-+ if (result < 0)
-+ return -1;
-+ else if (result > 0 && !discard)
-+ {
-+ if (bytes + result < bufsize)
-+ bytes += result;
-+ else
-+ bytes = bufsize - 1;
-+ }
-+ else
-+ done = TRUE;
-+
-+ for (i = 0; !discard && i < bytes; i++)
-+ if (buf[i] == '\n')
-+ {
-+ buf[i] = '\0';
-+ discard = TRUE;
-+ }
-+ }
-+ while (!done);
-+
-+ g_assert (bytes >= 0 && bytes < bufsize);
-+ buf[bytes] = '\0';
-+
-+ return bytes;
-+}
-+
-+/*
-+ * Code run by the child process after the fork to launch dbus-demon.
-+ *
-+ * As the child, this execs dbus-daemon, connecting it to the appropriate
-+ * file descriptors.
-+ */
-+static void
-+start_child (int address_fd, int pid_fd)
-+{
-+ gchar address_str[16];
-+ gchar pid_str[16];
-+ int fd;
-+ long open_max;
-+
-+ open_max = sysconf (_SC_OPEN_MAX);
-+ for (fd = 0; fd < open_max; fd++)
-+ {
-+ if (fd != STDIN_FILENO && fd != STDOUT_FILENO && fd != STDERR_FILENO &&
-+ fd != address_fd && fd != pid_fd)
-+ fcntl (fd, F_SETFD, FD_CLOEXEC);
-+ }
-+
-+ g_snprintf (address_str, sizeof (address_str), "%d", address_fd);
-+ g_snprintf (pid_str, sizeof (pid_str), "%d", pid_fd);
-+
-+ execlp ("dbus-daemon",
-+ "dbus-daemon",
-+ "--fork",
-+ "--print-address", address_str,
-+ "--print-pid", pid_str,
-+ "--session",
-+ NULL);
-+
-+ g_printerr ("Could not launch dbus-daemon\n");
-+
-+ exit (EXIT_FAILURE);
-+}
-+
-+/*
-+ * Code run by the parent process after the fork to launch dbus-demon.
-+ *
-+ * As the parent, this waits until dbus-daemon forks itself again and
-+ * fetches its address and pid to later take its ownership.
-+ */
-+static void
-+start_parent (int address_fd, int pid_fd, pid_t child)
-+{
-+ char address_str[256];
-+ char pid_str[256];
-+ char *tmp_ep;
-+ int exitstat;
-+ unsigned long tmp_num;
-+ ssize_t bytes;
-+
-+ g_assert (child > 0);
-+
-+ /*
-+ * dbus-daemon --fork causes our child process to exit prematurely
-+ * because it is not the real daemon. See if it worked correctly
-+ * and clean it up to avoid a zombie.
-+ *
-+ * Life could be much easier if dbus-daemon had a --no-fork flag.
-+ * But, as it hasn't it, we cannot assume that it will not fork,
-+ * because we have no control over its configuration file.
-+ */
-+ if (waitpid (child, &exitstat, 0) == -1)
-+ {
-+ close (address_fd);
-+ close (pid_fd);
-+
-+ g_printerr ("Failed to get dbus-daemon status\n");
-+ return;
-+ }
-+ if (!WIFEXITED (exitstat) || WEXITSTATUS (exitstat) != EXIT_SUCCESS)
-+ {
-+ close (address_fd);
-+ close (pid_fd);
-+
-+ g_printerr ("dbus-daemon exited unexpectedly\n");
-+ return;
-+ }
-+
-+ /*
-+ * Fetch dbus-daemon address.
-+ */
-+ bytes = read_line (address_fd, address_str, sizeof (address_str));
-+ if (bytes == -1 || bytes == 0)
-+ {
-+ close (address_fd);
-+ close (pid_fd);
-+
-+ g_printerr ("Failed to get dbus-daemon's address\n");
-+ return;
-+ }
-+
-+ /*
-+ * Fetch dbus-daemon pid.
-+ */
-+ bytes = read_line (pid_fd, pid_str, sizeof (pid_str));
-+ if (bytes == -1 || bytes == 0)
-+ {
-+ close (address_fd);
-+ close (pid_fd);
-+
-+ g_printerr ("Failed to get dbus-daemon's pid\n");
-+ return;
-+ }
-+
-+ close (address_fd);
-+ close (pid_fd);
-+
-+ /*
-+ * Convert the string printed in pid_fd to a pid value. Do the usual
-+ * strtoul dance to check for a valid number.
-+ */
-+ errno = 0;
-+ tmp_num = strtoul(pid_str, &tmp_ep, 10);
-+ if (pid_str[0] == '\0' || *tmp_ep != '\0')
-+ {
-+ g_printerr ("dbus-daemon pid invalid (not a number)\n");
-+ return;
-+ }
-+ if (errno == ERANGE && tmp_num == ULONG_MAX)
-+ {
-+ g_printerr ("dbus-daemon pid invalid (out of range)\n");
-+ return;
-+ }
-+ dbus_daemon_pid = tmp_num;
-+
-+ /*
-+ * All right! Tell our future children about the new born dbus-daemon.
-+ */
-+ g_setenv ("DBUS_SESSION_BUS_ADDRESS", address_str, TRUE);
-+}
---- gnome-session/main.c.orig Wed Jul 26 08:46:36 2006
-+++ gnome-session/main.c Mon Aug 7 21:17:49 2006
-@@ -43,6 +43,7 @@
- #include "command.h"
- #include "splash-widget.h"
- #include "util.h"
-+#include "gsm-dbus.h"
- #include "gsm-sound.h"
- #include "gsm-gsd.h"
- #include "gsm-keyring.h"
-@@ -329,6 +330,7 @@
- Session *the_session;
- gboolean splashing;
- gboolean a_t_support;
-+ gboolean dbus_daemon_owner;
- GError *err;
- int status;
- char *display_str;
-@@ -419,6 +421,7 @@
- fprintf (stderr, "SESSION_MANAGER=%s\n", getenv ("SESSION_MANAGER"));
- gnome_window_icon_set_default_from_file (GNOME_ICONDIR"/gnome-session.png");
-
-+ dbus_daemon_owner = gsm_dbus_daemon_start ();
-
- /* Make sure children see the right value for DISPLAY. This is
- useful if --display was specified on the command line. */
-@@ -502,6 +505,9 @@
- gsm_sound_logout ();
-
- gsm_keyring_daemon_stop ();
-+
-+ if (dbus_daemon_owner)
-+ gsm_dbus_daemon_stop ();
-
- g_object_unref (gconf_client);
- gsm_shutdown_gconfd ();
diff --git a/x11/gnome-session/files/patch-gnome-session_Makefile.in b/x11/gnome-session/files/patch-gnome-session_Makefile.in
index a80f576a42a3..b07ad029e3dd 100644
--- a/x11/gnome-session/files/patch-gnome-session_Makefile.in
+++ b/x11/gnome-session/files/patch-gnome-session_Makefile.in
@@ -1,14 +1,5 @@
--- gnome-session/Makefile.in.orig Sun Apr 23 23:01:30 2006
+++ gnome-session/Makefile.in Sun Apr 23 23:06:41 2006
-@@ -67,7 +67,7 @@ am_gnome_session_OBJECTS = manager.$(OBJ
- remote.$(OBJEXT) logout.$(OBJEXT) splash-widget.$(OBJEXT) \
- gsm-xrandr.$(OBJEXT) gsm-keyring.$(OBJEXT) gsm-gsd.$(OBJEXT) \
- gsm-protocol.$(OBJEXT) gsm-remote-desktop.$(OBJEXT) \
-- gsm-sound.$(OBJEXT) gsm-at-startup.$(OBJEXT) \
-+ gsm-sound.$(OBJEXT) gsm-at-startup.$(OBJEXT) gsm-dbus.$(OBJEXT) \
- gsm-multiscreen.$(OBJEXT) gsm-typebuiltins.$(OBJEXT) \
- gdm-logout-action.$(OBJEXT) util.$(OBJEXT) $(am__objects_1)
- gnome_session_OBJECTS = $(am_gnome_session_OBJECTS)
@@ -310,7 +310,7 @@ sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
@@ -18,20 +9,3 @@
INCLUDES = \
$(GNOME_SESSION_CFLAGS) \
$(STANDARD_PROPERTIES_CFLAGS) \
-@@ -386,6 +386,8 @@ gnome_session_SOURCES = \
- splash-widget.h \
- gsm-xrandr.c \
- gsm-xrandr.h \
-+ gsm-dbus.c \
-+ gsm-dbus.h \
- gsm-keyring.c \
- gsm-keyring.h \
- gsm-gsd.c \
-@@ -610,6 +612,7 @@ distclean-compile:
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsm-sound.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsm-typebuiltins.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsm-xrandr.Po@am__quote@
-+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gsm-dbus.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ice.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logout-test.Po@am__quote@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logout.Po@am__quote@
diff --git a/x11/gnome-session/files/patch-gnome-session_gsm-dbus.c b/x11/gnome-session/files/patch-gnome-session_gsm-dbus.c
new file mode 100644
index 000000000000..76de78b45ffe
--- /dev/null
+++ b/x11/gnome-session/files/patch-gnome-session_gsm-dbus.c
@@ -0,0 +1,35 @@
+--- gnome-session/gsm-dbus.c.orig Mon Jan 8 17:32:28 2007
++++ gnome-session/gsm-dbus.c Thu Jan 11 13:17:41 2007
+@@ -281,6 +281,7 @@ start_parent (int address_fd, int pid_fd
+ int exitstat;
+ unsigned long tmp_num;
+ ssize_t bytes;
++ int i;
+
+ g_assert (child > 0);
+
+@@ -326,14 +327,17 @@ start_parent (int address_fd, int pid_fd
+ /*
+ * Fetch dbus-daemon pid.
+ */
+- bytes = read_line (pid_fd, pid_str, sizeof (pid_str));
+- if (bytes == -1 || bytes == 0)
++ for (i = 0; i < 2; i++)
+ {
+- close (address_fd);
+- close (pid_fd);
+-
+- g_printerr ("Failed to get dbus-daemon's pid\n");
+- return;
++ bytes = read_line (pid_fd, pid_str, sizeof (pid_str));
++ if (bytes == -1 || bytes == 0)
++ {
++ close (address_fd);
++ close (pid_fd);
++
++ g_printerr ("Failed to get dbus-daemon's pid\n");
++ return;
++ }
+ }
+
+ close (address_fd);
diff --git a/x11/gnome-session/pkg-plist b/x11/gnome-session/pkg-plist
index 71e9b3048ab3..14d40f3c9f84 100644
--- a/x11/gnome-session/pkg-plist
+++ b/x11/gnome-session/pkg-plist
@@ -5,7 +5,6 @@ bin/gnome-session-save
bin/gnome-wm
share/gnome/applications/session-properties.desktop
share/gnome/default.session
-share/gnome/default.wm
share/gnome/pixmaps/splash/MaMBaNgGaoX-2.12.png
share/gnome/pixmaps/splash/adamw-piggy-2.12.png
share/gnome/pixmaps/splash/adamw-trophy-2.12.png
@@ -13,6 +12,7 @@ share/gnome/pixmaps/splash/andreas-slogan-2.12.png
share/gnome/pixmaps/splash/andreas-splash-2.12.png
share/gnome/pixmaps/splash/domix-splash-2.12.png
share/gnome/pixmaps/splash/domix-splash2-2.12.png
+share/gnome/pixmaps/splash/franz-splash_218.png
share/gnome/pixmaps/splash/gnome-splash.png
share/gnome/pixmaps/splash/mumija-2.12.png
share/gnome/pixmaps/splash/mumija2-2.12.png
@@ -21,6 +21,11 @@ share/gnome/pixmaps/splash/original-gnome-splash.png
share/gnome/pixmaps/splash/tremulant-2.12.png
share/gnome/pixmaps/splash/tremulant-blood-2.12.png
share/gnome/pixmaps/splash/tremulant-brushed-metal-2.12.png
+share/icons/hicolor/16x16/apps/session-properties.png
+share/icons/hicolor/22x22/apps/session-properties.png
+share/icons/hicolor/24x24/apps/session-properties.png
+share/icons/hicolor/32x32/apps/session-properties.png
+share/icons/hicolor/scalable/apps/session-properties.svg
share/locale/af/LC_MESSAGES/gnome-session-2.0.mo
share/locale/am/LC_MESSAGES/gnome-session-2.0.mo
share/locale/ar/LC_MESSAGES/gnome-session-2.0.mo