diff options
author | Gilles Dartiguelongue <eva@gentoo.org> | 2010-11-04 23:22:29 +0000 |
---|---|---|
committer | Gilles Dartiguelongue <eva@gentoo.org> | 2010-11-04 23:22:29 +0000 |
commit | 50f60f742df753c740fa58cfcc410e2b288e97e2 (patch) | |
tree | 2fa106c93715d2ff979654849e0d98f34e7b107b /gnome-base/gdm/files | |
parent | Added upstream patch to build against system boost (diff) | |
download | historical-50f60f742df753c740fa58cfcc410e2b288e97e2.tar.gz historical-50f60f742df753c740fa58cfcc410e2b288e97e2.tar.bz2 historical-50f60f742df753c740fa58cfcc410e2b288e97e2.zip |
Version bump. Update all patches against master and stop shipping them in a separate tarball, their size does not justify it.
Package-Manager: portage-2.2.0_alpha3/cvs/Linux x86_64
Diffstat (limited to 'gnome-base/gdm/files')
6 files changed, 394 insertions, 0 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 new file mode 100644 index 000000000000..90c1cef3ffac --- /dev/null +++ b/gnome-base/gdm/files/gdm-2.32.0-automagic-libxklavier-support.patch @@ -0,0 +1,60 @@ +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-broken-VT-detection.patch b/gnome-base/gdm/files/gdm-2.32.0-broken-VT-detection.patch new file mode 100644 index 000000000000..475a9394d3a7 --- /dev/null +++ b/gnome-base/gdm/files/gdm-2.32.0-broken-VT-detection.patch @@ -0,0 +1,98 @@ +From 75b80587960b4cee6bd849a34d9e84dd46b91abc Mon Sep 17 00:00:00 2001 +From: Gilles Dartiguelongue <eva@gentoo.org> +Date: Tue, 2 Nov 2010 23:18:21 +0100 +Subject: [PATCH 3/6] Fix VT grab problem causing GDM to grab VT2 instead of 7 + +Gentoo bug: #261339 + +--- + common/gdm-settings-keys.h | 1 + + daemon/gdm-server.c | 15 ++++++++++++--- + data/gdm.schemas.in.in | 5 +++++ + 3 files changed, 18 insertions(+), 3 deletions(-) + +diff --git a/common/gdm-settings-keys.h b/common/gdm-settings-keys.h +index 65a1628..e64eba0 100644 +--- a/common/gdm-settings-keys.h ++++ b/common/gdm-settings-keys.h +@@ -27,6 +27,7 @@ G_BEGIN_DECLS + + #define GDM_KEY_USER "daemon/User" + #define GDM_KEY_GROUP "daemon/Group" ++#define GDM_KEY_VT "daemon/VT" + #define GDM_KEY_AUTO_LOGIN_ENABLE "daemon/AutomaticLoginEnable" + #define GDM_KEY_AUTO_LOGIN_USER "daemon/AutomaticLogin" + #define GDM_KEY_TIMED_LOGIN_ENABLE "daemon/TimedLoginEnable" +diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c +index 339f3cc..f25d6f1 100644 +--- a/daemon/gdm-server.c ++++ b/daemon/gdm-server.c +@@ -47,7 +47,9 @@ + + #include "gdm-common.h" + #include "gdm-signal-handler.h" +- ++#include "gdm-settings.h" ++#include "gdm-settings-direct.h" ++#include "gdm-settings-keys.h" + #include "gdm-server.h" + + extern char **environ; +@@ -83,7 +85,7 @@ struct GdmServerPrivate + char *parent_display_name; + char *parent_auth_file; + char *chosen_hostname; +- ++ char *vt; + guint child_watch_id; + }; + +@@ -686,7 +688,7 @@ gdm_server_start (GdmServer *server) + gboolean res; + + /* fork X server process */ +- res = gdm_server_spawn (server, NULL); ++ res = gdm_server_spawn (server, server->priv->vt); + + return res; + } +@@ -937,6 +939,8 @@ gdm_server_class_init (GdmServerClass *klass) + static void + gdm_server_init (GdmServer *server) + { ++ int vt; ++ gboolean has_vt; + + server->priv = GDM_SERVER_GET_PRIVATE (server); + +@@ -944,6 +948,11 @@ gdm_server_init (GdmServer *server) + server->priv->command = g_strdup (X_SERVER " -br -verbose"); + server->priv->log_dir = g_strdup (LOGDIR); + ++ has_vt = gdm_settings_direct_get_int (GDM_KEY_VT, &vt); ++ if (has_vt) { ++ server->priv->vt = g_strdup_printf ("vt %d", vt); ++ } ++ + add_ready_handler (server); + } + +diff --git a/data/gdm.schemas.in.in b/data/gdm.schemas.in.in +index 514117d..948e403 100644 +--- a/data/gdm.schemas.in.in ++++ b/data/gdm.schemas.in.in +@@ -23,6 +23,11 @@ + <default>@GDM_GROUPNAME@</default> + </schema> + <schema> ++ <key>daemon/VT</key> ++ <signature>i</signature> ++ <default>7</default> ++ </schema> ++ <schema> + <key>daemon/AutomaticLoginEnable</key> + <signature>b</signature> + <default>false</default> +-- +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 new file mode 100644 index 000000000000..c48cb0743a2e --- /dev/null +++ b/gnome-base/gdm/files/gdm-2.32.0-custom-session.patch @@ -0,0 +1,51 @@ +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 new file mode 100644 index 000000000000..2ae7f610bd45 --- /dev/null +++ b/gnome-base/gdm/files/gdm-2.32.0-fix-daemonize-regression.patch @@ -0,0 +1,126 @@ +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-selinux-remove-attr.patch b/gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch new file mode 100644 index 000000000000..e563aa42513f --- /dev/null +++ b/gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch @@ -0,0 +1,27 @@ +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-2.32.0-xinitrc-ssh-agent.patch b/gnome-base/gdm/files/gdm-2.32.0-xinitrc-ssh-agent.patch new file mode 100644 index 000000000000..b1cddf1758c4 --- /dev/null +++ b/gnome-base/gdm/files/gdm-2.32.0-xinitrc-ssh-agent.patch @@ -0,0 +1,32 @@ +From 1cb1841da3a8fedc1671637e2828d5e361af21fa Mon Sep 17 00:00:00 2001 +From: Gilles Dartiguelongue <eva@gentoo.org> +Date: Tue, 2 Nov 2010 23:19:31 +0100 +Subject: [PATCH 5/6] ssh-agent handling must be done at xinitrc.d + +Gentoo bug: #220603 +--- + data/Xsession.in | 8 -------- + 1 files changed, 0 insertions(+), 8 deletions(-) + +diff --git a/data/Xsession.in b/data/Xsession.in +index 0da187d..aa49b90 100755 +--- a/data/Xsession.in ++++ b/data/Xsession.in +@@ -189,14 +189,6 @@ if [ -d /etc/X11/xinit/xinitrc.d ]; then + done + fi + +-# add ssh-agent if found +-sshagent="`gdmwhich ssh-agent`" +-if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then +- command="$sshagent -- $command" +-elif [ -z "$sshagent" ] ; then +- echo "$0: ssh-agent not found!" +-fi +- + echo "$0: Setup done, will execute: $command" + + eval exec $command +-- +1.7.3.1 + |