diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 167 |
1 files changed, 137 insertions, 30 deletions
@@ -1,68 +1,175 @@ +# Maintainer: Fabian Bornschein <fabiscafe-at-mailbox-dot-org> +# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org> +# Contributor: Jan de Groot <jgc@archlinux.org> + pkgbase=gdm-git -pkgname=('gdm-git' 'libgdm-git') -pkgver=3.37.3+7+gdc10790e +pkgname=( + gdm-git + libgdm-git +) +pkgver=46.0+r23+g6836d2e91 pkgrel=1 pkgdesc="Display manager and login screen" 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') -source=("git+https://gitlab.gnome.org/GNOME/gdm.git" - 0001-Xsession-Don-t-start-ssh-agent-by-default.patch) -sha512sums=('SKIP' - '08566451366502496c1892aa1a7f6e244fd64d170c45e51bd9d60d48afbd761e6aad43d7d6c46958b6073b058952ffa0d14392c27463de49fd6505160025fe8c') +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) +source=( + "git+https://gitlab.gnome.org/GNOME/gdm.git" + 0001-Xsession-Don-t-start-ssh-agent-by-default.patch +) +b2sums=('SKIP' + 'f7e868fdd7cc121433de1572583eb728f4d186cd4f52c6d6c8f2ccf4a3cf781144ff71f704f13571ddb97a1ff4ec55cfa3df25d38737ad19da21e84ddc2d3ee4') pkgver() { cd gdm - git describe --tags | sed 's/-/+/g' + git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g' } prepare() { - mkdir build cd gdm - patch -Np1 -i ../0001-Xsession-Don-t-start-ssh-agent-by-default.patch + + # Don't start ssh-agent by default + git apply -3 ../0001-Xsession-Don-t-start-ssh-agent-by-default.patch } build() { - arch-meson gdm build \ - -Dplymouth=disabled \ - -Dselinux=disabled - ninja -C 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-git() { - depends+=('libgdm') + 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 + ) provides=('gdm') conflicts=('gdm') - 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) + groups=(gnome) install=gdm.install - DESTDIR="$pkgdir" meson install -C build + meson install -C build --destdir "$pkgdir" + + cd "$pkgdir" - install -Dm644 /dev/stdin "$pkgdir/usr/lib/sysusers.d/gdm.conf" <<END + 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 <<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 + + 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-git() { - pkgdesc="GDM support library" - depends=('systemd' 'glib2' 'dconf') + pkgdesc+=" - support library" + depends=( + dconf + gcc-libs + glib2 + glibc + libg{lib,object,io}-2.0.so + libsystemd.so + systemd-libs + ) provides=('libgdm') conflicts=('libgdm') - mv libgdm "$pkgdir/usr" + + mv libgdm/* "$pkgdir" } + +# vim:set sw=2 sts=-1 et: |