Re: Enforcing dependencies between RPMs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2009-12-30 at 15:05 +0200, Erez Zilber wrote:
> Hi,
> 
> What is the convention for problems like the following?
> 
> I have 2 projects ('A' & 'B'). 'B' is compiled against symbols from
> 'A'. I have a rpm for 'A' and another rpm for 'B'.
> 
> Now, 'A' & 'B' are installed. I change some symbols in 'A', recreate
> A.rpm and install the new version of 'A'. When I run 'B' (which was
> compiled against the old version of 'A'), it fails because 'A' has
> changed.
> 
> The question is: how can I enforce that with rpm? What is the
> convention for such cases?

 In rough order of "goodness", IMO:

1. Use symbol versions, and let rpmbuild's find_provides/find_requires
do all the work.

2. Use SO name versions (and always change the major version when you
change/remove symbols), and let rpmbuild do most of the work.

3. Use an explicit provide/require for the ABI. Eg.

 # Package A
 Provides: pkgA-ABI = 1.1
 # Package B
 Requires: pkgA-ABI >= 1.1
 Requires: pkgA-ABI < 2.0

4. Use conflicts in pkgA on versions of pkgB that don't work with this
ABI. Eg.

 # Package A
 Conflicts: pkgB < 1.6.8

5. Require explicit versions of pkgA from pkgB. This is often bad
because you'll be forced to update pkgB just to update the requires,
when you change pkgA (you can alleviate this somewhat by not requiring a
specific release, just the version).

-- 
James Antill - james@xxxxxxxxxxxxxxxxx
http://yum.baseurl.org/wiki/releases
http://yum.baseurl.org/wiki/whatsnew/3.2.26
http://yum.baseurl.org/wiki/YumMultipleMachineCaching
_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxxxxx
http://lists.rpm.org/mailman/listinfo/rpm-list

[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux