On Fri, Apr 27, 2018 at 1:28 PM, William Hubbs <willi...@gentoo.org> wrote: > On Fri, Apr 27, 2018 at 12:28:43PM -0400, Mike Gilbert wrote: >> On Fri, Apr 27, 2018 at 11:45 AM, William Hubbs <willi...@gentoo.org> wrote: >> > On Fri, Apr 27, 2018 at 12:48:09AM -0700, Zac Medico wrote: >> >> On 04/26/2018 11:34 PM, Kent Fredric wrote: >> >> > On Thu, 26 Apr 2018 13:35:15 -0700 >> >> > Zac Medico <zmed...@gentoo.org> wrote: >> >> > >> >> >> emerge --depclean, resulting in an unbootable system. Just say-in. >> >> > >> >> > And depclean being very verbose doesn't do many favours here either. >> >> > >> >> > ( I regularly do >500 package depcleans and spotting things that aren't >> >> > meant to be >> >> > culled amongst that list is a bit of a challenge )> >> >> >> >> At least for system packages, it will show a warning like the one shown >> >> here: >> >> >> >> https://bugs.gentoo.org/642484#c0 >> >> >> >> Hopefully that message helps those that are paying enough attention. >> >> What can we do for those that overlook the warning message, other than >> >> give them some rescue instructions for making their system boot again? >> > >> > Another option suggested to me was to add a use flag to OpenRC that >> > pulls in a dependency on virtual/init instead of adding virtual/init to >> > @system. The suggestion originally was to add it to rdepend, but that >> > doesn't feel right to me since openrc really doesn't have a runtime >> > dependency on init, so I'm thinking something like this: >> > >> > IUSE="... +separate-init" >> > >> > PDEPEND=" >> > ... >> > separate-init? ( virtual/init )" >> > >> > Thoughts? >> >> RDEPEND and PDEPEND have essentially the same meaning when there are >> no cycles in the dependency graph. The devmanual suggests that PDEPEND >> should only be used to avoid cyclic dependencies. >> >> I don't see any reason to prefer PDEPEND over RDEPEND here, and I >> don't understand why that would "feel" better. It effectively gets >> treated as a runtime dependency either way. > > The goal of this is to find a way to accurately reflect the relationship > between openrc and sysvinit in our ebuilds. > > The relationship between openrc and sysvinit is best described as a > configurable reverse runtime dependency which we enable by default -- > sysvinit uses openrc to bring up the system, but openrc itself does not > have a hard dependency on any init provider. > It did in the past, because it called killall5, which is part of > sysvinit, but that has been changed. > > So, the whole relationship is backward in our ebuilds. That, combined > with our distro-wide ban on using use flags for optional runtime > dependencies (also in the devmanual) is why I suggested this.
I have no objection to the USE flag idea. Just put the dependency in RDEPEND, not PDEPEND. There is no depgraph cycle to be avoided here.