Rewrite moonlock from Python to Rust (v0.4.0)
Complete rewrite of the Wayland lockscreen from Python/PyGObject to Rust/gtk4-rs for memory safety in security-critical PAM code and consistency with the moonset/moongreet Rust ecosystem. Modules: main, lockscreen, auth (PAM FFI), fingerprint (fprintd D-Bus), config, i18n, users, power. 37 unit tests. Security: PAM conversation callback with Zeroizing password, panic hook that never unlocks, root check, ext-session-lock-v1 compositor policy, absolute loginctl path, avatar symlink rejection.
This commit is contained in:
+6
-10
@@ -4,24 +4,21 @@
|
||||
# Maintainer: Dominik Kressler
|
||||
|
||||
pkgname=moonlock-git
|
||||
pkgver=0.2.0.r0.g7cee4f4
|
||||
pkgver=0.4.0.r0.g0000000
|
||||
pkgrel=1
|
||||
pkgdesc="A secure Wayland lockscreen with GTK4, PAM and fingerprint support"
|
||||
arch=('any')
|
||||
arch=('x86_64')
|
||||
url="https://gitea.moonarch.de/nevaforget/moonlock"
|
||||
license=('MIT')
|
||||
depends=(
|
||||
'python'
|
||||
'python-gobject'
|
||||
'gtk4'
|
||||
'gtk4-layer-shell'
|
||||
'gtk4-session-lock'
|
||||
'pam'
|
||||
)
|
||||
makedepends=(
|
||||
'git'
|
||||
'python-build'
|
||||
'python-installer'
|
||||
'python-hatchling'
|
||||
'cargo'
|
||||
)
|
||||
optdepends=(
|
||||
'fprintd: fingerprint authentication support'
|
||||
@@ -38,13 +35,12 @@ pkgver() {
|
||||
|
||||
build() {
|
||||
cd "$srcdir/moonlock"
|
||||
rm -rf dist/
|
||||
python -m build --wheel --no-isolation
|
||||
cargo build --release --locked
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "$srcdir/moonlock"
|
||||
python -m installer --destdir="$pkgdir" dist/*.whl
|
||||
install -Dm755 target/release/moonlock "$pkgdir/usr/bin/moonlock"
|
||||
|
||||
# PAM configuration
|
||||
install -Dm644 config/moonlock-pam "$pkgdir/etc/pam.d/moonlock"
|
||||
|
||||
Reference in New Issue
Block a user