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
next 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