Gentoo Logo
Gentoo Spaceship

Installation:
Gentoo Handbook
Installation Docs

Documentation:
Home
Listing
About Gentoo
Philosophy
Social Contract

Resources:
Bug Tracker
Developer List
Discussion Forums
Gentoo BitTorrents
Gentoo Linux Enhancement Proposals
IRC Channels
Mailing Lists
Mirrors
Name and Logo Guidelines
Online Package Database
Security Announcements
Staffing Needs
Supporting Vendors
View our CVS

Graphics:
Logos and themes
Icons
ScreenShots

Miscellaneous Resources:
Gentoo Linux Store
Gentoo-hosted projects
IBM dW/Intel article archive




List Archive: gentoo-dev
Navigation:
Lists: gentoo-dev: < Prev By Thread Next > < Prev By Date Next >
Headers:
To: gentoo-dev@g.o
From: Ciaran McCreesh <ciaran.mccreesh@...>
Subject: Re: Ideas for a (fast) EAPI=3
Date: Sun, 8 Mar 2009 08:38:46 +0000
On Sun, 08 Mar 2009 00:08:37 -0800
Josh Saddler <nightmorph@g.o> wrote:
> Is there a reason why we should ram through a new EAPI for something
> that *looks* like another "Paludis supports this so let's make it a
> Portage standard" proposal? Is there some kind of time deadline here
> that you all want?

If we were sticking through "things Paludis has that're useful", the
list would be an awful lot longer... And not everything on that list is
even in Paludis... But hey, some things never go out of fashion.

A few things on the list are required pretty soon. Bug 249166 and
various existing screwups in the tree suggest that [use(+)] (or
whatever syntax is decided upon) is going to crop up fairly frequently.
And certain people are reluctant to nuke their prepalldocs calls
despite Council decisions... I think the rest are just there because
they're useful and easy.

> Also, why the bannination of || ( foo? (.).) -- how is it error prone,
> exactly.

Last time I checked, every single use of foo? as a direct child of ||
in the tree was wrong, as were the Portage docs. Let's say you have the
following:

    DEPEND="|| (
        foo? ( cat/foo )
        bar? ( cat/bar )
        cat/baz
    )"

Then this is wrong:

    if use foo ; then
        myconf="--enable-foo"
    elif use bar ; then
        myconf="--enable-bar"
    else
        myconf="--enable-baz
    fi

Here's why:

Say the user already has baz installed, and has USE="foo". The package
manager will see that baz is already installed, and as per the rules
for || will not look at the foo or bar deps. So if the user doesn't
have foo installed, the --enable-foo will be wrong.

So the 'correct' code would have to be something like this:

    if use foo && has_version cat/foo ; then
        myconf="--enable-foo"
    elif use bar && has_version cat/bar ; then
        myconf="--enable-bar"
    else
        myconf="--enable-baz
    fi

Except this is *still* a mess, because a user who has USE="foo bar" is
going to end up with a differently configured package depending upon
what he happens to have installed up-front, which is something that's
not supposed to happen.

-- 
Ciaran McCreesh
Attachment:
signature.asc (PGP signature)
Replies:
Re: Ideas for a (fast) EAPI=3
-- Ulrich Mueller
References:
Ideas for a (fast) EAPI=3
-- Tiziano Müller
Re: Ideas for a (fast) EAPI=3
-- Josh Saddler
Navigation:
Lists: gentoo-dev: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
Re: Ideas for a (fast) EAPI=3
Next by thread:
Re: Ideas for a (fast) EAPI=3
Previous by date:
Re: Ideas for a (fast) EAPI=3
Next by date:
Re: Ideas for a (fast) EAPI=3


Updated Jun 17, 2009

Donate to support our development efforts.

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

php|architect

php|architect

Copyright 2001-2007 Gentoo Foundation, Inc. Questions, Comments? Email www@gentoo.org.