[Fedora-packaging] Allowing only one package to provide a virtual capability

Paul Howarth paul at city-fan.org
Wed Apr 29 08:48:58 UTC 2009


On Tue, 28 Apr 2009 17:27:25 -0400
"Alan Evans" <alan.evans at secure-24.com> wrote:

> I am sorry if this is the wrong place but it seems that the rpm-list
> does not exist any more and this list looks to be the best fit
> otherwise.
> 
> I am trying to create a few packages that all provide a virtual
> capability but would like to allow only one of these packages to be
> installed at a time.  Has to be compatible with RPM 4.2 and greater.
> (RHEL4 and RHEL5)
> 
> <snip>
> Name: package-a
> Provides: package-a config(package)
> </snip>
> 
> <snip>
> Name: package-b
> Provides: package-b config(package)
> </snip>
> 
> <snip>
> Name: package-c
> Provides: package-c config(package)
> </snip>
> 
> I could obviously add Conflicts: package-b package-c to package
> package-a and so on, but every time I add a new package-X I have to
> manually go through my spec files and update the Conflicts tags.
> Again I suppose I could script the update but it seems less elegant.
> 
> I tried:
> <snip>
> Name: package-a
> Provides: package-a config(package)
> Conflicts: config(package)
> </snip>
> 
> But the result is:
> config(package) conflicts with package-a-1.1-1.svn20090428.noarch
> 
> I thought I saw something like this in another list, will post link
> if I can find it.  Where the goal was to only allow one package that
> provides a particular virtual capability.
> 
> Anyone know how to accomplish this or if this is the wrong list can
> you direct me to a better resource?

Not the answer you're looking for but perhaps you could use
"alternatives" to support parallel installation of all of your packages
but only enabling one to be "active" at any one time?

This is for instance how the various MTAs (sendmail, postfix, exim
etc.) work.

Paul.




More information about the Fedora-packaging mailing list