1 |
On 09/24/2017 11:11 PM, Brian Dolbec wrote: |
2 |
> On Sun, 24 Sep 2017 11:57:19 -0700 |
3 |
> Zac Medico <zmedico@g.o> wrote: |
4 |
> |
5 |
>> In order for the eliminate_pkg loop to produce deterministic results, |
6 |
>> the order of the pkgs list must not be random. Prefer to eliminate |
7 |
>> installed packages first, in case rebuilds are needed, and also sort |
8 |
>> in ascending order so that older versions are eliminated first. |
9 |
>> |
10 |
>> X-Gentoo-bug: 631894 |
11 |
>> X-Gentoo-bug-url: https://bugs.gentoo.org/631894 |
12 |
>> --- |
13 |
>> pym/_emerge/depgraph.py | 9 +++++++++ |
14 |
>> 1 file changed, 9 insertions(+) |
15 |
>> |
16 |
>> diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py |
17 |
>> index b4fc5f297..785c036b8 100644 |
18 |
>> --- a/pym/_emerge/depgraph.py |
19 |
>> +++ b/pym/_emerge/depgraph.py |
20 |
>> @@ -3584,6 +3584,15 @@ class depgraph(object): |
21 |
>> if |
22 |
>> atom_set.findAtomForPackage(pkg2, |
23 |
>> modified_use=self._pkg_use_enabled(pkg2)): atom_pkg_graph.add(pkg2, |
24 |
>> atom) |
25 |
>> + # In order for the following eliminate_pkg |
26 |
>> loop to produce |
27 |
>> + # deterministic results, the order of the |
28 |
>> pkgs list must |
29 |
>> + # not be random (bug 631894). Prefer to |
30 |
>> eliminate installed |
31 |
>> + # packages first, in case rebuilds are |
32 |
>> needed, and also sort |
33 |
>> + # in ascending order so that older versions |
34 |
>> are eliminated |
35 |
>> + # first. |
36 |
>> + pkgs = (sorted(pkg for pkg in pkgs if |
37 |
>> pkg.installed) + |
38 |
>> + sorted(pkg for pkg in pkgs if not |
39 |
>> pkg.installed)) + |
40 |
>> for pkg in pkgs: |
41 |
>> eliminate_pkg = True |
42 |
>> for atom in |
43 |
>> atom_pkg_graph.parent_nodes(pkg): |
44 |
> |
45 |
> |
46 |
> Looks good |
47 |
> |
48 |
|
49 |
Thanks, merged: |
50 |
|
51 |
https://gitweb.gentoo.org/proj/portage.git/commit/?id=5b286b267cb5cc69cac1c99ec8704ff0e0463e11 |
52 |
-- |
53 |
Thanks, |
54 |
Zac |