A number of ebuilds do things like this:

    inherit foo

    VAR="${FOO_VAR}"

    src_compile()
    {
         emake blah=${VAR}
    }

where foo.eclass looks like this:

    foo_pkg_setup()
    {
        export FOO_VAR=baz
    }

and where VAR is usually one of the KV variables from linux-info.

This works with Portage as it is currently implemented because Portage
re-sources everything between every phase. However, it breaks with pure
environment-saving based ebuild implementations, including Paludis and
possibly Portage in the future (pure environment saving is the only way
to avoid the removing eclass problems). So, the question:

Is this something that has to work (at the expense of never allowing
eclass removal in the future), or is it a fluke and are ebuilds that
use it broken? An easy workaround is to move the ebuild global
variables into pkg_setup, and call the eclass_pkg_setup from within the
ebuild pkg_setup.

-- 
Ciaran McCreesh
Mail                                : ciaranm at ciaranm.org
Web                                 : http://ciaranm.org/
Paludis, the secure package manager : http://paludis.pioto.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to