On Sun, Dec 4, 2011 at 5:10 PM, Fabio Erculiani <lx...@gentoo.org> wrote:
> I haven't really understood what you mean with RDEPENDs being scheduled 
> "after".
> RDEPEND must be always scheduled before the pkg requiring it, changing
> this behaviour would have disruptive effects on all the PMS out there

There is only one PMS out there, unless you're counting versions (they
are cumulative so the latest approved one should be the one you use -
correct me if I'm wrong there).  PMS != package manager.

In this particular case the approved PMS says "In the pkg phases, at
least one of the following conditions must be met: any command
provided by a packaged listed in DEPEND is available; any command
provided by a packaged listed in RDEPEND is available."  Perhaps
somebody with a more twisted sense of logic than I can make some sense
out of that - to me it suggests that an ebuild can safely assume that
either the packages listed in DEPEND are available, or the packages
listed in RDEPEND are available, but not necessarily both (though you
could count on RDEPEND if you have DEPEND=RDEPEND set or are using an
EAPI that has this behavior).

I suspect that the PMS team has already noticed that since the current
non-approved PMS is a bit more clear.  It says (in a table) that any
of the pkg phases can assume that the RDEPENDs are there "(unless the
particular dependency results in a circular dependency, in which case
it may be installed later)."  I guess that means that pkg phases can't
assume that RDEPENDs are there after all.  Additionally pkg_config can
assume that RDEPEND and PDEPEND are present (with no caveats).  None
of the pkg phases can assume that anything in DEPEND is present
(obviously unless it is also in RDEPEND).

My sense is that none of the PMS versions really say quite what we
want the behavior to be - as to be truly compliant ebuilds would have
to require nothing outside of the base system in the pkg phases (other
than pkg_config) - then again, maybe we can live with that.  It
doesn't seem to add much value to say that RDEPEND /might/ be
available - the necessary conditional logic to take advantage of a
command that might or might not be present seems like a QA nightmare.
We should probably specify that ebuilds either can safely count on
RDEPEND, or not, in each of the phases.

(Disclaimer - I claim no special knowledge of the mechanics of your
favorite package manager - I'm simply reading the specs.)

Rich

Reply via email to