xref: /freebsd/usr.sbin/sysconf/sysconf-targets.8 (revision b4a465e566a1850e232b454efe99e05c1ea93f67)
1*3fe5961aSDevin Teske.\" Copyright (c) 2013-2026 Devin Teske <dteske@FreeBSD.org>
2*3fe5961aSDevin Teske.\" Copyright (c) 2021-2026 Faraz Vahedi <kfv@FreeBSD.org>
3*3fe5961aSDevin Teske.\"
4*3fe5961aSDevin Teske.\" SPDX-License-Identifier: BSD-2-Clause
5*3fe5961aSDevin Teske.\"
6*3fe5961aSDevin Teske.Dd August 2, 2026
7*3fe5961aSDevin Teske.Dt SYSCONF-TARGETS 8
8*3fe5961aSDevin Teske.Os
9*3fe5961aSDevin Teske.Sh NAME
10*3fe5961aSDevin Teske.Nm sysconf-targets
11*3fe5961aSDevin Teske.Nd sysconf multi-file sourcing and write policy
12*3fe5961aSDevin Teske.Sh SYNOPSIS
13*3fe5961aSDevin Teske.Nm sysconf
14*3fe5961aSDevin Teske.Ar target
15*3fe5961aSDevin Teske.Op options
16*3fe5961aSDevin Teske.Op Ar name Ns Op Ns Oo +|- Oc Ns = Ns Ar value ...
17*3fe5961aSDevin Teske.Sh DESCRIPTION
18*3fe5961aSDevin TeskeThis page documents rules shared by every
19*3fe5961aSDevin Teske.Xr sysconf 8
20*3fe5961aSDevin Tesketarget that is backed by more than one configuration file.
21*3fe5961aSDevin TeskePer-target file lists and syntax quirks are in
22*3fe5961aSDevin Teske.Xr sysconf-loader 8 ,
23*3fe5961aSDevin Teske.Xr sysconf-sysctl 8 ,
24*3fe5961aSDevin Teske.Xr sysconf-make 8 ,
25*3fe5961aSDevin Teske.Xr sysconf-src 8 ,
26*3fe5961aSDevin Teske.Xr sysconf-rc 8 ,
27*3fe5961aSDevin Teskeand
28*3fe5961aSDevin Teske.Xr sysconf-generic 8 .
29*3fe5961aSDevin TeskeShared options remain in
30*3fe5961aSDevin Teske.Xr sysconf 8 .
31*3fe5961aSDevin Teske.Ss Authoritative file
32*3fe5961aSDevin TeskeMost targets consult several files in the deterministic order the system
33*3fe5961aSDevin Teskesources them at boot.
34*3fe5961aSDevin TeskeA directive in a later file overrides the same directive in an earlier one,
35*3fe5961aSDevin Teskeso the last file listing a directive is the authoritative source of its
36*3fe5961aSDevin Teskevalue.
37*3fe5961aSDevin Teske.Pp
38*3fe5961aSDevin TeskeReads report that authoritative value.
39*3fe5961aSDevin TeskeWrites are applied to the authoritative file
40*3fe5961aSDevin Teske.Pq so the change survives a reboot
41*3fe5961aSDevin Teskeor appended to the target's default write file
42*3fe5961aSDevin Teske.Pq the first modifiable file listed
43*3fe5961aSDevin Teskewhen the directive is set nowhere or only in the read-only defaults.
44*3fe5961aSDevin TeskeRemovals
45*3fe5961aSDevin Teske.Pq Fl x
46*3fe5961aSDevin Teskeare applied to every file listing the directive,
47*3fe5961aSDevin Teskelest deleting the authoritative definition merely unmask an earlier one.
48*3fe5961aSDevin Teske.Ss Defaults files
49*3fe5961aSDevin TeskeFor a target with a defaults file
50*3fe5961aSDevin Teske.Po
51*3fe5961aSDevin Teskepresently
52*3fe5961aSDevin Teske.Ql loader ;
53*3fe5961aSDevin Teskesee
54*3fe5961aSDevin Teske.Xr sysconf-loader 8
55*3fe5961aSDevin Teske.Pc ,
56*3fe5961aSDevin Teskethe boot-time consumer sources the defaults before everything else,
57*3fe5961aSDevin Teskeand so does
58*3fe5961aSDevin Teske.Nm sysconf :
59*3fe5961aSDevin Teskea directive no conf file mentions still reads back its default
60*3fe5961aSDevin Teske.Pq the value that does, in fact, take effect at boot ,
61*3fe5961aSDevin Teskewith
62*3fe5961aSDevin Teske.Fl F
63*3fe5961aSDevin Tesketruthfully naming the defaults file as its source.
64*3fe5961aSDevin TeskeThe defaults file is nevertheless read-only bookkeeping:
65*3fe5961aSDevin Teskeit is never chosen as a write target,
66*3fe5961aSDevin Teskenever satisfies a removal,
67*3fe5961aSDevin Teskeand is never listed by
68*3fe5961aSDevin Teske.Fl l
69*3fe5961aSDevin Teskeor
70*3fe5961aSDevin Teske.Fl L
71*3fe5961aSDevin Teske.Pq which enumerate only files Nm sysconf may modify .
72*3fe5961aSDevin Teske.Pp
73*3fe5961aSDevin TeskeThose targets additionally support querying defaults:
74*3fe5961aSDevin Teske.Fl d
75*3fe5961aSDevin Teskereports directive descriptions,
76*3fe5961aSDevin Teske.Fl D
77*3fe5961aSDevin Teskeconsults the defaults alone,
78*3fe5961aSDevin Teskeand
79*3fe5961aSDevin Teske.Fl A
80*3fe5961aSDevin Teskewidens dumps to include directives still at their system default
81*3fe5961aSDevin Teske.Po
82*3fe5961aSDevin Teskea named
83*3fe5961aSDevin Teske.Ar name
84*3fe5961aSDevin Teskeread always reflects the defaults already;
85*3fe5961aSDevin Teske.Fl A
86*3fe5961aSDevin Teskechanges only
87*3fe5961aSDevin Teske.Fl a
88*3fe5961aSDevin Teskescope,
89*3fe5961aSDevin Teskeor dumps everything when given with no
90*3fe5961aSDevin Teske.Ar name
91*3fe5961aSDevin Teskearguments
92*3fe5961aSDevin Teske.Pc .
93*3fe5961aSDevin TeskeAttempting any of these against a target with no defaults
94*3fe5961aSDevin Teske.Po
95*3fe5961aSDevin Teske.Cm make
96*3fe5961aSDevin Teskeand
97*3fe5961aSDevin Teske.Cm src
98*3fe5961aSDevin Teskehave neither a defaults file nor directive descriptions
99*3fe5961aSDevin Teske.Pc
100*3fe5961aSDevin Teskeis an error.
101*3fe5961aSDevin TeskeThe one exception is
102*3fe5961aSDevin Teske.Ql sysctl -d ,
103*3fe5961aSDevin Teskewhose descriptions come from the running kernel rather than any file
104*3fe5961aSDevin Teske.Pq see Xr sysconf-sysctl 8 .
105*3fe5961aSDevin Teske.Ss Explicit file selection
106*3fe5961aSDevin TeskeAn arbitrary configuration file may be selected with
107*3fe5961aSDevin Teske.Fl f ,
108*3fe5961aSDevin Teskewhich overrides
109*3fe5961aSDevin Teske.Em which
110*3fe5961aSDevin Teskefile is consulted and modified
111*3fe5961aSDevin Teske.Pq the named file alone; multi-file processing is disabled
112*3fe5961aSDevin Teskebut never
113*3fe5961aSDevin Teske.Em how :
114*3fe5961aSDevin Teskethe format is always stated explicitly by the
115*3fe5961aSDevin Teske.Ar target
116*3fe5961aSDevin Teskekeyword and is never inferred from the file.
117*3fe5961aSDevin TeskeThis composes freely,
118*3fe5961aSDevin Teskeso a
119*3fe5961aSDevin Teske.Xr loader.conf 5 Ns -formatted
120*3fe5961aSDevin Teskefile may be staged anywhere
121*3fe5961aSDevin Teske.Pq Ql sysconf loader -f /tmp/loader.conf.new ...
122*3fe5961aSDevin Teskeand,
123*3fe5961aSDevin Teskeconversely,
124*3fe5961aSDevin Teskeany format may be deliberately applied to any file.
125*3fe5961aSDevin Teske.Pp
126*3fe5961aSDevin TeskeHow each built-in format discovers or lists its backing files is
127*3fe5961aSDevin Teskeimplemented by
128*3fe5961aSDevin Teske.Xr bsdconf_format 3 .
129*3fe5961aSDevin Teske.Sh LIMITATIONS
130*3fe5961aSDevin Teske.Nm sysconf
131*3fe5961aSDevin Teskedoes not evaluate
132*3fe5961aSDevin Teske.Xr make 1
133*3fe5961aSDevin Teskeconditionals
134*3fe5961aSDevin Teske.Pq Ql .if , .elif , .else , .endif
135*3fe5961aSDevin Teskeor other makefile control flow that may appear in
136*3fe5961aSDevin Teske.Pa make.conf ,
137*3fe5961aSDevin Teske.Pa src.conf ,
138*3fe5961aSDevin Teskeor
139*3fe5961aSDevin Teske.Pa src-env.conf .
140*3fe5961aSDevin Teske.Pp
141*3fe5961aSDevin TeskeIt also does not consult
142*3fe5961aSDevin Teske.Pa sys.mk ,
143*3fe5961aSDevin Teske.Pa local.sys.mk ,
144*3fe5961aSDevin Teskeor other
145*3fe5961aSDevin Teske.Xr make 1
146*3fe5961aSDevin Teskedefaults under
147*3fe5961aSDevin Teske.Pa /usr/share/mk .
148*3fe5961aSDevin Teske.Pp
149*3fe5961aSDevin TeskeEffective values from
150*3fe5961aSDevin Teske.Nm sysconf
151*3fe5961aSDevin Tesketherefore match
152*3fe5961aSDevin Teske.Nm make Fl V
153*3fe5961aSDevin Teskefor straight-line assignment and
154*3fe5961aSDevin Teske.Ql +=
155*3fe5961aSDevin Teskechains in those conf files,
156*3fe5961aSDevin Teskebut may differ when the value depends on conditionals or mk defaults.
157*3fe5961aSDevin Teske.Sh SEE ALSO
158*3fe5961aSDevin Teske.Xr bsdconf_format 3 ,
159*3fe5961aSDevin Teske.Xr sysconf 8 ,
160*3fe5961aSDevin Teske.Xr sysconf-generic 8 ,
161*3fe5961aSDevin Teske.Xr sysconf-loader 8 ,
162*3fe5961aSDevin Teske.Xr sysconf-make 8 ,
163*3fe5961aSDevin Teske.Xr sysconf-rc 8 ,
164*3fe5961aSDevin Teske.Xr sysconf-src 8 ,
165*3fe5961aSDevin Teske.Xr sysconf-sysctl 8
166*3fe5961aSDevin Teske.Sh HISTORY
167*3fe5961aSDevin TeskeThe
168*3fe5961aSDevin Teske.Nm sysconf
169*3fe5961aSDevin Teskeutility first appeared in
170*3fe5961aSDevin Teske.Fx 16.0 .
171*3fe5961aSDevin Teske.Sh AUTHORS
172*3fe5961aSDevin Teske.An Devin Teske Aq Mt dteske@FreeBSD.org
173*3fe5961aSDevin Teske.An Faraz Vahedi Aq Mt kfv@FreeBSD.org
174