# Maintainer: Robin Lange # Contributor: Fabian Bornschein # Contributor: Jan Alexander Steffens (heftig) # Contributor: Jan de Groot pkgbase=gdm-prime 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-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=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') pkgver() { cd gdm git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g' } prepare() { cd gdm # Don't start ssh-agent by default git apply -3 ../0001-Xsession-Don-t-start-ssh-agent-by-default.patch git apply -3 ../0002-nvidia-prime.patch } build() { 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() { 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) depends+=(libgdm) optdepends=('fprintd: fingerprint authentication') 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 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 # 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 <