Ciaran McCreesh <[EMAIL PROTECTED]> posted
[EMAIL PROTECTED], excerpted below, on  Sat, 19 Apr 2008
06:33:00 +0100:

> On Fri, 18 Apr 2008 22:27:21 -0700
> Donnie Berkholz <[EMAIL PROTECTED]> wrote:
>> My interpretation is pkg_* counts as runtime (I can imagine a package
>> wanting to run itself at this point), so packages in RDEPEND should be
>> usable at that point.
> 
> Which would be fine, except it makes the tree unusable.
> 
>> Really, it seems to be an additional type of dependency that neither
>> DEPEND or RDEPEND fully describe, and this DEPEND+RDEPEND idea isn't
>> quite capturing it either.
> 
> Yup, and for future EAPIs labels can fix this. But we have to have a
> sound solution for current EAPIs.

It seems to me that at least for current EAPIs, RDEPEND simply cannot be 
depended upon during pkg_*inst without breaking things.  I can't see a 
way around that.

About the least-bad of multiple bad solutions I can see for Donnie's 
conceivable run scenario would be to print a message in pkg_postinst 
telling the user to run emerge --config before running the program 
normally, maybe even going to the point of renaming the runtime and 
installing a fake that reminds folks to run emerge --config first, if 
it's critical enough.  (pkg_config would then kill the fake and rename 
the runtime back to its proper name.)

Now consider binary packages.  DEPEND can't be used as-is, which in the 
OR case would then mandate RDEPEND and again result in broken behavior 
due to circular dependencies, so that simply doesn't work.  That leaves 
the intersection of both DEPEND and RDEPEND sets as the only possible 
logically consistent resolution...

UNLESS we either (1) accept that binary package behavior simply can't be 
correctly defined under current EAPIs and declare it an indeterminate 
legacy exception, or (2) declare binary packages an exception that works 
by different rules, and then define them (somehow).  Either alternative 
would then leave somewhat more flexibility for the ordinary build case, 
presumably enough to reasonably accurately describe current behavior 
deterministically.  (I'll freely admit to not knowing enough about 
current tree behavior to pick the right option there.)

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

-- 
gentoo-dev@lists.gentoo.org mailing list

Reply via email to