summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nonsystemd/sddm/PKGBUILD67
-rw-r--r--nonsystemd/sddm/pam-faillock.patch12
-rw-r--r--nonsystemd/sddm/sddm-0.18.0-Xsession.patch24
-rw-r--r--nonsystemd/sddm/sddm-0.19.0-Xserver_startup.patch35
-rw-r--r--nonsystemd/sddm/sddm-0.19.0-pam-1.4-substack.patch31
-rw-r--r--nonsystemd/sddm/sddm-fix-build.patch13
6 files changed, 157 insertions, 25 deletions
diff --git a/nonsystemd/sddm/PKGBUILD b/nonsystemd/sddm/PKGBUILD
index 47e1389aa..6303ef3a6 100644
--- a/nonsystemd/sddm/PKGBUILD
+++ b/nonsystemd/sddm/PKGBUILD
@@ -4,54 +4,71 @@
# Contributor (Arch): Andrea Scarpino <andrea@archlinux.org>
pkgname=sddm
-pkgver=0.18.1
-pkgrel=1
+pkgver=0.19.0
+pkgrel=8
pkgrel+=.nonsystemd1
pkgdesc='QML based X11 and Wayland display manager'
-arch=('x86_64')
-arch+=('i686' 'armv7h')
-url='http://github.com/sddm/sddm'
-license=('GPL')
-depends=('qt5-declarative' 'xorg-xauth' 'xorg-server' 'elogind')
-makedepends=('extra-cmake-modules' 'python-docutils' 'qt5-tools')
-makedepends+=('pcre2')
+arch=(x86_64)
+arch+=(i686 armv7h)
+url='https://github.com/sddm/sddm'
+license=(GPL)
+depends=(qt5-declarative xorg-xauth xorg-server ttf-font)
+makedepends=(extra-cmake-modules python-docutils qt5-tools)
backup=('usr/share/sddm/scripts/Xsetup'
'usr/share/sddm/scripts/Xstop'
'etc/pam.d/sddm'
'etc/pam.d/sddm-autologin'
'etc/pam.d/sddm-greeter')
-provides=('display-manager' 'sddm-elogind')
-replaces=('sddm-elogind')
-conflicts=(${replaces[@]})
-source=("${pkgname}-${pkgver}.tar.gz::https://github.com/${pkgname}/${pkgname}/archive/v${pkgver}.tar.gz"
- sddm.sysusers sddm.tmpfiles)
-sha256sums=('07296fc747010a5dd58a45f16c3224b439997afad42566e4b043c841b1b71700'
+provides=(display-manager)
+source=($pkgname-$pkgver.tar.gz::"https://github.com/$pkgname/$pkgname/archive/v$pkgver.tar.gz"
+ sddm.sysusers sddm.tmpfiles
+ pam-faillock.patch
+ sddm-fix-race-pre.patch::"https://github.com/sddm/sddm/commit/68cc9e31.patch"
+ sddm-fix-race.patch::"https://patch-diff.githubusercontent.com/raw/sddm/sddm/pull/1324.patch"
+ sddm-desktop-session.patch::"https://github.com/sddm/sddm/commit/5fd5ed27.patch"
+ sddm-0.18.0-Xsession.patch
+ sddm-0.19.0-pam-1.4-substack.patch
+ sddm-0.19.0-Xserver_startup.patch
+ sddm-fix-build.patch)
+sha256sums=('e76da1f13d5ad5e0179e3fec57543126044339405ef19c397e105e0807bd4e41'
'9fce66f325d170c61caed57816f4bc72e9591df083e89da114a3bb16b0a0e60f'
- 'db625f2a3649d6d203e1e1b187a054d5c6263cadf7edd824774d8ace52219677')
+ 'db625f2a3649d6d203e1e1b187a054d5c6263cadf7edd824774d8ace52219677'
+ '441f441fc63c16c5dbd83411a305d88b17e50836c958677db881b9b6c13c668a'
+ '33770560315b5369fd15baf5cd877f1191e642cefc6d2a1b4f0a7a80c109c025'
+ 'bbe45a316140c145d7de67dbe95764e44a0787ad9c6bcd2f7e0694484bd79640'
+ '83e4df6e1c0c23e7b38c1d523c236108eae177ba11c5d466825690845ef99fcf'
+ 'dc2384e1b17cf1a217bff363c948494a74ec8d41c2a11dbd3cec0aefa880e845'
+ '921674946b1d0f728382ebd4fde2566f16b80434ebce6e790c684f98819273bb'
+ 'd46932e0a60cf5050aaea590ff5f3ab580d2118cbf746f55f78033f72f1bcb76'
+ 'e9058d261138e637248b20243e3e81ff337ab669a4a25fbff387bf9558a682c6')
+options=(debug)
prepare() {
- mkdir -p build
+ patch -d $pkgname-$pkgver -p1 < pam-faillock.patch # Port away from deprecated pam_tally2
+ patch -d $pkgname-$pkgver -p1 < sddm-fix-race-pre.patch # Make next patch apply
+ patch -d $pkgname-$pkgver -p1 < sddm-fix-race.patch # Fix race at startup
+ patch -d $pkgname-$pkgver -p1 < sddm-desktop-session.patch # Fix desktop session name
+ patch -d $pkgname-$pkgver -p1 < sddm-fix-build.patch # Fix build with Qt post 5.15.2
}
build() {
- cd build
- cmake ../${pkgname}-${pkgver} \
+ cmake -B build -S $pkgname-$pkgver \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBEXECDIR=/usr/lib/sddm \
-DDBUS_CONFIG_DIR=/usr/share/dbus-1/system.d \
-DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \
-DUSE_ELOGIND=yes \
-DNO_SYSTEMD=yes \
- -DBUILD_MAN_PAGES=ON
- make
+ -DBUILD_MAN_PAGES=ON \
+ -DUID_MAX=60513
+ cmake --build build
}
package() {
- cd build
- make DESTDIR="${pkgdir}" install
+ DESTDIR="$pkgdir" cmake --install build
- install -Dm644 "$srcdir"/sddm.sysusers "$pkgdir"/usr/lib/sysusers.d/sddm.conf
- install -Dm644 "$srcdir"/sddm.tmpfiles "$pkgdir"/usr/lib/tmpfiles.d/sddm.conf
+ install -Dm644 sddm.sysusers "$pkgdir"/usr/lib/sysusers.d/sddm.conf
+ install -Dm644 sddm.tmpfiles "$pkgdir"/usr/lib/tmpfiles.d/sddm.conf
install -d "$pkgdir"/usr/lib/sddm/sddm.conf.d
"$pkgdir"/usr/bin/sddm --example-config > "$pkgdir"/usr/lib/sddm/sddm.conf.d/default.conf
diff --git a/nonsystemd/sddm/pam-faillock.patch b/nonsystemd/sddm/pam-faillock.patch
new file mode 100644
index 000000000..91c44bb66
--- /dev/null
+++ b/nonsystemd/sddm/pam-faillock.patch
@@ -0,0 +1,12 @@
+diff --git a/services/sddm-autologin.pam b/services/sddm-autologin.pam
+index 4c82048..b42991e 100755
+--- a/services/sddm-autologin.pam
++++ b/services/sddm-autologin.pam
+@@ -1,6 +1,6 @@
+ #%PAM-1.0
+ auth required pam_env.so
+-auth required pam_tally2.so file=/var/log/tallylog onerr=succeed
++auth required pam_faillock.so preauth
+ auth required pam_shells.so
+ auth required pam_nologin.so
+ auth required pam_permit.so
diff --git a/nonsystemd/sddm/sddm-0.18.0-Xsession.patch b/nonsystemd/sddm/sddm-0.18.0-Xsession.patch
new file mode 100644
index 000000000..41c813a06
--- /dev/null
+++ b/nonsystemd/sddm/sddm-0.18.0-Xsession.patch
@@ -0,0 +1,24 @@
+--- a/data/scripts/Xsession 2016-08-28 14:52:04.910181422 +0200
++++ b/data/scripts/Xsession 2017-10-21 15:25:47.668886596 +0200
+@@ -50,6 +50,10 @@
+ ;;
+ esac
+
++# Make D-Bus and ConsoleKit start properly, see:
++# /etc/X11/xinit/xinitrc.d/{80-dbus,90-consolekit}
++command="$@"
++
+ [ -f /etc/xprofile ] && . /etc/xprofile
+ [ -f $HOME/.xprofile ] && . $HOME/.xprofile
+
+@@ -94,8 +98,8 @@
+ . "$USERXSESSION"
+ fi
+
+-if [ -z "$*" ]; then
++if [ -z "$command" ]; then
+ exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session."
+ else
+- exec $@
++ exec $command
+ fi
diff --git a/nonsystemd/sddm/sddm-0.19.0-Xserver_startup.patch b/nonsystemd/sddm/sddm-0.19.0-Xserver_startup.patch
new file mode 100644
index 000000000..a8d606403
--- /dev/null
+++ b/nonsystemd/sddm/sddm-0.19.0-Xserver_startup.patch
@@ -0,0 +1,35 @@
+From a13d38ea605a8db7392f90ae1a894e14d7746e8d Mon Sep 17 00:00:00 2001
+From: Fabian Vogt <fabian@ritter-vogt.de>
+Date: Wed, 9 Dec 2020 19:33:08 +0100
+Subject: [PATCH] Emit XorgDisplayServer::started only when the auth file is
+ ready
+
+---
+ src/daemon/XorgDisplayServer.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
+index 5f93a1b..4c51304 100644
+--- a/src/daemon/XorgDisplayServer.cpp
++++ b/src/daemon/XorgDisplayServer.cpp
+@@ -222,8 +222,6 @@ namespace SDDM {
+
+ // close our pipe
+ close(pipeFds[0]);
+-
+- emit started();
+ }
+
+ // The file is also used by the greeter, which does care about the
+@@ -236,6 +234,8 @@ namespace SDDM {
+ }
+ changeOwner(m_authPath);
+
++ emit started();
++
+ // set flag
+ m_started = true;
+
+--
+2.35.1
+
diff --git a/nonsystemd/sddm/sddm-0.19.0-pam-1.4-substack.patch b/nonsystemd/sddm/sddm-0.19.0-pam-1.4-substack.patch
new file mode 100644
index 000000000..49c41cbca
--- /dev/null
+++ b/nonsystemd/sddm/sddm-0.19.0-pam-1.4-substack.patch
@@ -0,0 +1,31 @@
+--- sddm-0.19.0/services/sddm-autologin.pam
++++ sddm-0.19.0/services/sddm-autologin.pam
+@@ -1,6 +1,5 @@
+ #%PAM-1.0
+ auth required pam_env.so
+-auth required pam_tally2.so file=/var/log/tallylog onerr=succeed
+ auth required pam_shells.so
+ auth required pam_nologin.so
+ auth required pam_permit.so
+--- sddm-0.19.0/services/sddm.pam
++++ sddm-0.19.0/services/sddm.pam
+@@ -1,15 +1,15 @@
+ #%PAM-1.0
+
+-auth include system-login
++auth substack system-login
+ -auth optional pam_gnome_keyring.so
+ -auth optional pam_kwallet5.so
+
+-account include system-login
++account substack system-login
+
+-password include system-login
++password substack system-login
+ -password optional pam_gnome_keyring.so use_authtok
+
+ session optional pam_keyinit.so force revoke
+-session include system-login
++session substack system-login
+ -session optional pam_gnome_keyring.so auto_start
+ -session optional pam_kwallet5.so auto_start
diff --git a/nonsystemd/sddm/sddm-fix-build.patch b/nonsystemd/sddm/sddm-fix-build.patch
new file mode 100644
index 000000000..8e6cde83e
--- /dev/null
+++ b/nonsystemd/sddm/sddm-fix-build.patch
@@ -0,0 +1,13 @@
+diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
+index 5f93a1b..d5f29a9 100644
+--- a/src/daemon/XorgDisplayServer.cpp
++++ b/src/daemon/XorgDisplayServer.cpp
+@@ -65,7 +65,7 @@ namespace SDDM {
+ // create a random hexadecimal number
+ const char *digits = "0123456789abcdef";
+ for (int i = 0; i < 32; ++i)
+- m_cookie[i] = digits[dis(gen)];
++ m_cookie[i] = QLatin1Char(digits[dis(gen)]);
+ }
+
+ XorgDisplayServer::~XorgDisplayServer() {