summaryrefslogtreecommitdiff
path: root/gnome-base/gdm
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-04-05 21:17:31 +0100
committerV3n3RiX <venerix@redcorelinux.org>2019-04-05 21:17:31 +0100
commitdc7cbdfa65fd814b3b9aa3c56257da201109e807 (patch)
treec85d72f6f31f21f178069c9d41d41a7c1ff4b362 /gnome-base/gdm
parent0706fc6986773f4e4d391deff4ad5143c464ea4e (diff)
gentoo resync : 05.04.2019
Diffstat (limited to 'gnome-base/gdm')
-rw-r--r--gnome-base/gdm/Manifest9
-rw-r--r--gnome-base/gdm/files/3.30.3-pam-drop-legacy-arg.patch29
-rw-r--r--gnome-base/gdm/files/gdm-CanGraphical-wait.patch189
-rw-r--r--gnome-base/gdm/files/pam-elogind.patch24
-rw-r--r--gnome-base/gdm/gdm-3.26.2.1-r1.ebuild205
-rw-r--r--gnome-base/gdm/gdm-3.30.3-r2.ebuild (renamed from gnome-base/gdm/gdm-3.30.3.ebuild)81
-rw-r--r--gnome-base/gdm/metadata.xml1
7 files changed, 302 insertions, 236 deletions
diff --git a/gnome-base/gdm/Manifest b/gnome-base/gdm/Manifest
index ef66e9770ff3..c59e531cefe3 100644
--- a/gnome-base/gdm/Manifest
+++ b/gnome-base/gdm/Manifest
@@ -1,16 +1,17 @@
AUX 3.24.3-CVE-2018-14424.patch 6513 BLAKE2B ac51cbf4412f53f8460037ca7a811c0f3b883afbd6fabbd248719594e8ec730aab4a9a9e8adece0c53d0dda99f900b0ad450b5d5cf7a74999abd6756983ee4e8 SHA512 7ab8875f15828d8601482953e7b7be96326ff23c0ec945ccbaa401370c622734388daeb6be1043fff8694498dbfe2d7fc74f90bf8c59170df67c78bdb731cd13
AUX 3.24.3-display-object-lifetime-fix.patch 3235 BLAKE2B d92c20c97f4007121029c1c719c7598af8dbcd181098ec52f0b61f281796d1a9e3981f644cd2bd0ae80025f63faf169db44b91b3075c42566ca0a5dfbd7f9ae3 SHA512 57a585a93754adc2448a2a85a55c90f7f27c5da0689debc93236ac3c26c79cf295abea73bcec5fce3d7651b3998715d11e2b232a35f590e53b52a859bc666523
+AUX 3.30.3-pam-drop-legacy-arg.patch 1123 BLAKE2B ada164a258734709da57dd7b3c098a7475100edb0fd56ebb815c7dffbddb314d208646bdf6bca6e4465fdf0dc4dd995384f28b88dabf538cd9945d7490cdfae9 SHA512 f71e94e5a20183bb246b42ce090c958595c18cef264418af82fd564afc98de1d8b0a051a236ed1a6d5719027ddcf67b3a0dd1800f26dcb257403575961ed32d9
AUX 49-keychain-r1 193 BLAKE2B e4653256b9a0a23be84286d25278d2addf464cc541d43f57a33ed0390b562d03acf7f9d8510ad1b09d4a3736d2bb2a323f5fcc473014b6f351abb5bee71a419b SHA512 32a6d72de9b6b7bfbac0a563fc8710576419e6d989fe48da294b92b197722059ee0e46672d5df2833cd1a7dacf5ae4ebc31b12b605416fd25a0924c35e505d21
AUX 50-ssh-agent-r1 255 BLAKE2B d197daa7db7da3fc667e5bd561d2edf46b484365130a2d72259c4a2f316ec3af957599cd2c755f7e517ff32ed59e068d1dbcd47da6961534668786403590ff20 SHA512 85c8eca948646508ecc52a30a15b94c626196037ab65b4d797df472df34c714aacf800261902febda5b7bc051bff29efc9fff474a0c029838881b7f8704b13ba
AUX gdm-2.32.0-xinitrc-ssh-agent.patch 842 BLAKE2B 98233eaf06fbe0950aa36bbc8bee2ac7ffa3cdebe75e32b8ef9a5035c383135bfc77e201d2ee07e7ec6b53770bef20484a3fba93b1cd7f434253704b70563e38 SHA512 40630ec2e7bee66102e141a0ba4d02e4202d052bb829606f684b6c23c9f3dbc2d43cea71d7eba163398251af2d7c7b34d0abafee76ccd6400521551de1c385bd
AUX gdm-3.30.3-logo.patch 846 BLAKE2B e99b6621191c509545bc36fe838bc467c3762f2726e247aea1b3cad2a86c0b0e95c5f9953b680a072d244140615c38becbc605998a2be0ed3332d7b5ef802f55 SHA512 63428d4605d9f4f35445f364657c1d92818125a737add7bc5e5acab424beaf8ae5895368111cd2d1c03c75f5fd8b9538d8750ea732a0990b5b82507735850e4c
AUX gdm-3.8.4-fingerprint-auth.patch 923 BLAKE2B e681da8518ed1d002c1205658bb35e472e9d130df5d70dfd9eef55f5361cffeee716ebe0eea23f4c19f9f6ec2f4118729616f7f4e2c758990cf7cde3271cc8b2 SHA512 3cf5f9c0eabdae3f767d9b9db6052d760e879c14b9304753cdda56a4f643a9ed97f3ea83f642bfe96d220c8e9e4f99fbbd47c6e99ddfebeb6322a3a033c296d5
AUX gdm-3.8.4-logo.patch 805 BLAKE2B 80c323529acfe9287009494060f3e4d588dcf415845d3502840674ac0108cdd721e9af71e2df7cf94bb69fb3526d76e96bd21f31ed002fce460b30fd2afa3a20 SHA512 98dc0b01f4a4cbb87b32ec52450eb21f07bf96dc4d919cf662314c50fe0f2b1a19c90e3d8d2a0de905e8ada41642c0f89aa89dd640ead7e3d732468c9e363fb2
+AUX gdm-CanGraphical-wait.patch 5534 BLAKE2B 3be217b156ab6d486d7df98885934c5d1bedd6219a25a83cba687aa1ed59f6d0f2a16694a47050313e601355696095ccc738ac639f5958d9619db81d34efe068 SHA512 2152e800051473b8fd230c4b325d72229cfe91dce3e90ad6d8ace8e3278483ab05ce683e61c183f7c83e293873f69715740b1eccfdb34d6775140c635c73b5dd
+AUX pam-elogind.patch 835 BLAKE2B 1db26b690d631c152ae7fd84149c7ff3222e8bd258bff78e09cd6f00fe34a8bfdb2499b252a1f15e17d9e4ed315e02260357b57cd31cf8ada5a2705ba1ef4ee0 SHA512 4d2d65741a5bfd1dc686dc986708526161d15ace2d5396bef281a2192d95458a072764483e1422ed1f6eb594fc0caa6baa381371618f907a97f75566209fab7b
DIST gdm-3.24.3.tar.xz 1113992 BLAKE2B 79ae5ccf0477779bdb05cea4f0e8b2766caee0552efe8fe044da655037bfd603f1e4ab89a4eb0687f786bf44e9fd1c27e07bc498a769c8f88f0cc22b2dd1c9b1 SHA512 d8edffb582545f452ec071990fd7d07d6cb755458bc77a9e1b807816f8202f70fc8177e4bb345125075347942c6760c5a5460e3570dc32ee2570ecc15e5f3345
-DIST gdm-3.26.2.1.tar.xz 1119568 BLAKE2B 42ccd3d30a5b22124777792ea3e0bb003771df1d3c5a729d29ff14efe5c6365a82126e6b204301b22dd51e4aaffcef4e018b8fdda45eb52e3b76bd921aca9312 SHA512 4a0009935f2f86803a4dd6cdc01c80c9ee89fb8a71f82ffa6fadb16322e4c7f51d82e0e887c30aa09d1b242c3cc82a1ec0d83463e5d8942719a747f6945cbec9
DIST gdm-3.30.3.tar.xz 1261224 BLAKE2B 338f946a24d2a7e4b3cf34ac6accff01f8e7ce5032ee4ce79a96b1a755693e09788c6225e45de9a91ae4afea595a0562511104a467e561ec179c3ad61810468f SHA512 17aed5bf7d27b07553703873cda28a711d6135497d36e4c241bcf1ab3552b31007cc241dab394dccf8a4f1daccf7d55ba39edf91f4b22bdea5c2aa1ea17404b8
DIST tango-gentoo-v1.1.tar.gz 29322 BLAKE2B 83fa2bf37727e60851dd679054fe1b153ebfea58c9a9a40f891f7d68d3b047b02e8effa1d1b4e08d64500a2072ce7200f159c92a352da7124de27e1b05bb6027 SHA512 87d47ddab68361db6d99866c51705dcb3e198f8345a1096859acf2c6cca5099dd23c7fb30d124f52c4933ea38fd45fadffbbe6ecbdfa84f5b60938a4824f9045
EBUILD gdm-3.24.3-r1.ebuild 5913 BLAKE2B b3e84ae6eb46748fa125bb494134e3c0cf8e90d6583c0a270c96e513b0f0f5af5f5cb113a86047038a6a10a0c25add778d7307a886e51d67a156b0dd50decd37 SHA512 24875f6229628dd2f7e8810c473491df1a03a8577782ffd6b538828ee7b92a16de2f54f39abc319e066ede4e5ac46c6082bd3112afc9a51fc199d2dc20df22cc
-EBUILD gdm-3.26.2.1-r1.ebuild 5938 BLAKE2B 4a666f06ee67a8b1ce137ff3a493f376d2561e037295277a9992784766971b5a567cba67ec9f21fee0853423f5b9cac87b110c96170f1b3a5654f5544e92cf44 SHA512 35913f4e965cc212774daf5f6e3de1ac3c769a59d04e1e012ee3651a2d00bbf2b78994c6e0451a1ecb3814f8edfe2c8d92e56f38d3444d3eac605756b79ebfa0
-EBUILD gdm-3.30.3.ebuild 6017 BLAKE2B 9d67099f2fc1c4aac168b0588b255fb7b56351da611d58c86e8c86a9f02f6e7c2ff1d08e6995e9a99899e9081a65f0828eb6bde829a581f06fd599fc7184436a SHA512 b8454b9a4c0c14b1ceebe10ebb9852c978f700f7d3be2642c0d4a446b323a0ca585b7555e899e1627cd3cf2f6ac9a0b61366da87c47ac0340170f56080e32786
-MISC metadata.xml 477 BLAKE2B 29eb8d343cd5195f35dc73d07c695dd3090f8f8ea436b88c8a8fb7f15beac82aaeb2b83215443851866e7fcec51aa14ff19c30597a74cd9a73b384ee801b16f0 SHA512 4da6d5a4f518596834d4138db716bf58d2b2f28f07fed6379a6f0d8bdecb6b803fb3b24880dfcb93ff5aac03f512bf08af7f9742d01a497dd4fc6d7a74d1a844
+EBUILD gdm-3.30.3-r2.ebuild 7175 BLAKE2B d3947d6167dc78bd29d2d4554b6debadd31b6cdc97169b66cf39ce0a83d9aefa58a3c1b76a38cec14887ebe7ad1399a3aebb413e2559783d931ff2218136c883 SHA512 2a699b93d8d0819e787050a901e76abe2b1cdabbccff7ba38731e3db01d5f0100e6cb66f643d586f85634445770a27d77c3e3575a1e9c6db9402e88fbb057cb0
+MISC metadata.xml 561 BLAKE2B c2f402e5b3695ebfd886f93f3974b82c0e287e971f81b3ffdd9d956edac9b80fa90829900da238c47421c64b87394d5c9bdd1c4675c0cf37a0e3681c746ba3cc SHA512 203bc4a106b2ce4270dbfbc91f45d6c488b41449b317370dfe1e3c26d2a28bd457d13bfa67e6b7c65f1520fca0cd0ca36197f2063dc4fdd296f76e156dbf4895
diff --git a/gnome-base/gdm/files/3.30.3-pam-drop-legacy-arg.patch b/gnome-base/gdm/files/3.30.3-pam-drop-legacy-arg.patch
new file mode 100644
index 000000000000..8d82a284bf50
--- /dev/null
+++ b/gnome-base/gdm/files/3.30.3-pam-drop-legacy-arg.patch
@@ -0,0 +1,29 @@
+From a26ed5502622c22daa175861fa9d651a32131cf5 Mon Sep 17 00:00:00 2001
+From: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
+Date: Sat, 16 Feb 2019 08:47:45 +0100
+Subject: [PATCH 1/2] pam-exherbo: drop legacy pam_systemd argument
+
+kill-session-processes=1 is long gone
+
+Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
+(cherry picked from commit 13e6666b1e1000d757ac5621a83105110f55e3e3)
+---
+ data/pam-exherbo/gdm-launch-environment.pam | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/data/pam-exherbo/gdm-launch-environment.pam b/data/pam-exherbo/gdm-launch-environment.pam
+index 8c13b3bc..51a8e003 100644
+--- a/data/pam-exherbo/gdm-launch-environment.pam
++++ b/data/pam-exherbo/gdm-launch-environment.pam
+@@ -8,7 +8,7 @@ auth required pam_permit.so
+
+ password required pam_deny.so
+
+--session optional pam_systemd.so kill-session-processes=1
++-session optional pam_systemd.so
+ session optional pam_keyinit.so force revoke
+ session required pam_succeed_if.so audit quiet_success user = gdm
+ session required pam_permit.so
+--
+2.17.0
+
diff --git a/gnome-base/gdm/files/gdm-CanGraphical-wait.patch b/gnome-base/gdm/files/gdm-CanGraphical-wait.patch
new file mode 100644
index 000000000000..206219d8e059
--- /dev/null
+++ b/gnome-base/gdm/files/gdm-CanGraphical-wait.patch
@@ -0,0 +1,189 @@
+From 198d6392ff595f330430d92d5c380cd993be73d7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
+Date: Tue, 16 Oct 2018 20:59:23 +0200
+Subject: [PATCH] gdm3.service: wait for drm device before trying to start it
+
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gdm3/+bug/1794280
+Forwarded: not-needed
+---
+ configure.ac | 1 +
+ data/Makefile.am | 1 +
+ data/gdm.service.in | 1 +
+ utils/Makefile.am | 9 ++++
+ utils/gdm-wait-for-drm.c | 101 +++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 113 insertions(+)
+ create mode 100644 utils/gdm-wait-for-drm.c
+
+diff --git a/configure.ac b/configure.ac
+index a8dcfbef..2755c100 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -76,6 +76,7 @@ PKG_CHECK_MODULES(COMMON,
+ gobject-2.0 >= $GLIB_REQUIRED_VERSION
+ gio-2.0 >= $GLIB_REQUIRED_VERSION
+ gio-unix-2.0 >= $GLIB_REQUIRED_VERSION
++ gudev-1.0
+ )
+ AC_SUBST(COMMON_CFLAGS)
+ AC_SUBST(COMMON_LIBS)
+diff --git a/data/Makefile.am b/data/Makefile.am
+index 162074f1..5f426fea 100644
+--- a/data/Makefile.am
++++ b/data/Makefile.am
+@@ -204,6 +204,7 @@ systemdsystemunit =
+ gdm.service: $(srcdir)/gdm.service.in
+ $(AM_V_GEN)sed \
+ -e 's,[@]sbindir[@],$(sbindir),g' \
++ -e 's,[@]libexecdir[@],$(libexecdir),g' \
+ -e 's,[@]GDM_INITIAL_VT[@],$(GDM_INITIAL_VT),g' \
+ -e 's,[@]LANG_CONFIG_FILE[@],$(LANG_CONFIG_FILE),g' \
+ -e 's,[@]PLYMOUTH_QUIT_SERVICE[@],$(PLYMOUTH_QUIT_SERVICE),g' \
+diff --git a/data/gdm.service.in b/data/gdm.service.in
+index 57d60ada..f7630ec4 100644
+--- a/data/gdm.service.in
++++ b/data/gdm.service.in
+@@ -30,6 +30,7 @@ StandardError=inherit
+ EnvironmentFile=-@LANG_CONFIG_FILE@
+ ExecReload=/bin/kill -SIGHUP $MAINPID
+ KeyringMode=shared
++ExecStartPre=@libexecdir@/gdm-wait-for-drm
+
+ [Install]
+ Alias=display-manager.service
+diff --git a/utils/Makefile.am b/utils/Makefile.am
+index babe890b..3eb43c30 100644
+--- a/utils/Makefile.am
++++ b/utils/Makefile.am
+@@ -35,6 +35,7 @@ bin_PROGRAMS = \
+
+ libexec_PROGRAMS = \
+ gdm-disable-wayland \
++ gdm-wait-for-drm \
+ $(NULL)
+
+ gdmflexiserver_LDADD = \
+@@ -63,6 +64,14 @@ gdm_disable_wayland_SOURCES = \
+ gdm-disable-wayland.c \
+ $(NULL)
+
++gdm_wait_for_drm_LDADD = \
++ $(COMMON_LIBS) \
++ $(NULL)
++
++gdm_wait_for_drm_SOURCES = \
++ gdm-wait-for-drm.c \
++ $(NULL)
++
+ CLEANFILES = \
+ $(NULL)
+
+diff --git a/utils/gdm-wait-for-drm.c b/utils/gdm-wait-for-drm.c
+new file mode 100644
+index 00000000..aeffb3c0
+--- /dev/null
++++ b/utils/gdm-wait-for-drm.c
+@@ -0,0 +1,101 @@
++#include <glib.h>
++#include <gudev/gudev.h>
++
++/*
++ * Workaround for LP: #1794280.
++ *
++ * That bug is because the DRM device isn't ready by the time GDM tries to
++ * start wayland/X.
++ * This is a script to add to ExecStartPre of gdm.service. It does the
++ * following:
++ *
++ * 1. Enumerate drm devices from udev, looking for a DRM master. If found,
++ * exit.
++ * 2. Connect to the 'uevent' signal of gudev, watching for the same to be
++ * added. Again exit if any are found.
++ * 3. If, after 10 seconds, we haven't seen anything, try to proceed anyway as
++ * a failsafe.
++ */
++
++static gboolean
++handle_device (GUdevDevice *device)
++{
++ const gchar * const * tags;
++ tags = g_udev_device_get_tags (device);
++ g_debug ("%s\n", g_udev_device_get_name (device));
++ if (g_strv_contains (tags, "master-of-seat"))
++ {
++ g_debug (" is seat master\n");
++ return TRUE;
++ }
++
++ return FALSE;
++}
++
++static void
++uevent_cb (GUdevClient *client G_GNUC_UNUSED,
++ gchar *action,
++ GUdevDevice *device,
++ gpointer user_data)
++{
++ GMainLoop *loop;
++
++ g_debug ("uevent action: %s\n", action);
++
++ loop = (GMainLoop *) user_data;
++
++ if (g_strcmp0 (action, "add") == 0)
++ {
++ if (handle_device (device))
++ {
++ g_debug (" this is good\n");
++ g_main_loop_quit (loop);
++ }
++ else
++ {
++ g_debug (" this is bad\n");
++ }
++ }
++}
++
++int
++main()
++{
++ const gchar * const subsystems[] = { "drm", NULL };
++
++ g_autoptr(GList) devices = NULL;
++ g_autoptr(GMainLoop) loop = NULL;
++ g_autoptr(GUdevClient) udev_client = NULL;
++ g_autoptr(GUdevEnumerator) enumerator = NULL;
++
++ loop = g_main_loop_new (NULL, FALSE);
++
++ udev_client = g_udev_client_new (subsystems);
++ enumerator = g_udev_enumerator_new (udev_client);
++ g_udev_enumerator_add_match_is_initialized (enumerator);
++ g_udev_enumerator_add_match_subsystem (enumerator, "drm");
++
++ devices = g_udev_enumerator_execute (enumerator);
++
++ g_debug ("enumerating devices...\n");
++
++ for (GList *l = devices; l != NULL; l = l->next)
++ {
++ g_autoptr(GUdevDevice) device = G_UDEV_DEVICE (l->data);
++
++ if (handle_device (device))
++ {
++ g_debug (" good enough for gdm\n");
++ return EXIT_SUCCESS;
++ }
++ }
++
++ g_signal_connect (udev_client, "uevent", G_CALLBACK (uevent_cb), loop);
++
++ /* after 10 seconds we try anyway */
++ g_timeout_add_seconds (10, (GSourceFunc) g_main_loop_quit, loop);
++
++ g_main_loop_run (loop);
++
++ return EXIT_SUCCESS;
++}
+--
+2.17.0
+
diff --git a/gnome-base/gdm/files/pam-elogind.patch b/gnome-base/gdm/files/pam-elogind.patch
new file mode 100644
index 000000000000..e17bed395b54
--- /dev/null
+++ b/gnome-base/gdm/files/pam-elogind.patch
@@ -0,0 +1,24 @@
+From 96e605d6bd832a89f022872492a9c9cb1eb62f66 Mon Sep 17 00:00:00 2001
+From: Mart Raudsepp <leio@gentoo.org>
+Date: Tue, 19 Mar 2019 23:13:29 +0200
+Subject: [PATCH 2/2] pam-exherbo: Support elogind
+
+---
+ data/pam-exherbo/gdm-launch-environment.pam | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/data/pam-exherbo/gdm-launch-environment.pam b/data/pam-exherbo/gdm-launch-environment.pam
+index 51a8e003..c697a528 100644
+--- a/data/pam-exherbo/gdm-launch-environment.pam
++++ b/data/pam-exherbo/gdm-launch-environment.pam
+@@ -8,6 +8,7 @@ auth required pam_permit.so
+
+ password required pam_deny.so
+
++-session optional pam_elogind.so
+ -session optional pam_systemd.so
+ session optional pam_keyinit.so force revoke
+ session required pam_succeed_if.so audit quiet_success user = gdm
+--
+2.17.0
+
diff --git a/gnome-base/gdm/gdm-3.26.2.1-r1.ebuild b/gnome-base/gdm/gdm-3.26.2.1-r1.ebuild
deleted file mode 100644
index 5d46e8815208..000000000000
--- a/gnome-base/gdm/gdm-3.26.2.1-r1.ebuild
+++ /dev/null
@@ -1,205 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-GNOME2_LA_PUNT="yes"
-
-inherit eutils gnome2 pam readme.gentoo-r1 systemd user
-
-DESCRIPTION="GNOME Display Manager for managing graphical display servers and user logins"
-HOMEPAGE="https://wiki.gnome.org/Projects/GDM"
-
-SRC_URI="${SRC_URI}
- branding? ( https://www.mail-archive.com/tango-artists@lists.freedesktop.org/msg00043/tango-gentoo-v1.1.tar.gz )
-"
-
-LICENSE="
- GPL-2+
- branding? ( CC-BY-SA-4.0 )
-"
-
-SLOT="0"
-
-IUSE="accessibility audit branding fprint +introspection ipv6 plymouth selinux smartcard tcpd test wayland xinerama"
-
-KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sh ~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
-# Requires org.gnome.SettingsDaemon.A11yKeyboard component which doesn't exist in 3.28
-COMMON_DEPEND="
- app-text/iso-codes
- >=dev-libs/glib-2.36:2[dbus]
- >=x11-libs/gtk+-2.91.1:3
- >=gnome-base/dconf-0.20
- >=gnome-base/gnome-settings-daemon-3.1.4
- <gnome-base/gnome-settings-daemon-3.27
- gnome-base/gsettings-desktop-schemas
- >=media-libs/fontconfig-2.5.0:1.0
- >=media-libs/libcanberra-0.4[gtk3]
- sys-apps/dbus
- >=sys-apps/accountsservice-0.6.35
-
- 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/libxcb
- >=x11-misc/xdg-utils-1.0.2-r3
-
- virtual/pam
- >=sys-apps/systemd-186:0=[pam]
-
- 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
- x11-apps/xhost
-
- accessibility? (
- >=app-accessibility/orca-3.10
- 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/gdbus-codegen
- dev-util/glib-utils
- >=dev-util/intltool-0.40.0
- dev-util/itstool
- virtual/pkgconfig
- x11-base/xorg-proto
- test? ( >=dev-libs/check-0.9.4 )
-"
-
-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() {
- # ssh-agent handling must be done at xinitrc.d, bug #220603
- eapply "${FILESDIR}/${PN}-2.32.0-xinitrc-ssh-agent.patch"
-
- # Gentoo does not have a fingerprint-auth pam stack
- eapply "${FILESDIR}/${PN}-3.8.4-fingerprint-auth.patch"
-
- # CVE-2018-14424, bug #662782
- eapply "${FILESDIR}/3.24.3-CVE-2018-14424.patch"
- eapply "${FILESDIR}/3.24.3-display-object-lifetime-fix.patch"
-
- # Show logo when branding is enabled
- use branding && eapply "${FILESDIR}/${PN}-3.8.4-logo.patch"
-
- gnome2_src_prepare
-}
-
-src_configure() {
- local myconf
- # 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
- # --with-initial-vt=7 conflicts with plymouth, bug #453392
- ! use plymouth && myconf="${myconf} --with-initial-vt=7"
-
- gnome2_src_configure \
- --enable-gdm-xsession \
- --enable-user-display-server \
- --with-run-dir=/run/gdm \
- --localstatedir="${EPREFIX}"/var \
- --disable-static \
- --with-xdmcp=yes \
- --enable-authentication-scheme=pam \
- --with-default-pam-config=exherbo \
- --with-pam-mod-dir=$(getpam_mod_dir) \
- --with-at-spi-registryd-directory="${EPREFIX}"/usr/libexec \
- --without-xevie \
- --enable-systemd-journal \
- --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
- $(use_with audit libaudit) \
- $(use_enable ipv6) \
- $(use_with plymouth) \
- $(use_with selinux) \
- $(use_with tcpd tcp-wrappers) \
- $(use_enable wayland wayland-support) \
- $(use_with xinerama) \
- ${myconf}
-}
-
-src_install() {
- gnome2_src_install
-
- if ! use accessibility ; then
- rm "${ED}"/usr/share/gdm/greeter/autostart/orca-autostart.desktop || die
- fi
-
- exeinto /etc/X11/xinit/xinitrc.d
- newexe "${FILESDIR}/49-keychain-r1" 49-keychain
- newexe "${FILESDIR}/50-ssh-agent-r1" 50-ssh-agent
-
- # 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() {
- gnome2_pkg_postinst
- systemd_reenable gdm.service
- readme.gentoo_print_elog
-}
diff --git a/gnome-base/gdm/gdm-3.30.3.ebuild b/gnome-base/gdm/gdm-3.30.3-r2.ebuild
index 1b23de4ad557..7acebf2d3d85 100644
--- a/gnome-base/gdm/gdm-3.30.3.ebuild
+++ b/gnome-base/gdm/gdm-3.30.3-r2.ebuild
@@ -3,6 +3,7 @@
EAPI=6
GNOME2_LA_PUNT="yes"
+GNOME2_EAUTORECONF="yes"
inherit eutils gnome2 pam readme.gentoo-r1 systemd udev user
@@ -20,7 +21,8 @@ LICENSE="
SLOT="0"
-IUSE="accessibility audit branding fprint +introspection ipv6 plymouth selinux smartcard tcpd test wayland xinerama"
+IUSE="accessibility audit branding elogind fprint +introspection ipv6 plymouth selinux smartcard systemd tcpd test wayland xinerama"
+REQUIRED_USE="^^ ( elogind systemd )"
KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sh ~x86"
@@ -31,6 +33,7 @@ KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sh ~x86"
COMMON_DEPEND="
app-text/iso-codes
>=dev-libs/glib-2.44:2
+ dev-libs/libgudev
>=x11-libs/gtk+-2.91.1:3
>=gnome-base/dconf-0.20
>=gnome-base/gnome-settings-daemon-3.1.4
@@ -49,9 +52,10 @@ COMMON_DEPEND="
>=x11-misc/xdg-utils-1.0.2-r3
virtual/pam
- >=sys-apps/systemd-186:0=[pam]
+ elogind? ( >=sys-auth/elogind-239.3[pam] )
+ systemd? ( >=sys-apps/systemd-186:0=[pam] )
- sys-auth/pambase[systemd]
+ sys-auth/pambase[elogind?,systemd?]
audit? ( sys-process/audit )
introspection? ( >=dev-libs/gobject-introspection-0.9.12:= )
@@ -86,12 +90,17 @@ DEPEND="${COMMON_DEPEND}
virtual/pkgconfig
x11-base/xorg-proto
test? ( >=dev-libs/check-0.9.4 )
-"
+ app-text/yelp-tools
+" # yelp-tools needed for eautoreconf to not lose help docs (m4_ifdeffed YELP_HELP_INIT call and setup)
DOC_CONTENTS="
- To make GDM start at boot, run:\n
+ To make GDM start at boot with systemd, run:\n
# systemctl enable gdm.service\n
\n
+ To make GDM start at boot with OpenRC, edit /etc/conf.d to have
+ DISPLAYMANAGER=\"gdm\" and enable the xdm service:\n
+ # rc-update add xdm
+ \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
@@ -124,6 +133,14 @@ src_prepare() {
# Gentoo does not have a fingerprint-auth pam stack
eapply "${FILESDIR}/${PN}-3.8.4-fingerprint-auth.patch"
+ # Drop legacy argument to pam_systemd.so, included in 3.32
+ eapply "${FILESDIR}/${PV}-pam-drop-legacy-arg.patch"
+ # Support pam_elogind.so in gdm-launch-environment.pam
+ eapply "${FILESDIR}/pam-elogind.patch"
+
+ # Wait 10 seconds for a DRM master with systemd. Workaround for gdm not waiting for CanGraphical=yes property on the seat. Bug #613222
+ eapply "${FILESDIR}/gdm-CanGraphical-wait.patch" # needs eautoreconf
+
# Show logo when branding is enabled
use branding && eapply "${FILESDIR}/${PN}-3.30.3-logo.patch"
@@ -145,29 +162,39 @@ src_configure() {
# so lets try always having it in VT1 and see if that is an issue for people before
# hacking up workarounds for the initial start case.
# ! use plymouth && myconf="${myconf} --with-initial-vt=7"
-
- gnome2_src_configure \
- --enable-gdm-xsession \
- --enable-user-display-server \
- --with-run-dir=/run/gdm \
- --localstatedir="${EPREFIX}"/var \
- --disable-static \
- --with-xdmcp=yes \
- --enable-authentication-scheme=pam \
- --with-default-pam-config=exherbo \
- --with-pam-mod-dir=$(getpam_mod_dir) \
- --with-udevdir=$(get_udevdir) \
- --with-at-spi-registryd-directory="${EPREFIX}"/usr/libexec \
- --without-xevie \
- --enable-systemd-journal \
- --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
- $(use_with audit libaudit) \
- $(use_enable ipv6) \
- $(use_with plymouth) \
- $(use_with selinux) \
- $(use_with tcpd tcp-wrappers) \
- $(use_enable wayland wayland-support) \
+ local myconf=(
+ --enable-gdm-xsession
+ --enable-user-display-server
+ --with-run-dir=/run/gdm
+ --localstatedir="${EPREFIX}"/var
+ --disable-static
+ --with-xdmcp=yes
+ --enable-authentication-scheme=pam
+ --with-default-pam-config=exherbo
+ --with-pam-mod-dir=$(getpam_mod_dir)
+ --with-udevdir=$(get_udevdir)
+ --with-at-spi-registryd-directory="${EPREFIX}"/usr/libexec
+ --without-xevie
+ $(use_enable systemd systemd-journal)
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+ $(use_with audit libaudit)
+ $(use_enable ipv6)
+ $(use_with plymouth)
+ $(use_with selinux)
+ $(use_with tcpd tcp-wrappers)
+ $(use_enable wayland wayland-support)
$(use_with xinerama)
+ )
+
+ if use elogind; then
+ myconf+=(
+ --with-initial-vt=7 # TODO: Revisit together with startDM.sh and other xinit talks; also ignores plymouth possibility
+ SYSTEMD_CFLAGS=`pkg-config --cflags "libelogind" 2>/dev/null`
+ SYSTEMD_LIBS=`pkg-config --libs "libelogind" 2>/dev/null`
+ )
+ fi
+
+ gnome2_src_configure "${myconf[@]}"
}
src_install() {
diff --git a/gnome-base/gdm/metadata.xml b/gnome-base/gdm/metadata.xml
index 747420ed8b55..ac51d07ebe21 100644
--- a/gnome-base/gdm/metadata.xml
+++ b/gnome-base/gdm/metadata.xml
@@ -6,6 +6,7 @@
<name>Gentoo GNOME Desktop</name>
</maintainer>
<use>
+ <flag name="elogind">Use <pkg>sys-auth/elogind</pkg> for session management</flag>
<flag name="fprint">Enables experimental fingerprint authentication using
<pkg>sys-auth/fprintd</pkg></flag>
<flag name="plymouth">Enable support for smooth transition from