nomenclature for conf files

Paul Schenkeveld freebsd at psconsult.nl
Mon Nov 12 10:34:16 UTC 2012


On Mon, Nov 12, 2012 at 10:24:57AM +0000, Chris Rees wrote:
> On 12 Nov 2012 08:55, "Paul Schenkeveld" <freebsd at psconsult.nl> wrote:
> >
> > On Mon, Nov 12, 2012 at 08:29:27AM +0000, Chris Rees wrote:
> > > On 12 Nov 2012 05:20, "Kurt Buff" <kurt.buff at gmail.com> wrote:
> > > >
> > > > On Sun, Nov 11, 2012 at 9:12 PM, Zoran Kolic <zkolic at sbb.rs> 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_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".
> 
> Doesn't sound like a very good tool if it can't handle quoting and capital
> letters, but I accept the principle.
> 
> Chris

I wouldn't want to verify all home-grown scripts written by sysadmins
around the Internet though.

> Quotes in Makefiles are often harmful, so good practice IMO is to only use
> them when necessary.

For Makefiles yes, quotes are not part of the assignment syntax but
appear in the expansion of the macros so be careful.  For sh compatible
config files better use them for clarity and parsability although I
realize that then differences between " and ' come into play too.

HTH

Paul Schenkeveld


More information about the freebsd-stable mailing list