From 939acfb97ae5a9a73f922d0106397555da3db6e8 Mon Sep 17 00:00:00 2001 From: ccross Date: Thu, 28 May 2026 13:08:45 -0400 Subject: [PATCH] release: v0.3.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug-fix release covering two real shipping-user issues in v0.3.0: - **PAM control keyword corrected.** `success=end` was not a valid `pam.conf(5)` value-keyword — libpam treated it as `ignore` and dropped Visage's authentication result, so face auth was silently falling through to the password prompt since v0.1.0. Swept across all 9 affected sites (README, docs, NixOS module, Debian pam-auth-update profile, research docs). Reported-by @SelfRef in #27. Debian/Ubuntu users auto-recover on next `.deb` upgrade via `postinst`'s `pam-auth-update --package` call; Arch and NixOS users get the fix from the new install. - **`visaged` SIGTERM handler.** The shutdown signal was using `tokio::signal::ctrl_c()`, which is SIGINT-only on Unix. `systemctl stop|restart` and `visage-resume.service` post-hibernate send SIGTERM, which the daemon ignored — systemd then waited the default `TimeoutStopSec=90s` before SIGKILL. Fixes #26. Daemon now handles both SIGINT and SIGTERM via `tokio::signal::unix::signal` and `tokio::select!`, matching the pattern used elsewhere in our daemons. `visaged.service` adds `TimeoutStopSec=10s` as defense in depth. Workspace version bumped 0.3.0 → 0.3.2 across `Cargo.toml`, `Cargo.lock`, `packaging/aur/PKGBUILD`, and `packaging/nix/default.nix`. CHANGELOG section renamed from `[Unreleased]` and dated. Skipping v0.3.1 — that number was reserved for the dependency-bump cohort (image, nix, tokio, uuid, GitHub Actions) plus the community fork PRs (#25 Arch LTO fix, #29 X1 Carbon quirk). Those are still blocked on fork-PR CI approval and will land as v0.3.3 once unblocked. --- CHANGELOG.md | 2 ++ Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- packaging/aur/PKGBUILD | 4 ++-- packaging/nix/default.nix | 2 +- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3a413d..9760e84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## v0.3.2 — 2026-05-28 + ### Fixed - **PAM control keyword corrected: `success=end` → `success=done` across all 9 sites.** diff --git a/Cargo.lock b/Cargo.lock index 8232009..a7b3405 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1684,7 +1684,7 @@ dependencies = [ [[package]] name = "pam-visage" -version = "0.3.0" +version = "0.3.2" dependencies = [ "libc", "zbus", @@ -2793,7 +2793,7 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "visage-cli" -version = "0.3.0" +version = "0.3.2" dependencies = [ "anyhow", "clap", @@ -2811,7 +2811,7 @@ dependencies = [ [[package]] name = "visage-core" -version = "0.3.0" +version = "0.3.2" dependencies = [ "image", "ndarray", @@ -2824,7 +2824,7 @@ dependencies = [ [[package]] name = "visage-hw" -version = "0.3.0" +version = "0.3.2" dependencies = [ "libc", "serde", @@ -2837,7 +2837,7 @@ dependencies = [ [[package]] name = "visage-models" -version = "0.3.0" +version = "0.3.2" dependencies = [ "sha2", "thiserror", @@ -2845,7 +2845,7 @@ dependencies = [ [[package]] name = "visaged" -version = "0.3.0" +version = "0.3.2" dependencies = [ "aes-gcm", "anyhow", diff --git a/Cargo.toml b/Cargo.toml index c7886f4..cf16d45 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,7 @@ members = [ ] [workspace.package] -version = "0.3.0" +version = "0.3.2" edition = "2021" license = "MIT" repository = "https://github.com/sovren-software/visage" diff --git a/packaging/aur/PKGBUILD b/packaging/aur/PKGBUILD index eace48b..a460cc7 100644 --- a/packaging/aur/PKGBUILD +++ b/packaging/aur/PKGBUILD @@ -2,7 +2,7 @@ # https://github.com/sovren-software/visage pkgname=visage -pkgver=0.3.0 +pkgver=0.3.2 pkgrel=1 pkgdesc="Linux face authentication via PAM — persistent daemon, IR camera support, ONNX inference" arch=('x86_64') @@ -16,7 +16,7 @@ install="$pkgname.install" # Preserve user data and face database across upgrades backup=('var/lib/visage/faces.db') source=("$pkgname-$pkgver.tar.gz::https://github.com/sovren-software/visage/archive/refs/tags/v$pkgver.tar.gz") -# TODO: compute real sha256sum at release time: sha256sum visage-0.3.0.tar.gz +# TODO: compute real sha256sum at release time: sha256sum visage-0.3.2.tar.gz sha256sums=('SKIP') build() { diff --git a/packaging/nix/default.nix b/packaging/nix/default.nix index da133eb..b8b279a 100644 --- a/packaging/nix/default.nix +++ b/packaging/nix/default.nix @@ -19,7 +19,7 @@ rustPlatform.buildRustPackage { pname = "visage"; - version = "0.3.0"; + version = "0.3.2"; src = lib.cleanSource ../..;