1 |
On Wed, 31 Jul 2019 15:51:58 +0200 |
2 |
Alexis Ballier <aballier@g.o> wrote: |
3 |
|
4 |
> On Tue, 30 Jul 2019 23:26:27 +0100 |
5 |
> James Le Cuirot <chewi@g.o> wrote: |
6 |
> |
7 |
> > > Admittedly without a full understanding of the problem, but this |
8 |
> > > looks wrong to me: SYSROOT, EPREFIX and BROOT are only relevant in |
9 |
> > > build phases (src_*); (EPREFIX is a little special here but mostly |
10 |
> > > for convenience). ROOT is only relevant in pkg_* phases. I don't |
11 |
> > > see how this can work. Say I build a binpkg with ROOT=/ then use |
12 |
> > > that binpkg with ROOT=/somewhere, you can't go back and change |
13 |
> > > SYSROOT. |
14 |
> > |
15 |
> > ROOT is used to determine ESYSROOT, not the other way around. As you |
16 |
> > say, (E)SYSROOT is only relevant in src phases so it doesn't matter if |
17 |
> > ROOT has changed when installing a binpkg. |
18 |
> |
19 |
> I am missing something here: You are making ESYSROOT depend on the |
20 |
> value of ROOT, so how can it not matter ? |
21 |
|
22 |
What I am trying to say (somewhat unsuccessfully!) is that the value of |
23 |
(E)SYSROOT only changes how the package is built, not what the |
24 |
resulting package looks like. It's where all the headers and libraries |
25 |
are sourced from at build time, which is irrelevant at runtime. |
26 |
|
27 |
So why does ROOT affect it? Normally you install the packages for |
28 |
BDEPEND, DEPEND, and RDEPEND to the same location. If BDEPEND and |
29 |
RDEPEND are installed to different locations (ROOT!=/) then DEPEND will |
30 |
almost always be installed to one of the other two. If either of those |
31 |
two locations is prefixed then we need the prefix for DEPEND's location |
32 |
to match, otherwise it wouldn't actually be the same location. Using |
33 |
ROOT allows us to figure this out automatically in a way that covers |
34 |
all sensible use cases and avoids accidentally falling into an |
35 |
unsupported case. |
36 |
|
37 |
I hope that's clearer. |
38 |
|
39 |
-- |
40 |
James Le Cuirot (chewi) |
41 |
Gentoo Linux Developer |