diff options
author | marcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059> | 2007-01-12 02:02:04 +0800 |
---|---|---|
committer | marcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059> | 2007-01-12 02:02:04 +0800 |
commit | fec889338e5d38f5c45e1c9f4154e4e270ab8c0c (patch) | |
tree | ee351f5420e01ed32b64cf39322f6c0fdd07d77d | |
parent | adb3a820cf61f9992b35b72f1c397fa5fe9fdcd7 (diff) | |
download | marcuscom-ports-fec889338e5d38f5c45e1c9f4154e4e270ab8c0c.tar marcuscom-ports-fec889338e5d38f5c45e1c9f4154e4e270ab8c0c.tar.gz marcuscom-ports-fec889338e5d38f5c45e1c9f4154e4e270ab8c0c.tar.bz2 marcuscom-ports-fec889338e5d38f5c45e1c9f4154e4e270ab8c0c.tar.lz marcuscom-ports-fec889338e5d38f5c45e1c9f4154e4e270ab8c0c.tar.xz marcuscom-ports-fec889338e5d38f5c45e1c9f4154e4e270ab8c0c.tar.zst marcuscom-ports-fec889338e5d38f5c45e1c9f4154e4e270ab8c0c.zip |
Read the pid from dbus-daemon twice to avoid a SIGPIPE, and a resulting
dbus-daemon crash. This was always a problem, but was previously not
seen due to performance issues with GNOME.
git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@8187 df743ca5-7f9a-e211-a948-0013205c9059
-rw-r--r-- | x11/gnome-session/Makefile | 3 | ||||
-rw-r--r-- | x11/gnome-session/files/patch-gnome-session_gsm-dbus.c | 38 |
2 files changed, 40 insertions, 1 deletions
diff --git a/x11/gnome-session/Makefile b/x11/gnome-session/Makefile index 4e9c2c570..a5f20a814 100644 --- a/x11/gnome-session/Makefile +++ b/x11/gnome-session/Makefile @@ -3,11 +3,12 @@ # Whom: Joe Marcus Clarke <marcus@FreeBSD.org> # # $FreeBSD$ -# $MCom: ports/x11/gnome-session/Makefile,v 1.99 2006/12/01 21:04:59 marcus Exp $ +# $MCom: ports/x11/gnome-session/Makefile,v 1.100 2007/01/10 01:32:14 ahze Exp $ # PORTNAME= gnome-session PORTVERSION= 2.17.5 +PORTREVISION= 1 CATEGORIES= x11 gnome MASTER_SITES= ${MASTER_SITE_GNOME} \ ${MASTER_SITE_LOCAL:S/$/:local/} \ 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 000000000..0a937937d --- /dev/null +++ b/x11/gnome-session/files/patch-gnome-session_gsm-dbus.c @@ -0,0 +1,38 @@ +--- gnome-session/gsm-dbus.c.orig Thu Jan 11 12:59:48 2007 ++++ gnome-session/gsm-dbus.c Thu Jan 11 13:00:47 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,17 +327,18 @@ 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; ++ } + } +- +- bytes = read_line (pid_fd, pid_str, sizeof (pid_str)); + + close (address_fd); + close (pid_fd); |