summaryrefslogtreecommitdiff
path: root/AGENTS.md
blob: 5bb3cdf0cf855cfa9a97c09ba168e6392e44bcd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# AGENTS.md

## Project purpose

Helper library for local mapping of TACACS+-authenticated users that have no `/etc/passwd` entry. Stores per-session mappings (uid/gid/home) so `libnss-tacplus` can answer `getpwnam` for users that came in via `libpam-tacplus`. Ships `libtacplus-map1` (runtime) and `libtacplus-map-dev` (headers); also includes `dumpmap` (debug tool) and a sudoers fragment.

## Tech stack

- C, GNU autotools (`configure.ac`, `Makefile.am`, `auto.sh`).
- Debian packaging in `debian/` (debhelper >= 9, `dh-autoreconf`, `autoconf-archive`, `libaudit-dev`).
- License: GPL-2.0 (per `COPYING`).

## Build / test / run

```sh
./auto.sh
make
dpkg-buildpackage -us -uc
```

No bundled tests; verified end-to-end via `libnss-tacplus` + `libpam-tacplus` on a VyOS image.

## Repository layout

- `map_tacplus_user.c`, `map_tacplus_user.h` — mapping API.
- `dumpmap.c` — diagnostic tool that dumps the active mapping.
- `tacplus.sudo` — sudoers integration snippet.
- `debian/` — packaging.

## Cross-repo context

Sits between `libpam-tacplus` (which authenticates the user and creates the mapping) and `libnss-tacplus` (which reads the mapping for NSS lookups). Built via the internal build-packages workflow; consumed by `vyos/vyos-build`. Sibling auth packages: `libnss-mapuser`, `libpam-radius-auth`.

## Conventions

- Default branch `master`.
- Commit / PR title format: `component: T12345: description` (Phorge task ID at https://vyos.dev).
- Keep API stable — `libnss-tacplus` and `libpam-tacplus` link against this and are version-coupled.

## Notes for future contributors

- README dates to 2016 (`libtacplus_map v1.0.0`). Tracking patches against the original Cumulus / Dell drop is the maintenance posture, not active development.
- Bump `libtacplus-map1` soname on any ABI change — both `libnss-tacplus` and `libpam-tacplus` build-depend on the dev package.