On Thu, 2019-12-19 at 20:40 +0100, Michał Górny wrote: > Hello, > > Here's another potential EAPI 8 feature I'd like to discuss. Please > note that this is about *new dependency type*, so please don't hijack > it > into the big 'let's steal Exherbo syntax' debate. > > Bug: https://bugs.gentoo.org/660306 > > > The problem > =========== > > Right now we don't really have a clean way of specifying dependencies > that are used during pkg_*inst (and pkg_*rm?) phases. So far RDEPEND > was used as a 'close enough' alternative (except for a few developers > who rejected it as 'invalid' and used DEPEND which is even more > wrong). > However, this is no longer sufficient with EAPI 7 cross support. > > By design, pkg_*inst phases are run in build host's environment when > cross is used (because obviously you can't run target host > executables). > Therefore, the relevant dependencies need to be installed into CBUILD > root, while RDEPEND is installed into CHOST root. > > > The proposed solution > ===================== > > The proposal is to add a new dependency type (codename: IDEPEND) > which > indicates dependencies used for pkg_*inst (and pkg_*rm?) > phases. Those > dependencies would be installed into CBUILD root (like BDEPEND), and > therefore would be runnable from build host. Similarly to RDEPEND, > they > would be installed for binary package installs but not for pure > binpkg > builds (without install). > > Example: > > inherit xdg-utils > > IDEPEND="dev-util/desktop-file-utils" > > pkg_postinst() { > xdg_desktop_database_update > } > > > WDYT? >
Should we use this to drop RDEPEND from pkg_*inst/rm phases ? PMS states "RDEPEND (unless the particular dependency results in a circular dependency, in which case it may be installed later)" which is kind of "maybe maybe not" and I'm not sure how one can rely on RDEPEND for those phases in their ebuilds if another random ebuild can trigger a case where it's not satisfied.