On possibly "finer" dependencies in s6-rc

From: Casper Ti. Vector <caspervector_at_gmail.com>
Date: Tue, 29 Sep 2015 10:46:02 +0800

* "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
Received on Tue Sep 29 2015 - 02:46:02 UTC

This archive was generated by hypermail 2.3.0 : Sun May 09 2021 - 19:44:19 UTC