Gentoo Archives: gentoo-dev

From: James Le Cuirot <chewi@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] crossdev: installing _host_ build dependencies not automatic?
Date: Wed, 03 May 2017 21:48:24
Message-Id: 20170503224718.4fb7f666@symphony.aura-online.co.uk
In Reply to: Re: [gentoo-dev] crossdev: installing _host_ build dependencies not automatic? by Alexis Ballier
1 On Wed, 3 May 2017 17:56:43 +0200
2 Alexis Ballier <aballier@g.o> wrote:
3
4 > On Wed, 3 May 2017 12:05:48 +0200
5 > "Paweł Hajdan, Jr." <phajdan.jr@g.o> wrote:
6 >
7 > > I encountered <https://bugs.gentoo.org/show_bug.cgi?id=617276> while
8 > > working on some cross-compiling project.
9 > >
10 > > Admittedly, it may not be that easy to handle host package
11 > > dependencies fully automatically.
12 > >
13 > > I'm wondering - is it documented what portage guarantees, and what I'm
14 > > expected to just manually handle to provide host build dependencies?
15 > >
16 > > Any other advice about properly using crossdev would also be
17 > > appreciated. I'd be happy to test and help improve things.
18 >
19 >
20 > From man emerge:
21 >
22 >
23 > --root-deps[=rdeps]
24 > If no argument is given then build-time dependencies of
25 > packages for ROOT are installed to ROOT instead of /. If the
26 > rdeps argument is given then discard all build-time dependencies
27 > of packages for ROOT. This option is only meaningful when used
28 > together with ROOT and it should not be enabled under normal
29 > circumstances!
30 >
31 > Does not affect EAPIs that support HDEPEND. Experimental
32 > EAPI 5-hdepend provides HDEPEND as a new means to adjust
33 > installation into "/" and ROOT. If ebuilds using EAPIs
34 > which do not support HDEPEND are built in the same
35 > emerge run as those using EAPIs which do support HDEPEND,
36 > this option affects only the former.
37 >
38 >
39 > crossdev wrappers set --root-deps=rdeps (read cross-emerge, this can be
40 > overriden), but be careful: If you only care about getting all the deps
41 > and maybe more then removing --root-deps might help you. However, when
42 > cross compiling you will likely run into broken deps since / and ROOT
43 > will not use the same keyword visibility.
44
45 I was going to point to crossdev's use of --root-deps=rdeps too. I did
46 wonder why on earth this was even added. I overrode it for quite a
47 while and didn't have any issue. History showed that it was added by
48 solar without much of an explanation. He's no longer around to ask. It
49 wasn't until I tried to build a brand new ppc64le system recently that
50 I finally found a reason for it, though I'm not sure it was the
51 original reason. The multilib ABI USE flags start conflicting horribly
52 in cross situations and this option seems to be the only way around it
53 at present.
54
55 I doubt keyword visibility is an issue. Portage uses a different
56 configuration between / and ROOT when cross-compiling. I don't think it
57 tries to force the same package versions beyond what is specified in
58 the ebuild. For pure build-time dependencies, the package will only be
59 installed to / anyway (i.e. you don't need cmake in ROOT) so there is
60 nothing to enforce here.
61
62 --
63 James Le Cuirot (chewi)
64 Gentoo Linux Developer

Replies