public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Nirbheek Chauhan" <nirbheek@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/
Date: Wed, 12 Sep 2012 12:08:10 +0000 (UTC)	[thread overview]
Message-ID: <1347451624.ca301d30b271beb63d5a84750b8e80ceb4435c1a.nirbheek@gentoo> (raw)

commit:     ca301d30b271beb63d5a84750b8e80ceb4435c1a
Author:     Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 12 12:05:39 2012 +0000
Commit:     Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Wed Sep 12 12:07:04 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=ca301d30

gnome-base/gdm: fix problems with 3.5.91 and remove old patches

GDM 3.5.91 will now work properly

---
 .../gdm-2.32.0-automagic-libxklavier-support.patch |   60 ------
 .../gdm/files/gdm-2.32.0-custom-session.patch      |   51 -----
 .../gdm-2.32.0-fix-daemonize-regression.patch      |  126 -------------
 .../gdm/files/gdm-2.32.0-fix-vt-problems.patch     |  195 --------------------
 .../gdm/files/gdm-2.32.0-selinux-remove-attr.patch |   27 ---
 .../gdm-3.5.91-fix-daemonize-regression.patch      |  125 -------------
 gnome-base/gdm/files/gdm.sh                        |    3 +
 gnome-base/gdm/gdm-3.5.91-r1.ebuild                |   10 +-
 gnome-base/gdm/gdm-9999.ebuild                     |   10 +-
 9 files changed, 9 insertions(+), 598 deletions(-)

