RPM Community Forums

Mailing List Message of <rpm-devel>

Re: Possiblity to assert just R instead of [E:]V-R in a dependency

From: Jeff Johnson <n3npq@mac.com>
Date: Fri 28 Dec 2007 - 15:49:50 CET
Message-Id: <FC66BFB5-9C6C-4881-AE4A-48E01E10F1C9@mac.com>

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
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.