| #
0380d016 |
| 16-Sep-2026 |
Devin Teske <dteske@FreeBSD.org> |
libbsdconf: independent version macros
sysconf(8) --version now prints the library version alongside its own so each can move on its own clock. Assigning a bitmask to bool already converts zero/non
libbsdconf: independent version macros
sysconf(8) --version now prints the library version alongside its own so each can move on its own clock. Assigning a bitmask to bool already converts zero/nonzero; drop the redundant != 0 (fuz).
Reviewed by: fuz, kfv Differential Revision: https://reviews.freebsd.org/D59720
show more ...
|
| #
3fe5961a |
| 16-Sep-2026 |
Devin Teske <dteske@FreeBSD.org> |
Add sysconf(8) and libbsdconf(3)
Complete the native configuration trinity: sysctl(8) for live kernel state, sysrc(8) for rc.conf(5), and sysconf(8) for the remaining base configuration -- loader.co
Add sysconf(8) and libbsdconf(3)
Complete the native configuration trinity: sysctl(8) for live kernel state, sysrc(8) for rc.conf(5), and sysconf(8) for the remaining base configuration -- loader.conf(5), sysctl.conf(5), and the make.conf(5) family -- atop libbsdconf(3).
libbsdconf resurrects figpar as a unified reader/writer. Callbacks own semantics; statements may span multiple lines via backslash continuation; non-seekable input is spooled; writes are atomic (mkstemp, fsync, rename) with mode/owner preservation. Format descriptors name each target, its files, and quoting rules without private parsers. Multi-file targets follow boot sourcing order; loader chases loader_conf_files as the boot loader does.
sysconf(8) is the operator-facing tool: name / name=value on a required target, sysrc-style list edits, make append and list-strike where they belong, jail/altroot, and a capsicum sandbox for read-only use.
Sysctl writes validate against the running kernel first -- unknown and read-only OIDs, CTLFLAG_TUN (pointing at the loader target), and CTLTYPE range checks -- so a typo or overflow does not land in sysctl.conf.
Make and src treat WITH_/WITHOUT_ as presence knobs (as bsd.mkopt.mk / src.conf(5) do) and warn on the WITH_*=no form that does not disable the option, so a bad assignment is caught before an /usr/src build surfaces it.
The rc target passes through to sysrc(8).
Defaults querying (-d/-D/-A) mirrors sysrc for dumps and descriptions on targets that have a defaults file; named reads already see defaults, and -A only widens dump scope.
Manuals are split pkg(8)-style (bsdconf/put/format; sysconf plus per-target pages). ATF coverage exercises the frontend.
Co-authored-by: Faraz Vahedi <kfv@FreeBSD.org> Reviewed by: fuz, kfv Differential Revision: https://reviews.freebsd.org/D58066
show more ...
|