diff --git a/gnome-base/gdm/files/gdm-2.32.0-automagic-libxklavier-support.patch b/gnome-base/gdm/files/gdm-2.32.0-automagic-libxklavier-support.patch
deleted file mode 100644
index 90c1cef..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-automagic-libxklavier-support.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 481fe43b653b443ecfa8d4f3aa88d734d17cccd5 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:21:27 +0100
-Subject: [PATCH 6/6] fix libxklavier automagic support
-
-libxklavier support is optional, make that fact explicit.
----
- configure.ac |   28 +++++++++++++++++++---------
- 1 files changed, 19 insertions(+), 9 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 71d0247..10dbb72 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -129,17 +129,26 @@ SIMPLE_GREETER_LIBS="$SIMPLE_GREETER_LIBS -lm"
- AC_SUBST(SIMPLE_GREETER_CFLAGS)
- AC_SUBST(SIMPLE_GREETER_LIBS)
- 
--PKG_CHECK_MODULES(LIBXKLAVIER,
--        libxklavier >= $LIBXKLAVIER_REQUIRED_VERSION,
--        have_libxklavier=yes,
--        have_libxklavier=no)
--if test "x$have_libxklavier" = "xyes" ; then
--  AC_DEFINE(HAVE_LIBXKLAVIER, [], [Define if we have libxklavier])
-+AC_ARG_ENABLE([libxklavier],
-+	AS_HELP_STRING([--enable-libxklavier],
-+		       [Enable libxklavier support @<:@default=yes@:>@]),
-+	enable_libxklavier=$enableval,
-+	enable_libxklavier=yes)
-+have_libxklavier=no
-+if test "x$enable_libxklavier" = "xyes"; then
-+   PKG_CHECK_MODULES(LIBXKLAVIER,
-+	  libxklavier >= $LIBXKLAVIER_REQUIRED_VERSION,
-+          have_libxklavier=yes,
-+          have_libxklavier=no)
-+   if test "x$have_libxklavier" = "xyes" ; then
-+      AC_DEFINE(HAVE_LIBXKLAVIER, [], [Define if we have libxklavier])
-+   fi
-+   AC_SUBST(HAVE_LIBXKLAVIER)
-+   AC_SUBST(LIBXKLAVIER_CFLAGS)
-+   AC_SUBST(LIBXKLAVIER_LIBS)
- fi
-+
- AM_CONDITIONAL(HAVE_LIBXKLAVIER, test x$have_libxklavier = xyes)
--AC_SUBST(HAVE_LIBXKLAVIER)
--AC_SUBST(LIBXKLAVIER_CFLAGS)
--AC_SUBST(LIBXKLAVIER_LIBS)
- 
- PKG_CHECK_MODULES(SIMPLE_CHOOSER,
-         dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION
-@@ -1467,5 +1476,6 @@ echo \
-         SELinux support:          ${with_selinux}
-         ConsoleKit support:       ${use_console_kit}
-         UPower support:           ${have_upower}
-+        Libxklavier support:      ${have_libxklavier}
-         Build with RBAC:          ${msg_rbac_shutdown}
- "
--- 
-1.7.3.1
-

diff --git a/gnome-base/gdm/files/gdm-2.32.0-custom-session.patch b/gnome-base/gdm/files/gdm-2.32.0-custom-session.patch
deleted file mode 100644
index c48cb07..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-custom-session.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 2dc0d268c7cc5d6133a9594adcd67dc543288b8f Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:19:07 +0100
-Subject: [PATCH 4/6] make custom session work
-
-Gentoo bug: #216984
-
-fix custom sessions not doing sourcing in the proper order.
----
- data/Xsession.in |   18 +++++++++---------
- 1 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/data/Xsession.in b/data/Xsession.in
-index b2d98f2..0da187d 100755
---- a/data/Xsession.in
-+++ b/data/Xsession.in
-@@ -153,15 +153,6 @@ if [ -n "$GDM_LANG" ]; then
-   export LANG
- fi
- 
--# run all system xinitrc shell scripts.
--if [ -d /etc/X11/xinit/xinitrc.d ]; then
--    for i in /etc/X11/xinit/xinitrc.d/* ; do
--        if [ -x "$i" -a ! -d "$i" ]; then
--	    . "$i"
--        fi
--    done
--fi
--
- if [ "x$command" = "xcustom" ] ; then
-   if [ -x "$HOME/.xsession" ]; then
-     command="$HOME/.xsession"
-@@ -189,6 +180,15 @@ if [ "x$command" = "xdefault" ] ; then
-   fi
- fi
- 
-+# run all system xinitrc shell scripts.
-+if [ -d /etc/X11/xinit/xinitrc.d ]; then
-+    for i in /etc/X11/xinit/xinitrc.d/* ; do
-+        if [ -x "$i" ]; then
-+	    . "$i"
-+        fi
-+    done
-+fi
-+
- # add ssh-agent if found
- sshagent="`gdmwhich ssh-agent`"
- if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
--- 
-1.7.3.1
-

diff --git a/gnome-base/gdm/files/gdm-2.32.0-fix-daemonize-regression.patch b/gnome-base/gdm/files/gdm-2.32.0-fix-daemonize-regression.patch
deleted file mode 100644
index 2ae7f61..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-fix-daemonize-regression.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From 7f5104b242e6b36e6143183b14582d362763ff2a Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:16:51 +0100
-Subject: [PATCH 2/6] daemonize so that the boot process can continue
-
-Gentoo bug: #236701
-
-Originally from: Dan Nicholson <dbn.lists@gmail.com>
-
-Fork gdm-binary, except when -nodaemon is used
- 
-gdm-binary now forks and the parent terminates, except when the
--nodaemon or --nodaemon options are used. This provides compatibility
-with xdm. Fixes bug #550170.
-
----
- daemon/main.c |   64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 64 insertions(+), 0 deletions(-)
-
-diff --git a/daemon/main.c b/daemon/main.c
-index 5b8d66b..191b6e3 100644
---- a/daemon/main.c
-+++ b/daemon/main.c
-@@ -513,6 +513,56 @@ is_debug_set (void)
-         return debug;
- }
- 
-+static void
-+dup_dev_null (int fd, int flags)
-+{
-+        int nullfd;
-+        int dupfd;
-+
-+        VE_IGNORE_EINTR (nullfd = open ("/dev/null", flags));
-+        if (G_UNLIKELY (nullfd < 0)) {
-+                gdm_fail (_("Cannot open /dev/null: %s!"),
-+                          strerror (errno));
-+                exit (EXIT_FAILURE);
-+        }
-+
-+        VE_IGNORE_EINTR (dupfd = dup2 (nullfd, fd));
-+        if (G_UNLIKELY (dupfd < 0)) {
-+                gdm_fail (_("Cannot duplicate /dev/null: %s!"),
-+                          strerror (errno));
-+                exit (EXIT_FAILURE);
-+        }
-+
-+        VE_IGNORE_EINTR (close (nullfd));
-+}
-+
-+static void
-+daemonify (void)
-+{
-+        pid_t pid;
-+
-+        pid = fork ();
-+
-+        /* terminate the parent */
-+        if (pid > 0)
-+                exit (EXIT_SUCCESS);
-+
-+        if (G_UNLIKELY (pid < 0)) {
-+                gdm_fail (_("fork () failed: %s!"), strerror (errno));
-+                exit (EXIT_FAILURE);
-+        }
-+
-+        if (G_UNLIKELY (setsid () < 0)) {
-+                gdm_fail (_("setsid () failed: %s!"), strerror (errno));
-+                exit (EXIT_FAILURE);
-+        }
-+
-+        /* reopen stdin, stdout, stderr with /dev/null */
-+        dup_dev_null (STDIN_FILENO, O_RDONLY);
-+        dup_dev_null (STDOUT_FILENO, O_RDWR);
-+        dup_dev_null (STDERR_FILENO, O_RDWR);
-+}
-+
- int
- main (int    argc,
-       char **argv)
-@@ -523,14 +573,17 @@ main (int    argc,
-         DBusGConnection    *connection;
-         GError             *error;
-         int                 ret;
-+        int                 i;
-         gboolean            res;
-         gboolean            xdmcp_enabled;
-         GdmSignalHandler   *signal_handler;
-         static gboolean     do_timed_exit    = FALSE;
-         static gboolean     print_version    = FALSE;
-         static gboolean     fatal_warnings   = FALSE;
-+        static gboolean     no_daemon        = FALSE;
-         static GOptionEntry entries []   = {
-                 { "fatal-warnings", 0, 0, G_OPTION_ARG_NONE, &fatal_warnings, N_("Make all warnings fatal"), NULL },
-+                { "nodaemon", 0, 0, G_OPTION_ARG_NONE, &no_daemon, N_("Do not fork into the background"), NULL },
-                 { "timed-exit", 0, 0, G_OPTION_ARG_NONE, &do_timed_exit, N_("Exit after a time (for debugging)"), NULL },
-                 { "version", 0, 0, G_OPTION_ARG_NONE, &print_version, N_("Print GDM version"), NULL },
- 
-@@ -547,6 +600,14 @@ main (int    argc,
- 
-         g_type_init ();
- 
-+        /* preprocess the arguments to support the xdm style
-+         * -nodaemon option
-+         */
-+        for (i = 0; i < argc; i++) {
-+                if (strcmp (argv[i], "-nodaemon") == 0)
-+                        argv[i] = "--nodaemon";
-+        }
-+
-         context = g_option_context_new (_("GNOME Display Manager"));
-         g_option_context_add_main_entries (context, entries, NULL);
-         g_option_context_set_ignore_unknown_options (context, TRUE);
-@@ -617,6 +678,9 @@ main (int    argc,
-                 exit (-1);
-         }
- 
-+        if (no_daemon == FALSE)
-+                daemonify ();
-+
-         /* pid file */
-         delete_pid ();
-         write_pid ();
--- 
-1.7.3.1
-

diff --git a/gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch b/gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch
deleted file mode 100644
index f219a14..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch
+++ /dev/null
@@ -1,195 +0,0 @@
-From 64002e623fea54ab10040206d164c5fdee4a43d2 Mon Sep 17 00:00:00 2001
-From: Nirbheek Chauhan <nirbheek@gentoo.org>
-Date: Fri, 15 Apr 2011 22:13:44 +0530
-Subject: [PATCH] Fix VT grab race with getty causing X to grab the wrong VT
-
-On bootup, if X is spawned without any args, it'll take up the first unused VT.
-If GDM starts up before gettys are spawned, X takes up VT1 or VT2 depending on
-the init system and bootsplash.
-
-This is problematic because afterwards getty will come up underneath X, and
-cause keyboard problems and eventually crash X.
-
-So we read /etc/inittab, check for open VTs, compare the two values, and take
-the conservative one.
----
- configure.ac        |    4 ++
- daemon/Makefile.am  |    1 +
- daemon/gdm-server.c |  106 ++++++++++++++++++++++++++++++++++++++++++++++++++-
- 3 files changed, 110 insertions(+), 1 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ca0f8bb..b9e7462 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -302,6 +302,10 @@ AC_CHECK_TYPE(socklen_t,,
- AC_CHECK_HEADERS(sys/sockio.h)
- AC_CHECK_FUNCS([setresuid setenv unsetenv clearenv])
- 
-+dnl Needed for querying the kernel for free VTs
-+AC_CHECK_HEADERS(sys/vt.h)
-+AC_CHECK_HEADERS(sys/ioctl.h)
-+
- dnl checks needed for Darwin compatibility to linux **environ.
- AC_CHECK_HEADERS(crt_externs.h)
- AC_CHECK_FUNCS(_NSGetEnviron)
-diff --git a/daemon/Makefile.am b/daemon/Makefile.am
-index da18835..c1b6bda 100644
---- a/daemon/Makefile.am
-+++ b/daemon/Makefile.am
-@@ -14,6 +14,7 @@ AM_CPPFLAGS = \
- 	-DLIBEXECDIR=\"$(libexecdir)\"			\
- 	-DLOGDIR=\"$(logdir)\"				\
- 	-DSBINDIR=\"$(sbindir)\"			\
-+	-DSYSCONFDIR=\""$(sysconfdir)"\"		\
- 	-DGNOMELOCALEDIR=\""$(datadir)/locale"\"	\
- 	-DGDM_XAUTH_DIR=\"$(GDM_XAUTH_DIR)\"		\
- 	-DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\"		\
-diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
-index 339f3cc..29d16dc 100644
---- a/daemon/gdm-server.c
-+++ b/daemon/gdm-server.c
-@@ -26,6 +26,8 @@
- #include <unistd.h>
- #include <string.h>
- #include <sys/types.h>
-+#include <sys/ioctl.h>
-+#include <sys/vt.h>
- #include <sys/wait.h>
- #include <errno.h>
- #include <ctype.h>
-@@ -42,6 +44,7 @@
- #include <glib/gi18n.h>
- #include <glib/gstdio.h>
- #include <glib-object.h>
-+#include <gio/gio.h>
- 
- #include <X11/Xlib.h> /* for Display */
- 
-@@ -54,6 +57,8 @@ extern char **environ;
- 
- #define GDM_SERVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SERVER, GdmServerPrivate))
- 
-+#define INITTAB SYSCONFDIR"/inittab"
-+
- /* These are the servstat values, also used as server
-  * process exit codes */
- #define SERVER_TIMEOUT 2        /* Server didn't start */
-@@ -674,6 +679,105 @@ gdm_server_spawn (GdmServer  *server,
- }
- 
- /**
-+ * Parse the inittab file used by getty to spawn VTs to find unused ttys
-+ */
-+static int
-+get_free_vt_from_inittab ()
-+{
-+        GFile *gfile;
-+        GFileInputStream *contents;
-+        GDataInputStream *dstream;
-+        GRegex *getty;
-+        GMatchInfo *tty_match = NULL;
-+        GSList *tty_list = NULL;
-+        GError *error = NULL;
-+        gchar *temp = NULL;
-+        int vtno = 0;
-+
-+        gfile = g_file_new_for_path (INITTAB);
-+        contents = g_file_read (gfile, NULL, &error);
-+        g_object_unref (gfile);
-+        if (!contents) {
-+                if (error) {
-+                        g_debug ("Unable to open file %s", INITTAB);
-+                        g_error_free (error);
-+                }
-+                goto out;
-+        }
-+
-+        dstream = g_data_input_stream_new (G_INPUT_STREAM (contents));
-+        getty = g_regex_new ("^c[0-9]+:.+getty.+tty([0-9]+)", 0, 0, NULL);
-+        g_object_unref (contents);
-+
-+        while (1) {
-+                temp = g_data_input_stream_read_line (dstream, NULL, NULL, &error);
-+                if (!temp)
-+                        break;
-+                if (!g_regex_match (getty, temp, 0, &tty_match))
-+                        continue;
-+                g_free (temp);
-+                temp = g_match_info_fetch (tty_match, 1);
-+                if (!temp)
-+                        continue;
-+                tty_list = g_slist_insert_sorted (tty_list, temp, (GCompareFunc)g_strcmp0);
-+                g_match_info_free (tty_match);
-+        }
-+
-+        if (error) {
-+                g_debug ("Unable to read line from %s", INITTAB);
-+                g_error_free (error);
-+                goto free;
-+        }
-+
-+        /* Ignore holes in vt allocation, just take the last one */
-+        temp = g_slist_last (tty_list)->data;
-+        if (temp)
-+                vtno = (int) g_ascii_strtoull (temp, NULL, 10) + 1;
-+
-+free:
-+        g_object_unref (dstream);
-+        g_regex_unref (getty);
-+        g_slist_free_full (tty_list, g_free);
-+        g_free (error);
-+out:
-+        return vtno;
-+}
-+
-+/**
-+ * Query the VT_* kernel ioctls to find an empty tty
-+ */
-+static int
-+get_free_vt_from_kernel()
-+{
-+        int fd, vtno = 0;
-+
-+        fd = open ("/dev/tty0", O_WRONLY, 0);
-+        if ((ioctl(fd, VT_OPENQRY, &vtno) < 0) || (vtno == -1)) {
-+                vtno = 0;
-+                g_debug ("Unable to find a free vt, falling back to Xorg autodetect");
-+        }
-+        return vtno;
-+}
-+
-+static gchar*
-+get_free_vt ()
-+{
-+        int inittab_vtno, kernel_vtno;
-+        gchar* vt = NULL;
-+
-+        inittab_vtno = get_free_vt_from_inittab();
-+        if (inittab_vtno > 0)
-+                g_debug ("Inittab says vt%i is free\n", inittab_vtno);
-+        kernel_vtno = get_free_vt_from_kernel();
-+        if (kernel_vtno > 0)
-+                g_debug ("Kernel says vt%i is free\n", kernel_vtno);
-+        /* Select the greater of the two because getty will use the others */
-+        if (kernel_vtno != 0 && inittab_vtno != 0)
-+                vt = g_strdup_printf ("vt%i", kernel_vtno > inittab_vtno ? kernel_vtno : inittab_vtno);
-+        return vt;
-+}
-+
-+/**
-  * gdm_server_start:
-  * @disp: Pointer to a GdmDisplay structure
-  *
-@@ -686,7 +790,7 @@ gdm_server_start (GdmServer *server)
-         gboolean res;
- 
-         /* fork X server process */
--        res = gdm_server_spawn (server, NULL);
-+        res = gdm_server_spawn (server, get_free_vt());
- 
-         return res;
- }
--- 
-1.7.3.4
-

diff --git a/gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch b/gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch
deleted file mode 100644
index e563aa4..0000000
--- a/gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 41badd6d2ca652a875fec3eea420ae876023076d Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:15:54 +0100
-Subject: [PATCH 1/6] remove unneeded linker directive for selinux
-
-Gentoo bug: #41022
-
----
- configure.ac |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ed07dce..71d0247 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -873,7 +873,7 @@ if test "x$with_selinux" = "xyes" ; then
- 	AC_CHECK_LIB(selinux,setexeccon,/bin/true)
- 	AC_CHECK_LIB(selinux,is_selinux_enabled,/bin/true)
- 	AC_DEFINE(HAVE_SELINUX, 1, [Define if have selinux])
--	EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux -lattr"
-+	EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lselinux"
- fi
- 
- dnl ---------------------------------------------------------------------------
--- 
-1.7.3.1
-

diff --git a/gnome-base/gdm/files/gdm-3.5.91-fix-daemonize-regression.patch b/gnome-base/gdm/files/gdm-3.5.91-fix-daemonize-regression.patch
deleted file mode 100644
index 60aea72..0000000
--- a/gnome-base/gdm/files/gdm-3.5.91-fix-daemonize-regression.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 7f5104b242e6b36e6143183b14582d362763ff2a Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 2 Nov 2010 23:16:51 +0100
-Subject: [PATCH 2/6] daemonize so that the boot process can continue
-
-Gentoo bug: #236701
-
-Originally from: Dan Nicholson <dbn.lists@gmail.com>
-
-Fork gdm-binary, except when -nodaemon is used
- 
-gdm-binary now forks and the parent terminates, except when the
--nodaemon or --nodaemon options are used. This provides compatibility
-with xdm. Fixes bug #550170.
-
----
- daemon/main.c |   64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 64 insertions(+), 0 deletions(-)
-
-diff --git a/daemon/main.c b/daemon/main.c
-index 5b8d66b..191b6e3 100644
---- a/daemon/main.c
-+++ b/daemon/main.c
-@@ -513,6 +513,56 @@ is_debug_set (void)
-         return debug;
- }
- 
-+static void
-+dup_dev_null (int fd, int flags)
-+{
-+        int nullfd;
-+        int dupfd;
-+
-+        VE_IGNORE_EINTR (nullfd = open ("/dev/null", flags));
-+        if (G_UNLIKELY (nullfd < 0)) {
-+                gdm_fail (_("Cannot open /dev/null: %s!"),
-+                          strerror (errno));
-+                exit (EXIT_FAILURE);
-+        }
-+
-+        VE_IGNORE_EINTR (dupfd = dup2 (nullfd, fd));
-+        if (G_UNLIKELY (dupfd < 0)) {
-+                gdm_fail (_("Cannot duplicate /dev/null: %s!"),
-+                          strerror (errno));
-+                exit (EXIT_FAILURE);
-+        }
-+
-+        VE_IGNORE_EINTR (close (nullfd));
-+}
-+
-+static void
-+daemonify (void)
-+{
-+        pid_t pid;
-+
-+        pid = fork ();
-+
-+        /* terminate the parent */
-+        if (pid > 0)
-+                exit (EXIT_SUCCESS);
-+
-+        if (G_UNLIKELY (pid < 0)) {
-+                gdm_fail (_("fork () failed: %s!"), strerror (errno));
-+                exit (EXIT_FAILURE);
-+        }
-+
-+        if (G_UNLIKELY (setsid () < 0)) {
-+                gdm_fail (_("setsid () failed: %s!"), strerror (errno));
-+                exit (EXIT_FAILURE);
-+        }
-+
-+        /* reopen stdin, stdout, stderr with /dev/null */
-+        dup_dev_null (STDIN_FILENO, O_RDONLY);
-+        dup_dev_null (STDOUT_FILENO, O_RDWR);
-+        dup_dev_null (STDERR_FILENO, O_RDWR);
-+}
-+
- int
- main (int    argc,
-       char **argv)
-@@ -523,13 +573,16 @@ main (int    argc,
-         DBusGConnection    *connection;
-         GError             *error;
-         int                 ret;
-+        int                 i;
-         gboolean            res;
-         GdmSignalHandler   *signal_handler;
-         static gboolean     do_timed_exit    = FALSE;
-         static gboolean     print_version    = FALSE;
-         static gboolean     fatal_warnings   = FALSE;
-+        static gboolean     no_daemon        = FALSE;
-         static GOptionEntry entries []   = {
-                 { "fatal-warnings", 0, 0, G_OPTION_ARG_NONE, &fatal_warnings, N_("Make all warnings fatal"), NULL },
-+                { "nodaemon", 0, 0, G_OPTION_ARG_NONE, &no_daemon, N_("Do not fork into the background"), NULL },
-                 { "timed-exit", 0, 0, G_OPTION_ARG_NONE, &do_timed_exit, N_("Exit after a time (for debugging)"), NULL },
-                 { "version", 0, 0, G_OPTION_ARG_NONE, &print_version, N_("Print GDM version"), NULL },
- 
-@@ -547,6 +600,14 @@ main (int    argc,
- 
-         g_type_init ();
- 
-+        /* preprocess the arguments to support the xdm style
-+         * -nodaemon option
-+         */
-+        for (i = 0; i < argc; i++) {
-+                if (strcmp (argv[i], "-nodaemon") == 0)
-+                        argv[i] = "--nodaemon";
-+        }
-+
-         context = g_option_context_new (_("GNOME Display Manager"));
-         g_option_context_add_main_entries (context, entries, NULL);
-         g_option_context_set_ignore_unknown_options (context, TRUE);
-@@ -617,6 +678,9 @@ main (int    argc,
-                 exit (-1);
-         }
- 
-+        if (no_daemon == FALSE)
-+                daemonify ();
-+
-         /* pid file */
-         delete_pid ();
-         write_pid ();
--- 
-1.7.3.1
-

diff --git a/gnome-base/gdm/files/gdm.sh b/gnome-base/gdm/files/gdm.sh
new file mode 100644
index 0000000..609f10a
--- /dev/null
+++ b/gnome-base/gdm/files/gdm.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+gdm-binary &

diff --git a/gnome-base/gdm/gdm-3.5.91-r1.ebuild b/gnome-base/gdm/gdm-3.5.91-r1.ebuild
index aac7b7e..52e1779 100644
--- a/gnome-base/gdm/gdm-3.5.91-r1.ebuild
+++ b/gnome-base/gdm/gdm-3.5.91-r1.ebuild
@@ -150,9 +150,6 @@ pkg_setup() {
 }
 
 src_prepare() {
-	# daemonize so that the boot process can continue, bug #236701
-	epatch "${FILESDIR}/${PN}-3.5.91-fix-daemonize-regression.patch"
-
 	# GDM grabs VT2 instead of VT7, bug 261339, bug 284053, bug 288852
 	# XXX: We can now pass a hard-coded initial value; temporary fix
 	#epatch "${FILESDIR}/${PN}-2.32.0-fix-vt-problems.patch"
@@ -187,11 +184,10 @@ src_install() {
 	# Install the systemd unit file
 	systemd_dounit "${FILESDIR}/3.4.1/gdm.service"
 
-	# gdm-binary should be gdm to work with our init (#5598)
-	rm -f "${ED}/usr/sbin/gdm"
-	ln -sfn /usr/sbin/gdm-binary "${ED}/usr/sbin/gdm"
+	# Install a shell script that runs gdm-binary in the background
+	cp "${FILESDIR}/gdm.sh" "${ED}/usr/sbin/gdm"
 	# our x11's scripts point to /usr/bin/gdm
-	ln -sfn /usr/sbin/gdm-binary "${ED}/usr/bin/gdm"
+	ln -sfn /usr/sbin/gdm "${ED}/usr/bin/gdm"
 
 	# log, etc.
 	keepdir /var/log/gdm

diff --git a/gnome-base/gdm/gdm-9999.ebuild b/gnome-base/gdm/gdm-9999.ebuild
index aac7b7e..52e1779 100644
--- a/gnome-base/gdm/gdm-9999.ebuild
+++ b/gnome-base/gdm/gdm-9999.ebuild
@@ -150,9 +150,6 @@ pkg_setup() {
 }
 
 src_prepare() {
-	# daemonize so that the boot process can continue, bug #236701
-	epatch "${FILESDIR}/${PN}-3.5.91-fix-daemonize-regression.patch"
-
 	# GDM grabs VT2 instead of VT7, bug 261339, bug 284053, bug 288852
 	# XXX: We can now pass a hard-coded initial value; temporary fix
 	#epatch "${FILESDIR}/${PN}-2.32.0-fix-vt-problems.patch"
@@ -187,11 +184,10 @@ src_install() {
 	# Install the systemd unit file
 	systemd_dounit "${FILESDIR}/3.4.1/gdm.service"
 
-	# gdm-binary should be gdm to work with our init (#5598)
-	rm -f "${ED}/usr/sbin/gdm"
-	ln -sfn /usr/sbin/gdm-binary "${ED}/usr/sbin/gdm"
+	# Install a shell script that runs gdm-binary in the background
+	cp "${FILESDIR}/gdm.sh" "${ED}/usr/sbin/gdm"
 	# our x11's scripts point to /usr/bin/gdm
-	ln -sfn /usr/sbin/gdm-binary "${ED}/usr/bin/gdm"
+	ln -sfn /usr/sbin/gdm "${ED}/usr/bin/gdm"
 
 	# log, etc.
 	keepdir /var/log/gdm


             reply	other threads:[~2012-09-12 12:08 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-12 12:08 Nirbheek Chauhan [this message]
  -- strict thread matches above, loose matches on Subject: below --
2013-12-11 23:44 [gentoo-commits] proj/gnome:master commit in: gnome-base/gdm/, gnome-base/gdm/files/ Gilles Dartiguelongue
2012-12-26 21:45 Gilles Dartiguelongue
2012-09-12 12:06 Nirbheek Chauhan
2012-09-09  0:39 Nirbheek Chauhan
2012-08-18 14:07 Priit Laes
2011-10-23  8:41 Alexandre Restovtsev
2011-08-13  6:08 Alexandre Restovtsev
2011-06-26  6:22 Nirbheek Chauhan
2011-05-03 10:52 Nirbheek Chauhan
2011-04-15 19:36 Nirbheek Chauhan
2011-04-05  0:57 Nirbheek Chauhan
2011-04-02 13:54 Nirbheek Chauhan
2011-02-26 11:41 Nirbheek Chauhan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1347451624.ca301d30b271beb63d5a84750b8e80ceb4435c1a.nirbheek@gentoo \
    --to=nirbheek@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox