summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD167
1 files changed, 137 insertions, 30 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 83ad6a8d831c..1f2ffec9fca1 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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: