On Thu, 2015-12-03 at 09:28 +0100, Alexis Ballier wrote: > On Wed, 2 Dec 2015 23:20:05 +0000 > James Le Cuirot <ch...@gentoo.org> wrote: > > > On Wed, 2 Dec 2015 12:40:08 +0100 > > Alexis Ballier <aball...@gentoo.org> wrote: > > > > > On Tue, 1 Dec 2015 22:58:55 +0000 > > > James Le Cuirot <ch...@gentoo.org> wrote: > > > [...] > > > > > > > > I raised one further point with mgorny that he feels could > > > > potentially go into EAPI 7 but I think could remain an > > > > implementation detail. In cases #3 and #4 (basically when > > > > ROOT != / and PORTAGE_CONFIGROOT != /), the toolchain needs to > > > > know how to source headers and libraries from ROOT instead of /. > > > > > > Use SYSROOT. ROOT has nothing to do with building. This should be > > > defined in PMS though. > > > > In case #2, ROOT != / but SYSROOT = / so I take your point that > > SYSROOT would negate the need to check which use case we're dealing > > with. > > > > I looked into SYSROOT while I was writing cross-boss. It's used in > > some crossdev scripts, most notably cross-pkg-config, but not by > > pkg-config itself. It's also used in a small handful of eclasses and > > other *-config scripts but that's all. Conversely, the aforementioned > > libtool patch uses ROOT and I suspect many other things do too. In > > practise, you need to set both. > > The libtool patch has probably not been updated after SYSROOT > introduction. Feel free to file a bug about it. > > > On reflection, I'm now thinking that we should call it something less > > generic. I also found that the Qt build uses SYSROOT for its own > > purposes so you cannot rely on it in toolchain wrappers. ROOT is > > probably just as unreliable. For that reason, I ended up using > > CB_SYSROOT in cross-boss. > > > > I forgot to mention earlier that if ROOT were used, PMS actually > > forbids it from being referenced in the src_* phases so this > > restriction would need to be lifted. Relying on the toolchain's > > internal sysroot is not sufficient. > > And PMS is absolutely right. > > Put simple: > SYSROOT is where "sources" are installed (headers, .so, etc); think > debian's -dev packages. > ROOT is where packages are merged. > > Meaning: > > RDEPEND are installed to ROOT > DEPEND are installed to SYSROOT
hmm, this implies that a pkg in both DEPEND and RDEPEND should be installed in both SYSROOT and ROOT? Does portage do this ATM? > (BDEPEND are installed to /)