summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'gnome-base/gdm')
-rw-r--r--gnome-base/gdm/Manifest15
-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-daemonize-regression.patch126
-rw-r--r--gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch195
-rw-r--r--gnome-base/gdm/files/gdm-2.32.0-selinux-remove-attr.patch27
-rw-r--r--gnome-base/gdm/files/gdm-2.32.0-xinitrc-ssh-agent.patch32
-rw-r--r--gnome-base/gdm/files/gdm-3.2.1.1-custom-session.patch51
-rw-r--r--gnome-base/gdm/files/gdm-3.3.92.1-disable-accessibility.patch30
-rw-r--r--gnome-base/gdm/gdm-3.5.2.ebuild262
15 files changed, 819 insertions, 0 deletions
diff --git a/gnome-base/gdm/Manifest b/gnome-base/gdm/Manifest
new file mode 100644
index 0000000..fcb37a8
--- /dev/null
+++ b/gnome-base/gdm/Manifest
@@ -0,0 +1,15 @@
+AUX 3.2.1.1/gdm 274 RMD160 88c235b0e1907829a38a1be9c8f0fdc262b042d7 SHA1 3b08e4022e421417cb1fd9a03fd01c1ddedb27d5 SHA256 4c26f02021ffa41500fa98aeda61dde6d059243f027cf93f8fb00fde39a9edd3
+AUX 3.2.1.1/gdm-autologin 369 RMD160 2adb17241b378ad4ca10e6241cb21b5a679c0973 SHA1 8372a199f5e00fb0d9d2630d0ced060f190d2af2 SHA256 e964a100e72a8eccea4ed8e1558ae70cbe5b7cbea67415651d0c0bdcea2d06c8
+AUX 3.2.1.1/gdm-fingerprint 466 RMD160 3f63354ccce1de0dacc3c4b304673fa56fb35e4e SHA1 6e2d0d67e4c9cbff1efe3de5f57b1ace137c3314 SHA256 3af315d6abe928dd769f2cc9896d536e187ab373b29667c185e452ac6063d9cc
+AUX 3.2.1.1/gdm-password 274 RMD160 88c235b0e1907829a38a1be9c8f0fdc262b042d7 SHA1 3b08e4022e421417cb1fd9a03fd01c1ddedb27d5 SHA256 4c26f02021ffa41500fa98aeda61dde6d059243f027cf93f8fb00fde39a9edd3
+AUX 3.2.1.1/gdm-smartcard 573 RMD160 6e1655b9b6d6cb1710cf052bcf45e0f305ecd244 SHA1 19d459d5970e53ac9a40abdedd183873309b37bf SHA256 9c548668770aa68e730e5d5159d77067dbd0795dae2b7ba6d6ee347f88e90062
+AUX 3.2.1.1/gdm-welcome 326 RMD160 c69bf97510ca352e0da904e9b922c9eadebe7bde SHA1 f626c04e40c838a795f6be599bf01481e16eb854 SHA256 9325241dfd722e58e93dd1dc81714bef4b3b211f4fb8551f39a698415722934a
+AUX 3.2.1.1/gdm.service 202 RMD160 0192b184238f97e2060f4462bd6a9dcb0e2ec2f3 SHA1 f457a6f0c9e6e842eb1a8193ca4e27412e4b484b SHA256 21b105f56bc90178e05806583e3be5e74857c02ec6443318669f9ab6f947bb79
+AUX gdm-2.32.0-fix-daemonize-regression.patch 4048 RMD160 4219fec833f0e62a10e52dee89ef5d1a8618d1c1 SHA1 69c5ed6869d5a467e64249f3afe695796c17c463 SHA256 e95e1ebfcfe2c896130e4925fa6f23911bcfe4db27e2a6788229538c6bb2a59d
+AUX gdm-2.32.0-fix-vt-problems.patch 6156 RMD160 7c739dd278194e1a30672635e35b05f798ec9996 SHA1 6428abdc3c493c4b9f69fcaef8dcb88a910f4d14 SHA256 12da81b8085d76ce3099f1af0ec588c07c3f020f341f825683f4855c9303731e
+AUX gdm-2.32.0-selinux-remove-attr.patch 851 RMD160 10dc29802fb29047188bff7aafe979a5e15e030a SHA1 d78bde425b7a141c91767c3e639ee0011feddadc SHA256 ad13d4b1253dca7d5ac362bcce9f5861c2830a3df32e5370a5a0d975c32ec258
+AUX gdm-2.32.0-xinitrc-ssh-agent.patch 863 RMD160 6ea58bdc1fa24d41f3c51fc7cdbabc05417053f0 SHA1 ad98258168b84c80d581085804b61649ac67e4d5 SHA256 71231d08baf41ee7b91c33c3d8a731c078d1d29328e09223efb1f579bacdaffe
+AUX gdm-3.2.1.1-custom-session.patch 1317 RMD160 20a1dd5608f4154fe53fae4def03f509769da878 SHA1 4acf8ed9b11eb531505c0c58805f1b37948fcb77 SHA256 75bd1bdc0d396fee71ff41c2657f922a4c8e290c891cc72f47647ab832d0c285
+AUX gdm-3.3.92.1-disable-accessibility.patch 779 RMD160 559fac385732f3a97bbd5222e0fd94ba3b879a99 SHA1 a6874897dd36210b51497d7d9606b5ade04ce624 SHA256 a32bddeb5e57086df41b9db433152ae290a405d23c39f0ff497d61544f343528
+DIST gdm-3.5.2.tar.xz 1615452 RMD160 aa36b84ef62ffbbbe9d03f72b6091449db8be842 SHA1 fe921682759180939728b49bc397ab784417d559 SHA256 610dc3945b3aafc1aacc2fe574d34565bb6370e8e9efc207344241f4daee930d
+EBUILD gdm-3.5.2.ebuild 8230 RMD160 b5478777266631dc823264e361c738faa2fc8330 SHA1 01a05a5e8ab8b12df19561b284d5fa4458152671 SHA256 91692870725f5094cf5c365980b0d325a5934a6cef570b403f3798cdd85e5e0e
diff --git a/gnome-base/gdm/files/3.2.1.1/gdm b/gnome-base/gdm/files/3.2.1.1/gdm
new file mode 100644
index 0000000..d965eca
--- /dev/null
+++ b/gnome-base/gdm/files/3.2.1.1/gdm
@@ -0,0 +1,11 @@
+#%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
new file mode 100644
index 0000000..9d165d6
--- /dev/null
+++ b/gnome-base/gdm/files/3.2.1.1/gdm-autologin
@@ -0,0 +1,10 @@
+#%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
new file mode 100644
index 0000000..7d38de9
--- /dev/null
+++ b/gnome-base/gdm/files/3.2.1.1/gdm-fingerprint
@@ -0,0 +1,14 @@
+#%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
new file mode 100644
index 0000000..d965eca
--- /dev/null
+++ b/gnome-base/gdm/files/3.2.1.1/gdm-password
@@ -0,0 +1,11 @@
+#%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
new file mode 100644
index 0000000..5cf884d
--- /dev/null
+++ b/gnome-base/gdm/files/3.2.1.1/gdm-smartcard
@@ -0,0 +1,15 @@
+#%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
new file mode 100644
index 0000000..932eefe
--- /dev/null
+++ b/gnome-base/gdm/files/3.2.1.1/gdm-welcome
@@ -0,0 +1,9 @@
+#%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
new file mode 100644
index 0000000..63bb08e
--- /dev/null
+++ b/gnome-base/gdm/files/3.2.1.1/gdm.service
@@ -0,0 +1,11 @@
+[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-daemonize-regression.patch b/gnome-base/gdm/files/gdm-2.32.0-fix-daemonize-regression.patch
new file mode 100644
index 0000000..2ae7f61
--- /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-fix-vt-problems.patch b/gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch
new file mode 100644
index 0000000..f219a14
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-2.32.0-fix-vt-problems.patch
@@ -0,0 +1,195 @@
+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
new file mode 100644
index 0000000..e563aa4
--- /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 0000000..b1cddf1
--- /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
+
diff --git a/gnome-base/gdm/files/gdm-3.2.1.1-custom-session.patch b/gnome-base/gdm/files/gdm-3.2.1.1-custom-session.patch
new file mode 100644
index 0000000..0642f7c
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.2.1.1-custom-session.patch
@@ -0,0 +1,51 @@
+From b96c19976b6876648fd91949f78f06cf5d269b18 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Tue, 2 Nov 2010 23:19:07 +0100
+Subject: [PATCH] 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 118518c..201be92 100755
+--- a/data/Xsession.in
++++ b/data/Xsession.in
+@@ -155,15 +155,6 @@ fi
+
+ xhost +si:localuser:`id -un` || :
+
+-# 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"
+@@ -191,6 +182,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" -a ! -d "$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.7
+
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
new file mode 100644
index 0000000..1df7e58
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-3.3.92.1-disable-accessibility.patch
@@ -0,0 +1,30 @@
+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/gdm-3.5.2.ebuild b/gnome-base/gdm/gdm-3.5.2.ebuild
new file mode 100644
index 0000000..55abda0
--- /dev/null
+++ b/gnome-base/gdm/gdm-3.5.2.ebuild
@@ -0,0 +1,262 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+GNOME2_LA_PUNT="yes"
+
+inherit autotools eutils gnome2 pam systemd
+
+DESCRIPTION="GNOME Display Manager"
+HOMEPAGE="http://www.gnome.org/projects/gdm/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~sh ~x86"
+
+IUSE="accessibility +consolekit +fallback fprint +gnome-shell ipv6 gnome-keyring +introspection plymouth selinux smartcard systemd tcpd test xinerama +xklavier"
+
+# 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
+COMMON_DEPEND="
+ >=dev-libs/dbus-glib-0.74
+ >=dev-libs/glib-2.29.3:2
+ >=x11-libs/gtk+-2.91.1:3
+ >=x11-libs/pango-1.3
+ dev-libs/nspr
+ >=dev-libs/nss-3.11.1
+ >=media-libs/fontconfig-2.5.0
+ >=media-libs/libcanberra-0.4[gtk3]
+ >=x11-misc/xdg-utils-1.0.2-r3
+ >=sys-power/upower-0.9
+ >=sys-apps/accountsservice-0.6.12
+
+ gnome-base/dconf
+ >=gnome-base/gnome-settings-daemon-3.1.4
+ gnome-base/gsettings-desktop-schemas
+ sys-apps/dbus
+
+ app-text/iso-codes
+
+ 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-apps/sessreg
+
+ virtual/pam
+ consolekit? ( sys-auth/consolekit )
+
+ accessibility? ( x11-libs/libXevie )
+ gnome-keyring? ( >=gnome-base/gnome-keyring-2.22[pam] )
+ introspection? ( >=dev-libs/gobject-introspection-0.9.12 )
+ plymouth? ( sys-boot/plymouth )
+ selinux? ( sys-libs/libselinux )
+ systemd? ( >=sys-apps/systemd-39 )
+ tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
+ xinerama? ( x11-libs/libXinerama )
+ xklavier? ( >=x11-libs/libxklavier-4 )"
+DEPEND="${COMMON_DEPEND}
+ test? ( >=dev-libs/check-0.9.4 )
+ xinerama? ( x11-proto/xineramaproto )
+ app-text/docbook-xml-dtd:4.1.2
+ sys-devel/gettext
+ x11-proto/inputproto
+ x11-proto/randrproto
+ >=dev-util/intltool-0.40.0
+ >=app-text/scrollkeeper-0.1.4
+ >=app-text/gnome-doc-utils-0.3.2
+ virtual/pkgconfig"
+# XXX: These deps are from session and desktop files in data/ directory
+# at-spi:1 is needed for at-spi-registryd (spawned by simple-chooser)
+# fprintd is used via dbus by gdm-fingerprint-extension
+RDEPEND="${COMMON_DEPEND}
+ >=gnome-base/gnome-session-2.91.92
+ x11-apps/xhost
+ x11-themes/gnome-icon-theme-symbolic
+
+ accessibility? (
+ app-accessibility/gnome-mag
+ app-accessibility/gok
+ app-accessibility/orca
+ gnome-extra/at-spi:1 )
+ consolekit? ( gnome-extra/polkit-gnome )
+ fallback? ( x11-wm/metacity )
+ fprint? (
+ sys-auth/fprintd
+ sys-auth/pam_fprint )
+ gnome-shell? ( >=gnome-base/gnome-shell-3.1.90 )
+ !gnome-shell? ( x11-wm/metacity )
+ smartcard? (
+ app-crypt/coolkey
+ sys-auth/pam_pkcs11 )
+
+ !gnome-extra/fast-user-switch-applet"
+
+pkg_setup() {
+ DOCS="AUTHORS ChangeLog NEWS README TODO"
+
+ # 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
+ G2CONF="${G2CONF}
+ --disable-schemas-install
+ --disable-static
+ --localstatedir=${EPREFIX}/var
+ --with-xdmcp=yes
+ --enable-authentication-scheme=pam
+ --with-pam-prefix=${EPREFIX}/etc
+ --with-at-spi-registryd-directory=${EPREFIX}/usr/libexec
+ $(use_with accessibility xevie)
+ $(use_enable ipv6)
+ $(use_enable xklavier libxklavier)
+ $(use_with consolekit console-kit)
+ $(use_with plymouth)
+ $(use_with selinux)
+ $(use_with systemd)
+ $(use_with tcpd tcp-wrappers)
+ $(use_with xinerama)"
+
+ 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() {
+ # remove unneeded linker directive for selinux, bug #41022
+ epatch "${FILESDIR}/${PN}-2.32.0-selinux-remove-attr.patch"
+
+ # daemonize so that the boot process can continue, bug #236701
+ epatch "${FILESDIR}/${PN}-2.32.0-fix-daemonize-regression.patch"
+
+ # GDM grabs VT2 instead of VT7, bug 261339, bug 284053, bug 288852
+ epatch "${FILESDIR}/${PN}-2.32.0-fix-vt-problems.patch"
+
+ # 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"
+
+ # fix libxklavier automagic support
+ epatch "${FILESDIR}/${PN}-2.32.0-automagic-libxklavier-support.patch"
+
+ # don't load accessibility support at runtime when USE=-accessibility
+ use accessibility || epatch "${FILESDIR}/${PN}-3.3.92.1-disable-accessibility.patch"
+
+ # make gdm-fallback session the default if USE=-gnome-shell
+ if ! use gnome-shell; then
+ sed -e "s:'gdm-shell':'gdm-fallback':" \
+ -i data/00-upstream-settings || die "sed failed"
+ fi
+
+ mkdir -p "${S}"/m4
+ intltoolize --force --copy --automake || die "intltoolize failed"
+ eautoreconf
+
+ gnome2_src_prepare
+}
+
+src_install() {
+ gnome2_src_install
+
+ # Install the systemd unit file
+ systemd_dounit "${FILESDIR}/3.2.1.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"
+ # our x11's scripts point to /usr/bin/gdm
+ ln -sfn /usr/sbin/gdm-binary "${ED}/usr/bin/gdm"
+
+ # log, etc.
+ keepdir /var/log/gdm
+
+ # install XDG_DATA_DIRS gdm changes
+ echo 'XDG_DATA_DIRS="/usr/share/gdm"' > 99xdg-gdm
+ doenvd 99xdg-gdm
+
+ # install PAM files
+ mkdir "${T}/pam.d" || die "mkdir failed"
+ cp "${FILESDIR}/3.2.1.1"/gdm{,-autologin,-password,-fingerprint,-smartcard,-welcome} \
+ "${T}/pam.d" || die "cp failed"
+ use gnome-keyring && sed -i "s:#Keyring=::g" "${T}/pam.d"/*
+ dopamd "${T}/pam.d"/*
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+
+ dbus-launch dconf update || die "'dconf update' failed"
+
+ ewarn
+ ewarn "This is an EXPERIMENTAL release, please bear with its bugs and"
+ ewarn "visit us on #gentoo-desktop if you have problems."
+ ewarn
+
+ elog "To make GDM start at boot, edit /etc/conf.d/xdm"
+ elog "and then execute 'rc-update add xdm default'."
+ elog "If you already have GDM running, you will need to restart it."
+
+ elog
+ elog "GDM ignores most non-localization environment variables. If you"
+ elog "need GDM to launch gnome-session with a particular environment,"
+ elog "you need to use pam_env.so in /etc/pam.d/gdm-welcome; see"
+ elog "the pam_env man page for more information."
+ elog
+
+ if use gnome-keyring; then
+ elog "For autologin to unlock your keyring, you need to set an empty"
+ elog "password on your keyring. Use app-crypt/seahorse for that."
+ fi
+
+ 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
+
+ # https://bugzilla.redhat.com/show_bug.cgi?id=513579
+ # Lennart says this problem is fixed, but users are still reporting problems
+ # XXX: Do we want this elog?
+# if has_version "media-libs/libcanberra[pulseaudio]" ; then
+# elog
+# elog "You have media-libs/libcanberra with the pulseaudio USE flag"
+# elog "enabled. GDM will start a pulseaudio process to play sounds. This"
+# elog "process should automatically terminate when a user logs into a"
+# elog "desktop session. If GDM's pulseaudio fails to terminate and"
+# elog "causes problems for users' audio, you can prevent GDM from"
+# elog "starting pulseaudio by editing /var/lib/gdm/.pulse/client.conf"
+# elog "so it contains the following two lines:"
+# elog
+# elog "autospawn = no"
+# elog "daemon-binary = /bin/true"
+# fi
+}
+
+pkg_postrm() {
+ gnome2_pkg_postrm
+
+ if rc-config list default | grep -q xdm; then
+ elog "To remove GDM from startup please execute"
+ elog "'rc-update del xdm default'"
+ fi
+}