Gentoo Archives: gentoo-dev

From: Pacho Ramos <pacho@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps
Date: Sat, 11 Apr 2015 14:01:04
Message-Id: 1428760836.2041.103.camel@gentoo.org
In Reply to: [gentoo-dev] Looking for a generic solution to non-USE-conditional circular deps by "Michał Górny"
1 El sáb, 11-04-2015 a las 14:28 +0200, Michał Górny escribió:
2 > Hello,
3 >
4 > I know of two cases of circular deps that can be solved -- as far as I
5 > know -- only by bundling:
6 >
7 > 1. dev-util/pkgconfig <-> dev-libs/glib:2,
8 >
9 > 2. dev-util/cmake <-> dev-libs/jsoncpp.
10 >
11 > The former is solved via having USE=internal-glib on pkgconfig,
12 > the latter is yet unsolved [1].
13 >
14 > I suspect we can expect more of this kind of issues in non-systemd
15 > world over time, and I feel like it'd be good to develop a generic
16 > policy for handling them. Something that could avoid having users go
17 > through this on a case-by-case basis.
18 >
19 > I think the simplest solution would be to develop a generic USE flag
20 > that would only serve the purpose of forcing bundled dependencies for
21 > bootstrapping/initial install.
22 >
23 > We have already:
24 >
25 > build - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for
26 > creating build images and the first half of bootstrapping [make stage1]
27 >
28 > bootstrap - !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used
29 > during original system bootstrapping [make stage2]
30 >
31 > However, since both are marked for 'internal use only', I don't think
32 > it's a good idea to use them here. So I guess we need a new flag. Does
33 > anyone have suggestions how to name it?
34 >
35 > Any other ideas?
36 >
37 > [1]:https://bugs.gentoo.org/show_bug.cgi?id=546130
38 >
39
40 As that USE flag should only be used for being able to install the
41 package the first time, maybe it should be treated in a "special" way. I
42 mean, it shouldn't be easily changed by users but, instead, switched
43 "internally" by the package manager to allow to unbreak the cycle.
44
45 Otherwise, we could end up with people having packages built with
46 "bundled" libs forever because they enabled that USE at some point and
47 later they forgot (or were too lazy) to revert that :|

Replies