Gentoo Archives: gentoo-dev

From: Pacho Ramos <pacho@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [PATCH] autotools-multilib: wrapper eclass for multilib builds.
Date: Wed, 02 Jan 2013 23:26:26
Message-Id: 1357169138.26280.36.camel@belkin4
In Reply to: Re: [gentoo-dev] [PATCH] autotools-multilib: wrapper eclass for multilib builds. by Alexis Ballier
1 El mar, 25-09-2012 a las 10:21 -0300, Alexis Ballier escribió:
2 > On Sun, 23 Sep 2012 16:49:13 +0200
3 > Thomas Sachau <tommy@g.o> wrote:
4 >
5 > > It is not hard by itself to inherit an eclass. There is just the
6 > > limitation, that occurs with an eclass, e.g.:
7 > >
8 > > -the one from mgorny only does it for autotools based ebuilds only and
9 > > even there only for libraries, headers and binaries are not done.
10 > > While one may create the same for cmake based ones, those are still
11 > > only for a subset of packages, since not all do use autotools/cmake
12 > > or are satisfied with a libs only solution
13 > > -the multilib-native eclass does extend it way more, but still has its
14 > > limitations, e.g. what happens with a new target ABI (like x32 on the
15 > > amd64 profile) or how are dependencies handled?
16 > >
17 > > multilib-portage is the answer to those limitations, since it does
18 > > work for any target with multilib cross-compile support, can handle
19 > > things like the dependencies internally and can even work on not
20 > > prepared/modified ebuilds.
21 > >
22 > > So before i invest even more time in getting this official, we should
23 > > better get to some conclusion, if we either go the route with eclass
24 > > based multilib cross-compile support with its limitations or if we
25 > > move this up to the package manager level.
26 > >
27 >
28 > Can't we get something in between ?
29 >
30 > Unless I'm mistaken, portage-multilib has its limitations also:
31 >
32 > - I have package foo and package bar, both depending on ffmpeg and
33 > canditates for a multilib build. However, package foo does not link to
34 > ffmpeg but simply spawns the 'ffmpeg' binary to process some files,
35 > package bar links to libavcodec. You need ffmpeg[multilib] for a
36 > multilib build of bar but not for foo. How do you distinguish between
37 > the two ?
38 >
39 > - When an out-of-tree build is possible, it is more efficient to do it
40 > that way while multilib-portage will probably run the full src_*
41 > phases twice. mgorny's eclass is a solution to this for
42 > autotools-utils based ebuilds. I have added basic support for this in
43 > freebsd-lib some time ago also.
44 >
45 >
46 >
47 > However, it is clear that USE=multilib is limited too. What we probably
48 > need, as I read in the draft you posted some time ago, is a
49 > MULTILIB_ABI use-expand. Keep a list of all the MULTILIB_ABIs in an
50 > eclass, add them to IUSE of multilib-enabled packages and then you can
51 > use the USE-deps. When a new ABI gets added, add it to the list in the
52 > eclass and be done. You already have PM support for this :)
53 >
54 > You can leverage the generic multilib building code you have to an
55 > eclass, so that you don't need to spec it; spec-ing it has its problems
56 > too: what happens if next year pkg-config is deprecated and now we
57 > shall all use foo-config ? your spec adjusts PKG_CONFIG_PATH but not
58 > FOO_CONFIG_PATH. You probably need a small EAPI change to be able to
59 > implement sanely a generic solution into an eclass though.
60 >
61 > My question to you would be: what are we missing from current EAPIs to
62 > be able to perfectly support multilib builds ?
63 >
64 > A.
65 >
66 >
67
68 What finally occurred with this? What would be the problem of opting by
69 this "mixed" solution (eclass for some packages and PM features
70 requiring newer eapi for others)?
71
72 Thanks

Attachments

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

Replies