[Rpm-maint] Enforce install/erase order without adding a Requires:

Panu Matilainen pmatilai at laiskiainen.org
Fri Nov 26 08:22:56 UTC 2010

On Thu, 25 Nov 2010, R P Herrold wrote:

> On Thu, 25 Nov 2010, FlorianFesti wrote:
>> There have been various issues with packages that demand a special order of 
>> installation but do not want to Require the package to be installed first. 
>> So a tag that is like Requires: during ordering but ignored otherwise is 
>> needed.
>> "OrderWithRequires:" It is not really beautiful ...
> The phrase 'do not want to Require the package' says to me:
> 	Suggests:
> -or-
> 	Enhances:
> which are basically saying a non-mandatory: Requires:

See Florian's reply - Suggests/Enhances and friends have attached fluffy 
semantics any depsolver is free to interpret as they wish. The ordering 
hints have clear semantics: If (and only if) the associated dependencies 
are present in a transaction, use this additional information for 
ordering. Depsolvers should not do anything at all with them, ever.

> It is my strong recollection that RPM previously had soft Requires.  The 
> rpm-list shows this in the thread from Peters around 10 Jan 2006

Rpm.org releases never had soft requires. The tags exist but they 
haven't been used (so far).

> cAos and Mezzanine used it
> I think it was in part a response to:
> 	https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=114338
> What Trac or Bug number is driving this 'do not want to Require the package' 
> 'functional requirement' so that I may review it, and try to understand why 
> well known [from prior RPM experience and from Debian practice] (and not so 
> ugly formulations) such as Suggests or Enhances are not preferred?

The request for this is scattered over mailing lists, private 
communication and RH bugzilla over time, I don't have a direct reference 
at hand. But a short summary of the case:

Kernel initrd creation (mkinitrd, dracut) mechanisms have special needs: 
they can have support for arbitrary number of rare, special hardware 
packeges that shouldn't be dragged in on every installation. Yet if those 
optional packages are installed, they should be installed before the 
initrd generation to ensure latest versions (be it bug/security fix or 
just an enhancement) get bundled up in the initrd on updates. Requires are 
currently needed to ensure the ordering, which is bad. Suggests/Recommends 
etc are not at all optimal here either as their behavior depends on 
depsolver policy. Also while anybody can take advantage of extra features 
supported through optional packages on regular software (so it makes sense 
to at least show the soft dependencies to all users), hardware support is 
different: if you dont have a piece of hardware then you dont and there's 
no point suggesting them to everybody.

 	- Panu -

More information about the Rpm-maint mailing list