1 |
Update: Sorry, I attached the wrong "output-prefix-withuse.txt" in the |
2 |
previous e-mail. It is attached to this e-mail. |
3 |
|
4 |
2009/5/20 Peter Waller <peter.waller@×××××.com> |
5 |
|
6 |
> Dear list, |
7 |
> |
8 |
> I hope this can be of use to you. I have written a few hundred lines of |
9 |
> python which can parse the dependency lines in the metadata cache. Now it is |
10 |
> possible to generate a big list of unsatisfied dependencies, to detect |
11 |
> packages which will not merge or run. I still haven't tuned the output so |
12 |
> that it is totally optimal, I don't think, but it is better than nothing. |
13 |
> |
14 |
> The program can be run in several ways, and the source still needs tweaking |
15 |
> to make it work differently. I have attached the output for a few different |
16 |
> scenarios. |
17 |
> |
18 |
> output-portage.txt : The run on portage. It detects 7 packages which it |
19 |
> thinks will not merge (under certain USE flag conditions). I did this to |
20 |
> show that the program produces no false-positives on a system we know should |
21 |
> be reasonably polished |
22 |
> output-prefix-nouse.txt : A run on prefix, ignoring any dependencies pulled |
23 |
> in by use flags. Reveals 40 missing packages which will probably prevent 32 |
24 |
> packages from merging (including metacity and nautilus) |
25 |
> output-prefix-withuse.txt : A run on prefix, looking at all possible use |
26 |
> flag combinations (ignoring those listed in use.mask. As darkside was saying |
27 |
> on IRC, this could be used to detect new use flags which should obviously go |
28 |
> in use.mask). This finds 219 packages which will probably not merge or run, |
29 |
> and 347 packages missing from prefix. |
30 |
> |
31 |
> I know grobian had some idea of making this run nightly (It's nice and fast |
32 |
> now, ~5 seconds with a warm disk cache, ~30 to run on the main portage |
33 |
> tree). I'm happy to help out however I can to get this happening, just let |
34 |
> me know what you need of it. |
35 |
> |
36 |
> I have various ideas of how it might be improved. |
37 |
> |
38 |
> * The only part of the dependency detection still missing is the OR-wise |
39 |
> dependencies. This should not affect many packages, but does mean that the |
40 |
> list is not quite complete. |
41 |
> * When a missing dependency is found, it would be pretty easy to go and |
42 |
> look at the graph of the required packages from portage, and generate a list |
43 |
> of packages which would need to be pulled in to fix it. |
44 |
> * Output could be prettier. I don't know exactly what is most useful yet |
45 |
> though. |
46 |
> |
47 |
> Please, let me know what you think. |
48 |
> |
49 |
> Cheers, |
50 |
> |
51 |
> - Pete |
52 |
> |