RPM Community Forums

Mailing List Message of <rpm-devel>

Re: RPM installation ordering

From: Jeff Johnson <n3npq@mac.com>
Date: Mon 07 Jul 2008 - 16:35:59 CEST
Message-id: <4BD8FBD1-FCC0-4030-A492-9FFED6D5FD30@mac.com>

On Jul 7, 2008, at 5:45 AM, devzero2000 wrote:

> I agree with Jeff, but if you want a naive solution then, in my-rpm  
> SPEC
>
> Require(pre): vendor-provided
> Require(post): my-post
>

Careful ...

There are (at least 3) attached meanings to "pre" used in *.rpm  
packaging.

1) PreReq: <-> Requires:
     The tsort originally implemented in rpm was broken and needed
      a PreReq: hint (implemented as the RPMSENSE_PREREQ flag, now  
obsolete)
     in order to function correctly.

      All Requires: are fully honored, as if all dependency carried  
RPMSENSE_PREREQ,
      and so the PreReq: hint is no longer needed or useful.

2) Requires(pre):
     This is a context marker that narrows the scope of tsort  
relations. The context
      marker is in the flag RPMSENSE_SCRIPT_PRE, and was originally  
added to
      break a nasty glibc <-> bash dependency loop in the "inner  
circle" of dependency hell.

3) The mathematical term "prerequsite" defining how a topological  
sort algorithm functions.

All 3 of the above are very different, and should not be confused.

Meanwhile, AFAICT the desire is to retrofit an additional tsort  
relation into
a vendor package as in 3) above.

Since the vendor package (presumably) cannot be changed and is  
missing information, then
Requires(pre) will not help. In fact, a wider, rather than a  
narrower, scope is what is needed afaict,
so 2) likely won't work at all.

And 1) won't help either, since PreReq: and Requires: are synonyms,  
all Requires:
relations have the property that was originally marked with  
RPMSENSE_PREREQ.

But I still dunno why a prerequsite relation needs to be retrofitted  
into a vendor package ...

73 de Jeff
Received on Mon Jul 7 16:36:22 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.