Gentoo Archives: gentoo-dev

From: Thomas Sachau <tommy@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [PATCH] autotools-multilib: wrapper eclass for multilib builds.
Date: Sun, 23 Sep 2012 14:50:26
Message-Id: 505F2169.7040705@gentoo.org
In Reply to: Re: [gentoo-dev] [PATCH] autotools-multilib: wrapper eclass for multilib builds. by Pacho Ramos
1 Pacho Ramos schrieb:
2 > El dom, 23-09-2012 a las 13:52 +0200, Thomas Sachau escribió:
3 >> Pacho Ramos schrieb:
4 >>> El dom, 23-09-2012 a las 11:56 +0200, Michał Górny escribió:
5 >>>> On Sun, 23 Sep 2012 11:07:30 +0200
6 >>>> Thomas Sachau <tommy@g.o> wrote:
7 >>>>
8 >>>>> Matt Turner schrieb:
9 >>>>>> On Sat, Sep 22, 2012 at 2:24 PM, Michał Górny <mgorny@g.o> wrote:
10 >>>>>>> It is a simple eclass using autotools out-of-source builds to build
11 >>>>>>> packages for multiple ABIs when multilib is supported.
12 >>>>>>
13 >>>>>> Thanks a lot, Michał! This looks good to me.
14 >>>>>>
15 >>>>>>> Use case: xorg packages, ask Matt.
16 >>>>>>
17 >>>>>> So the idea is that users want up-to-date 32-bit drivers for games and
18 >>>>>> WINE. The emul- packages aren't a very good solution for a number of
19 >>>>>> reasons.
20 >>>>>>
21 >>>>>> I'd like to add multilib USE flags to Mesa and thus its dependencies.
22 >>>>>> I realized that almost everything in x11-libs/ could be converted very
23 >>>>>> easily, which would allow us to get rid of emul-linux-x86-xlibs in
24 >>>>>> addition to emul-linux-x86-opengl.
25 >>>>>>
26 >>>>>>
27 >>>>>
28 >>>>> This looks like a shortened duplication of a subset of multilib-portage
29 >>>>> features. While this wont hurt multilib-portage (since it does exclude
30 >>>>> most actions on ebuilds with USE=multilib), it will mean a rewrite for
31 >>>>> many ebuilds, which then again need another rewrite (or more likely
32 >>>>> revert), when multilib-portage is accepted in a future EAPI.
33 >>>>
34 >>>> s/when/if/
35 >>>>
36 >>>>> So i would prefer some help/support with multilib-portage to get it
37 >>>>> accepted sooner, instead of this additional workaround for a subset of
38 >>>>> packages.
39 >>>>
40 >>>> I prefer the simpler solution.
41 >>>>
42 >>>>> P.S.: I know, that users, who want up-to-date 32bit drivers for games
43 >>>>> and wine do use multilib-portage, so we already have a working solution
44 >>>>> for this issue.
45 >>>>
46 >>>> They will no longer have to do that.
47 >>>>
48 >>>
49 >>> I would prefer if eclass way could be extended to packages not using
50 >>> autotools too, otherwise, we will still need emul packages for, for
51 >>> example, qt libs. If that would be possible via eclass, maybe
52 >>> multilib-portage wouldn't be needed but, if not, we will still need it
53 >>> and, then, would be nice if this inclussion for autotools packages
54 >>> wouldn't cause more problems to get the "strong" solution land in the
55 >>> "near" future :/
56 >>>
57 >>> The simpler solution (eclass) looks fine to me, but it would need to be
58 >>> extended to more packages than autotools based ones to let it replace
59 >>> portage-multilib/emul packages
60 >>>
61 >>
62 >> you mean something like this one?
63 >>
64 >> https://github.com/sjnewbury/multilib-overlay/blob/80c9fd20cfd05481ac19edcadd56ad5e578a8930/eclass/multilib-native.eclass
65 >>
66 >> That was the original eclass allowing cross-compile support, but
67 >> required ebuilds to inherit it. multilib-portage is based on this, but
68 >> does not require to modify the ebuilds themselves.
69 >>
70 >
71 > Yes, that is what I meant... but I don't find hard to modify ebuilds to
72 > inherit it :/
73 >
74
75 It is not hard by itself to inherit an eclass. There is just the
76 limitation, that occurs with an eclass, e.g.:
77
78 -the one from mgorny only does it for autotools based ebuilds only and
79 even there only for libraries, headers and binaries are not done. While
80 one may create the same for cmake based ones, those are still only for a
81 subset of packages, since not all do use autotools/cmake or are
82 satisfied with a libs only solution
83 -the multilib-native eclass does extend it way more, but still has its
84 limitations, e.g. what happens with a new target ABI (like x32 on the
85 amd64 profile) or how are dependencies handled?
86
87 multilib-portage is the answer to those limitations, since it does work
88 for any target with multilib cross-compile support, can handle things
89 like the dependencies internally and can even work on not
90 prepared/modified ebuilds.
91
92 So before i invest even more time in getting this official, we should
93 better get to some conclusion, if we either go the route with eclass
94 based multilib cross-compile support with its limitations or if we move
95 this up to the package manager level.
96
97 --
98
99 Thomas Sachau
100 Gentoo Linux Developer

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies