Mercurial > crates > nonstick
changeset 162:180237d0b498
Improve README files for libpam-sys and libpam-sys-consts.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Mon, 14 Jul 2025 15:07:16 -0400 |
parents | e9354e655f38 |
children | a75a66cb4181 |
files | libpam-sys/README.md libpam-sys/libpam-sys-consts/README.md |
diffstat | 2 files changed, 13 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/libpam-sys/README.md Sun Jul 13 16:06:51 2025 -0400 +++ b/libpam-sys/README.md Mon Jul 14 15:07:16 2025 -0400 @@ -1,7 +1,9 @@ # `libpam-sys`: low-level bindings to Pluggable Authentication Modules -This crate provides low-level access to PAM, working with multiple PAM implementations. -You do not need PAM system headers installed to use this! +- Supports all known PAM implementations on Linux, Mac OS, BSD, and Illumos/Solaris +- Works with zero configuration for common use cases +- No need for system header files +- Depends only on `libc` If you're looking for a nice, safe, Rusty API to PAM, may I recommend [nonstick]?
--- a/libpam-sys/libpam-sys-consts/README.md Sun Jul 13 16:06:51 2025 -0400 +++ b/libpam-sys/libpam-sys-consts/README.md Mon Jul 14 15:07:16 2025 -0400 @@ -1,19 +1,24 @@ # `libpam-sys-consts`: Constants for LibPAM +This is mostly a backend crate for [libpam-sys](https://crates.io/crates/libpam-sys/). +That crate re-exports pretty much everything we provide. +In most cases, you can just use that instead of depending upon this directly. + This crate does two primary things: -- Detects which implementation of LibPAM the current machine uses (as part of the build script), and exports that information to downstream crates. +- Detects which implementation of LibPAM to use (as part of the build script), and exports that information to downstream crates. - Exports the constants specific to that version of LibPAM. These are located in the `constants` module. -## Handling different PAM implmementations +## Handling different PAM implementations Different PAM implementations have different constants and some different behaviors. If you need to change your library's behavior based on PAM implementation, there are a few ways to do so. ### Constants -The current PAM implementation is available in `PamImpl::CURRENT`. +You can match on the current PAM implementation at runtime. +All known PAM implementations are in the `PamImpl` enumeration, and `PamImpl::CURRENT` is set to the current implementation. This is present as a string literal macro in `pam_impl_name!`. ### Conditional compilation @@ -57,7 +62,7 @@ If we don't know what kind of PAM is usually installed on this OS, we fall back to `__installed__`. - `__installed__`: Looks at the PAM library installed on the current machine. If none is recognized, falls back to `XSso`. -- The name of a `PamEnum` entry: The named PAM implementation. +- The name of a `PamImpl` entry: The named PAM implementation. For instance, `LIBPAMSYS_IMPL=OpenPam cargo build` will build this library for OpenPAM. ## MSRV