Complete rewrite of the greetd greeter from Python/PyGObject to Rust/gtk4-rs for consistency with moonset, single binary without Python runtime, and improved security through Rust memory safety. Modules: main, greeter, ipc, config, i18n, users, sessions, power 86 unit tests covering all modules including login_worker IPC flow. Security hardening: shell-word splitting for exec_cmd, absolute path validation for session binaries, session-name sanitization, absolute loginctl path, atomic IPC writes.
49 lines
1.1 KiB
Bash
49 lines
1.1 KiB
Bash
# ABOUTME: PKGBUILD for Moongreet — greetd greeter for Wayland.
|
|
# ABOUTME: Builds from git source with automatic version detection.
|
|
|
|
# Maintainer: Dominik Kressler
|
|
|
|
pkgname=moongreet-git
|
|
pkgver=0.3.0.r0.g0000000
|
|
pkgrel=1
|
|
pkgdesc="A greetd greeter for Wayland with GTK4 and Layer Shell"
|
|
arch=('x86_64')
|
|
url="https://gitea.moonarch.de/nevaforget/greetd-moongreet"
|
|
license=('MIT')
|
|
depends=(
|
|
'gtk4'
|
|
'gtk4-layer-shell'
|
|
'greetd'
|
|
)
|
|
makedepends=(
|
|
'git'
|
|
'cargo'
|
|
)
|
|
provides=('moongreet')
|
|
conflicts=('moongreet')
|
|
install=moongreet.install
|
|
source=("git+${url}.git")
|
|
sha256sums=('SKIP')
|
|
|
|
pkgver() {
|
|
cd "$srcdir/greetd-moongreet"
|
|
git describe --long --tags | sed 's/^v//;s/-/.r/;s/-/./'
|
|
}
|
|
|
|
build() {
|
|
cd "$srcdir/greetd-moongreet"
|
|
cargo build --release --locked
|
|
}
|
|
|
|
package() {
|
|
cd "$srcdir/greetd-moongreet"
|
|
install -Dm755 target/release/moongreet "$pkgdir/usr/bin/moongreet"
|
|
|
|
# Greeter config
|
|
install -Dm644 config/moongreet.toml "$pkgdir/etc/moongreet/moongreet.toml"
|
|
|
|
# Cache directories
|
|
install -dm755 "$pkgdir/var/cache/moongreet"
|
|
install -dm755 "$pkgdir/var/cache/moongreet/last-session"
|
|
}
|