Library versioning vs RPM versioning

Linus Walleij triad at df.lth.se
Wed Oct 19 06:34:03 UTC 2005


Need to get this clear, out of curiosity...

If say, foo-1.0-1.rpm provides a library as /usr/lib/libfoo.so.1 and then 
we say foo-1.1-1.rpm is released providing /usr/lib/libfoo.so.2.

Then, if there is one package bar-1.0.rpm that needs 
/usr/lib/libfoo.so.1 (and has Requires: foo = 1.0 in its spec) and 
another baz-1.2.rpm that needs /usr/lib/libfoo.so.2 (and has Requires foo 
= 1.1 in its spec), what happens from a user point of view?

As I understand it, as long as no files collide you could have both 
foo-1.0-1 and foo-1.1-1 installed and satisfy both dependencies. So 
using command-line rpm that's all pretty easy. But will yum do the same? 
What yum should then do when you issue "yum install baz" with "bar" 
already installled is install the new one and keep the old one as well, 
since it is still being used.

Am I correct? I haven't been able to find any reasoning for these 
scenarios in the docs that I've read yet... If you know library versioning 
vs RPM philosophy then spill the beans, please.

(And this is a strong argument for keeping old versions of packages in the 
repository, then, atleast stuff providing libraries, since someone who 
want to install both "bar" and "baz" will need two versions.)

Linus




More information about the fedora-extras-list mailing list