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 |