Date: Wed, 27 Sep 1995 01:46:27 -0500 From: Jon Loeliger <jdl@chrome.onramp.net> To: Coranth Gryphon <gryphon@healer.com> Cc: hackers@freebsd.org Subject: Re: ports startup scripts Message-ID: <199509270646.BAA07563@chrome.jdl.com> In-Reply-To: Your message of "Tue, 26 Sep 1995 03:33:42 EDT." <199509260733.DAA16047@healer.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Apparently, Coranth Gryphon scribbled: > > There are issues here still, like, how do you state dependencies against > > things that have yet to be invented? I think that's why fictitious or > > virtual nodes may be needed in the graph too. They can essentially > > arbitrarily represent the "levels" or "states" in the graph where > > certain properties are available ("NFS", "LAN", "WAN", "Single User"). > > Solves the dependencies problems if a specification can be coded. Oh, it can be encoded, I'd bet... > > Tip-toeing back out of the warzone, > > Nope, get back in here :-) This sounds like a really good idea. Rats. OK, I'm back... Thanks. Do you think it is worth pursuing? > So, how would you go about implementing such a dependency graph? Well, the obvious one was to use ``make'': Satoshi Asami was inspired to write: > And the Unix way of handling dependency graphs are...yes, "make"! > Can it get any simpler than an /etc/rc.d/Makefile?!? :) This implementation can be done in several variants of which the most promising is likely a set of "include"s. This, if nothing else, would provide a "rapid prototyping" approach that might validate or invalidate the whole approach. Naturally, though, I bet this eventually isn't the right approach. Gut feel says it doesn't handle all the needed cases quite right and will eventually collapse under its own weight. Perhaps a better approach might be to specify a general graph language (nodes and arcs) and have a "scheduler" utility that constructed the equivalent /etc/rc* files at key times. Initially at system install based on normal /etc/rc behaviour, then at each pkg_add, etc. I think the problem would be the "glue" between the parts. All of the "state" information hanging in otherwise global variables in the /etc/rc* files, interrupt and error handling, etc. jdl
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199509270646.BAA07563>