1 |
On Thu, Jul 31, 2014 at 3:12 PM, Michał Górny <mgorny@g.o> wrote: |
2 |
> |
3 |
> Yes, exactly. We need to get dynamic-deps right if they are ever |
4 |
> supposed to become the default. That's one of the reasons that we want |
5 |
> to revert the problematic changes and make Portage use the default |
6 |
> model once again. |
7 |
|
8 |
Do we actually have some kind of list of issues with dynamic deps? |
9 |
The only specific one that I think I've seen is with prerm and subslot |
10 |
deps, but as was pointed out that issue actually is as much of a |
11 |
problem with static deps unless you unmerge all the reverse-deps |
12 |
before upgrading anything, followed by a re-merge. |
13 |
|
14 |
I have no problem with accepting that it is broken, but it would be |
15 |
nice to deal with more specifics and not with it in general. |
16 |
|
17 |
> |
18 |
> If you are really curious, I am working hard on providing tools to fix |
19 |
> the vdb inconsistencies caused by dynamic-deps. There were no specific |
20 |
> data because it wasn't available until today. |
21 |
> |
22 |
> My regularly updated desktop system (2-3 days between @world updates) |
23 |
> after disabling dynamic-deps has 77 packages needing rebuild. That |
24 |
> number includes a few virtuals, Perl packages and other low-effort |
25 |
> cases. And this is after the big, scary virtual/*udev changes. |
26 |
> |
27 |
> Over the next days I will obviously have more numbers. More |
28 |
> specifically, the number of packages needing rebuild after dependency |
29 |
> changes made by developers. It should be noted that the above number |
30 |
> includes one-time rebuild of packages that are simply ancient. |
31 |
> |
32 |
> There is a lot of FUD about unnecessary rebuilds. Sadly, most people |
33 |
> seem to fight a holy war against them without realizing the real |
34 |
> impact. In fact, more unnecessary rebuilds are caused by unnecessary |
35 |
> USE flags than by dependency changes. Yet the same people believe in |
36 |
> adding more flags to contain even more minor aspects of packages... |
37 |
|
38 |
Thank you for this. It is very helpful in gauging the likely impact |
39 |
of having more revbumps. |
40 |
|
41 |
One thing I don't want to do is create a barrier to anybody who wants |
42 |
to upgrade an eclass or do work on virtuals. I can just imagine |
43 |
endless debates about whether splitting a virtual is worth it since it |
44 |
will cause up to 250 rebuilds, etc. |
45 |
|
46 |
Is there any easy way to compare tree vs installed deps using the API? |
47 |
I have a script that is part of the way there, but I'm struggling to |
48 |
compare the vartree and porttree depdendencies (the portree |
49 |
dependencies need to be correctly reduced - if somebody has the list |
50 |
of function calls needed to reduce an RDEPEND from porttree to account |
51 |
for USE/etc in /etc/portage and substitute in subslots that would be |
52 |
helpful. |
53 |
|
54 |
code snippet: |
55 |
depstr = vartree.dbapi.aux_get(cpv, ["RDEPEND"])[0] |
56 |
depstr2 = porttree.dbapi.aux_get(cpv, ["RDEPEND"] )[0] |
57 |
flatdeps=portage.dep.flatten(portage.dep.paren_reduce(depstr)) |
58 |
flatdeps2=portage.dep.flatten(portage.dep.use_reduce(portage.dep.paren_reduce(depstr2))) |
59 |
|
60 |
Ideally those should be the same if static deps = dynamic deps, but I |
61 |
suspect it isn't appying the right USE flags (I'm not passing any), |
62 |
and it isn't substituting actual subslot values either. I'm also not |
63 |
sure if flatten is going to properly handle operators/etc. |
64 |
|
65 |
Rich |