summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO98
-rw-r--r--0001-Xsession-Don-t-start-ssh-agent-by-default.patch11
-rw-r--r--0002-nvidia-prime.patch100
-rw-r--r--0002-pam-arch-Don-t-check-greeter-account-for-expiry.patch30
-rw-r--r--0003-pam-arch-Restrict-greeter-service-to-the-gdm-user.patch31
-rw-r--r--0004-nvidia-prime.patch154
-rw-r--r--PKGBUILD207
-rw-r--r--gdm-prime.install10
8 files changed, 320 insertions, 321 deletions
diff --git a/.SRCINFO b/.SRCINFO
index cfdde09acf86..46bb993ba606 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,60 +1,104 @@
pkgbase = gdm-prime
- pkgver = 3.34.0
+ pkgdesc = Display manager and login screen - patched with Prime support for Optimus laptops
+ pkgver = 46.0
pkgrel = 1
url = https://wiki.gnome.org/Projects/GDM
arch = x86_64
- license = GPL
+ license = GPL-2.0-or-later
checkdepends = check
- makedepends = yelp-tools
- makedepends = gobject-introspection
- makedepends = git
+ makedepends = dconf
makedepends = docbook-xsl
- depends = gnome-shell
+ makedepends = git
+ makedepends = gobject-introspection
+ makedepends = meson
+ makedepends = plymouth
+ makedepends = python-packaging
+ makedepends = yelp-tools
+ depends = accountsservice
+ depends = audit
+ depends = bash
+ depends = gcc-libs
+ depends = gdk-pixbuf2
+ depends = glib2
+ depends = glibc
depends = gnome-session
+ depends = gnome-shell
+ depends = gtk3
+ depends = json-glib
+ depends = keyutils
+ depends = libcanberra
+ depends = libgudev
+ depends = libx11
+ depends = libxau
+ depends = libxcb
+ depends = libxdmcp
+ depends = pam
+ depends = systemd
+ depends = systemd-libs
depends = upower
- depends = xorg-xrdb
depends = xorg-server
depends = xorg-xhost
- source = git+https://gitlab.gnome.org/GNOME/gdm.git#commit=7c8950d94de854a227d2aa0eda82d3145f529a61
+ depends = xorg-xrdb
+ source = git+https://gitlab.gnome.org/GNOME/gdm.git#commit=a5b591cd8d1db5c5d1ebe67d10ec3fe57b9bbded
source = 0001-Xsession-Don-t-start-ssh-agent-by-default.patch
- source = 0002-pam-arch-Don-t-check-greeter-account-for-expiry.patch
- source = 0003-pam-arch-Restrict-greeter-service-to-the-gdm-user.patch
- source = 0004-nvidia-prime.patch
- sha256sums = SKIP
- sha256sums = 098ffb1cdc0232f014e5fe5fb8d268b752afc54d6ee661664036879acd075b22
- sha256sums = 2e2b12d4609004a010245de51a8c017b164e84f249cd19706d020cb599d2d7e7
- sha256sums = 3fa02eb7bbbe1586eae4ae98221a284251ca2869dc731c80b753e7effc443379
- sha256sums = f2ac60c8e4d62805dc2f441a8754f1c15e12c64ec0dbb1031dbd91dd47df52d9
+ source = 0002-nvidia-prime.patch
+ b2sums = 23f2346014a2c7f39fb53627e1531d74eeb7636027e2192d8be72a1a553126796b0445b0c02691ee104835e333275881be77883b80252f9e0bc13a37a152fe6b
+ b2sums = f7e868fdd7cc121433de1572583eb728f4d186cd4f52c6d6c8f2ccf4a3cf781144ff71f704f13571ddb97a1ff4ec55cfa3df25d38737ad19da21e84ddc2d3ee4
+ b2sums = b02edd38bb178b457379717633f935f18bea153470905d34675a587c807a4c0de79e48cc82c53ec5a139d667f57c13e652ea6d9cb3a7fcd05bdd59b9cf715b45
pkgname = gdm-prime
- pkgdesc = Display manager and login screen - patched with Prime support for Optimus laptops
install = gdm-prime.install
groups = gnome
- depends = gnome-shell
+ depends = accountsservice
+ depends = audit
+ depends = bash
+ depends = gcc-libs
+ depends = gdk-pixbuf2
+ depends = glib2
+ depends = glibc
depends = gnome-session
+ depends = gnome-shell
+ depends = gtk3
+ depends = json-glib
+ depends = keyutils
+ depends = libcanberra
+ depends = libgudev
+ depends = libx11
+ depends = libxau
+ depends = libxcb
+ depends = libxdmcp
+ depends = pam
+ depends = systemd
+ depends = systemd-libs
depends = upower
- depends = xorg-xrdb
depends = xorg-server
depends = xorg-xhost
+ depends = xorg-xrdb
depends = libgdm
optdepends = fprintd: fingerprint authentication
provides = gdm
conflicts = gdm
+ backup = etc/gdm/PostSession/Default
+ backup = etc/gdm/PreSession/Default
+ backup = etc/gdm/Xsession
+ backup = etc/gdm/custom.conf
backup = etc/pam.d/gdm-autologin
backup = etc/pam.d/gdm-fingerprint
backup = etc/pam.d/gdm-launch-environment
backup = etc/pam.d/gdm-password
backup = etc/pam.d/gdm-smartcard
- backup = etc/gdm/custom.conf
- backup = etc/gdm/Xsession
- backup = etc/gdm/PostSession/Default
- backup = etc/gdm/PreSession/Default
pkgname = libgdm-prime
- pkgdesc = GDM support library - patched with Prime support for Optimus laptops
- depends = systemd
- depends = glib2
+ pkgdesc = Display manager and login screen - patched with Prime support for Optimus laptops - support library
depends = dconf
+ depends = gcc-libs
+ depends = glib2
+ depends = glibc
+ depends = libglib-2.0.so
+ depends = libgobject-2.0.so
+ depends = libgio-2.0.so
+ depends = libsystemd.so
+ depends = systemd-libs
+ provides = libgdm.so
provides = libgdm
conflicts = libgdm
-
diff --git a/0001-Xsession-Don-t-start-ssh-agent-by-default.patch b/0001-Xsession-Don-t-start-ssh-agent-by-default.patch
index bfdaca1ee13a..56699008c6fc 100644
--- a/0001-Xsession-Don-t-start-ssh-agent-by-default.patch
+++ b/0001-Xsession-Don-t-start-ssh-agent-by-default.patch
@@ -1,17 +1,17 @@
-From 58cdf43d7b053a7370e6779d06835c239598f59a Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Sat, 20 Jun 2015 17:22:38 +0200
-Subject: [PATCH 1/3] Xsession: Don't start ssh-agent by default
+Subject: [PATCH] Xsession: Don't start ssh-agent by default
---
data/Xsession.in | 8 --------
1 file changed, 8 deletions(-)
diff --git a/data/Xsession.in b/data/Xsession.in
-index 9d79558c..ff6d9de0 100755
+index 2e4de4fe384f..29ebc30ea0c5 100755
--- a/data/Xsession.in
+++ b/data/Xsession.in
-@@ -175,14 +175,6 @@ if [ "x$command" = "xdefault" ] ; then
+@@ -207,14 +207,6 @@ if [ "x$command" = "xdefault" ] ; then
fi
fi
@@ -26,6 +26,3 @@ index 9d79558c..ff6d9de0 100755
echo "$0: Setup done, will execute: $command"
eval exec $command
---
-2.23.0
-
diff --git a/0002-nvidia-prime.patch b/0002-nvidia-prime.patch
new file mode 100644
index 000000000000..b4b804864ae0
--- /dev/null
+++ b/0002-nvidia-prime.patch
@@ -0,0 +1,100 @@
+From: Tim Lunn <tim@feathertop.org>
+Date: Sat, 22 Mar 2014 00:23:12 +0100
+Subject: Add hooks to run prime scripts (as root) before and after a
+ gdm-session
+
+This allows enabling and disabling the dGPU on log out.
+---
+ common/gdm-common.c | 2 +-
+ daemon/gdm-session.c | 6 ++++++
+ daemon/gdm-x-session.c | 5 +++++
+ data/Prime.in | 6 ++++++
+ data/PrimeOff.in | 6 ++++++
+ data/meson.build | 2 +-
+ 6 files changed, 25 insertions(+), 2 deletions(-)
+ create mode 100644 data/Prime.in
+ create mode 100644 data/PrimeOff.in
+
+diff --git a/common/gdm-common.c b/common/gdm-common.c
+index b8de755..eb2ed38 100644
+--- a/common/gdm-common.c
++++ b/common/gdm-common.c
+@@ -720,7 +720,7 @@ gdm_run_script (const char *dir,
+ goto out;
+ }
+
+- env = gdm_get_script_environment (username,
++ env = gdm_get_script_environment ((g_strcmp0 (username, "root") == 0)?NULL:username,
+ display_name,
+ display_hostname,
+ display_x11_authority_file);
+diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
+index ca7d98f..e6fd59a 100644
+--- a/daemon/gdm-session.c
++++ b/daemon/gdm-session.c
+@@ -2987,6 +2987,12 @@ gdm_session_close (GdmSession *self)
+
+ g_list_free_full (self->outside_connections, g_object_unref);
+ self->outside_connections = NULL;
++
++ /* Run PrimeOff after the session is closed */
++ gdm_run_script (GDMCONFDIR "/PrimeOff", "root",
++ NULL,
++ NULL,
++ NULL);
+ }
+
+ void
+diff --git a/daemon/gdm-x-session.c b/daemon/gdm-x-session.c
+index f0082fd..fd0bd0b 100644
+--- a/daemon/gdm-x-session.c
++++ b/daemon/gdm-x-session.c
+@@ -618,6 +618,11 @@ spawn_session (State *state,
+
+ g_debug ("Running X session");
+
++ gdm_run_script (GDMCONFDIR "/Prime", "root",
++ state->display_name,
++ NULL, /* hostname */
++ state->auth_file);
++
+ launcher = g_subprocess_launcher_new (G_SUBPROCESS_FLAGS_NONE);
+
+ if (state->environment != NULL) {
+diff --git a/data/Prime.in b/data/Prime.in
+new file mode 100644
+index 0000000..30caf03
+--- /dev/null
++++ b/data/Prime.in
+@@ -0,0 +1,6 @@
++#!/bin/sh
++
++primeoffload=/sbin/prime-offload
++if [ -f "$primeoffload" ]; then
++ $primeoffload
++fi
+diff --git a/data/PrimeOff.in b/data/PrimeOff.in
+new file mode 100644
+index 0000000..5a61c3c
+--- /dev/null
++++ b/data/PrimeOff.in
+@@ -0,0 +1,6 @@
++#!/bin/sh
++
++primeswitch=/sbin/prime-switch
++if [ -f "$primeswitch" ]; then
++ $primeswitch
++fi
+diff --git a/data/meson.build b/data/meson.build
+index 05a2011..05429d5 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -3,7 +3,7 @@ subdir('autostart')
+ subdir('dconf')
+
+ # XPath configs
+-foreach file : [ 'Init', 'PreSession', 'PostSession' ]
++foreach file : [ 'Init', 'PreSession', 'PostSession', 'Prime', 'PrimeOff' ]
+ generated_file = configure_file(
+ input: '@0@.in'.format(file),
+ output: file,
diff --git a/0002-pam-arch-Don-t-check-greeter-account-for-expiry.patch b/0002-pam-arch-Don-t-check-greeter-account-for-expiry.patch
deleted file mode 100644
index 60ae9d0d7565..000000000000
--- a/0002-pam-arch-Don-t-check-greeter-account-for-expiry.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From a9c2cb0ae478caf40cc24001fbf6cfbbcc19196e Mon Sep 17 00:00:00 2001
-From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
-Date: Tue, 10 Sep 2019 20:37:08 +0000
-Subject: [PATCH 2/3] pam-arch: Don't check greeter account for expiry
-
-systemd-sysusers now creates expired accounts, which broke the greeter
-on new installations.
-
-Doesn't actually fully fix the problem as the user@.service still fails
-to launch.
----
- data/pam-arch/gdm-launch-environment.pam | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/data/pam-arch/gdm-launch-environment.pam b/data/pam-arch/gdm-launch-environment.pam
-index 618a7d3a..89521472 100644
---- a/data/pam-arch/gdm-launch-environment.pam
-+++ b/data/pam-arch/gdm-launch-environment.pam
-@@ -1,7 +1,7 @@
- auth required pam_env.so
- auth optional pam_permit.so
-
--account include system-local-login
-+account optional pam_permit.so
-
- password required pam_deny.so
-
---
-2.23.0
-
diff --git a/0003-pam-arch-Restrict-greeter-service-to-the-gdm-user.patch b/0003-pam-arch-Restrict-greeter-service-to-the-gdm-user.patch
deleted file mode 100644
index daed25a7feb0..000000000000
--- a/0003-pam-arch-Restrict-greeter-service-to-the-gdm-user.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 3b6ca2e211b9874e61e9a6950c52b52f2a79dca3 Mon Sep 17 00:00:00 2001
-From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
-Date: Tue, 10 Sep 2019 20:41:10 +0000
-Subject: [PATCH 3/3] pam-arch: Restrict greeter service to the gdm user
-
-Copied from pam-exherbo.
----
- data/pam-arch/gdm-launch-environment.pam | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/data/pam-arch/gdm-launch-environment.pam b/data/pam-arch/gdm-launch-environment.pam
-index 89521472..d59c9cb9 100644
---- a/data/pam-arch/gdm-launch-environment.pam
-+++ b/data/pam-arch/gdm-launch-environment.pam
-@@ -1,10 +1,13 @@
- auth required pam_env.so
-+auth required pam_succeed_if.so audit quiet_success user = gdm
- auth optional pam_permit.so
-
-+account required pam_succeed_if.so audit quiet_success user = gdm
- account optional pam_permit.so
-
- password required pam_deny.so
-
- session optional pam_keyinit.so force revoke
-+session required pam_succeed_if.so audit quiet_success user = gdm
- session required pam_systemd.so
- session optional pam_permit.so
---
-2.23.0
-
diff --git a/0004-nvidia-prime.patch b/0004-nvidia-prime.patch
deleted file mode 100644
index b11baa16202e..000000000000
--- a/0004-nvidia-prime.patch
+++ /dev/null
@@ -1,154 +0,0 @@
-From: Tim Lunn <tim@feathertop.org>
-Date: Sat, 22 Mar 2014 00:23:12 +0100
-Subject: Add hooks to run prime scripts (as root) before and after a
- gdm-session
-
-This allows enabling and disabling the dGPU on log out.
----
- common/gdm-common.c | 2 +-
- daemon/gdm-session.c | 6 ++++++
- daemon/gdm-x-session.c | 5 +++++
- data/Makefile.am | 28 ++++++++++++++++++++++++++--
- data/Prime | 6 ++++++
- data/PrimeOff | 6 ++++++
- 6 files changed, 50 insertions(+), 3 deletions(-)
- create mode 100644 data/Prime
- create mode 100644 data/PrimeOff
-
-diff --git a/common/gdm-common.c b/common/gdm-common.c
-index 373d5b8..02a6044 100644
---- a/common/gdm-common.c
-+++ b/common/gdm-common.c
-@@ -721,7 +721,7 @@ gdm_run_script (const char *dir,
- goto out;
- }
-
-- env = gdm_get_script_environment (username,
-+ env = gdm_get_script_environment ((g_strcmp0 (username, "root") == 0)?NULL:username,
- display_name,
- display_hostname,
- display_x11_authority_file);
-diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
-index 6a116a8..1792bfd 100644
---- a/daemon/gdm-session.c
-+++ b/daemon/gdm-session.c
-@@ -2970,6 +2970,12 @@ gdm_session_close (GdmSession *self)
-
- g_list_free_full (self->outside_connections, g_object_unref);
- self->outside_connections = NULL;
-+
-+ /* Run PrimeOff after the session is closed */
-+ gdm_run_script (GDMCONFDIR "/PrimeOff", "root",
-+ NULL,
-+ NULL,
-+ NULL);
- }
-
- void
-diff --git a/daemon/gdm-x-session.c b/daemon/gdm-x-session.c
-index 3b2fcef..9a57300 100644
---- a/daemon/gdm-x-session.c
-+++ b/daemon/gdm-x-session.c
-@@ -614,6 +614,11 @@ spawn_session (State *state,
-
- g_debug ("Running X session");
-
-+ gdm_run_script (GDMCONFDIR "/Prime", "root",
-+ state->display_name,
-+ NULL, /* hostname */
-+ state->auth_file);
-+
- launcher = g_subprocess_launcher_new (G_SUBPROCESS_FLAGS_NONE);
-
- if (state->environment != NULL) {
-diff --git a/data/Makefile.am b/data/Makefile.am
-index 210bf5d..7bca5e4 100644
---- a/data/Makefile.am
-+++ b/data/Makefile.am
-@@ -10,6 +10,8 @@ SUBDIRS = \
- initdir = $(gdmconfdir)/Init
- postdir = $(gdmconfdir)/PostSession
- predir = $(gdmconfdir)/PreSession
-+primedir = $(gdmconfdir)/Prime
-+primeoffdir = $(gdmconfdir)/PrimeOff
- postlogindir = $(gdmconfdir)/PostLogin
- workingdir = $(GDM_WORKING_DIR)
- xauthdir = $(GDM_XAUTH_DIR)
-@@ -174,6 +176,8 @@ EXTRA_DIST += \
- Xsession.in \
- Init.in \
- PreSession.in \
-+ Prime \
-+ PrimeOff \
- PostSession.in \
- PostLogin \
- $(NULL)
-@@ -237,6 +241,8 @@ uninstall-hook:
- $(DESTDIR)$(initdir)/Default \
- $(DESTDIR)$(postlogindir)/Default.sample \
- $(DESTDIR)$(predir)/Default \
-+ $(DESTDIR)$(primedir)/Default \
-+ $(DESTDIR)$(primeoffdir)/Default \
- $(DESTDIR)$(postdir)/Default \
- $(DESTDIR)$(sysconfdir)/dconf/db/gdm \
- $(DESTDIR)$(sysconfdir)/dconf/profile/gdm \
-@@ -281,7 +287,25 @@ endif
- -if test -f $(DESTDIR)$(predir)/Default; then \
- cp -f $(DESTDIR)$(predir)/Default $(DESTDIR)$(predir)/Default.orig; \
- fi
-- $(INSTALL_SCRIPT) PreSession $(DESTDIR)$(predir)/Default
-+ $(INSTALL_SCRIPT) $(builddir)/PreSession $(DESTDIR)$(predir)/Default
-+
-+ if test '!' -d $(DESTDIR)$(primedir); then \
-+ $(mkinstalldirs) $(DESTDIR)$(primedir); \
-+ chmod 755 $(DESTDIR)$(primedir); \
-+ fi
-+ -if test -f $(DESTDIR)$(primedir)/Default; then \
-+ cp -f $(DESTDIR)$(primedir)/Default $(DESTDIR)$(primedir)/Default.orig; \
-+ fi
-+ $(INSTALL_SCRIPT) $(srcdir)/Prime $(DESTDIR)$(primedir)/Default
-+
-+ if test '!' -d $(DESTDIR)$(primeoffdir); then \
-+ $(mkinstalldirs) $(DESTDIR)$(primeoffdir); \
-+ chmod 755 $(DESTDIR)$(primeoffdir); \
-+ fi
-+ -if test -f $(DESTDIR)$(primeoffdir)/Default; then \
-+ cp -f $(DESTDIR)$(primeoffdir)/Default $(DESTDIR)$(primeoffdir)/Default.orig; \
-+ fi
-+ $(INSTALL_SCRIPT) $(srcdir)/PrimeOff $(DESTDIR)$(primeoffdir)/Default
-
- if test '!' -d $(DESTDIR)$(postdir); then \
- $(mkinstalldirs) $(DESTDIR)$(postdir); \
-@@ -290,7 +314,7 @@ endif
- -if test -f $(DESTDIR)$(postdir)/Default; then \
- cp -f $(DESTDIR)$(postdir)/Default $(DESTDIR)$(postdir)/Default.orig; \
- fi
-- $(INSTALL_SCRIPT) PostSession $(DESTDIR)$(postdir)/Default
-+ $(INSTALL_SCRIPT) $(builddir)/PostSession $(DESTDIR)$(postdir)/Default
-
- if test '!' -d $(DESTDIR)$(logdir); then \
- $(mkinstalldirs) $(DESTDIR)$(logdir); \
-diff --git a/data/Prime b/data/Prime
-new file mode 100644
-index 0000000..30caf03
---- /dev/null
-+++ b/data/Prime
-@@ -0,0 +1,6 @@
-+#!/bin/sh
-+
-+primeoffload=/sbin/prime-offload
-+if [ -f "$primeoffload" ]; then
-+ $primeoffload
-+fi
-diff --git a/data/PrimeOff b/data/PrimeOff
-new file mode 100644
-index 0000000..5a61c3c
---- /dev/null
-+++ b/data/PrimeOff
-@@ -0,0 +1,6 @@
-+#!/bin/sh
-+
-+primeswitch=/sbin/prime-switch
-+if [ -f "$primeswitch" ]; then
-+ $primeswitch
-+fi
diff --git a/PKGBUILD b/PKGBUILD
index 09793ec86a0f..46562cb8a73b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,98 +1,181 @@
-# Maintainer: Robin Lange <robin dot langenc at gmail dot com>
-# Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Maintainer: Robin Lange <robin.langenc@gmail.com>
+# Contributor: Fabian Bornschein <fabiscafe-at-mailbox-dot-org>
+# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>
pkgbase=gdm-prime
-pkgname=(gdm-prime libgdm-prime)
-pkgver=3.34.0
+pkgname=(
+ gdm-prime
+ libgdm-prime
+)
+pkgver=46.0
pkgrel=1
+pkgdesc="Display manager and login screen - patched with Prime support for Optimus laptops"
url="https://wiki.gnome.org/Projects/GDM"
arch=(x86_64)
-license=(GPL)
-depends=(gnome-shell gnome-session upower xorg-xrdb xorg-server xorg-xhost)
-makedepends=(yelp-tools gobject-introspection git docbook-xsl)
+license=(GPL-2.0-or-later)
+depends=(
+ accountsservice
+ audit
+ bash
+ gcc-libs
+ gdk-pixbuf2
+ glib2
+ glibc
+ gnome-session
+ gnome-shell
+ gtk3
+ json-glib
+ keyutils
+ libcanberra
+ libgudev
+ libx11
+ libxau
+ libxcb
+ libxdmcp
+ pam
+ systemd
+ systemd-libs
+ upower
+ xorg-server
+ xorg-xhost
+ xorg-xrdb
+)
+makedepends=(
+ dconf
+ docbook-xsl
+ git
+ gobject-introspection
+ meson
+ plymouth
+ python-packaging
+ yelp-tools
+)
checkdepends=(check)
-_commit=7c8950d94de854a227d2aa0eda82d3145f529a61 # tags/3.34.0^0
-source=("git+https://gitlab.gnome.org/GNOME/gdm.git#commit=$_commit"
- 0001-Xsession-Don-t-start-ssh-agent-by-default.patch
- 0002-pam-arch-Don-t-check-greeter-account-for-expiry.patch
- 0003-pam-arch-Restrict-greeter-service-to-the-gdm-user.patch
- 0004-nvidia-prime.patch)
-sha256sums=('SKIP'
- '098ffb1cdc0232f014e5fe5fb8d268b752afc54d6ee661664036879acd075b22'
- '2e2b12d4609004a010245de51a8c017b164e84f249cd19706d020cb599d2d7e7'
- '3fa02eb7bbbe1586eae4ae98221a284251ca2869dc731c80b753e7effc443379'
- 'f2ac60c8e4d62805dc2f441a8754f1c15e12c64ec0dbb1031dbd91dd47df52d9')
+_commit=a5b591cd8d1db5c5d1ebe67d10ec3fe57b9bbded # tags/46.0^0
+source=(
+ "git+https://gitlab.gnome.org/GNOME/gdm.git#commit=$_commit"
+ 0001-Xsession-Don-t-start-ssh-agent-by-default.patch
+ 0002-nvidia-prime.patch
+)
+b2sums=('23f2346014a2c7f39fb53627e1531d74eeb7636027e2192d8be72a1a553126796b0445b0c02691ee104835e333275881be77883b80252f9e0bc13a37a152fe6b'
+ 'f7e868fdd7cc121433de1572583eb728f4d186cd4f52c6d6c8f2ccf4a3cf781144ff71f704f13571ddb97a1ff4ec55cfa3df25d38737ad19da21e84ddc2d3ee4'
+ 'b02edd38bb178b457379717633f935f18bea153470905d34675a587c807a4c0de79e48cc82c53ec5a139d667f57c13e652ea6d9cb3a7fcd05bdd59b9cf715b45')
-prepare() {
- mkdir build
+pkgver() {
cd gdm
- patch -Np1 -i ../0001-Xsession-Don-t-start-ssh-agent-by-default.patch
+ git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g'
+}
- # https://bugs.archlinux.org/task/63706
- patch -Np1 -i ../0002-pam-arch-Don-t-check-greeter-account-for-expiry.patch
- patch -Np1 -i ../0003-pam-arch-Restrict-greeter-service-to-the-gdm-user.patch
+prepare() {
+ cd gdm
- patch -Np1 -i ../0004-nvidia-prime.patch
+ # Don't start ssh-agent by default
+ git apply -3 ../0001-Xsession-Don-t-start-ssh-agent-by-default.patch
- NOCONFIGURE=1 ./autogen.sh
+ git apply -3 ../0002-nvidia-prime.patch
}
build() {
- cd build
- ../gdm/configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --sbindir=/usr/bin \
- --libexecdir=/usr/lib \
- with_dbus_sys=/usr/share/dbus-1/system.d \
- --disable-schemas-compile \
- --disable-static \
- --enable-gdm-xsession \
- --enable-ipv6 \
- --with-default-pam-config=arch \
- --with-default-path=/usr/local/bin:/usr/local/sbin:/usr/bin \
- --without-plymouth \
- --without-tcp-wrappers
- sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
- make
+ local meson_options=(
+ -D dbus-sys="/usr/share/dbus-1/system.d"
+ -D default-pam-config=arch
+ -D default-path="/usr/local/bin:/usr/local/sbin:/usr/bin"
+ -D gdm-xsession=true
+ -D ipv6=true
+ -D run-dir=/run/gdm
+ -D selinux=disabled
+ )
+
+ arch-meson gdm build "${meson_options[@]}"
+ meson compile -C build
}
check() {
- make -C build check
+ meson test -C build --print-errorlogs
+}
+
+_pick() {
+ local p="$1" f d; shift
+ for f; do
+ d="$srcdir/$p/${f#$pkgdir/}"
+ mkdir -p "$(dirname "$d")"
+ mv "$f" "$d"
+ rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
+ done
}
package_gdm-prime() {
provides=(gdm)
conflicts=(gdm)
- pkgdesc="Display manager and login screen - patched with Prime support for Optimus laptops"
depends+=(libgdm)
optdepends=('fprintd: fingerprint authentication')
- backup=(etc/pam.d/gdm-autologin etc/pam.d/gdm-fingerprint etc/pam.d/gdm-launch-environment
- etc/pam.d/gdm-password etc/pam.d/gdm-smartcard etc/gdm/custom.conf
- etc/gdm/Xsession etc/gdm/PostSession/Default etc/gdm/PreSession/Default)
+ backup=(
+ etc/gdm/PostSession/Default
+ etc/gdm/PreSession/Default
+ etc/gdm/Xsession
+ etc/gdm/custom.conf
+ etc/pam.d/gdm-autologin
+ etc/pam.d/gdm-fingerprint
+ etc/pam.d/gdm-launch-environment
+ etc/pam.d/gdm-password
+ etc/pam.d/gdm-smartcard
+ )
groups=(gnome)
install=gdm-prime.install
- DESTDIR="$pkgdir" make -C build install
+ meson install -C build --destdir "$pkgdir"
+
+ cd "$pkgdir"
+
+ install -d -o 0 -g 0 -m 0755 var
+ install -d -o 0 -g 0 -m 0755 var/lib
+ install -d -o 120 -g 120 -m 1770 var/lib/gdm
+ install -d -o 120 -g 120 -m 0700 var/lib/gdm/.config
+ install -d -o 120 -g 120 -m 0700 var/lib/gdm/.config/pulse
+ install -d -o 120 -g 120 -m 0700 var/lib/gdm/.local
+ install -d -o 120 -g 120 -m 0755 var/lib/gdm/.local/share
+ install -d -o 120 -g 120 -m 0755 var/lib/gdm/.local/share/applications
- chown -Rc 120:120 "$pkgdir/var/lib/gdm"
+ # https://src.fedoraproject.org/rpms/gdm/blob/master/f/default.pa-for-gdm
+ install -o120 -g120 -m644 /dev/stdin var/lib/gdm/.config/pulse/default.pa <<END
+load-module module-device-restore
+load-module module-card-restore
+load-module module-udev-detect
+load-module module-native-protocol-unix
+load-module module-default-device-restore
+load-module module-always-sink
+load-module module-intended-roles
+load-module module-suspend-on-idle
+load-module module-systemd-login
+load-module module-position-event-sounds
+END
- # Unused or created at start
- rm -r "$pkgdir"/var/{cache,log,run}
+ install -Dm644 /dev/stdin usr/lib/sysusers.d/gdm.conf <<END
+g gdm 120 -
+u gdm 120 "Gnome Display Manager" /var/lib/gdm
+END
-### Split libgdm
- mkdir -p libgdm/{lib,share}
- mv -t libgdm "$pkgdir"/usr/include
- mv -t libgdm/lib "$pkgdir"/usr/lib/{girepository-1.0,libgdm*,pkgconfig}
- mv -t libgdm/share "$pkgdir"/usr/share/{gir-1.0,glib-2.0}
+ _pick libgdm usr/include
+ _pick libgdm usr/lib/{girepository-1.0,libgdm*,pkgconfig}
+ _pick libgdm usr/share/{gir-1.0,glib-2.0}
}
package_libgdm-prime() {
- provides=(libgdm)
+ pkgdesc+=" - support library"
+ depends=(
+ dconf
+ gcc-libs
+ glib2
+ glibc
+ libg{lib,object,io}-2.0.so
+ libsystemd.so
+ systemd-libs
+ )
+ provides=(libgdm.so libgdm)
conflicts=(libgdm)
- pkgdesc="GDM support library - patched with Prime support for Optimus laptops"
- depends=(systemd glib2 dconf)
- mv libgdm "$pkgdir/usr"
+
+ mv libgdm/* "$pkgdir"
}
+
+# vim:set sw=2 sts=-1 et:
diff --git a/gdm-prime.install b/gdm-prime.install
index 74aa44da143d..4b39564cba61 100644
--- a/gdm-prime.install
+++ b/gdm-prime.install
@@ -1,13 +1,3 @@
-post_install() {
- # Can't use sysusers as the greeter session cannot launch with an expired 'gdm' account
- # https://bugs.archlinux.org/task/63706
- if ! getent passwd gdm >/dev/null; then
- groupadd -r -g 120 gdm
- useradd -r -c "Gnome Display Manager" -u 120 -g gdm -d /var/lib/gdm -s /sbin/nologin gdm
- passwd -ql gdm
- fi
-}
-
post_upgrade() {
if (( $(vercmp $2 3.34.0-2) < 0 )); then
usermod --expiredate= gdm >/dev/null