On Mon, Jul 04, 2011 at 11:59:23PM +0200, Roman Zilka wrote:
> Roman Zilka (Mon, 4 Jul 2011 23:34:01 +0200):
> > Neil Bothwick (Mon, 4 Jul 2011 22:16:18 +0100):
> > > On Mon, 4 Jul 2011 22:48:44 +0200, Roman Zilka wrote:
> > > 
> > > > Not quite. This is how I'm thinking: if '-ep world' says virtual/pam
> > > > needs to be installed, then it either
> > > > * is in the world file, or
> > > > * is in the system set, or
> > > > * is a buildtime or runtime dependency (immediate or deep) of one of the
> > > > packages in the world set (i.e., world file and system set combined).
> > > 
> > > There's another possibility, that it is one of a number of packages that
> > > satisfy a particular dependency, the first listed one. If you have
> > > another package installed that fulfils this dependency, emerge -u world
> > > won't need to do anything, but with emerge -e world you are telling
> > > portage that the other package is not installed, so it picks the first
> > > dependency from the list.
> > 
> > I checked that - in this case, there are no alternatives.
> 
> Ah, I see. I'm sorry, I wasn't thinking enough. Yeah, virtual/pam may
> be one of a list. But if nothing else, I have openssh and openssh says:
> RDEPEND="pam? ( virtual/pam )
> No alternatives there. And I don't have virtual/pam, but do have
> openssh. So why does '-uDN world' not pull virtual/pam in?

My guess is that when virtual/pam was introduced, the openssh ebuild was
changed to depend on it without a rev bump. Then while upgrading emerge
will use the old ebuild of the installed openssh, and when you use
--emptytree it will use the new one in the portage tree.

You can test the theory by comparing the ebuild in portage with the one
in /var/db/pkg/net-misc/.


Henry

Reply via email to