Mercurial > crates > nonstick
diff libpam-sys/README.md @ 136:efbc235f01d3
Separate libpam-sys-helpers from libpam-sys.
This separates the parts of libpam-sys that don't need linking against libpam
from the parts that do need to link against libpam.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Thu, 03 Jul 2025 14:28:04 -0400 |
parents | 5b2de52dd8b2 |
children |
line wrap: on
line diff
--- a/libpam-sys/README.md Thu Jul 03 11:14:49 2025 -0400 +++ b/libpam-sys/README.md Thu Jul 03 14:28:04 2025 -0400 @@ -5,27 +5,17 @@ If you're looking for a nice, safe, Rusty API to PAM, may I recommend [nonstick][nonstick]? -## Configuration - -By default, this crate guesses your system's PAM implementation based upon your OS. +## PAM implementations -- Linux: `LinuxPam` -- BSDs, including Mac OS: `OpenPam` -- Illumos/Solaris: `Sun` -- Unknown: `XSso` +This crate detects the PAM implementation you have installed, or guesses based on the OS if that's unavailable. +Supported PAM implementations are defined in the `pam_impl::PamImpl` enum. + +You can also explicitly specify the PAM implementation you want (if not detected correctly) by setting the `LIBPAMSYS_IMPL` environment variable **at build time**. +All build-time configuration is performed by the build script of the [`libpam-sys-helpers` crate](https://crates.io/crates/libpam-sys-helpers). Each implementation exports all the functionality available in its respective PAM library. `XSso` exports only what is in the [X/SSO specification][xsso]. -## Cargo Features - -The `helpers` feature (optional, but on by default) exports two helpers for PAM memory management. - -- A struct for managing the difference in memory management between Linux-PAM and all other implementations. -- A struct for handling the Linux-PAM–specific binary data payload structure. - -Neither are directly referenced elsewhere, and both allow you to bring your own storage abstractions. - ## Testing Tests are mostly run through `libpam-sys-test`, which lives in the crate's workspace in its repository (along with [nonstick]).