diff libpam-sys/README.md @ 129:5b2de52dd8b2

Cleanups: create readmes, add a few docs, remove cruft.
author Paul Fisher <paul@pfish.zone>
date Mon, 30 Jun 2025 23:49:54 -0400
parents 2b255c92417b
children
line wrap: on
line diff
--- a/libpam-sys/README.md	Mon Jun 30 23:00:53 2025 -0400
+++ b/libpam-sys/README.md	Mon Jun 30 23:49:54 2025 -0400
@@ -1,6 +1,9 @@
-# libpam-sys
+# `libpam-sys`: low-level bindings to Pluggable Authentication Modules
 
-This crate provides low-level access to PAM.
+This crate provides low-level access to PAM, working with multiple PAM implementations.
+You do not need PAM system headers installed to use this!
+
+If you're looking for a nice, safe, Rusty API to PAM, may I recommend [nonstick][nonstick]?
 
 ## Configuration
 
@@ -14,7 +17,7 @@
 Each implementation exports all the functionality available in its respective PAM library.
 `XSso` exports only what is in the [X/SSO specification][xsso].
 
-## Features
+## Cargo Features
 
 The `helpers` feature (optional, but on by default) exports two helpers for PAM memory management.
 
@@ -23,6 +26,21 @@
 
 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]).
+
+- [`ctest`][ctest] verifies the correctness of the FFI bindings (function/struct alignment, etc.).
+- A kind of scuffed homebrew thing also verifies that the constants are correct.
+
+Testing is mainly accomplished through the `libpam-sys-test` package in this crate's workspace.
+There are some unit tests of glue code and other type checks.
+
+## Minimum Rust version
+
+This crate supports **Rust 1.75**, the current version in Debian Trixie and Ubuntu 24.04.2 LTS.
+There shouldn't be much that needs changing, since PAM's API is quite stable.
+
 ## References
 
 - [X/SSO PAM specification][xsso]: This 1997 document laid out the original specification for PAM.
@@ -34,6 +52,8 @@
 - [Illumos PAM repository][illumos-pam]: Illumos's implementation of PAM, based on Sun's Solaris. Even more basic than OpenPAM.
   - [Illumos PAM man page][manillumos]: Illumos's root man page for its PAM implementation.
 
+[ctest]: https://github.com/rust-lang/libc/tree/ctest-v0.4.11/ctest
+[nonstick]: https://crates.io/crates/nonstick
 [xsso]: https://pubs.opengroup.org/onlinepubs/8329799/toc.htm
 [linux-pam]: https://github.com/linux-pam/linux-pam
 [man7]: https://www.man7.org/linux/man-pages/man8/pam.8.html