1 |
On Thu, 2009-04-02 at 22:22 +0200, Fabian Groffen wrote: |
2 |
> Now this prefix-chaining is like a whole new world that |
3 |
> seemingly has some dirty concepts that I find hard to accept. |
4 |
|
5 |
Seems it isn't really clear yet what we intend prefix-chaining for. |
6 |
|
7 |
1) Developers are working on *many* projects on *one* machine. |
8 |
2) Mostly for QA-reasons, sometimes for source incompatibilities due to |
9 |
major version upgrades, these projects do have *few* different |
10 |
requirements on the set of versions of common libraries they link |
11 |
against (think "Enterprise"). |
12 |
3) In an ideal world, each project would consist of its own set of |
13 |
versions of specific packages, where ebuilds would exist for. |
14 |
4) Additionally, some developers are playing with brand new versions of |
15 |
some of these common libraries within a complete instance of a project. |
16 |
|
17 |
And they all need a basic set of unix tools (think "@system"). |
18 |
|
19 |
The idea (vision) of prefix-chaining now is: |
20 |
|
21 |
1) Have "@system" and a few more utils (editors, autotools, etc.) |
22 |
installed in the first EPREFIX. |
23 |
2) Have the different sets of common library versions installed in |
24 |
different second EPREFIXes, which all refer to the first EPREFIX for |
25 |
DEPENDs (coreutils&co), and *many* projects link against. |
26 |
3) Have the different sets of versions of specific packages installed in |
27 |
the third EPREFIX, which *one* projects link against. |
28 |
4) Have the one brand new version of the common library (and its reverse |
29 |
dependencies) installed in a fourth EPREFIX for the one developer |
30 |
playing with, using DEPEND and the rest of RDEPEND from third, second, |
31 |
first EPREFIX. |
32 |
|
33 |
Needless to say that "first EPREFIX" could be empty - it would be a |
34 |
Gentoo Linux box then, most likely the developer's desktop. |
35 |
|
36 |
How that could work: |
37 |
*) Each EPREFIX does have its private compiler wrapper, adding its own |
38 |
path list (include, linktime, runtime). |
39 |
*) Each EPREFIX does have its private etc/profile, which calls its |
40 |
parent's etc/profile and prepends its own PATH (at least), to become |
41 |
useable. |
42 |
|
43 |
Now for cross-prefix: |
44 |
Although it should be possible, there is no real need to have portage |
45 |
installed in each of the EPREFIXes. Instead, use $EPREFIX to tell |
46 |
portage which EPREFIX actually to manage, meaning what to start with for |
47 |
dependency-tree calculation. |
48 |
Eventually, there could be a wrapper around emerge and portageq in each |
49 |
EPREFIX to avoid the need to have the environment variable being set. |
50 |
|
51 |
And the portage instance in use does know where to use its $BASH and $MV |
52 |
from - known as BPREFIX already. |
53 |
|
54 |
Don't want to talk about cross- or multilib-compiling here yet. |
55 |
|
56 |
We already know that even it is ambitious, it is not ambiguous. |
57 |
|
58 |
/haubi/ |
59 |
-- |
60 |
Michael Haubenwallner |
61 |
Gentoo on a different level |