1 |
On 01/22/2015 03:11 AM, Alexis Ballier wrote: |
2 |
> On Thu, 22 Jan 2015 02:50:44 -0800 |
3 |
> Zac Medico <zmedico@g.o> wrote: |
4 |
> |
5 |
>> On 01/21/2015 11:25 PM, Alexis Ballier wrote: |
6 |
>>> 1. If portage uses crafted depstrings in its depgraph when |
7 |
>>> rebuilding a package and nobody is able to give me a good reason |
8 |
>>> _why_ this is needed, I really do not want to look at the code :) |
9 |
>> |
10 |
>> It's the emerge --dynamic-deps option, which is enabled by default. If |
11 |
>> you want to use --dynamic-deps=n, then you may need to fix some |
12 |
>> dependencies of installed packages, which you can do by running emerge |
13 |
>> @changed-deps. There's also a --changed-deps [1] option that can be |
14 |
>> applied to @world updates, which will be included in Portage 2.2.16. |
15 |
>> |
16 |
>> [1] |
17 |
>> https://github.com/gentoo/portage/commit/e99fa094ac73514b23509a0f8305b365f114e9a3 |
18 |
> |
19 |
> This answers 'how' and, as I understand it, changed-deps is also about |
20 |
> 'how' to trigger rebuild. |
21 |
> My question was: _why_ when portage knows what package to rebuild |
22 |
> doesn't it use the dep string from the ebuild ? |
23 |
|
24 |
It does use the dep string for the ebuild, after it has rejected the |
25 |
installed instance and decided to pull in the ebuild instead. |
26 |
|
27 |
> That's what I understand from MichaĆ's comment (quoting him): |
28 |
> |
29 |
>> 1. if you have dynamic-deps enabled, portage will want to install both |
30 |
>> ffmpeg (because of :=) and libav (because of ||). The effective |
31 |
>> deps will look like: |
32 |
>> |
33 |
>> || ( ffmpeg:0/51= libav ) ffmpeg:0/51= |
34 |
> |
35 |
> |
36 |
> As I understand it, portage (correctly) marks this package for rebuild |
37 |
> (because ffmpeg:0/51= dep isn't satisfied anymore), but I don't get why |
38 |
> it doesn't consider the original '|| ( ffmpeg:= libav:= )' dep for the |
39 |
> depgraph and wants to pull ffmpeg in "because of :=". |
40 |
|
41 |
It does consider the original dep. However, it also uses various |
42 |
heuristics when making choices for || deps, and the fact that an |
43 |
instance of ffmpeg is currently installed is taken into account in the |
44 |
heuristics. |
45 |
-- |
46 |
Thanks, |
47 |
Zac |