1 |
On Sun, Dec 4, 2011 at 5:10 PM, Fabio Erculiani <lxnay@g.o> wrote: |
2 |
> I haven't really understood what you mean with RDEPENDs being scheduled "after". |
3 |
> RDEPEND must be always scheduled before the pkg requiring it, changing |
4 |
> this behaviour would have disruptive effects on all the PMS out there |
5 |
|
6 |
There is only one PMS out there, unless you're counting versions (they |
7 |
are cumulative so the latest approved one should be the one you use - |
8 |
correct me if I'm wrong there). PMS != package manager. |
9 |
|
10 |
In this particular case the approved PMS says "In the pkg phases, at |
11 |
least one of the following conditions must be met: any command |
12 |
provided by a packaged listed in DEPEND is available; any command |
13 |
provided by a packaged listed in RDEPEND is available." Perhaps |
14 |
somebody with a more twisted sense of logic than I can make some sense |
15 |
out of that - to me it suggests that an ebuild can safely assume that |
16 |
either the packages listed in DEPEND are available, or the packages |
17 |
listed in RDEPEND are available, but not necessarily both (though you |
18 |
could count on RDEPEND if you have DEPEND=RDEPEND set or are using an |
19 |
EAPI that has this behavior). |
20 |
|
21 |
I suspect that the PMS team has already noticed that since the current |
22 |
non-approved PMS is a bit more clear. It says (in a table) that any |
23 |
of the pkg phases can assume that the RDEPENDs are there "(unless the |
24 |
particular dependency results in a circular dependency, in which case |
25 |
it may be installed later)." I guess that means that pkg phases can't |
26 |
assume that RDEPENDs are there after all. Additionally pkg_config can |
27 |
assume that RDEPEND and PDEPEND are present (with no caveats). None |
28 |
of the pkg phases can assume that anything in DEPEND is present |
29 |
(obviously unless it is also in RDEPEND). |
30 |
|
31 |
My sense is that none of the PMS versions really say quite what we |
32 |
want the behavior to be - as to be truly compliant ebuilds would have |
33 |
to require nothing outside of the base system in the pkg phases (other |
34 |
than pkg_config) - then again, maybe we can live with that. It |
35 |
doesn't seem to add much value to say that RDEPEND /might/ be |
36 |
available - the necessary conditional logic to take advantage of a |
37 |
command that might or might not be present seems like a QA nightmare. |
38 |
We should probably specify that ebuilds either can safely count on |
39 |
RDEPEND, or not, in each of the phases. |
40 |
|
41 |
(Disclaimer - I claim no special knowledge of the mechanics of your |
42 |
favorite package manager - I'm simply reading the specs.) |
43 |
|
44 |
Rich |