1 |
James <wireless@×××××××××××.com> wrote: |
2 |
> |
3 |
> Basically from my point of view, something like TUP [1] is needed so |
4 |
> that at dependency check time you only list files that need |
5 |
> attention (linking, loading, compiling etc) thus speeding up the |
6 |
> update processes for the Package Manager (portage). |
7 |
|
8 |
This is a misunderstanding (originally already from Michael). |
9 |
The issue is not at all about speed of portage - reading one or |
10 |
the other file takes the same amount of time. |
11 |
(And having a dependency graph of files would help concerning |
12 |
speed only in the very rare situation that no file involving |
13 |
your current package dependency tree does change.) |
14 |
|
15 |
The whole issue is only about the policy: If the dependency |
16 |
information of the installed package and of the current |
17 |
package differs - what is the "correct" information? |
18 |
|
19 |
For each choice, it is possible to give examples where |
20 |
the policy leads to a bad situation, so both, |
21 |
static deps as well as dynamic deps can break in |
22 |
certain situations. It is only a question which breakage |
23 |
you consider more severe and/or harder to recognize/fix |
24 |
by the user. |
25 |
|
26 |
Making more revbumps will increase the chance of |
27 |
no breakage - in case of static deps only for users |
28 |
who sync and update sufficiently frequently - |
29 |
of course at the cost of redundant recompiles. |
30 |
|
31 |
>> I guess at some point there were a bunch of devs who were messing with |
32 |
>> dependencies and not bothering to make revision bumps. This can cause |
33 |
>> users pain, so portage added a new option to ignore the cache and rescan |
34 |
>> every single relevant ebuild/eclass for sneaky dependency changes. This |
35 |
>> ensures that portage has the correct dependencies in its head while it's |
36 |
>> doing resolution, but is much slower. |
37 |
|
38 |
This is historically not correct. Dynamic deps had always been |
39 |
the only way portage treated dependencies - static deps have only |
40 |
been used as a fallback and (unfortunately) with the introduction |
41 |
of subslots. |
42 |
Once more: It is not about speed, but about: What *are* the |
43 |
"correct" dependencies? The ones referring to an historical tree |
44 |
which - especially if you did not update for a long time - |
45 |
might have almost nothing in common with the current tree |
46 |
(static deps), or the ones referring to current tree |
47 |
(dynamic deps)? |
48 |
|
49 |
With static deps, you will have a strange mixture of historical |
50 |
dependencies and current ones for the updates. |
51 |
With dynamic deps, the tree might not be appropriate for your |
52 |
installed packages. |
53 |
|
54 |
> There is no proper mechanism to accurately track all of these issue, |
55 |
> currently, or did I miss this point? |
56 |
|
57 |
There is no way to automatically decide correctly which of |
58 |
two differing informations should be used... |