NAME
sysconf poudriere – configure poudriere.conf and poudriere.d overlay files
SYNOPSIS
sysconf poudriere [--jail name] [--ports name] [--tree name] [--set name] [sysrc_argument ...]
sysconf poudriere {make|src|src-env} [-ceFinNqsvVx] [--jail name] [--ports name] [--tree name] [--set name] [-j jail | -R dir] [-f file] name[[+|-]=value] ...
sysconf poudriere {make|src|src-env} [-eFnNqvV] [--jail name] [--ports name] [--tree name] [--set name] [-f file] -a
sysconf poudriere {make|src|src-env} [-E] [--jail name] [--ports name] [--tree name] [--set name] [-f file] -l | -L
DESCRIPTION
The poudriere target of sysconf(8) reaches the same files poudriere(8) sources. With no sub-target, it is the poudriere.conf collection, handed to sysrc(8) as -f files. The sub-targets are make, src, and src-env. Each is the matching make(1) collection under poudriere.d, handled by the same engine as sysconf-make(8).
A unique prefix of the poudriere keyword is accepted (‘p’). A unique prefix of a sub-target is accepted the same way( ‘m’ selects make; ‘s’ and ‘sr’ are ambiguous between src and src-env).
poudriere.conf
poudriere.conf is rc.conf(5)-style shell written by the administrator; poudriere never writes it. The default collection, sourced by every poudriere command, is in order: POUDRIERE_ETC/poudriere.conf if readable (default /usr/local/etc/poudriere.conf), then POUDRIERED/poudriere.conf if readable and not the same file as the first (default POUDRIERE_ETC/poudriere.d/poudriere.conf). At least one of those two files must exist. Honor POUDRIERE_ETC and POUDRIERED when set.
When a jail, ports tree, or set is given, the matching files are appended, in the order poudriere(8) uses:
POUDRIERED/<setname>-poudriere.conf POUDRIERED/<tree>-poudriere.conf POUDRIERED/<jailname>-poudriere.conf POUDRIERED/<tree>-<setname>-poudriere.conf POUDRIERED/<jailname>-<tree>-poudriere.conf POUDRIERED/<jailname>-<setname>-poudriere.conf POUDRIERED/<jailname>-<tree>-<setname>-poudriere.conf
An explicit sysrc(8) -f replaces discovery. -l and -L are handled here and printed one path per line. For this poudriere.conf collection, -l lists each readable file. -L lists every location the given jail, tree, and set would consult, including overlays that do not exist yet. If no jail, tree, or set is given, the list is the two global poudriere.conf paths. -E limits either list to files that exist. -l and -L take no variable names. Other arguments except the poudriere keyword itself are handed to sysrc(8) verbatim. A bare ‘--’ means the next word is a variable in this collection, even when that word is make, src, src-env, or a unique prefix of one of those sub-targets.
make.conf, src.conf, and src-env.conf
These live only under POUDRIERED and use make(1) syntax, so they are not mixed into the poudriere.conf sysrc collection.
poudriere make consults, in the order shown by poudriere(8):
POUDRIERED/make.conf POUDRIERED/<setname>-make.conf POUDRIERED/<tree>-make.conf POUDRIERED/<jailname>-make.conf POUDRIERED/<tree>-<setname>-make.conf POUDRIERED/<jailname>-<tree>-make.conf POUDRIERED/<jailname>-<setname>-make.conf POUDRIERED/<jailname>-<tree>-<setname>-make.conf
-l always prints the global path, even when that file does not exist: POUDRIERED/make.conf for make, POUDRIERED/src.conf for src, and POUDRIERED/src-env.conf for src-env. An overlay is printed only when the file exists. -L lists every location the given jail, tree, and set would consult, including files that do not exist yet. src and src-env have no per-tree file, so --tree does not add a path to those lists. -E limits either list to files that exist, so a missing global is omitted. On a read, a missing global is skipped and an overlay is consulted only when the file exists. Hook-plugin make.conf files are not collected.
poudriere src follows the shorter list poudriere(8) uses when building jails (global, then set, then jail; no tree):
POUDRIERED/src.conf POUDRIERED/<setname>-src.conf POUDRIERED/<jailname>-src.conf
poudriere src-env uses that same order, with src-env.conf in place of src.conf:
POUDRIERED/src-env.conf POUDRIERED/<setname>-src-env.conf POUDRIERED/<jailname>-src-env.conf
An explicit -f replaces discovery, as on other sysconf targets. A name already defined is rewritten in the last file in the collection that defines it, so the change is not placed where a later overlay would mask it. A name defined nowhere is appended to the global file, and that write creates the global file when it is missing. A bare name reads, and name=value writes, including ‘+=’ and ‘-=’. Those rules are the “Assignment syntax” section of sysconf(8).
Context long options
- --jail name
-
Poudriere jail name, as in <jailname>-make.conf and the other jail files.
- --ports name, --tree name
-
Poudriere ports tree. --tree is an alias of --ports; when both are given, the last wins. A tree applies to poudriere.conf and the make sub-target. src and src-env ignore it; poudriere does not read a per-tree src file.
- --set name
-
Poudriere set name.
--jail=name (and the same attached form for the others) is accepted. These long options are consumed here and never passed to sysrc(8) or mistaken for sysconf operands. They are distinct from -j on sysconf(8) and sysrc(8), which name a running jail.
Out of scope
Poudriere maintains the following itself, or they are a different format:
- poudriere.d/jails/, poudriere.d/ports/
-
One file per property; the whole file is the value.
- poudriere.d/*-options/
-
A PORT_DBDIR tree of per-port ‘OPTIONS’ files, written by ‘poudriere options’ (‘make config’).
- poudriere.d/*-blacklist
-
Port origins, one per line (with optional ‘@flavor’); ‘#’ comments. Not ‘name=value’.
- poudriere.d/hooks/
-
Shell scripts, including plugin make.conf files under hooks/plugins/.
ENVIRONMENT
- POUDRIERE_ETC
-
Directory containing poudriere.conf (default /usr/local/etc).
- POUDRIERED
-
Overlay directory (default POUDRIERE_ETC/poudriere.d).
EXAMPLES
sysconf poudriere ZPOOL=zroot
sysconf poudriere --jail 131amd64 PARALLEL_JOBS=8
sysconf p ZPOOL
sysconf p -- src
sysconf poudriere make --jail 131amd64 CFLAGS
sysconf p m --jail 131amd64 CFLAGS+=-O2
sysconf poudriere src --set dev WITHOUT_LLVM_BINUTILS=
sysconf p src-env --jail 131amd64 SRC_ENV_VAR
SEE ALSO
poudriere(8), sysconf(8), sysconf-make(8), sysconf-rc(8), sysrc(8)
HISTORY
The sysconf utility first appeared in FreeBSD 16.0.
AUTHORS
Devin Teske ⟨[email protected]⟩ Faraz Vahedi ⟨[email protected]⟩