Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 127956

Summary: emerge --emptytree looks at the vdb for "||" dependencies
Product: Portage Development Reporter: Marien Zwart (RETIRED) <marienz>
Component: Core - DependenciesAssignee: Portage team <dev-portage>
Status: CONFIRMED ---    
Severity: normal CC: ccx, esigra, kingjon3377
Priority: High    
Version: 2.1   
Hardware: All   
OS: Linux   
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 144480    

Description Marien Zwart (RETIRED) gentoo-dev 2006-03-29 01:59:40 UTC
If you have a package called "foo" with a dependency like "|| ( bar baz )", have baz installed, and run "emerge -evpt world" or "emerge -evpt foo", emerge will merge baz to fulfill the dependency, not bar. This is rather confusing at best and probably a bug. Place the vdb entry is picked up is dep_zapdeps, but I have no idea how to fix it.
Comment 1 Marius Mauch (RETIRED) gentoo-dev 2006-03-29 03:58:27 UTC
Not a bug necessarily, more a documentation mismatch. Generally I think both behaviors are wanted, and most people prefer the current behavior I think (for rebuilding their systems).
Therefore it should probably be an emerge option (--emptytree and --emptytree-ignore-vdb or something like that).
Comment 2 Carsten Lohrke (RETIRED) gentoo-dev 2006-03-29 06:39:06 UTC
Not a bug. Of course Portage should not overrule installed dependencies. There is no preference in || unless none of the possible dependencies is installed and Portage has to chose one. And changing this would e.g. have the side effect that someone who prefers the monolithic KDE doing emerge -e would face a lot of blockers, because Portage would try to install the split ebuilds, which have to block their monolithic counterparts.
Comment 3 Zac Medico gentoo-dev 2006-08-19 17:57:38 UTC
I think --emptytree (and any variations on the concept) actually belong in the domain of package sets.
Comment 4 Marius Mauch (RETIRED) gentoo-dev 2008-03-02 15:55:08 UTC
(In reply to comment #3)
> I think --emptytree (and any variations on the concept) actually belong in the
> domain of package sets.

Depends on your intention. If you want to rebuild your system then sure, `emerge --depclean; emerge --oneshot @everything` is a useful replacement for `emerge -e world`. But including --emtpytree in general in packagesets, while possible, doesn't strike me as a good idea, as it would effectively duplicate the dep resolver.
This is simply a preference issue if vdb should be ignored completely or not (though implementation is likely more complex than adding a new option)