From owner-freebsd-hackers Mon Sep 25 11:52:10 1995 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id LAA19289 for hackers-outgoing; Mon, 25 Sep 1995 11:52:10 -0700 Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.6.12/8.6.6) with ESMTP id LAA19284 for ; Mon, 25 Sep 1995 11:52:00 -0700 Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id LAA05564; Mon, 25 Sep 1995 11:47:11 -0700 From: Terry Lambert Message-Id: <199509251847.LAA05564@phaeton.artisoft.com> Subject: Re: ports startup scripts To: patl@asimov.volant.org Date: Mon, 25 Sep 1995 11:47:11 -0700 (MST) Cc: jmb@kryten.atinc.com, terry@lambert.org, gryphon@healer.com, hackers@FreeBSD.ORG, peter@taronga.com In-Reply-To: from "patl@asimov.volant.org" at Sep 25, 95 08:53:10 am X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 5794 Sender: owner-hackers@FreeBSD.ORG Precedence: bulk > > Ah, but can you guarantee that the install script that inserts a > > few new lines is putting them in the right place? > > Can you guarantee that the install script is going to get the numbering > right if we go with implicit order based upon script name? Yes, actually. By using a sparse numeric order designator at the front of the name to enforce ordering by strict lexical (numeric) order. Like numbering your lines by 10 or 100 in a BASIC program. > Or worse, is every install going to check to make sure that no other > scripts exists which use that order number? No. Because the number is not the only designator. By definition, collisions in order designation are "don't care". This is because if one package depended on another having been run first, the dependency would show as an order designator that was lexically prior to the order designator selected for the dependant package. By definition, a dependant package must have the package it depends on (and thus its write must be aware of the depended packages order of initialization). > Or renumber all the other scripts if they do? Never necessary. As I said, a don't care state. > Or come with a list of numbers to choose from? If a dependency graph were needed, then "depends on " and the installation log would have to be consulted. Personally, I think this is unnecessary because of the aformentioned collision/don't-care relationship. > I think these are a LOT more dangerous. File order is explicit and simple. > Anything else is headaches. You are not expected to manually edit the data. If you want to, fine: you deserve headaches. The point is to make it easy for the tools, not easy for a human that wants to much about in things that should be done via tool in the first place. > > Could this be changed to 'add a file to the scheduled jobs directory', > > to avoid the need to automatically edit a file? > > If you want, put it as "mumble.daily" in /etc/bin and it will be run > automatically. I have a problem with this. My problem is that I want finer control over the granularity as part of the administrative range granted me by the configuration control file I expect to install to allow me to administrate the package as a unified system component in my standard system administration utility. > Yes, this relies upon implicit order (whatever "find" returns), which I > really don't like. But I couldn't see any other option, and if you > were hand-adding scripts you could bloody well get the order right yourself > DESIGNING a system around implicit order I consider reckless. I agree. The explicit ordering required in a lexically ordered system is fairly simple: pick a number after the number of the packages you depend on, but low enough that other packages may depend on you without overflowing the lexical name space. I'd suggest 3 digits rather than 2 as a guard against overflow, though I expect the lead digit to remain 0 for a long time (if not forever). > And yes, I know that SysV does it, and that is works fine for whoever. > I don't like SysV. Specifically, I don't like this "feature" of SysV. > That's what I run a BSD variant. The feature we are considering is the ability to drop in add on components as if they were system components and provide a unified administrative interface for their control. Currently, we don't have *any* administrative interface (except perhaps 'vi') precisely because there is no unified view of the system which one could import. It's possible to write one, but it'd be a kludge, and we all know it. > It boils down to that. A few other people have said it, and I'll say it too. > I don't want FreeBSD to become a SysV-clone. That's what Linux is for. Neither do I. But don't condemn the idea because of the messenger. A valid idea is a valid idea no matter where it comes from (I feel like I'm teaching phenomenology to bomb #28 8-)). > If people want changes to the startup mechanism, to incorporate the best > concepts from SysV, that's fine. It's call improving. The best concept they had was the ability to component administrative portions of package data so it looked like the package was a part of the OS, even if it came from a third party. The second best concept they had was run levels/states to allow staged "run-up" and "run-down". > But throwing out the entire "rc" script concept, and going with (pick an > implemention, any mutant implementation) SysV-clone I consider bad. What '"rc" script concept"? There's one script, init runs it, and if you don't like the system state after that, tough. Hardly a paradigm. > It also comes down to implementation and support. I'll gladly volunteer > to write and support the version I'm pushing for, and do whatever > the improvements to that base design that people want. > > Will you volunteer the same for your version? Including a re-write of the > "daily/weekly" stuff that reallly should use the same mechanism? I'll volunteer for the administrative utility *if* a unified view is presented. If you think you can present a unified view of all system components without seperate scripts, fine, I'd like to see a set of libraries for dealing with components. I already have a GUI library that will put out the right thing from the same program on DOS, Windows, Mac, UNIX Text, Vanilla X, Motif, and OpenLook, dependent on shared library path (UNIX versions, of course). I'll give out the termcap/X/Motif libraries. Though I'd prefer a GUI based Drag-N-Drop interface, like the Mac System folder concept, I'm willing to throw the (IMO) less powerful paradigm out the door to get something started. Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.