Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: Alexis Ballier <aballier@g.o>
Cc: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFC: USE=libav as replacement for broken || ( libav:= ffmpeg:= )
Date: Wed, 21 Jan 2015 10:15:24
Message-Id: 20150121111504.3c1e0bb1@pomiot.lan
In Reply to: Re: [gentoo-dev] RFC: USE=libav as replacement for broken || ( libav:= ffmpeg:= ) by Alexis Ballier
1 Dnia 2015-01-21, o godz. 11:05:01
2 Alexis Ballier <aballier@g.o> napisał(a):
3
4 > > > > 2. Subslots work correctly. Rebuilds are forced when the chosen
5 > > > > library is upgraded. Moreover, USE flag change causes a rebuild
6 > > > > when user decides to change the ffmpeg provider.
7 > > >
8 > > > No offense, but this argument is complete crap. You should rather
9 > > > fix portage bugs than propose to introduce tree-wide changes to
10 > > > hide them... More precisely: || ( a:= b c:= d ) is perfectly
11 > > > defined (in the "what it means" sense, not in PMS sense). When the
12 > > > package is built, if 'a' is satisfied then a (and its subslot) is
13 > > > added to the subslot list of the package; ditto for c. You end up
14 > > > with a list of subslot deps, that you can store in vdb or whatever,
15 > > > and use that to decide when to rebuild the package.
16 > >
17 > > Following a specification is not a bug. I could argue here a lot
18 > > but... just implement it. And return to us when you do. We had an
19 > > item for this for EAPI 6, and it was removed because nobody
20 > > volunteered to implement it. In fact, nobody even were able to fully
21 > > specify what it should do... but if you want to discuss that, please
22 > > start a new thread, possibly at the -pms list.
23 >
24 > Above is a simple algorithm that works in all cases. What you're asking
25 > me to do is "go beg pms list to allow something they don't want because
26 > the subslot/:= spec was poorly written and thought of". I already gave
27 > you the solution, don't count on me for the administrative work :=)
28 > (NB: everytime I tried to improve/fix something in pms I failed
29 > miserably, so that I have no other choice but giving up on this, check
30 > bgo)
31
32 No, it works in the one case you thought of. Two quick issues:
33
34 1. What does || ( a b:= c:= ) mean? i.e. only some having subslots.
35
36 2. What does || ( a:= b:= ) mean when a and b can be both installed?
37
38 Adding a very specific PMS rule for two packages doesn't sound like
39 a very good idea to me.
40
41 > Moreover, when I bumped ffmpeg subslot, portage did rebuild all those
42 > packages with || ( := := ) deps properly for me. So, you'll have to be
43 > a bit more specific on what goes wrong than 'broken || ( libav:=
44 > ffmpeg:= )'...
45
46 I already told you that before. Try switching from ffmpeg to libav,
47 and see what mess it causes. I'll summarize it for you:
48
49 1. if you have dynamic-deps enabled, portage will want to install both
50 ffmpeg (because of :=) and libav (because of ||). The effective
51 deps will look like:
52
53 || ( ffmpeg:0/51= libav ) ffmpeg:0/51=
54
55 2. If you have dynamic-deps disabled, portage will happily switch impl
56 without rebuilding revdeps (breakage). Afterwards, it will allow
57 upgrading the other dep (libav) without rebuilds. The effective deps
58 will look like:
59
60 || ( ffmpeg:0/51= libav )
61
62 --
63 Best regards,
64 Michał Górny

Replies