Skip to content

Commit 09ab9ec

Browse files
authored
release: v0.3.3 (#35)
Cohort release covering the dependency-bump and community-contribution work that landed after v0.3.2. Added: - Lenovo ThinkPad X1 Carbon Gen 9 20XW00FPUS IR camera quirk (174f:2454) contributed by @themariusus in #29. Verified on hardware. Packaging: - AUR PKGBUILD: options=(!lto !debug). LTO breaks ring's hand-written asm and libsqlite3-sys's bundled sqlite3.c native objects on Arch's stock makepkg.conf, producing undefined-symbol link failures. Fixed by @SomeCodecat in #25. Developer experience: - nix develop shell now ships rustfmt, clippy, llvmPackages.libclang (with LIBCLANG_PATH set) so cargo fmt/clippy/build match CI gates inside the devshell. (#32) Dependencies (already in main from earlier this session, surfaced here for the CHANGELOG): - tokio 1.49.0 -> 1.50.0 - nix 0.31.1 -> 0.31.2 - uuid 1.21.0 -> 1.23.0 - image 0.25.9 -> 0.25.10 - actions/checkout v4 -> v6 - actions/upload-artifact v4 -> v7 - actions/download-artifact v4 -> v8 Documentation: - README Status line updated 0.3.0 -> 0.3.3 with brief summary of the intervening fixes and hardware additions. - docs/STATUS.md last-updated bumped to 2026-05-28; build-state rewritten to reflect post-v0.3.0 bug fix wave and the quirks DB now covering both ASUS Zenbook 14 and Lenovo X1 Carbon Gen 9. Workspace version bumped 0.3.2 -> 0.3.3 across Cargo.toml, Cargo.lock (6 crates), packaging/aur/PKGBUILD, and packaging/nix/default.nix. CHANGELOG section renamed from [Unreleased] and dated. Known follow-up (tracked separately): packaging/aur/PKGBUILD still ships sha256sums=('SKIP'); after this release lands, the tarball hash should be computed and committed in a follow-up PR (lands in v0.3.4).
1 parent 5ff6f2e commit 09ab9ec

7 files changed

Lines changed: 53 additions & 14 deletions

File tree

CHANGELOG.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,42 @@
22

33
## Unreleased
44

5+
## v0.3.3 — 2026-05-28
6+
7+
### Added
8+
9+
- **Hardware support: Lenovo ThinkPad X1 Carbon Gen 9 20XW00FPUS IR camera** (`174f:2454`).
10+
Verified on hardware. Quirk file at `contrib/hw/174f-2454.toml`. Contributed by
11+
@themariusus in #29.
12+
13+
### Packaging
14+
15+
- **AUR `PKGBUILD` disables LTO and debug** (`options=(!lto !debug)`). LTO operates on
16+
LLVM IR, but `ring` ships hand-written assembly via `cc` and `libsqlite3-sys`
17+
compiles `sqlite3.c` via `cc` — those `.o` files have no LTO-compatible IR, so the
18+
final link drops or fails to resolve their symbols. Without this, `makepkg -si`
19+
on a stock Arch system fails at link time with `undefined symbol:
20+
ring_core_0_17_14__LIMBS_window5_split_window` (and many more from both `ring`
21+
and `libsqlite3-sys`). Reported and fixed by @SomeCodecat in #25.
22+
23+
### Developer experience
24+
25+
- **`nix develop` shell now ships `rustfmt`, `clippy`, and `libclang`.**
26+
`inputsFrom = [ visage ]` brought the compiler but not these auxiliaries, so
27+
contributors hit `error: no such command: fmt` and bindgen failed to find
28+
`libclang.so`. Devshell now sets `LIBCLANG_PATH` and exposes both cargo
29+
subcommands matching CI's `dtolnay/rust-toolchain@stable` gates. (#32)
30+
31+
### Dependencies
32+
33+
- `tokio` 1.49.0 → 1.50.0
34+
- `nix` 0.31.1 → 0.31.2
35+
- `uuid` 1.21.0 → 1.23.0
36+
- `image` 0.25.9 → 0.25.10
37+
- `actions/checkout` v4 → v6 (CI)
38+
- `actions/upload-artifact` v4 → v7 (CI)
39+
- `actions/download-artifact` v4 → v8 (CI)
40+
541
## v0.3.2 — 2026-05-28
642

743
### Fixed

Cargo.lock

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ members = [
1010
]
1111

1212
[workspace.package]
13-
version = "0.3.2"
13+
version = "0.3.3"
1414
edition = "2021"
1515
license = "MIT"
1616
repository = "https://github.com/sovren-software/visage"

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,13 @@ Linux-PAM — no kernel patches, no modified sudo.
1919

2020
## Status
2121

22-
**v0.3.0 — feature-complete, end-to-end tested on Ubuntu 24.04.4 LTS.**
22+
**v0.3.3 — feature-complete, end-to-end tested on Ubuntu 24.04.4 LTS.**
2323

2424
All 6 implementation steps complete. Verified: enroll, verify, PAM/sudo integration,
2525
systemd hardening, D-Bus access control, install/remove/purge lifecycle, suspend/resume.
26+
v0.3.3 expands IR emitter coverage to Lenovo ThinkPad X1 Carbon Gen 9 and ships bug
27+
fixes for the post-hibernate `systemctl restart` path and the PAM `success=` control
28+
keyword. See [CHANGELOG](CHANGELOG.md) for the full v0.3.1–v0.3.3 history.
2629

2730
| Step | Component | Status |
2831
|------|-----------|--------|

docs/STATUS.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Visage v0.3 Release Status
22

3-
**Last updated:** 2026-02-25
4-
**Build state:** v0.3.0 shipped and validated locally. All 6 implementation steps complete + model integrity enforcement + OSS governance + passive liveness detection. End-to-end tested on Ubuntu 24.04.4 LTS (v0.1.0 → v0.3.0 upgrade path verified 2026-02-24). Passive liveness awaits cargo build/test validation and manual spoof testing on hardware.
3+
**Last updated:** 2026-05-28
4+
**Build state:** v0.3.3 shipped. All 6 implementation steps complete + model integrity enforcement + OSS governance + passive liveness detection + post-v0.3.0 bug fix wave (PAM `success=` keyword corrected, `visaged` SIGTERM handler, `visaged.service` `TimeoutStopSec=10s`). End-to-end tested on Ubuntu 24.04.4 LTS. IR emitter quirks DB now covers ASUS Zenbook 14 UM3406HA and Lenovo ThinkPad X1 Carbon Gen 9 20XW00FPUS. Passive liveness still awaits manual spoof testing on hardware.
55

66
---
77

@@ -13,7 +13,7 @@
1313
| 2 | ONNX inference (`visage-core`) | ✅ Complete — SCRFD detection, ArcFace recognition, face alignment |
1414
| 3 | Daemon + D-Bus + SQLite (`visaged`) | ✅ Complete — persistent daemon, 5-method API, WAL store |
1515
| 4 | PAM module (`pam-visage`) | ✅ Complete — PAM_IGNORE fallback, system bus, FFI safe |
16-
| 5 | IR emitter (`visage-hw`) | ✅ Complete — UVC extension unit, quirks DB, ASUS Zenbook |
16+
| 5 | IR emitter (`visage-hw`) | ✅ Complete — UVC extension unit, quirks DB (ASUS Zenbook 14, Lenovo X1 Carbon Gen 9) |
1717
| 6 | Packaging | ✅ Complete — .deb, systemd, pam-auth-update, `visage setup` |
1818
| 7 | Model integrity (`visage-models`) | ✅ Complete — pinned SHA-256, fail-closed daemon startup, shared manifest |
1919
| 8 | Passive liveness (`visage-core`, `visaged`) | ⚠️ Code complete — landmark stability check; awaits `cargo check`/test + hardware spoof validation |

packaging/aur/PKGBUILD

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# https://github.com/sovren-software/visage
33

44
pkgname=visage
5-
pkgver=0.3.2
5+
pkgver=0.3.3
66
pkgrel=1
77
pkgdesc="Linux face authentication via PAM — persistent daemon, IR camera support, ONNX inference"
88
arch=('x86_64')
@@ -18,7 +18,7 @@ install="$pkgname.install"
1818
# Preserve user data and face database across upgrades
1919
backup=('var/lib/visage/faces.db')
2020
source=("$pkgname-$pkgver.tar.gz::https://github.com/sovren-software/visage/archive/refs/tags/v$pkgver.tar.gz")
21-
# TODO: compute real sha256sum at release time: sha256sum visage-0.3.2.tar.gz
21+
# TODO: compute real sha256sum at release time: sha256sum visage-0.3.3.tar.gz
2222
sha256sums=('SKIP')
2323

2424
build() {

packaging/nix/default.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
rustPlatform.buildRustPackage {
2121
pname = "visage";
22-
version = "0.3.2";
22+
version = "0.3.3";
2323

2424
src = lib.cleanSource ../..;
2525

0 commit comments

Comments
 (0)