summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2014-03-19 22:30:36 +0000
committerPacho Ramos <pacho@gentoo.org>2014-03-19 22:30:36 +0000
commit419d60bca34d4c87cc1e0cfe84de8b0bd91430f8 (patch)
treebb3a51ec2a0fd887353320ea071c7d4439f36836 /gnome-base
parentIncrease EAPI to 5 (diff)
downloadgentoo-2-419d60bca34d4c87cc1e0cfe84de8b0bd91430f8.tar.gz
gentoo-2-419d60bca34d4c87cc1e0cfe84de8b0bd91430f8.tar.bz2
gentoo-2-419d60bca34d4c87cc1e0cfe84de8b0bd91430f8.zip
Lots of upstream fixes, drop obsolete files
(Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key A188FBD4)
Diffstat (limited to 'gnome-base')
-rw-r--r--gnome-base/gdm/ChangeLog16
-rw-r--r--gnome-base/gdm/files/3.2.1.1/gdm11
-rw-r--r--gnome-base/gdm/files/3.2.1.1/gdm-autologin10
-rw-r--r--gnome-base/gdm/files/3.2.1.1/gdm-fingerprint14
-rw-r--r--gnome-base/gdm/files/3.2.1.1/gdm-password11
-rw-r--r--gnome-base/gdm/files/3.2.1.1/gdm-smartcard15
-rw-r--r--gnome-base/gdm/files/3.2.1.1/gdm-welcome9
-rw-r--r--gnome-base/gdm/files/3.2.1.1/gdm.service11
-rw-r--r--gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch195
-rw-r--r--gnome-base/gdm/files/gdm-3.3.92.1-disable-accessibility.patch30
-rw-r--r--gnome-base/gdm/files/gdm-3.6.0-fix-daemonize-regression.patch192
-rw-r--r--gnome-base/gdm/files/gdm-3.6.2-gdm-slave.xml-unicode.patch27
-rwxr-xr-xgnome-base/gdm/files/gdm-3.7.3.1-disable-accessibility.patch34
-rwxr-xr-xgnome-base/gdm/files/gdm-3.7.90-fix-daemonize-regression.patch134
-rw-r--r--gnome-base/gdm/gdm-3.10.0.1-r1.ebuild232
15 files changed, 247 insertions, 694 deletions
diff --git a/gnome-base/gdm/ChangeLog b/gnome-base/gdm/ChangeLog
index d01e03125da0..b794307fea96 100644
--- a/gnome-base/gdm/ChangeLog
+++ b/gnome-base/gdm/ChangeLog
@@ -1,6 +1,20 @@
# ChangeLog for gnome-base/gdm
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/gnome-base/gdm/ChangeLog,v 1.395 2014/03/09 11:58:00 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gdm/ChangeLog,v 1.396 2014/03/19 22:30:35 pacho Exp $
+
+*gdm-3.10.0.1-r1 (19 Mar 2014)
+
+ 19 Mar 2014; Pacho Ramos <pacho@gentoo.org> +gdm-3.10.0.1-r1.ebuild,
+ -files/3.2.1.1/gdm, -files/3.2.1.1/gdm-autologin,
+ -files/3.2.1.1/gdm-fingerprint, -files/3.2.1.1/gdm-password,
+ -files/3.2.1.1/gdm-smartcard, -files/3.2.1.1/gdm-welcome,
+ -files/3.2.1.1/gdm.service, -files/gdm-2.32.0-fix-vt-problems.patch,
+ -files/gdm-3.3.92.1-disable-accessibility.patch,
+ -files/gdm-3.6.0-fix-daemonize-regression.patch,
+ -files/gdm-3.6.2-gdm-slave.xml-unicode.patch,
+ -files/gdm-3.7.3.1-disable-accessibility.patch,
+ -files/gdm-3.7.90-fix-daemonize-regression.patch:
+ Lots of upstream fixes, drop obsolete files
09 Mar 2014; Pacho Ramos <pacho@gentoo.org> gdm-3.10.0.1.ebuild:
x86 stable, bug 499954
diff --git a/gnome-base/gdm/files/3.2.1.1/gdm b/gnome-base/gdm/files/3.2.1.1/gdm
deleted file mode 100644
index d965ecac53bc..000000000000
--- a/gnome-base/gdm/files/3.2.1.1/gdm
+++ /dev/null
@@ -1,11 +0,0 @@
-#%PAM-1.0
-auth optional pam_env.so
-auth include system-login
-auth required pam_nologin.so
-
-account include system-login
-
-password include system-login
-
-session include system-auth
-#Keyring=session optional pam_gnome_keyring.so auto_start
diff --git a/gnome-base/gdm/files/3.2.1.1/gdm-autologin b/gnome-base/gdm/files/3.2.1.1/gdm-autologin
deleted file mode 100644
index 9d165d6d9cc5..000000000000
--- a/gnome-base/gdm/files/3.2.1.1/gdm-autologin
+++ /dev/null
@@ -1,10 +0,0 @@
-#%PAM-1.0
-auth optional pam_env.so
-auth required pam_nologin.so
-auth required pam_permit.so
-account include system-login
-password include system-login
-session include system-auth
-# For the keyring to unlock with autologin, you need to set an empty
-# password on the keyring.
-#Keyring=session optional pam_gnome_keyring.so auto_start
diff --git a/gnome-base/gdm/files/3.2.1.1/gdm-fingerprint b/gnome-base/gdm/files/3.2.1.1/gdm-fingerprint
deleted file mode 100644
index 7d38de945fd3..000000000000
--- a/gnome-base/gdm/files/3.2.1.1/gdm-fingerprint
+++ /dev/null
@@ -1,14 +0,0 @@
-#%PAM-1.0
-# Note: no pam_gnome_keyring.so support since the login password is not used
-auth optional pam_env.so
-auth required pam_tally2.so onerr=succeed
-auth required pam_shells.so
-auth required pam_nologin.so
-auth required pam_fprintd.so
-auth optional pam_permit.so
-
-account include system-login
-
-password required pam_deny.so
-
-session include system-auth
diff --git a/gnome-base/gdm/files/3.2.1.1/gdm-password b/gnome-base/gdm/files/3.2.1.1/gdm-password
deleted file mode 100644
index d965ecac53bc..000000000000
--- a/gnome-base/gdm/files/3.2.1.1/gdm-password
+++ /dev/null
@@ -1,11 +0,0 @@
-#%PAM-1.0
-auth optional pam_env.so
-auth include system-login
-auth required pam_nologin.so
-
-account include system-login
-
-password include system-login
-
-session include system-auth
-#Keyring=session optional pam_gnome_keyring.so auto_start
diff --git a/gnome-base/gdm/files/3.2.1.1/gdm-smartcard b/gnome-base/gdm/files/3.2.1.1/gdm-smartcard
deleted file mode 100644
index 5cf884da8713..000000000000
--- a/gnome-base/gdm/files/3.2.1.1/gdm-smartcard
+++ /dev/null
@@ -1,15 +0,0 @@
-#%PAM-1.0
-auth optional pam_env.so
-auth required pam_tally2.so onerr=succeed
-auth required pam_shells.so
-auth required pam_nologin.so
-auth [success=done ignore=ignore default=die] pam_pkcs11.so wait_for_card card_only
-auth optional pam_permit.so
-
-account include system-login
-
-password optional pam_pkcs11.so
-password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
-password optional pam_permit.so
-
-session include system-auth
diff --git a/gnome-base/gdm/files/3.2.1.1/gdm-welcome b/gnome-base/gdm/files/3.2.1.1/gdm-welcome
deleted file mode 100644
index 932eefee357f..000000000000
--- a/gnome-base/gdm/files/3.2.1.1/gdm-welcome
+++ /dev/null
@@ -1,9 +0,0 @@
-#%PAM-1.0
-auth required pam_env.so
-auth required pam_permit.so
-account required pam_nologin.so
-account include system-services
-password include system-services
-session required pam_loginuid.so
-session optional pam_keyinit.so force revoke
-session include system-services
diff --git a/gnome-base/gdm/files/3.2.1.1/gdm.service b/gnome-base/gdm/files/3.2.1.1/gdm.service
deleted file mode 100644
index 63bb08e90219..000000000000
--- a/gnome-base/gdm/files/3.2.1.1/gdm.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=GNOME Display Manager
-After=systemd-user-sessions.service
-
-[Service]
-ExecStart=/usr/bin/gdm --nodaemon
-Type=dbus
-BusName=org.gnome.DisplayManager
-
-[Install]
-WantedBy=graphical.target
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 f219a1490874..000000000000
--- 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-3.3.92.1-disable-accessibility.patch b/gnome-base/gdm/files/gdm-3.3.92.1-disable-accessibility.patch
deleted file mode 100644
index 1df7e583e675..000000000000
--- a/gnome-base/gdm/files/gdm-3.3.92.1-disable-accessibility.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -Naur gdm-3.3.92.1//data/00-upstream-settings gdm-3.3.92.1.new//data/00-upstream-settings
---- gdm-3.3.92.1//data/00-upstream-settings 2012-02-08 04:50:32.000000000 +0530
-+++ gdm-3.3.92.1.new//data/00-upstream-settings 2012-03-25 14:24:01.387842352 +0530
-@@ -7,7 +7,7 @@
- #
-
- [org/gnome/desktop/a11y/keyboard]
--enable=true
-+enable=false
-
- [org/gnome/desktop/background]
- show-desktop-icons=false
-@@ -16,7 +16,7 @@
- exec='/bin/true'
-
- [org/gnome/desktop/interface]
--toolkit-accessibility=true
-+toolkit-accessibility=false
-
- [org/gnome/desktop/lockdown]
- disable-application-handlers=true
-@@ -35,7 +35,7 @@
- event-sounds=true
-
- [org/gnome/settings-daemon/plugins/a11y-keyboard]
--active=true
-+active=false
-
- [org/gnome/settings-daemon/plugins/a11y-settings]
- active=false
diff --git a/gnome-base/gdm/files/gdm-3.6.0-fix-daemonize-regression.patch b/gnome-base/gdm/files/gdm-3.6.0-fix-daemonize-regression.patch
deleted file mode 100644
index 27f207970a8f..000000000000
--- a/gnome-base/gdm/files/gdm-3.6.0-fix-daemonize-regression.patch
+++ /dev/null
@@ -1,192 +0,0 @@
-From 722d31dc8823090b651b103f0194b6380f2d458e Mon Sep 17 00:00:00 2001
-From: Alexandre Rostovtsev <tetromino@gentoo.org>
-Date: Tue, 25 Sep 2012 22:30:29 -0400
-Subject: [PATCH] daemonize so that the boot process can continue
-
-Gentoo bug: #236701
-
-Based on original patch by Dan Nicholson <dbn.lists@gmail.com> and
-Gilles Dartiguelongue <eva@gentoo.org>.
-
-Fork gdm-binary, except when -nodaemon is used
-
-Makes the gdm main binary fork and daemonize unless the -nodaemon or
---nodaemon options are used. Provides compatibility with xdm. Fixes
-bug #550170.
-
-In daemonized mode, start a new process group, and kill it in our signal
-handlers, so that killing gdm kills its spawned processes, and so that
-"/etc/init.d/xdm stop" actually works.
----
- configure.ac | 4 ++++
- daemon/Makefile.am | 1 +
- daemon/main.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 65 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 61a43d6..a851ba5 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -99,6 +99,10 @@ PKG_CHECK_MODULES(DAEMON,
- AC_SUBST(DAEMON_CFLAGS)
- AC_SUBST(DAEMON_LIBS)
-
-+PKG_CHECK_MODULES(LIBDAEMON, libdaemon)
-+AC_SUBST(LIBDAEMON_CFLAGS)
-+AC_SUBST(LIBDAEMON_LIBS)
-+
- GLIB_GSETTINGS
-
- PKG_CHECK_MODULES(NSS,
-diff --git a/daemon/Makefile.am b/daemon/Makefile.am
-index bb84765..cf89b47 100644
---- a/daemon/Makefile.am
-+++ b/daemon/Makefile.am
-@@ -380,6 +380,7 @@ gdm_binary_LDADD = \
- $(top_builddir)/common/libgdmcommon.la \
- $(XLIB_LIBS) \
- $(DAEMON_LIBS) \
-+ $(LIBDAEMON_LIBS) \
- $(XDMCP_LIBS) \
- $(LIBWRAP_LIBS) \
- $(SYSTEMD_LIBS) \
-diff --git a/daemon/main.c b/daemon/main.c
-index 3b8572c..c2fe4fe 100644
---- a/daemon/main.c
-+++ b/daemon/main.c
-@@ -34,6 +34,8 @@
- #include <locale.h>
- #include <signal.h>
-
-+#include <libdaemon/dfork.h>
-+
- #include <glib.h>
- #include <glib/gi18n.h>
- #include <glib/gstdio.h>
-@@ -336,16 +338,26 @@ signal_cb (int signo,
- gpointer data)
- {
- int ret;
-+ static gboolean ignore_signals = FALSE;
-
- g_debug ("Got callback for signal %d", signo);
-
- ret = TRUE;
-
-+ /* don't commit suicide before killing everyone in our process group */
-+ if (ignore_signals)
-+ return ret;
-+
- switch (signo) {
- case SIGFPE:
- case SIGPIPE:
- /* let the fatal signals interrupt us */
- g_debug ("Caught signal %d, shutting down abnormally.", signo);
-+ /* if we daemonized, kill all the processes we spawned */
-+ ignore_signals = TRUE;
-+ kill (-getpid (), signo);
-+ ignore_signals = FALSE;
-+
- ret = FALSE;
-
- break;
-@@ -354,6 +366,11 @@ signal_cb (int signo,
- case SIGTERM:
- /* let the fatal signals interrupt us */
- g_debug ("Caught signal %d, shutting down normally.", signo);
-+ /* if we daemonized, kill all the processes we spawned */
-+ ignore_signals = TRUE;
-+ kill (-getpid (), signo);
-+ ignore_signals = FALSE;
-+
- ret = FALSE;
-
- break;
-@@ -418,13 +435,16 @@ main (int argc,
- GOptionContext *context;
- 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 },
-
-@@ -439,6 +459,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);
-@@ -465,6 +493,33 @@ main (int argc,
- g_log_set_always_fatal (fatal_mask);
- }
-
-+ if (!no_daemon) {
-+ pid_t pid;
-+ if (daemon_retval_init () < 0) {
-+ g_warning ("Failed to create pipe");
-+ exit (-1);
-+ }
-+ if ((pid = daemon_fork ()) < 0) {
-+ /* Fork failed */
-+ daemon_retval_done ();
-+ exit (1);
-+ } else if (pid) {
-+ /* Parent process: wait 20s for daemon_retval_send() in the daemon process */
-+ if ((ret = daemon_retval_wait (20)) < 0) {
-+ g_warning ("Timed out waiting for daemon process: %s", strerror(errno));
-+ exit (255);
-+ } else if (ret > 0) {
-+ g_warning ("Daemon process returned error code %d", ret);
-+ exit (ret);
-+ }
-+ exit (0);
-+ }
-+ /* Daemon process */
-+ daemon_close_all (-1);
-+ /* Start a new process group so that killing the daemon will kill the processes that it spawned */
-+ setsid ();
-+ }
-+
- gdm_log_init ();
-
- settings = gdm_settings_new ();
-@@ -519,6 +574,9 @@ main (int argc,
- g_timeout_add_seconds (30, (GSourceFunc) timed_exit_cb, main_loop);
- }
-
-+ if (!no_daemon)
-+ daemon_retval_send (0);
-+
- g_main_loop_run (main_loop);
-
- g_debug ("GDM finished, cleaning up...");
-@@ -535,6 +593,8 @@ main (int argc,
- ret = 0;
-
- out:
-+ if (!no_daemon)
-+ daemon_retval_send (ret);
-
- return ret;
- }
---
-1.7.12
-
diff --git a/gnome-base/gdm/files/gdm-3.6.2-gdm-slave.xml-unicode.patch b/gnome-base/gdm/files/gdm-3.6.2-gdm-slave.xml-unicode.patch
deleted file mode 100644
index 2863b752961a..000000000000
--- a/gnome-base/gdm/files/gdm-3.6.2-gdm-slave.xml-unicode.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 72fd8c8da02b47403992945a61d2514d6ee78cf4 Mon Sep 17 00:00:00 2001
-From: Alexandre Rostovtsev <tetromino@gentoo.org>
-Date: Fri, 28 Dec 2012 18:50:37 -0500
-Subject: [PATCH] daemon: remove spurious unicode characters from dbus
- introspection file
-
-https://bugzilla.gnome.org/show_bug.cgi?id=690842
----
- daemon/gdm-slave.xml | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/daemon/gdm-slave.xml b/daemon/gdm-slave.xml
-index 547c44e..d055252 100644
---- a/daemon/gdm-slave.xml
-+++ b/daemon/gdm-slave.xml
-@@ -14,6 +14,6 @@
- <arg name="address" type="s" direction="out" />
- </method>
-
-- <property name="session_id" type="s" access="read"/>•
-- </interface>•
-+ <property name="session_id" type="s" access="read"/>
-+ </interface>
- </node>
---
-1.8.0.2
-
diff --git a/gnome-base/gdm/files/gdm-3.7.3.1-disable-accessibility.patch b/gnome-base/gdm/files/gdm-3.7.3.1-disable-accessibility.patch
deleted file mode 100755
index bf684640a16d..000000000000
--- a/gnome-base/gdm/files/gdm-3.7.3.1-disable-accessibility.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 07fb1b31d818f308beb1c3800c4b90830b57d01b Mon Sep 17 00:00:00 2001
-From: Sobhan Mohammadpour <sobhanmohammadpour1@yahoo.fr>
-Date: Fri, 25 Jan 2013 10:03:31 +0330
-Subject: [PATCH] don't load accessbility
-
----
- data/00-upstream-settings | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/data/00-upstream-settings b/data/00-upstream-settings
-index 660a295..3993786 100644
---- a/data/00-upstream-settings
-+++ b/data/00-upstream-settings
-@@ -7,7 +7,7 @@
- #
-
- [org/gnome/desktop/a11y/keyboard]
--enable=true
-+enable=false
-
- [org/gnome/desktop/background]
- show-desktop-icons=false
-@@ -16,7 +16,7 @@ show-desktop-icons=false
- exec='/bin/true'
-
- [org/gnome/desktop/interface]
--toolkit-accessibility=true
-+toolkit-accessibility=false
-
- [org/gnome/desktop/lockdown]
- disable-application-handlers=true
---
-1.8.1
-
diff --git a/gnome-base/gdm/files/gdm-3.7.90-fix-daemonize-regression.patch b/gnome-base/gdm/files/gdm-3.7.90-fix-daemonize-regression.patch
deleted file mode 100755
index 810bd6e83646..000000000000
--- a/gnome-base/gdm/files/gdm-3.7.90-fix-daemonize-regression.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-From bda248c1e184f92aedf9f8d932ebd20746910d52 Mon Sep 17 00:00:00 2001
-From: Sobhan Mohammadpour <sobhanmohammadpour1@yahoo.fr>
-Date: Mon, 4 Mar 2013 21:23:45 +0330
-Subject: [PATCH] gdm-3.7.90 fix daemonize regression
-
----
- configure.ac | 4 ++++
- daemon/Makefile.am | 1 +
- daemon/main.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 50 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 0918060..d4ea271 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -99,6 +99,10 @@ PKG_CHECK_MODULES(DAEMON,
- AC_SUBST(DAEMON_CFLAGS)
- AC_SUBST(DAEMON_LIBS)
-
-+PKG_CHECK_MODULES(LIBDAEMON, libdaemon)
-+AC_SUBST(LIBDAEMON_CFLAGS)
-+AC_SUBST(LIBDAEMON_LIBS)
-+
- GLIB_GSETTINGS
-
- PKG_CHECK_MODULES(NSS,
-diff --git a/daemon/Makefile.am b/daemon/Makefile.am
-index ead9096..b810089 100644
---- a/daemon/Makefile.am
-+++ b/daemon/Makefile.am
-@@ -385,6 +385,7 @@ gdm_LDADD = \
- $(top_builddir)/common/libgdmcommon.la \
- $(XLIB_LIBS) \
- $(DAEMON_LIBS) \
-+ $(LIBDAEMON_LIBS) \
- $(XDMCP_LIBS) \
- $(LIBWRAP_LIBS) \
- $(SYSTEMD_LIBS) \
-diff --git a/daemon/main.c b/daemon/main.c
-index 8176fe3..0151862 100644
---- a/daemon/main.c
-+++ b/daemon/main.c
-@@ -34,6 +34,8 @@
- #include <locale.h>
- #include <signal.h>
-
-+#include <libdaemon/dfork.h>
-+
- #include <glib.h>
- #include <glib/gi18n.h>
- #include <glib/gstdio.h>
-@@ -329,8 +331,10 @@ main (int argc,
- 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 },
-
-@@ -343,6 +347,15 @@ main (int argc,
-
- ret = 1;
-
-+ /* preprocess the arguments to support the xdm style
-+ * -nodaemon option
-+ */
-+ int i;
-+ 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);
-@@ -369,6 +382,33 @@ main (int argc,
- g_log_set_always_fatal (fatal_mask);
- }
-
-+ if (!no_daemon) {
-+ pid_t pid;
-+ if (daemon_retval_init () < 0) {
-+ g_warning ("Failed to create pipe");
-+ exit (-1);
-+ }
-+ if ((pid = daemon_fork ()) < 0) {
-+ /* Fork failed */
-+ daemon_retval_done ();
-+ exit (1);
-+ } else if (pid) {
-+ /* Parent process: wait 20s for daemon_retval_send() in the daemon process */
-+ if ((ret = daemon_retval_wait (20)) < 0) {
-+ g_warning ("Timed out waiting for daemon process: %s", strerror(errno));
-+ exit (255);
-+ } else if (ret > 0) {
-+ g_warning ("Daemon process returned error code %d", ret);
-+ exit (ret);
-+ }
-+ exit (0);
-+ }
-+ /* Daemon process */
-+ daemon_close_all (-1);
-+ /* Start a new process group so that killing the daemon will kill the processes that it spawned */
-+ setsid ();
-+ }
-+
- gdm_log_init ();
-
- settings = gdm_settings_new ();
-@@ -418,6 +458,9 @@ main (int argc,
- g_timeout_add_seconds (30, (GSourceFunc) timed_exit_cb, main_loop);
- }
-
-+ if (!no_daemon)
-+ daemon_retval_send (0);
-+
- g_main_loop_run (main_loop);
-
- g_debug ("GDM finished, cleaning up...");
-@@ -433,6 +476,8 @@ main (int argc,
- ret = 0;
-
- out:
-+ if (!no_daemon)
-+ daemon_retval_send (ret);
- if (error) {
- g_printerr ("%s\n", error->message);
- g_clear_error (&error);
---
-1.8.1.2
-
diff --git a/gnome-base/gdm/gdm-3.10.0.1-r1.ebuild b/gnome-base/gdm/gdm-3.10.0.1-r1.ebuild
new file mode 100644
index 000000000000..f947032fbd6b
--- /dev/null
+++ b/gnome-base/gdm/gdm-3.10.0.1-r1.ebuild
@@ -0,0 +1,232 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/gnome-base/gdm/gdm-3.10.0.1-r1.ebuild,v 1.1 2014/03/19 22:30:35 pacho Exp $
+
+EAPI="5"
+GNOME2_LA_PUNT="yes"
+
+inherit autotools eutils gnome2 pam readme.gentoo systemd user
+
+DESCRIPTION="GNOME Display Manager for managing graphical display servers and user logins"
+HOMEPAGE="https://wiki.gnome.org/GDM"
+
+SRC_URI="${SRC_URI}
+ branding? ( http://www.mail-archive.com/tango-artists@lists.freedesktop.org/msg00043/tango-gentoo-v1.1.tar.gz )
+ http://dev.gentoo.org/~pacho/gnome/${P}-patches.tar.xz
+"
+
+LICENSE="
+ GPL-2+
+ branding? ( CC-Sampling-Plus-1.0 )
+"
+
+SLOT="0"
+IUSE="accessibility audit branding fprint +introspection ipv6 plymouth selinux smartcard +systemd tcpd test xinerama"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86"
+
+# NOTE: x11-base/xorg-server dep is for X_SERVER_PATH etc, bug #295686
+# nspr used by smartcard extension
+# dconf, dbus and g-s-d are needed at install time for dconf update
+# We need either systemd or >=openrc-0.12 to restart gdm properly, bug #463784
+COMMON_DEPEND="
+ app-text/iso-codes
+ >=dev-libs/glib-2.36:2
+ >=x11-libs/gtk+-2.91.1:3
+ >=gnome-base/dconf-0.11.6
+ >=gnome-base/gnome-settings-daemon-3.1.4
+ gnome-base/gsettings-desktop-schemas
+ >=media-libs/fontconfig-2.5.0
+ >=media-libs/libcanberra-0.4[gtk3]
+ sys-apps/dbus
+ >=sys-apps/accountsservice-0.6.12
+
+ x11-apps/sessreg
+ x11-base/xorg-server
+ x11-libs/libXi
+ x11-libs/libXau
+ x11-libs/libX11
+ x11-libs/libXdmcp
+ x11-libs/libXext
+ x11-libs/libXft
+ x11-libs/libXrandr
+ >=x11-misc/xdg-utils-1.0.2-r3
+
+ virtual/pam
+ systemd? ( >=sys-apps/systemd-186[pam] )
+ !systemd? (
+ >=x11-base/xorg-server-1.14.3-r1
+ >=sys-auth/consolekit-0.4.5_p20120320-r2
+ !<sys-apps/openrc-0.12
+ )
+ sys-auth/pambase[systemd?]
+
+ audit? ( sys-process/audit )
+ introspection? ( >=dev-libs/gobject-introspection-0.9.12 )
+ plymouth? ( sys-boot/plymouth )
+ selinux? ( sys-libs/libselinux )
+ tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
+ xinerama? ( x11-libs/libXinerama )
+"
+# XXX: These deps are from session and desktop files in data/ directory
+# fprintd is used via dbus by gdm-fingerprint-extension
+# gnome-session-3.6 needed to avoid freezing with orca
+RDEPEND="${COMMON_DEPEND}
+ >=gnome-base/gnome-session-3.6
+ >=gnome-base/gnome-shell-3.1.90
+ gnome-extra/polkit-gnome:0
+ x11-apps/xhost
+ x11-themes/gnome-icon-theme-symbolic
+
+ accessibility? (
+ >=app-accessibility/orca-3.10
+ app-accessibility/caribou
+ gnome-extra/mousetweaks )
+ fprint? (
+ sys-auth/fprintd
+ sys-auth/pam_fprint )
+
+ !gnome-extra/fast-user-switch-applet
+"
+DEPEND="${COMMON_DEPEND}
+ app-text/docbook-xml-dtd:4.1.2
+ >=dev-util/intltool-0.40.0
+ >=sys-devel/gettext-0.17
+ virtual/pkgconfig
+ x11-proto/inputproto
+ x11-proto/randrproto
+ test? ( >=dev-libs/check-0.9.4 )
+ xinerama? ( x11-proto/xineramaproto )
+"
+
+DOC_CONTENTS="
+ To make GDM start at boot, run:\n
+ # systemctl enable gdm.service\n
+ \n
+ For passwordless login to unlock your keyring, you need to install
+ sys-auth/pambase with USE=gnome-keyring and set an empty password
+ on your keyring. Use app-crypt/seahorse for that.\n
+ \n
+ You may need to install app-crypt/coolkey and sys-auth/pam_pkcs11
+ for smartcard support
+"
+
+pkg_setup() {
+ enewgroup gdm
+ enewgroup video # Just in case it hasn't been created yet
+ enewuser gdm -1 -1 /var/lib/gdm gdm,video
+
+ # For compatibility with certain versions of nvidia-drivers, etc., need to
+ # ensure that gdm user is in the video group
+ if ! egetent group video | grep -q gdm; then
+ # FIXME XXX: is this at all portable, ldap-safe, etc.?
+ # XXX: egetent does not have a 1-argument form, so we can't use it to
+ # get the list of gdm's groups
+ local g=$(groups gdm)
+ elog "Adding user gdm to video group"
+ usermod -G video,${g// /,} gdm || die "Adding user gdm to video group failed"
+ fi
+}
+
+src_prepare() {
+ # make custom session work, bug #216984
+ epatch "${FILESDIR}/${PN}-3.2.1.1-custom-session.patch"
+
+ # ssh-agent handling must be done at xinitrc.d, bug #220603
+ epatch "${FILESDIR}/${PN}-2.32.0-xinitrc-ssh-agent.patch"
+
+ # Gentoo does not have a fingerprint-auth pam stack
+ epatch "${FILESDIR}/${PN}-3.8.4-fingerprint-auth.patch"
+
+ # Show logo when branding is enabled
+ use branding && epatch "${FILESDIR}/${PN}-3.8.4-logo.patch"
+
+ # Allow many fixes from 3.10 branch and some from master
+ epatch "${WORKDIR}/${P}-patches"/*.patch
+
+ eautoreconf
+
+ gnome2_src_prepare
+}
+
+src_configure() {
+ # PAM is the only auth scheme supported
+ # even though configure lists shadow and crypt
+ # they don't have any corresponding code.
+ # --with-at-spi-registryd-directory= needs to be passed explicitly because
+ # of https://bugzilla.gnome.org/show_bug.cgi?id=607643#c4
+ # Xevie is obsolete, bug #482304
+ gnome2_src_configure \
+ --with-run-dir=/run/gdm \
+ --localstatedir="${EPREFIX}"/var \
+ --disable-static \
+ --with-xdmcp=yes \
+ --enable-authentication-scheme=pam \
+ --with-default-pam-config=exherbo \
+ --with-at-spi-registryd-directory="${EPREFIX}"/usr/libexec \
+ --with-consolekit-directory=${EPREFIX}/usr/lib/ConsoleKit \
+ --with-initial-vt=7 \
+ --without-xevie \
+ $(use_with audit libaudit) \
+ $(use_enable ipv6) \
+ $(use_with plymouth) \
+ $(use_with selinux) \
+ $(use_with systemd) \
+ $(use_with !systemd console-kit) \
+ $(use_enable systemd systemd-journal) \
+ $(systemd_with_unitdir) \
+ $(use_with tcpd tcp-wrappers) \
+ $(use_with xinerama) \
+ ITSTOOL=$(type -P true)
+}
+
+src_install() {
+ gnome2_src_install
+
+ if ! use accessibility ; then
+ rm "${ED}"/usr/share/gdm/greeter/autostart/orca-autostart.desktop || die
+ fi
+
+ insinto /etc/X11/xinit/xinitrc.d
+ newins "${FILESDIR}/49-keychain-r1" 49-keychain
+ newins "${FILESDIR}/50-ssh-agent-r1" 50-ssh-agent
+
+ # log, etc.
+ keepdir /var/log/gdm
+
+ # gdm user's home directory
+ keepdir /var/lib/gdm
+ fowners gdm:gdm /var/lib/gdm
+
+ # install XDG_DATA_DIRS gdm changes
+ echo 'XDG_DATA_DIRS="/usr/share/gdm"' > 99xdg-gdm
+ doenvd 99xdg-gdm
+
+ use branding && newicon "${WORKDIR}/tango-gentoo-v1.1/scalable/gentoo.svg" gentoo-gdm.svg
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ local d ret
+
+ gnome2_pkg_postinst
+
+ dbus-launch dconf update || die "'dconf update' failed"
+
+ # bug #436456; gdm crashes if /var/lib/gdm subdirs are not owned by gdm:gdm
+ ret=0
+ ebegin "Fixing "${EROOT}"var/lib/gdm ownership"
+ chown gdm:gdm "${EROOT}var/lib/gdm" || ret=1
+ for d in "${EROOT}var/lib/gdm/"{.cache,.config,.local}; do
+ [[ ! -e "${d}" ]] || chown -R gdm:gdm "${d}" || ret=1
+ done
+ eend ${ret}
+
+ readme.gentoo_print_elog
+
+ if [[ -f "/etc/X11/gdm/gdm.conf" ]]; then
+ elog "You had /etc/X11/gdm/gdm.conf which is the old configuration"
+ elog "file. It has been moved to /etc/X11/gdm/gdm-pre-gnome-2.16"
+ mv /etc/X11/gdm/gdm.conf /etc/X11/gdm/gdm-pre-gnome-2.16
+ fi
+}