On Friday 23 February 2007, Kevin F. Quinn wrote:
> On Thu, 22 Feb 2007 19:08:48 +0000
>
> Ciaran McCreesh <[EMAIL PROTECTED]> wrote:
> > The example given in ebuild(5) is:
> >     || (
> >
> >         sdl? ( media-libs/libsdl )
> >         svga? ( media-libs/svgalib )
> >         opengl? ( virtual/opengl )
> >         ggi? ( media-libs/libggi )
> >         virtual/x
> >     )
>
> Took me a while to figure out why anyone would want to write that; the
> key is that ebuild(5) says only one of the conditions is satisfied;
> i.e. even if all the dependencies are present on the system, the
> package will build only against the first matching dependency.
>
> The way I see it, the ebuild has to cater for the dynamic situation
> anyway, for example doing something like:
>
>     src_configure() {
>         use sdl &&
>         has_version media-libs/libsdl &&
>         vid_conf="--enable sdl" ||
>             use svga &&
>             has_version media-libs/svgalib &&
>             vid_conf="--enable svga" ||
>                 use opengl &&
>                 has_version virtual/opengl &&
>                 vid_conf="--enable opengl" ||
>                     use ggi &&
>                     has_version media-libs/libggi &&
>                     vid_conf="--enable ggi" ||
>                         vid_conf="--enable x11"
>         ...
>         econf ${vid_conf} ...
>     }
>
> So the dependency could be re-written as:
>
>      sdl? ( media-libs/libsdl )
>      !sdl? ( svga? ( media-libs/svgalib )
>              !svga? ( opengl? ( virtual/opengl )
>                       !opengl? ( ggi? ( media-libs/libggi )
>                                  !ggi? ( virtual/x ) ) ) )
>
> and you have the same result, which means the originally quoted syntax
> is redundant.  The only advantage it has is that it looks a little bit
> prettier - but I'd argue the logic is clearer in the re-written version.
>
> I guess the question remains, though - should that syntax be in EAPI=0
> or not...

It is only really acceptable for buildtime only dependencies as after the 
build phase nothing is actually different.

Paul

-- 
Paul de Vrieze
Gentoo Developer
Mail: [EMAIL PROTECTED]
Homepage: http://www.devrieze.net

Attachment: pgpV8W7nFbHhf.pgp
Description: PGP signature

Reply via email to