1 10509 yippi diff -u dbus-1.0.2/tools/dbus-launch.c-orig dbus-1.0.2/tools/dbus-launch.c 2 10509 yippi --- dbus-1.0.2/tools/dbus-launch.c-orig Mon Dec 11 19:21:25 2006 3 10509 yippi +++ dbus-1.0.2/tools/dbus-launch.c Fri Dec 15 11:44:06 2006 4 10509 yippi @@ -392,6 +392,9 @@ 5 10509 yippi x_fd = -1; 6 10509 yippi #endif 7 10509 yippi 8 10509 yippi +#ifdef __sun 9 10509 yippi + tty_fd = -1; 10 10509 yippi +#else 11 10509 yippi if (isatty (0)) 12 10509 yippi tty_fd = 0; 13 10509 yippi else 14 10509 yippi @@ -401,6 +404,7 @@ 15 10509 yippi verbose ("stdin isatty(), monitoring it\n"); 16 10509 yippi else 17 10509 yippi verbose ("stdin was not a TTY, not monitoring it\n"); 18 10509 yippi +#endif 19 10509 yippi 20 10509 yippi if (tty_fd < 0 && x_fd < 0) 21 10509 yippi { 22 10509 yippi @@ -412,12 +416,17 @@ 23 10509 yippi { 24 10509 yippi FD_ZERO (&read_set); 25 10509 yippi FD_ZERO (&err_set); 26 10509 yippi - 27 10509 yippi +#ifndef __sun 28 10509 yippi +/* 29 10509 yippi + * read() sometimes returns 0 on Solaris in valid conditions, so this 30 10509 yippi + * test causes dbus-launch to fail to start gnome-session 31 10509 yippi + */ 32 10509 yippi if (tty_fd >= 0) 33 10509 yippi { 34 10509 yippi FD_SET (tty_fd, &read_set); 35 10509 yippi FD_SET (tty_fd, &err_set); 36 10509 yippi } 37 10509 yippi +#endif 38 10509 yippi 39 10509 yippi if (x_fd >= 0) 40 10509 yippi { 41 10509 yippi 42