1 |
Hola. |
2 |
|
3 |
Quick statement of terminology- |
4 |
x-compile == cross compiling, building arm crap on an x86, building up |
5 |
a x-compile target in a subdirectory of / (fex) |
6 |
|
7 |
|
8 |
Currently, we pretty much leave out the big dogs of build depends from |
9 |
ebuilds- basically we rely on the profile to require a suitable |
10 |
toolchain. Couple of issues with this though- |
11 |
|
12 |
1) Deps aren't complete for an ebuild. |
13 |
2) Merging a php or python lib that doesn't require compilation |
14 |
doesn't require a full toolchain, distutils/pear or make mainly. |
15 |
So autoassuming a c/c++ toolchain is required isn't accurate. |
16 |
3) For automatically handling x-compile deps, without this info bound |
17 |
to an ebuild, portage will _never_ be able to know what |
18 |
dependencies are x-compile targets, and what deps must be natively |
19 |
merged. |
20 |
|
21 |
So... why don't we add a new DEPEND, BDEPEND (build depends), that |
22 |
holds atoms of what is required to actually build the package, |
23 |
literally, what executes on the box to build that package. |
24 |
|
25 |
Still would have DEPEND, since (using diffball as an example) building |
26 |
it doesn't execute anything from bzip2/libz, it just builds against |
27 |
those atoms. |
28 |
|
29 |
Aside from the goal of having complete dependencies, BDEPEND can be |
30 |
used by portage to know what needs to be built native to that box, vs |
31 |
what is an x-compiled dependency. So... we could actually do a full |
32 |
stategraph covering x-compile deps, and the actual x-compile |
33 |
toolchain. |
34 |
|
35 |
Thing is, it's an extra bit ebuild devs have to deal with. So get out |
36 |
your pitchforks/torches and throw in your two cents on the extra bit |
37 |
of effort required from ebuild devs. In the circles where this idea |
38 |
developed in, it solves some nasty portage issues (iow, it's useful to |
39 |
us for addressing a hard problem and supplying further functionality). |
40 |
|
41 |
Re: backwards compatibility, profile's holding the toolchain pretty |
42 |
much covers up the fact BDEPEND is missing from the tree; it's a non |
43 |
issue, only an issue if you're cross compiling (spanky's x-compile |
44 |
work mostly gets around this afaik, although it's something of abuse |
45 |
of portage), or if your profile doesn't specify a full toolchain. |
46 |
In other words, those who fall into the two scenarios above are |
47 |
already dealing with this issue, so there really isn't a concern of |
48 |
backwards compatibility. |
49 |
|
50 |
Either way, kindly chuck in your two cents (preferably on -dev ml, |
51 |
since this is cross posted). |
52 |
~harring |