From owner-freebsd-bugs@FreeBSD.ORG Tue May 8 15:00:25 2012 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D81A1106566B for ; Tue, 8 May 2012 15:00:25 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 9C5E58FC08 for ; Tue, 8 May 2012 15:00:25 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q48F0Pwt090553 for ; Tue, 8 May 2012 15:00:25 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q48F0PSc090548; Tue, 8 May 2012 15:00:25 GMT (envelope-from gnats) Date: Tue, 8 May 2012 15:00:25 GMT Message-Id: <201205081500.q48F0PSc090548@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: John Baldwin Cc: Subject: Re: conf/165817: [periodic] [patch] /etc/periodic reports misconfiguration when it shouldn't X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: John Baldwin List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 May 2012 15:00:25 -0000 The following reply was made to PR conf/165817; it has been noted by GNATS. From: John Baldwin To: Volodymyr Kostyrko Cc: bug-followup@freebsd.org Subject: Re: conf/165817: [periodic] [patch] /etc/periodic reports misconfiguration when it shouldn'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