From owner-freebsd-stable@FreeBSD.ORG Fri Nov 4 20:59:06 2005 Return-Path: X-Original-To: stable@freebsd.org Delivered-To: freebsd-stable@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6081816A41F for ; Fri, 4 Nov 2005 20:59:06 +0000 (GMT) (envelope-from PeterJeremy@optushome.com.au) Received: from mail21.syd.optusnet.com.au (mail21.syd.optusnet.com.au [211.29.133.158]) by mx1.FreeBSD.org (Postfix) with ESMTP id BCB0E43D45 for ; Fri, 4 Nov 2005 20:58:58 +0000 (GMT) (envelope-from PeterJeremy@optushome.com.au) Received: from cirb503493.alcatel.com.au (c220-239-19-236.belrs4.nsw.optusnet.com.au [220.239.19.236]) by mail21.syd.optusnet.com.au (8.12.11/8.12.11) with ESMTP id jA4Kt1LJ002419 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Sat, 5 Nov 2005 07:55:02 +1100 Received: from cirb503493.alcatel.com.au (localhost.alcatel.com.au [127.0.0.1]) by cirb503493.alcatel.com.au (8.12.10/8.12.10) with ESMTP id jA4Kt0Hh072566; Sat, 5 Nov 2005 07:55:00 +1100 (EST) (envelope-from pjeremy@cirb503493.alcatel.com.au) Received: (from pjeremy@localhost) by cirb503493.alcatel.com.au (8.12.10/8.12.9/Submit) id jA4Kt0iM072562; Sat, 5 Nov 2005 07:55:00 +1100 (EST) (envelope-from pjeremy) Date: Sat, 5 Nov 2005 07:55:00 +1100 From: Peter Jeremy To: David Wolfskill , stable@freebsd.org Message-ID: <20051104205459.GO39882@cirb503493.alcatel.com.au> References: <200511040039.RAA21926@lariat.net> <20051104023446.GA12859@xor.obsecurity.org> <6.2.5.6.2.20051103213504.09118d30@lariat.org> <20051104050118.GA46635@xor.obsecurity.org> <20051104143946.GO69015@bunrab.catwhisker.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20051104143946.GO69015@bunrab.catwhisker.org> User-Agent: Mutt/1.4.2.1i X-PGP-Key: http://members.optusnet.com.au/peterjeremy/pubkey.asc Cc: Subject: Re: Nogobble, nogobble X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Nov 2005 20:59:06 -0000 On Fri, 2005-Nov-04 06:39:46 -0800, David Wolfskill wrote: >So I'm wondering if, perhaps, it might help to consider the following >variant of the current theme: > >* Decompose GENERIC into a set if "functional blocks" of config info. > >* Then make GENERIC itself merely a set of "include" directives, perhaps > with some commentary. One downside is that you wind up in a maze of twisty little include files, all similar, and working out the final configuration becomes a nightmare. Another problem is tracking changes - someone makes a change to .../conf/GENERIC_foo and your kernel config stops working because GENERIC_foo is included by GENERIC_bar which you are using. I can see the purpose of having a DEFAULTS file - a small number of "mandatory" options that cause problems when people delete them. IMHO, before proceeding any further down this path, config(8) needs to grow a "preprocess only" option to flatten the input into a single file. "options INCLUDE_CONFIG_FILE" and config.c should contain this flattened input. (For bonus points, include an option to make "nofoo" disable "foo" so that the output only includes active directives). Someone mentioned CISCO IOS directives - the biggest problem with the CISCO approach is that the configuration is defined as a set of differences from a default configuration but (AFAIK) the default configuration isn't formally documented (ie in IOS config format). FreeBSD does document the defaults. -- Peter Jeremy