* "opportunist" dependencies:

  According to `s6-rc:src/s6-rc/s6-rc-compile.c' as of current trunk,
  unknown services in `dependencies' will make rc-compile complain and 
  die, which is the optimal behaviour with mandatory dependencies.

  Nevertheless, I think it can be helpful to also support "opportunist"
  dependencies: if said service is not enabled, it is silently ignored;
  if said service is enabled, the dependency on it is considered in the 
  dependency resolution process.  If this is supported, service
  definition can be distributed in a more uniform manner (cf. OpenRC's
  runscripts).

  Of course, mandatory and opportunist dependencies should be specified
  separately; for example, `need()' and `use()' are used respectively
  in OpenRC for these requirements.

* Online `OR'/virtual dependencies:

  According to `s6-rc:doc/faq.html' as of current trunk, `OR'/virtual
  dependencies are handled offline.  But I think online virtuals still
  have use that do not have offline equivalents: apart from
  interchangeable implementations like openssh/dropbear, there can also
  be multiple enabled services providing one functionality at the same
  time.  For example, with a laptop, it's common and useful to have
  `eth0' and `wlan0' both providing network access, and a
  network-dependent service can start when either is up. 

  In my view (and probably the opinions of quite a few other people, see
  discussion on the DNG list), parallelism in rc is mostly appealing to
  desktop, not server users.  Therefore, `eth0'/`wlan0' and similar use
  cases are not insignificant, and thus it is worth the hassle to
  implement online virtuals.

-- 
My current OpenPGP key:
4096R/0xE18262B5D9BF213A (expires: 2017.1.1)
D69C 1828 2BF2 755D C383 D7B2 E182 62B5 D9BF 213A

Reply via email to