1 |
On 01/23/2015 01:48 AM, Alexis Ballier wrote: |
2 |
> On Thu, 22 Jan 2015 09:06:39 -0800 |
3 |
> Zac Medico <zmedico@g.o> wrote: |
4 |
> |
5 |
> [...] |
6 |
>>> That's what I understand from Michał's comment (quoting him): |
7 |
>>> |
8 |
>>>> 1. if you have dynamic-deps enabled, portage will want to install |
9 |
>>>> both ffmpeg (because of :=) and libav (because of ||). The |
10 |
>>>> effective deps will look like: |
11 |
>>>> |
12 |
>>>> || ( ffmpeg:0/51= libav ) ffmpeg:0/51= |
13 |
>>> |
14 |
>>> |
15 |
>>> As I understand it, portage (correctly) marks this package for |
16 |
>>> rebuild (because ffmpeg:0/51= dep isn't satisfied anymore), but I |
17 |
>>> don't get why it doesn't consider the original '|| ( ffmpeg:= |
18 |
>>> libav:= )' dep for the depgraph and wants to pull ffmpeg in |
19 |
>>> "because of :=". |
20 |
>> |
21 |
>> It does consider the original dep. However, it also uses various |
22 |
>> heuristics when making choices for || deps, and the fact that an |
23 |
>> instance of ffmpeg is currently installed is taken into account in the |
24 |
>> heuristics. |
25 |
> |
26 |
> good then; i'm assuming: people have ffmpeg installed and built a |
27 |
> package 'foo' with || ( ffmpeg:= libav:= ); now, he removes ffmpeg, |
28 |
> installs libav (put it in world), and masks ffmpeg (shouldnt be needed |
29 |
> since it blocks libav but may hint portage solver). |
30 |
|
31 |
Yes, putting ffmpeg in package.mask is not strictly necessary, but it |
32 |
may help you avoid having portage try to pull in ffmpeg to satisfy a |
33 |
dependency at some point. |
34 |
|
35 |
> what Michał claims is that 'foo' will want ffmpeg, no matter what. |
36 |
|
37 |
Maybe he's talking about some case where portage failed to trigger a |
38 |
rebuild when appropriate. We've had a number of bugs like this that have |
39 |
been fixed. The most recent recent example is bug 531656 [1]. |
40 |
|
41 |
> how can it be possible if 'foo' is slatted for rebuild ? |
42 |
|
43 |
It's not possible, as long as a rebuild has be properly triggered. |
44 |
|
45 |
> or maybe it is |
46 |
> that portage does not slat it for rebuild (dynamic deps or not) ? |
47 |
|
48 |
Yeah, we may find more bugs similar to bug 531656. When we discover bugs |
49 |
like this, I make them block bug 300071 [2]. |
50 |
|
51 |
> how can it force to install ffmpeg then ? |
52 |
|
53 |
It will only happen if portage fails to trigger a rebuild. If you have a |
54 |
problem like this, then I would recommend to try all of the following |
55 |
(starting with the least invasive): |
56 |
|
57 |
1) emerge --deselect media-video/ffmpeg (remove from world file) |
58 |
2) echo media-video/ffmpeg >> /etc/portage/package.mask (mask ffmpeg) |
59 |
3) emerge --unmerge media-video/ffmpeg |
60 |
|
61 |
[1] https://bugs.gentoo.org/show_bug.cgi?id=531656 |
62 |
[2] https://bugs.gentoo.org/show_bug.cgi?id=300071 |
63 |
-- |
64 |
Thanks, |
65 |
Zac |