On Saturday 24 February 2007 13:17, Ciaran McCreesh wrote: > On Sat, 24 Feb 2007 13:09:40 +0900 Jason Stubbs <[EMAIL PROTECTED]> > | Okay, I must be missing something here. If package foo can work with > | either bar or baz equily as well but not both, why should it force an > | artificial preference? > > For consistency. Installing a package with identical USE flags should > give the same result on all systems. > > | Also, if packages should not specify dependencies based on what is > | installed, the semantics of || ( ) would need to be changed such that > | the first non-masked packages is always installed. > > No, || ( ) has legitimate use for switchable dependencies. For example, > if a package can use either curl or wget, and it can switch at runtime, > RDEPEND="|| ( curl wget )" is fine. Similarly, if a package needs > either tetex or ptex at compile time, DEPEND="|| ( tetex ptex )" is > correct. > > | The only reason I can see for the above is to be able to have > | non-broken binary packages. However, that can be addressed by > | replacing *DEPEND in binary packages with their resolved forms. > > If it affects binaries, it needs to be a USE flag.
So with your DEPEND="|| ( tetex ptex )" case, you're saying that it is valid because the choice of tetex or ptex doesn't affect the resultant binaries? Extrapolating that, specifying link dependencies within an || construct is flat out wrong? If so, it's way out of my domain so I can't really comment other than you haven't given a reason for this requirement. Having said that, I'll accept it if we're strictly talking in the EAPI-0 domain as there is no way for a package manager to guarantee a safe --depclean implmentation given that raw *DEPENDs are stored in the current installed package database. -- Jason Stubbs -- gentoo-dev@gentoo.org mailing list