Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Cc: multilib@g.o
Subject: [gentoo-dev] multilib RFC: improving wrapping compatibility with non-multilib and multilib-portage systems
Date: Wed, 23 Apr 2014 12:55:59
Message-Id: 20140423145538.2e42f80a@pomiot.lan
1 Hi, all.
2
3 Following the issue brought up in bug #508278
4 (${CHOST}-pango-querymodules not available on non-multilib systems),
5 I was thinking how to improve the wrapping conditionals so that it
6 would work best for both multilib and non-multilib systems, while
7 keeping it compatible with multilib-portage.
8
9 The underlying issue there is that multilib-portage has its own
10 executable wrapping that is incompatible with the wrapping done
11 by the eclass. For this reason, Tommy has requested the eclass wrapping
12 to be disabled when a single ABI is used (which multilib-portage
13 pretends to do) -- so that the binary would be simply installed for
14 further wrapping by multilib-portage.
15
16 Sadly, this means that ebuild authors have to consider two cases --
17 when ${CHOST}-executable is available, and when it is not. For most
18 of the multilib packages, autotools automatically find the correct
19 option. However, direct references in ebuild aren't that easy.
20
21 I think it would be better if ebuild authors would be able to use
22 ${CHOST}-executable consistently for all systems. Therefore, I'd like
23 to make the wrapping code suitable for all the use cases, including
24 non-multilib systems and multilib-portage.
25
26
27 I'm proposing the following changes to the eclasses:
28
29 1. move wrapping conditionals from different eclasses into
30 multilib_prepare_wrappers and multilib_install_wrappers -- for improved
31 consistency and decreased amount of code,
32
33 2. replace the 'if at least two ABIs are built' conditional with plain
34 'if multilib-portage is not used' -- that is, enable the wrapping for
35 non-multilib systems. It may deem unnecessary but it doesn't hurt
36 and improves consistency.
37
38 3. add additional compatibility code for multilib-portage -- that
39 creates working '${CHOST}-executable -> executable' symlinks, utilizing
40 multilib-portage executable wrapping and providing compatibility with
41 both called names.
42
43 Patches sent as replies. What are your thoughts?
44
45 [1]:https://bugs.gentoo.org/show_bug.cgi?id=508278
46
47 --
48 Best regards,
49 Michał Górny

Attachments

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

Replies