* "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