nomenclature for conf files

Paul Schenkeveld freebsd at
Mon Nov 12 08:55:31 UTC 2012

On Mon, Nov 12, 2012 at 08:29:27AM +0000, Chris Rees wrote:
> On 12 Nov 2012 05:20, "Kurt Buff" <kurt.buff at> wrote:
> >
> > On Sun, Nov 11, 2012 at 9:12 PM, Zoran Kolic <zkolic at> wrote:
> > > It might sound stupid, but I'd like to know if there's
> > > any difference. Are those 3 line the same?
> > >
> > > WITH_KMS="YES"
> > > WITH_KMS=yes
> >
> > With regard to their use in /etc/rc.conf, no, absolutely not.
> >
> > In general, from my experience, only the second one will work.
> >
> > This might, or might not, be true for other uses, but rc.conf is
> > pretty picky about this.
> All three are fine in make.conf and rc.conf
> The issue with rc.conf is when people put spaces around the = sign.
> Chris

Indeed /etc/rc (executed by /bin/sh) accepts all three forms because
quotes are optional in /bin/sh and /etc/rc.subr (sourced by /etc/rc)
matches the value against "[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1".

Also, the FreeBSD makefiles and sources test all WITH_* variables with
.ifdef or #ifdef so the value doesn't matter and can even be empty.
White space around the = is permitted too (but not in rc.conf!).

However, things are different when people start using tools to maintain
rc.conf/make.conf.  If not written with the above in mind, these tools
may have problems parsing these files.

It's good practice to be consistent and use a canonical form that
matches the documentation or example files as this is probably the
syntax that is guarenteed to not confuse such tools.  In other words:
"Be conservative in what you send [write], liberal in what you accept".


Paul Schenkeveld

More information about the freebsd-stable mailing list