On Thu, 2012-04-05 at 20:21 +0200, drago01 wrote:
On Thu, Apr 5, 2012 at 8:03 PM, Richard W.M. Jones
<rjones(a)redhat.com> wrote:
> Today when using F17 Alpha, I ran qemu and got an error which was
> something like:
>
> qemu-kvm: undefined symbol usbredirhost_foo
>
> (I don't recall the precise symbol). This was just because that
> version of qemu was compiled against a later version of
> libusbredirhost.so (but one with the same soname), and updating
> libusbredirhost.so fixed the problem.
>
> The 'qemu' package has a bug, of sorts: the maintainer should have
> added a specific Requires line:
>
> Requires: usbredir >= <some version>
>
> However, instead of pushing this problem on packagers, maybe RPM
> should resolve this by encoding the (admittedly long) list of symbols
> used by a binary?
Well the bug here is that usbredir changed ABI without bumping the soname.
This isn't a backwards-incompatible change, as I understand it. It looks
like they added a feature to the ABI and qemu started relying on it. So
it really is just a case of the qemu package not properly identifying
its dependency.
A library only needs to bump it's soname if it changes or removes a
public function. Adding a new one is generally fine.