1 |
On Monday 14 March 2011 17:14:25 Willie Wong wrote: |
2 |
> Hi list, sorry for the nondescript title. Let me described what |
3 |
> happened. |
4 |
> |
5 |
> I ran `emerge --update --deep world' over the weekend which updated |
6 |
> app-text/poppler: |
7 |
> |
8 |
> Sat Mar 12 22:00:46 2011 >>> app-text/poppler-0.16.3 |
9 |
> |
10 |
> Today I found out that a whole bunch of packages got broken, and so I |
11 |
> ran `revdep-rebuild -p'. To my surprise, revdep-rebuild wants to |
12 |
> downgrade to app-text/poppler-0.14.5. That's odd, I thought. |
13 |
> |
14 |
> So I ran `emerge --pretend --oneshot --verbose --tree' against the |
15 |
> list of packages produced by revdep-rebuild, and it displays near the |
16 |
> bottom that poppler-0.14.5 is a dependency of luatex-0.65 which is a |
17 |
> dependency of texlive-core-2010-r1. Okay. So I thought that one of |
18 |
> those two packages have an explicit dependency on a lower version of |
19 |
> poppler. And I thought I want to file a bug about that. |
20 |
> |
21 |
> Digging into the ebuilds for luatex and texlive, I can't find any |
22 |
> reason why they would require poppler-0.14.5, and not 0.16.3. So after |
23 |
> puzzling about it for 20 minutes, I did the stupid thing, and tried |
24 |
> |
25 |
> `emerge --oneshot --pretend luatex texlive-core' |
26 |
> |
27 |
> and lo-and-behold, the poppler dependency does not appear! |
28 |
> |
29 |
> Then combing through the list of packages one-by-one, I finally found |
30 |
> (on the second-to-last package that I tried) that the culprit is |
31 |
> in fact python-poppler. |
32 |
> |
33 |
> ------------------------------------ |
34 |
> |
35 |
> Now, two questions: |
36 |
> |
37 |
> (a) Should this be considered a bug in portage? The presented |
38 |
> information from `emerge --pretend --tree' is misleading to which |
39 |
> package is actually causing the downgrade request. |
40 |
|
41 |
I don't think this is a bug in any meaningful sense of the word. It's a side- |
42 |
effect of having a large dependency graph: |
43 |
|
44 |
Many packages depend on poppler, so the dev has several choices: |
45 |
|
46 |
a. print the first one found. Due to the way such things (searching data trees |
47 |
in memory) work, this will usually be a different one each time the command is |
48 |
run |
49 |
b. print the last one found. This is a) upside-down with the same problem |
50 |
c. Print a random one found. Well, it is an option, but .... doh ;-) |
51 |
d. Print the whole damn lot. This has the especially nasty side effect of |
52 |
producing vast amounts of output with even vaster amounts of bug reports and, |
53 |
believe it or not, vaster numbers of pissed off users |
54 |
e. Determine (later) the actual version that will be installed then go back to |
55 |
the data tree, modify it in place, then print the output. |
56 |
|
57 |
e) sounds wonderful. I suggest you try implement it. You will rapidly discover |
58 |
why it is seldom implemented. |
59 |
|
60 |
Conclusion: This shit is hard. It's a marvellous way to make the most people |
61 |
the most unhappy in the shortest possible time. |
62 |
|
63 |
> (b) Is there a way to have found that python-poppler was the culprit |
64 |
> without running `emerge --pretend' on each of the list of 16 packages? |
65 |
|
66 |
Perhaps "emerge -e -t -p luatex texlive-core" ? |
67 |
|
68 |
p.s. What I wrote looks tongue-in-cheek. It isn't really. I have very similar |
69 |
issues with code I admin and maintain, with similar results. I too decided to |
70 |
take the lazy route out and try be right most of the time and screw it when it |
71 |
isn't perfect. |
72 |
|
73 |
-- |
74 |
alan dot mckinnon at gmail dot com |