[Rpm-maint] Problems with %Requires(preun):

Scott Bambrough scottb at xandros.com
Tue Dec 11 19:01:02 UTC 2007


Pixel wrote:
> afaik rpm does not order package removal :-(
>   
Interesting.   The section on context marked dependencies in the 
snapshot version of Maximum RPM suggests it should.  See 
http://www.rpm.org/max-rpm-snapshot/s1-rpm-depend-manual-dependencies.html

Context Marked Dependencies

Recent versions of RPM support context marked dependencies. This is a 
special type of a dependency that applies only in a specified context. 
Using this feature, one can specify dependencies for pre- and 
post(un)install scriptlets, ie. the context of a dependency is the 
execution time of the specified scriptlet.

The syntax for specifying these dependencies is:

Requires(X): foo
             
Here, X can be one of pre, post, preun, or postun, which tells RPM that 
the package depends on package foo for running the corresponding %pre, 
%post, %preun, or %postun script.

In practice, RPM enforces the above dependencies until the specified 
script has been run, not at that time. In other words, it will allow 
erasing a dependency that was marked for eg. the %post script for an 
already installed package, but will not allow erasing one that is 
required for a %postun script for such a package. This is to reduce 
confusion; it would be somewhat odd if RPM told one to install a package 
in order to get another one erased.

Is their a disconnect between the documentation and the code, or how are 
context marked dependencies supposed to work (if at all).

Scott



More information about the Rpm-maint mailing list