On Tue, 18 Dec 2007 09:53:50 +0000 (UTC)
Duncan <[EMAIL PROTECTED]> wrote:
> Put directly, what is stopping us from actually allowing DIFFERENT
> pre- source and post-source EAPI values?

That's effectively what happens when a package manager sources a
current EAPI=1 in a variable ebuild.

> Here's the thinking.  In the various PM discussions I've seen, it
> hasn't been unusual to see remarks about (previously) waiting for
> support in stable, and now about EAPI incompatibility, simply due
> to /parsing/ the ebuild.  This could offer a way around the problem,
> by separating initial parsing/dependency EAPI and actual build/merge
> EAPI.  The pre-source EAPI could state the EAPI support required to
> properly /source/parse/ the ebuild and generate the dependency tree,
> etc, while allowing the post- source EAPI to be different then allows
> additional flexibility in actual build/merge required EAPI.
> 
> We'd then have two choices in terms of declaring pre-source support
> (as opposed to post-source, full merge support).

There's no advantage to doing so. If you don't support the EAPI, the
only thing you can do is say that you don't support the EAPI.

> 1) Simply that a compatible pre-source EAPI shouldn't blow up if
> sourced while calculating dependencies or the like -- the ebuild may
> be safely sourced and it shouldn't negatively affect the dependency
> tree for unrelated packages, but dependencies for that specific
> package may or may not be correct.

But all you get is the knowledge that the ebuild uses an unsupported
EAPI. Which you know already.

I should state this explicitly:

If an ebuild's EAPI isn't recognised by the package manager, the
package manager can't and mustn't "sort of" work with that ebuild;
there is no such thing as a "sort of supported" EAPI. The package
manager can either ignore the ebuild entirely or display it in some kind
of super fancy "masked due to EAPI" way -- and if it does the latter,
the *only* information the package manager has about the ebuild is that
its EAPI is unsupported. The package manager can't guess "ooh, well it
sets SLOT, so I can assume that SLOT means what I think it does" -- a
future EAPI might do something crazy like say that "if SLOT=dynamic, the
speshul pkg_slot function is used". The package manager can't even
assume that it knows what the unsupported EAPI's name really is or that
it knows what the unsupported package's version is.

> 2) That a compatible pre-source EAPI package, when sourced, should
> allow generation of a reasonably reliable dependency tree for the
> package in question, presumably including a PM upgrade as part of
> that dependency tree.

EAPIs aren't to specify the dependency tree.

There's the added problem that it breaks the concept of metadata cache.
That gets hairy.

> OK, so it's off the wall, but tell me, is it useful and
> implementable, or just stupid?

It's implementable. It would just be of no use.

-- 
Ciaran McCreesh

Attachment: signature.asc
Description: PGP signature

Reply via email to