Skip to content

feat(packaging): Fedora RPM via cargo-generate-rpm - #103

Open
jeffshee wants to merge 1 commit into
sovren-software:mainfrom
jeffshee:packaging/fedora-rpm
Open

feat(packaging): Fedora RPM via cargo-generate-rpm#103
jeffshee wants to merge 1 commit into
sovren-software:mainfrom
jeffshee:packaging/fedora-rpm

Conversation

@jeffshee

Copy link
Copy Markdown

What problem does this solve?

There is no way to install Visage on Fedora except copying files by hand. The .deb layout
puts the PAM module in usr/lib/security, which is /usr/lib64/security on Fedora, and
Fedora has no pam-auth-update.

Type

  • Distribution packaging

What this changes

  • [package.metadata.generate-rpm] on the visaged crate, so cargo generate-rpm -p crates/visaged builds an RPM with the same assets as the .deb at Fedora's paths. No new
    dependency for anyone not building the RPM.
  • packaging/rpm/visage.pam, installed to /usr/share/visage/pam.d/visage: the one-line PAM
    snippet for the manual wiring Fedora needs, with the same [success=done default=ignore]
    control as the Debian, Arch and NixOS packaging. Added to pam_control_contract so it cannot
    drift.
  • A short Fedora install section in the operations guide.

Testing

Fedora 44 x86_64, cargo-generate-rpm 0.20.0: build, dnf install, upgrade over a previous
local build, systemctl enable --now, then face auth via sudo, polkit and GDM unlock.
cargo test --workspace passes including the extended contract test.

Checklist

  • cargo fmt --all -- --check passes
  • cargo clippy --workspace -- -D warnings passes
  • cargo test --workspace passes
  • Commits are signed off (git commit -s) per the DCO
  • I have read CONTRIBUTING.md

`cargo generate-rpm -p crates/visaged` now produces an RPM with the same
assets as the .deb at Fedora's paths (PAM module in /usr/lib64/security).
Fedora has no pam-auth-update and authselect owns system-auth, so PAM stays
manual; the package ships the one-line snippet with the same
[success=done default=ignore] control as the other packaging, and
pam_control_contract checks that file too.

Tested on Fedora 44 x86_64: build, dnf install and upgrade, sudo, polkit
and GDM unlock via face.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Jeff Shee <jeffshee8969@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant