Summary: | [EAPI-1] new dependency type(s) for cross-compiling / alternate $ROOT support | ||
---|---|---|---|
Product: | Gentoo Hosted Projects | Reporter: | Zac Medico <zmedico> |
Component: | PMS/EAPI | Assignee: | PMS/EAPI <pms> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | CC: | alonbl, codehero, kingtaco |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 174380, 140606 |
Description
Zac Medico
![]() i'm guessing ABI support falls into this realm as well ? I consider ABI support to be an orthogonal concern. My main intention for this bug is simply to have better support for building packages and installing them to an alternate $ROOT that may or may not be cross-compiled. Portage interprets DEPEND as a build-time dependency that should be installed to ROOT=/ (the build platform). We currently have no way to specify a build-time dependency that should be installed to ROOT=/some/other/root/ (cross-compiled or not), so I've suggested that we use BDEPEND to represent that. So with this change, what will the meanings of DEPEND, RDEPEND, PDEPEND and BDEPEND be in terms of what gets installed where? For a package being installed to $ROOT, it's dependencies will be installed as follows: type location time DEPEND build platform before BDEPEND $ROOT before RDEPEND $ROOT before or approximately the same time PDEPEND $ROOT after or possibly before Just a vague thought... Given that there is a high degree of overlay between DEPEND and RDEPEND in many cases, and that RDEPEND=DEPEND will be dropped... Are dependencies best specified as multiple variables? Or would a single DEPEND variable with a way of marking dependency classes on each item be better? Something like the following (syntax purely for demonstration): DEPENDENCIES=" dev-libs/libfoo dev-cpp/libtemplatestuff<build> app-misc/rootme<rootbuild> app-misc/sometextfiles<run> app-misc/fooplugins<post>" or: DEPENDENCIES=" dev-libs/libfoo build: dev-cpp/libtemplatestuff dev-cpp/andanother rootbuild: and/so-on build,run: blah" with a default of build,run? *shrug* Possibly worth considering. It'll avoid the need for an explosion of *DEPEND variables and can probably scale to handling ABI type dependencies. The nice thing about BDEPEND is that it's a relatively simple extension of the existing multi-variable style. I'm not sure how far we should go in EAPI-1 but the single-variable approach is certainly worth considering (at least in the long run). *** Bug 200057 has been marked as a duplicate of this bug. *** *** This bug has been marked as a duplicate of bug 201499 *** *** Bug 219623 has been marked as a duplicate of this bug. *** |