Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 174552 - [EAPI-1] new dependency type(s) for cross-compiling / alternate $ROOT support
Summary: [EAPI-1] new dependency type(s) for cross-compiling / alternate $ROOT support
Status: RESOLVED DUPLICATE of bug 201499
Alias: None
Product: Gentoo Hosted Projects
Classification: Unclassified
Component: PMS/EAPI (show other bugs)
Hardware: All All
: High normal (vote)
Assignee: PMS/EAPI
: 200057 219623 (view as bug list)
Depends on:
Blocks: future-eapi 140606
  Show dependency tree
Reported: 2007-04-14 07:07 UTC by Zac Medico
Modified: 2008-04-28 21:52 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Note You need to log in before you can comment on or make changes to this bug.
Description Zac Medico gentoo-dev 2007-04-14 07:07:15 UTC
In EAPI 0, the DEPEND, RDEPEND, and PDEPEND variables do not provide enough granularity to fully model a cross-compiling environment.  Portage currently interprets DEPEND as a build platform dependency, while there is no way to explicitly specify a build-time dependency that must be installed into the cross-compiled platform.  Perhaps we should add a new BDEPEND variable that represents this type of dependency.
Comment 1 SpanKY gentoo-dev 2007-04-14 11:23:53 UTC
i'm guessing ABI support falls into this realm as well ?
Comment 2 Zac Medico gentoo-dev 2007-04-14 20:05:05 UTC
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.
Comment 3 Ciaran McCreesh 2007-05-13 08:34:04 UTC
So with this change, what will the meanings of DEPEND, RDEPEND, PDEPEND and BDEPEND be in terms of what gets installed where?
Comment 4 Zac Medico gentoo-dev 2007-05-13 09:09:15 UTC
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
Comment 5 Ciaran McCreesh 2007-05-13 09:19:04 UTC
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):




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.
Comment 6 Zac Medico gentoo-dev 2007-05-13 10:03:08 UTC
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).
Comment 7 Alon Bar-Lev (RETIRED) gentoo-dev 2007-11-23 10:24:25 UTC
*** Bug 200057 has been marked as a duplicate of this bug. ***
Comment 8 Zac Medico gentoo-dev 2007-12-06 19:12:47 UTC

*** This bug has been marked as a duplicate of bug 201499 ***
Comment 9 Zac Medico gentoo-dev 2008-04-28 21:52:39 UTC
*** Bug 219623 has been marked as a duplicate of this bug. ***