Gentoo Archives: gentoo-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Portage dependency solving algorithm
Date: Fri, 21 Nov 2014 04:16:19
Message-Id: 546EBC89.3050805@gentoo.org
In Reply to: Re: [gentoo-dev] Portage dependency solving algorithm by Zac Medico
1 On 11/20/2014 12:19 PM, Zac Medico wrote:
2 > On 11/19/2014 11:59 AM, Andrew Savchenko wrote:
3 >> Hello,
4 >>
5 >> On Mon, 17 Nov 2014 21:55:48 -0800 Zac Medico wrote:
6 >>> On 11/17/2014 09:47 PM, Andrew Savchenko wrote:
7 >>>> I use 2.2.14 on both hosts (and usually latest ~x86 portage is
8 >>>> there). I thought that running fixpackages should be enough to run
9 >>>> emerge with --dynamic-deps=n.
10 >>>
11 >>> It depends on how badly the installed deps have diverged from the
12 >>> corresponding ebuilds in the tree.
13 >>
14 >> I tried fixpackages. It fixed some problems and looks like
15 >> dependencies resolution became faster. But not all problems are
16 >> fixed and I can't use --dynamic-deps n on both systems for now;
17 >> and emerge @changed-deps fails due to numerous conflicts, blocks,
18 >> unsatisfied deps (this is not surprising, since it doesn't try to
19 >> update all packages in tree).
20 >>
21 >> By the way, is there any way to unroll conflict lists in portage
22 >> output? I mean if I have following:
23 >>
24 >> (dev-lang/ghc-7.6.3-r1:0/7.6.3::gentoo, installed) pulled in by
25 >> >=dev-lang/ghc-6.8.2:0/7.6.3= required by (dev-haskell/random-1.0.1.1-r1:0/1.0.1.1::gentoo, installed)
26 >> ^^^^^^^^^
27 >> (and 68 more with the same problem)
28 >>
29 >> How can I see all list of these 68 packages? Sometimes this feature is
30 >> really desired, e.g. if I don't want to update all @world but need to
31 >> apply GLSA fix which leads to similar conflicts. I can't find any
32 >> switch in emerge manual.
33 >
34 > There's currently no switch for this. However, you can use a a command
35 > like this to see all installed packages that pull in your installed ghc:
36 >
37 > emerge -pv --depclean dev-lang/ghc
38 >
39 > I've filed a feature request bug for the switch that you have requested:
40 >
41 > https://bugs.gentoo.org/show_bug.cgi?id=529988
42
43 I forgot, we have a --verbose-conflicts option already.
44
45 >> As for hitomi box, it is both slower and have much older packages,
46 >> so I'm still struggling to fix conflicts and other issues. Results
47 >> will be available later.
48 >
49 > From your results, it seems that _select_pkg_highest_available would be
50 > an obvious thing to optimize. This method already uses memoization, but
51 > the cache is entirely discarded each time that a package is added to the
52 > graph. I will see about making it salvage as much cache as possible when
53 > a package is added.
54
55 I've written a patch, and it gives good results. On one of my computers
56 with this patch, 'emerge -puvDN @world' takes 15% less time, and results
57 in 58% fewer _select_pkg_highest_available_imp calls:
58
59 https://bugs.gentoo.org/show_bug.cgi?id=530010
60 --
61 Thanks,
62 Zac

Replies

Subject Author
Re: [gentoo-dev] Portage dependency solving algorithm Andrew Savchenko <bircoph@g.o>