Gentoo Archives: gentoo-user

From: Roman Zilka <zilka@×××××××.cz>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Strangeness in dep calculation
Date: Mon, 04 Jul 2011 22:47:57
Message-Id: 20110705004631.7aeec134.zilka@fi.muni.cz
In Reply to: Re: [gentoo-user] Strangeness in dep calculation by Roman Zilka
1 Roman Zilka (Tue, 5 Jul 2011 00:36:21 +0200):
2 > Henry Gebhardt (Tue, 5 Jul 2011 00:21:22 +0200):
3 > > On Mon, Jul 04, 2011 at 11:59:23PM +0200, Roman Zilka wrote:
4 > > > Roman Zilka (Mon, 4 Jul 2011 23:34:01 +0200):
5 > > > > Neil Bothwick (Mon, 4 Jul 2011 22:16:18 +0100):
6 > > > > > On Mon, 4 Jul 2011 22:48:44 +0200, Roman Zilka wrote:
7 > > > > >
8 > > > > > > Not quite. This is how I'm thinking: if '-ep world' says virtual/pam
9 > > > > > > needs to be installed, then it either
10 > > > > > > * is in the world file, or
11 > > > > > > * is in the system set, or
12 > > > > > > * is a buildtime or runtime dependency (immediate or deep) of one of the
13 > > > > > > packages in the world set (i.e., world file and system set combined).
14 > > > > >
15 > > > > > There's another possibility, that it is one of a number of packages that
16 > > > > > satisfy a particular dependency, the first listed one. If you have
17 > > > > > another package installed that fulfils this dependency, emerge -u world
18 > > > > > won't need to do anything, but with emerge -e world you are telling
19 > > > > > portage that the other package is not installed, so it picks the first
20 > > > > > dependency from the list.
21 > > > >
22 > > > > I checked that - in this case, there are no alternatives.
23 > > >
24 > > > Ah, I see. I'm sorry, I wasn't thinking enough. Yeah, virtual/pam may
25 > > > be one of a list. But if nothing else, I have openssh and openssh says:
26 > > > RDEPEND="pam? ( virtual/pam )
27 > > > No alternatives there. And I don't have virtual/pam, but do have
28 > > > openssh. So why does '-uDN world' not pull virtual/pam in?
29 > >
30 > > My guess is that when virtual/pam was introduced, the openssh ebuild was
31 > > changed to depend on it without a rev bump. Then while upgrading emerge
32 > > will use the old ebuild of the installed openssh, and when you use
33 > > --emptytree it will use the new one in the portage tree.
34 > >
35 > > You can test the theory by comparing the ebuild in portage with the one
36 > > in /var/db/pkg/net-misc/.
37 >
38 > I was expecting to find this to be the cause, because I absolutely
39 > didn't think of it and it sounds likely.
40 > But /var/db/pkg/net-misc/openssh-5.8_p1-r1/RDEPEND requires virtual/pam
41 > too.
42
43 Furthermore, FWIW, I tried the following.
44 # USE="-pam" emerge -v1 openssh
45 // indicated the change in the pam USE flag and rebuilt openssh
46 # emerge -pv openssh
47 [ebuild R ] net-misc/openssh-5.8_p1-r1 USE="X hpn ldap pam* -X509 -kerberos -libedit (-selinux) -skey -static -tcpd" 0 kB
48 # emerge -vuD --changed-use --with-bdeps y world
49 [ebuild R ] net-misc/openssh-5.8_p1-r1 USE="X hpn ldap pam* -X509 -kerberos -libedit (-selinux) -skey -static -tcpd" 0 kB
50
51 No signs of virtual/pam.
52
53 -rz