Subject: Non strict REQUIRE/BEFORE in rcorder(8)
To: None <tech-userlevel@netbsd.org>
From: Mike M. Volokhov <mishka@apk.od.ua>
List: tech-userlevel
Date: 02/04/2004 18:18:25
Greetings!

When we create some rcorder compliant script, it is always covenient to
specify some dependencies on few other scripts. This is available via
REQUIRE/BEFORE keywords.

But if that keywords will contains non-existent providers, this will be
treated as error. At the other hand, there are may be some cases when
that way is not an errorous one and in addition is very covenient.

For example, it's good shown on sendmail mail filters startup procedure.
There are may been a number of such filters (which uses Milter API).
That filters may be used as a chain inbetween sendmail and some 3rd
party daemon (such as spam blocker, virus finder, mail archiving daemon,
etc.) I thus case the common chronological order to start such filters
on *single* machine is:

	1) 3rd party daemon
	2) sendmail filter (will connects to that daemon)
	3) sendmail itself

But this three parts are very independent one each of other, and may
been placed on three separate hosts (even with different architectures
and operating systems installed). Thus, if we have three apropriate
scripts for that three components, we usually wrote:

daemon:
	# PROVIDE: daemon

filter:
	# PROVIDE: milter
	# REQUIRE: daemon
	# BEFORE: sendmail

sendmail:
	# PROVIDE: sendmail

But as mentioned above, that link (for "filter") may been easy broken.
And please note this is not an error. My proposition is wrote such
dependencies just like as follows:

filter:
	# PROVIDE: milter
	# REQUIRE: daemon?
	# BEFORE: sendmail?

This will means that both "daemon" and "sendmail" may be still
unprovided by other scripts. And in this case we can successfully omit
error messages.

Any comment would be appreciated.

--
Best wishes,
Mishka.