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.
14 lines
390 B
Rust
14 lines
390 B
Rust
// ABOUTME: Build script for compiling GResource bundle.
|
|
// ABOUTME: Bundles style.css, wallpaper.jpg, and default-avatar.svg into the binary.
|
|
|
|
fn main() {
|
|
glib_build_tools::compile_resources(
|
|
&["resources"],
|
|
"resources/resources.gresource.xml",
|
|
"moonlock.gresource",
|
|
);
|
|
|
|
// Link libpam for PAM authentication
|
|
println!("cargo:rustc-link-lib=pam");
|
|
}
|