Gentoo Archives: gentoo-dev

From: James Le Cuirot <chewi@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [PMS] [PATCH] Correct the definition of ESYSROOT as EPREFIX isn't always applicable
Date: Wed, 31 Jul 2019 20:40:37
Message-Id: 20190731214019.0680eae3@symphony.aura-online.co.uk
In Reply to: Re: [gentoo-dev] [PMS] [PATCH] Correct the definition of ESYSROOT as EPREFIX isn't always applicable by Alexis Ballier
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

Replies