wdm-plasma-greeter
LOW
maintainer illuser
0 votes
scanned 2026-08-19 03:41:13.749572
Why flagged
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
Triggered rules
Low
Few votes, recently uploaded
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
PKGBUILD
1
# Maintainer: Joseph R. Quinn <quinn.josephr@protonmail.com>
2
3
# Its own AUR package for the same reason the other two greeters are: nobody who
4
# wants the GTK or the WebKitGTK greeter should have Qt 6 and LayerShellQt in
5
# their build chroot, and nobody who wants this one should have GTK4 or
6
# WebKitGTK in theirs. wdm depends on the virtual this provides, so pacman offers
7
# this as one of the choices when `wdm-wayland` is installed on its own.
8
#
9
# The one package in the set that is not built with cargo. greeters/plasma is a
10
# standalone CMake project that the Rust workspace deliberately does not know
11
# about — a build.rs shelling out to cmake would make `cargo test --workspace`
12
# fail on every machine without Qt — so there is no `cargo fetch --locked` and no
13
# RUSTUP_TOOLCHAIN here, and rust is not a build dependency at all.
14
pkgname=wdm-plasma-greeter
15
# The CMake install rules place /etc/wdm/plasma-greeter.ini; backup= is what
16
# keeps pacman from clobbering an edited one on upgrade.
17
backup=('etc/wdm/plasma-greeter.ini')
18
# All four wdm packages share a pkgver, because they are built from one tarball
19
# and share one checksum. v0.8.0 was the first release containing
20
# greeters/plasma, so nothing earlier than that is installable here.
21
pkgver=0.10.0
22
pkgrel=1
23
pkgdesc='Qt6/QML greeter for wdm, with themes written in QML'
24
arch=('x86_64' 'aarch64')
25
url='https://github.com/quinnjr/wdm'
26
license=('MIT')
27
# qt6-base is not just QtCore and QtGui here: on current Arch it is also where
28
# libQt6WaylandClient and the wayland QPA platform plugin live, and this greeter
29
# has no other platform it can run on. layer-shell-qt is not optional for the
30
# same reason gtk4-layer-shell is not optional for the GTK greeter — wdm
31
# advertises no xdg_toplevel at all, so a window that is not a layer surface is
32
# closed the moment it is created. wayland is named explicitly because the
33
# executable links libwayland-client directly: it speaks wdm_greeter_v1 on the
34
# same connection Qt renders on, rather than through Qt.
35
depends=('qt6-base' 'qt6-declarative' 'layer-shell-qt' 'wayland')
36
# cmake and ninja rather than cmake alone: ninja is the generator CI configures
37
# with, so the build that is checked on every push and the build that produces
38
# this package are the same one. wayland is here for wayland-scanner as well as
39
# for the library — the protocol bindings are generated at build time from wdm's
40
# own XML, because a greeter and the compositor disagreeing about an opcode is
41
# not a compile error anywhere, it is a login screen that hangs.
42
#
43
# catch2 is what makes check() a check rather than a no-op. A missing Catch2
44
# does not fail the configure — it skips every test target with a STATUS message
45
# and leaves a ctest that finds nothing and exits 0 — so leaving it out here
46
# would produce a package built with its whole test suite silently unbuilt.
47
#
48
# wayland-protocols is deliberately absent: this project's XML is wdm's own, and
49
# nothing in the build reaches for a stock protocol definition.
50
makedepends=('cmake' 'ninja' 'pkgconf' 'wayland' 'catch2' 'qt6-base'
51
'qt6-declarative' 'layer-shell-qt')
52
provides=('wdm-greeter-implementation')
53
source=("wdm-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
54
# See the note in the `wdm-wayland` package: this is the checksum of the tarball GitHub
55
# published, and all four wdm packages build from the same one. Never SKIP —
56
# for a source that is a URL, SKIP means makepkg builds whatever arrives.
57
sha256sums=('94fbfae480ddd21b18e2c7e5472e135a5a5577dcb172ace989d520170622443b')
58
59
# The tarball is the whole workspace whatever the pkgbase is, so the source
60
# directory is named for the project rather than for this package.
61
_src="wdm-$pkgver"
62
63
build() {
64
# Configured against greeters/plasma rather than against the tarball root, and
65
# the tarball root is still what has to be unpacked: the CMakeLists reaches up
66
# to crates/wdm-protocol for the XML it generates bindings from, and refuses to
67
# configure if it is not there.
68
#
69
# -DCMAKE_BUILD_TYPE=None so that makepkg.conf's CFLAGS, CXXFLAGS and LDFLAGS
70
# are the only ones used; any other build type appends CMake's own optimisation
71
# and debug flags on top and quietly overrides the distribution's.
72
cmake -B build -S "$_src/greeters/plasma" -G Ninja \
73
-DCMAKE_BUILD_TYPE=None \
74
-DCMAKE_INSTALL_PREFIX=/usr \
75
-DBUILD_TESTING=ON \
76
-DWDM_PLASMA_QT=ON
77
78
cmake --build build
79
}
80
81
check() {
82
# --no-tests=error and not the default. See the makedepends comment: a ctest
83
# that finds nothing to run exits 0, so without this a build whose test targets
84
# were skipped reports the same green as one that passed 56 cases.
85
#
86
# No display is needed for any of it. The Qt-free suites construct no Qt object
87
# at all, and the Qt ones drive the whole state machine under a
88
# QCoreApplication with no QPA platform plugin and no window — which is the
89
# property the greeter's layering exists for, and the reason this runs in a
90
# build chroot.
91
ctest --test-dir build --output-on-failure --no-tests=error
92
}
93
94
package() {
95
# The install rules are the CMakeLists', not this file's, so that the four
96
# greeters cannot drift apart on where a greeter lives: the binary goes to a
97
# literal /usr/lib/wdm/wdm-plasma-greeter — not CMAKE_INSTALL_LIBDIR, which is
98
# multiarch and would be lib64 on Fedora and lib/x86_64-linux-gnu on Debian —
99
# and the default theme to /usr/share/wdm/plasma-greeter/themes/default. An
100
# administrator writes that binary path into `greeter.command` by hand, and a
101
# greeter.command naming a path that does not exist is a startup failure with
102
# no greeter left on screen to report it.
103
DESTDIR="$pkgdir" cmake --install build
104
105
install -Dm644 "$_src/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
106
}
107
Changes since previous scan
--- PKGBUILD @ 2026-08-15 00:26+++ PKGBUILD @ 2026-08-19 03:41@@ -12,10 +12,13 @@ # fail on every machine without Qt — so there is no `cargo fetch --locked` and no # RUSTUP_TOOLCHAIN here, and rust is not a build dependency at all. pkgname=wdm-plasma-greeter+# The CMake install rules place /etc/wdm/plasma-greeter.ini; backup= is what+# keeps pacman from clobbering an edited one on upgrade.+backup=('etc/wdm/plasma-greeter.ini') # All four wdm packages share a pkgver, because they are built from one tarball # and share one checksum. v0.8.0 was the first release containing # greeters/plasma, so nothing earlier than that is installable here.-pkgver=0.9.0+pkgver=0.10.0 pkgrel=1 pkgdesc='Qt6/QML greeter for wdm, with themes written in QML' arch=('x86_64' 'aarch64')@@ -51,7 +54,7 @@ # See the note in the `wdm-wayland` package: this is the checksum of the tarball GitHub # published, and all four wdm packages build from the same one. Never SKIP — # for a source that is a URL, SKIP means makepkg builds whatever arrives.-sha256sums=('49e70b577665bf4fb7c78f5d9319febaf0a8268a80bdb8eb01ff95ed0db8b9f7')+sha256sums=('94fbfae480ddd21b18e2c7e5472e135a5a5577dcb172ace989d520170622443b') # The tarball is the whole workspace whatever the pkgbase is, so the source # directory is named for the project rather than for this package.Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-19 03:41:13 | Low | 1 |
| 2026-08-15 00:26:13 | Clean | 2 |
| 2026-08-14 21:29:33 | Low | 1 |