On Dec 28, 2007, at 9:26 AM, Ralf S. Engelschall wrote:
>
> Yes, that's why I really seek for a solution which can be activated
> per
> dependency check only. The "release(N) >= R" would be such a thing, I
> think.
Ah, got it. I thought you were looking for an all-OpenPKG distro
solution.
Adding a release(N) name space is a perfectly obvious solution
using a getter access method and usual strcmp-like comparison
overloaded into existing rpm dependencies.
The subtly is that there may be multiple N installed with different
R, and
it may not be clear what "package" needs to be accessed to compare R.
So you also need a compound statement to insure that you have exactly
the package you wish to compare against.
rpm already permits A as a compound as in
Requires: N.A = E:V-R
A general namespace form for (at least) the important tags like NEVRAO
might look like (I use XXX to designate "package" item and avoid
confusions)
Requires: Release(XXX) = "R"
with generalization to the compounds
Requires: Name(XXX).Arch(XXX).Release(XXX) = "N A R"
The tricky part is that the elements accessed by the getters need
to be loaded by rpmdsNew() so that thousands of added package
headers don't need to be present in memory.
73 de Jeff
Received on Fri Dec 28 15:50:06 2007