1 |
El mié, 01-12-2010 a las 19:57 +0100, Thomas Sachau escribió: |
2 |
> Hi, |
3 |
> |
4 |
> i have already written about this some months ago and updated the code in relation to the comments |
5 |
> especially from vapier. |
6 |
> |
7 |
> Basicly, it does now first set abi-specific vars (like CC, CFLAGS and others (setup_abi_env function |
8 |
> in bin/auto-multilib.sh contains the full list), then does build the package as usual. If additional |
9 |
> ABIs are requested, it checks after src_install, if there are possible ABI-specific files (libs, |
10 |
> headers or, if requested for every ABI, also binaries). If those are found, the image dir is moved |
11 |
> away and a new run is started, where again at start abic-specific vars are set and then the complete |
12 |
> src* phases are run. Once all requested ABIs are done, the image dirs are merged into the final |
13 |
> image dir. The following pkg_* phases are each running for every ABI. |
14 |
> Currently, only different libs and headers are installed by default, binaries will be the ones from |
15 |
> the default ABI, unless you tell portage to install binaries for all requested ABIs, in which case a |
16 |
> wrapper will select the ABI-specific binary depending on the environment. |
17 |
> The current implementation uses a USE-dep like way internally to satisfy the needed dependencies, so |
18 |
> that e.g. 32bit libs on a 64bit platform get their required dependencies built with 32bit libs |
19 |
> installed. For the rare case, where the crosscompile does fail and there is only a need for the |
20 |
> binary and no linking against the libs, i have also a var, which disables this auto-dependency |
21 |
> calculation for specified packages. |
22 |
> |
23 |
> For the user interface, portage shows a USE_EXPANDed var, which contains the avaidable ABIs, as an |
24 |
> example for "emerge -pv media-libs/jpeg": |
25 |
> |
26 |
> [ebuild R ] media-libs/jpeg-8b USE="-static-libs" MULTILIB_ABI="amd64 x86" |
27 |
> |
28 |
> Those ABIs can be handled like USE flags, in this case, they are "multilib_abi_amd64" and |
29 |
> "multilib_abi_x86", so you can use those USE flags to enable/disable specific possible ABIs either |
30 |
> globally or per package. |
31 |
> |
32 |
> The basic implementation can be used without changing main tree ebuilds or eclasses, but e.g. for |
33 |
> the replacement of emul-* libs, this will require EAPI-support for ABI-specific USE-deps for |
34 |
> binary-only packages or packages like wine. |
35 |
> |
36 |
> I would first like to see, if there are any bigger concerns especially with the implementation and |
37 |
> how it is supposed to work. |
38 |
> |
39 |
> If there are no such concerns or if they have been resolved, i would like to request some help for |
40 |
> the documentation and PMS-patch related work. |
41 |
> |
42 |
> For install instructions, please have a look at [1], the code can be found in the multilib branch of |
43 |
> portage git repo at [2]. |
44 |
> |
45 |
> While i did not yet get to the implementation of it, i would also like to propose something similiar |
46 |
> for languages (like python, ruby or others), so that the basic parts are inside the PM and we can |
47 |
> drop the different ways of implementation and allow users a much more fine-grained control on a per |
48 |
> package base (in relation to the current way python eclass based very complex implementation works). |
49 |
> |
50 |
> [1]: http://github.com/sjnewbury/multilib-overlay/tree/portage-multilib/doc |
51 |
> [2]: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=shortlog;h=refs/heads/multilib |
52 |
> |
53 |
|
54 |
Hello |
55 |
|
56 |
I would like to know what is "blocking" this from landing main tree in |
57 |
the "near" future, as I reviewed: |
58 |
|
59 |
http://www.mail-archive.com/gentoo-dev@l.g.o/msg41737.html |
60 |
|
61 |
and looks like there wasn't major problems (at least commented in this |
62 |
thread) |
63 |
|
64 |
Thanks a lot for the info :-) |