From owner-freebsd-arch Tue Mar 27 0:19:57 2001 Delivered-To: freebsd-arch@freebsd.org Received: from areilly.bpc-users.org (CPE-144-132-234-126.nsw.bigpond.net.au [144.132.234.126]) by hub.freebsd.org (Postfix) with SMTP id EE95A37B718 for ; Tue, 27 Mar 2001 00:19:43 -0800 (PST) (envelope-from andrew@areilly.bpc-users.org) Received: (qmail 90109 invoked from network); 27 Mar 2001 08:19:42 -0000 Received: from localhost (HELO gurney.reilly.home) (andrew@127.0.0.1) by localhost with SMTP; 27 Mar 2001 08:19:42 -0000 Date: Tue, 27 Mar 2001 18:19:41 +1000 (EST) From: Andrew Reilly Subject: Re: configuration files, XML? To: jkh@osd.bsdi.com Cc: Cy.Schubert@uumail.gov.bc.ca, jar@integratus.com, jonathan@graehl.org, freebsd-arch@FreeBSD.ORG In-Reply-To: <20010326234129J.jkh@osd.bsdi.com> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii Message-Id: <20010327081943.EE95A37B718@hub.freebsd.org> Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On 26 Mar, Jordan Hubbard wrote: > To put it somewhat more succinctly, I think we're all pretty wedded to > our ways and only accept change when it's a significant order of > magnitude improvement beyond what we currently have or it doesn't > conflict with any existing scenario. Thus Unix slowly accretes > functionality to itself without changing shape too much. :) OK. I'm probably not alone in thinking that that's a bit of a limiting position, but I understand the arguments, and they're good. The compatability issue is big and important, and makes things significantly harder, but not impossible. It ought to still be possible to define a libconfig API that contains a set of access mechanisms that provide the functionality required by the standard tools, if not necessarily the form. Trouble is that the initial, default implementation has to be clever/mangled enough that it can use the _existing_ gamut of /etc/foo.conf files and their formats as the repository, rather than getting the immediate bennefit of a grand unified format. For that much of the process, libconfig is likely to be a read-only API in most cases, with man/vi still the preferred write API. At the very worst, it would consist of grabbing the existing config-file reading code from each application in turn, and whacking it so that the parsed results conform to the uniform in-memory structure, which the application is taught to use. Some time later, or even in parallel, the alternate libconfig(s) can be designed and tested, so that a pam-style switch is what is necessary to decide which config engine to use on a particular machine. As more write-friendly config storage formats are developed, the libconfig API can be extend to include the write access mechanisms required by configurators. These would just be ENOTIMP stubs in the "compatability" libconfig.so. One step at a time is the strategy. The trick seems to be finding small enough steps, and pointing them in the right direction. -- Andrew To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message