The "old" foo? ( cat/pkg1 ) : ( cat/pkg2 ) syntax cannot safely be deprecated yet, as the implementation of the replacement syntax || ( foo? ( cat/pkg1 ) cat/pkg2 ) is not semantically identical. Example can be found in dev-util/eclipse-sdk-2.1.3, where I currently have: gtk? ( >=x11-libs/gtk+-2.4 ) : ( kde? ( kde-base/kde x11-libs/openmotif ) : ( motif? ( x11-libs/openmotif ) : ( >=x11-libs/gtk+-2.4 ) ) ) Which according to the manual should be the same as: || ( gtk? ( >=x11-libs/gtk+-2.4 ) kde? ( kde-base/kde x11-libs/openmotif ) motif? ( x11-libs/openmotif ) >=x11-libs/gtk+-2.4 ) However, on my machine, running portage-2.0.50-r1, they are not. If I specify both kde and gtk with the latter syntax, the gtk dependencies will not be installed, whereas they will be preferred in the first case. The funny thing is that I have all deps already installed for the kde case, but I don't have gtk+-2.4. If I add a non-installed dep in the kde case, it will suddenly prefer the gtk case, as I want. Apparently, portage will first select the option that results in the fewest merges, then it will select in order of appearance in the || () list. Shouldn't it be other way around?
gtk? ( >=x11-libs/gtk+-2.4 ) !gtk? ( kde? ( kde-base/kde x11-libs/openmotif ) !kde? ( ... ) ) although the || ( ) should have worked ...
still valid ?
This syntax doesn't appear in any ebuilds in portage at this time.
Nuking this.