I've intermittently spent my last two days trying to figure out a
weird bug on Entropy dependency resolution algorithm (which is
actually just a simple topological sorting out of a digraph) due to an
user reporting me a problem occurring during app-office/libreoffice
pkg_setup phase. The problem is actually two problems, but anyways, to
make it short (since it's not the topic here), bug #206024 is also a
reason why I've been hit by all this mess.

Entropy always tried to strictly follow PMS (bugs apart). Given the
same document, about PDEPEND it says something like this: there is no
guarantee that a PDEPEND gets installed at a certain, specified point
during the schedule, if not specifically listed as RDEPEND by some
package.
The problem here is that Portage enforces the same rule by trying to
schedule the PDEPEND "as soon as possible", which leads ebuild writers
to think to have gotten the deps order right.
In simple words, it doesn't seem that Portage itself follows PMS or
PMS is detailed enough.

Try to ask your fellow developers this question: what is a PDEPEND?
And you will get several different answers. The fact is, at least
among us, it's still unclear what a PDEPEND is and how it behaves,
also given the fact that other PMs strictly following the
specifications end up generating wrong merge schedules.
There are two main interpretations of what a PDEPEND is:
1. a way to fix circular dependecies (actually, it's wrong because
there is no guarantee on the scheduling)
2. a way to have some handy packages being pulled in at some point
(audacious plugins?)

Who is this poor little PDEPEND?
I think it's time to take action and fix the gray area around
PDEPENDs, or at least clarify the fact to us developers.

-- 
Fabio Erculiani

Reply via email to