Skip site navigation (1)Skip section navigation (2)
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>