Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 May 2012 15:00:25 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: conf/165817: [periodic] [patch] /etc/periodic reports misconfiguration when it shouldn&#39;t
Message-ID:  <201205081500.q48F0PSc090548@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR conf/165817; it has been noted by GNATS.

From: John Baldwin <jhb@FreeBSD.org>
To: Volodymyr Kostyrko <c.kworr@gmail.com>
Cc: bug-followup@freebsd.org
Subject: Re: conf/165817: [periodic] [patch] /etc/periodic reports misconfiguration
 when it shouldn&#39;t
Date: Tue, 08 May 2012 10:52:37 -0400

 On 5/8/12 3:57 AM, Volodymyr Kostyrko wrote:
 > John Baldwin wrote:
 >> This doesn't make sense.  The various variables don't have a default
 >> value in
 >> /etc/defaults/rc.conf (e.g. daily_local), so they should just be
 >> empty, and
 >> the for loop should not do anything if the variable is empty.  For
 >> example, if
 >> you run this in /bin/sh:
 >>
 >> $ for script in $notexists
 >>> do
 >>> echo foo
 >>> done
 >> $
 >>
 >> You don't get any output at all.  Thus, having the default
 >> configuration of
 >> not having these variables set should never get into the loop to
 >> execute the
 >> line you are modifying.
 >>
 >> In your case you must have daily_local, etc. set to some absolute path
 >> that
 >> doesn't exist (e.g. daily_local="/nonexistent") in which case that is a
 >> misconfiguration that the scripts should warn you about.
 >>
 >> Or is the problem that you have daily_local set to "/etc/*.local" (the
 >> glob)
 >> and that isn't matching, so the shell runs the loop with the value
 >> "/etc/*.local"?  That is a bit harder to fix.
 >>
 >> Your patch would not be correct if someone set "daily_local" to
 >> "/nonexistent".  That is a case that _should_ be warned about.
 > 
 > Yes, I should probably rethink the patch. It definitely should warn
 > about /nonexistent.
 > 
 > That makes me somehow stuck. periodic scripts source
 > /etc/defaults/periodic.conf which defines this variables as
 > "/etc/*.local". So when it comes to checking whether this file is
 > available the variable is already set. The possible solution is to check
 > whether variable is set to the default path and skip warning if default
 > path is unexistent or adding empty placeholders for required files. I
 > personally prefer the latter to keep scripts as simple as possible and
 > strip all signs of artificial intelligence aka weird logic.
 
 Oof, now I see.  I was looking at /etc/defaults/rc.conf rather than
 /etc/defaults/periodic.conf for some reason.  We certainly should not
 warn in the default install.  I'll think about this some more.
 
 -- 
 John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201205081500.q48F0PSc090548>