Gentoo Archives: gentoo-user

From: Alan McKinnon <alan.mckinnon@×××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Simplify finding the package?
Date: Mon, 14 Mar 2011 22:17:15
Message-Id: 1507774.xSeLGWO1TA@nazgul
In Reply to: [gentoo-user] Simplify finding the package? by Willie Wong
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