Fw: Re: JACK upgrade is ABI/API-incompatible

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

 



Thought the examples in this message might be of general interest
to other Fedora packagers, too...

[...]

Begin forwarded message:

From: Michael Schwendt
Subject: Re: JACK upgrade is ABI/API-incompatible

> > No need to use rawhide. "yum install rpmdevtools" with older Fedora
> > works, too. Tools like rpmsodiff work on RPM package files. 
>
> Do I understand correctly the process? I need to do:
> - build on any Fedora (f.e. fc 7) new jack library
> - install tools from above 
> - run tools on binary rpm

Yes. You build the upgrade rpms for your dist of choice, then compare the
previous rpms with the new rpms.

Examples:

$ rpmsoname jack-audio-connection-kit-0.103.0-5.fc9.i386.rpm 
/usr/lib/libjack.so.0.0.23      libjack.so.0

$ rpmsoname jack-audio-connection-kit-0.109.0-1.fc9.i386.rpm 
/usr/lib/libjack.so.0.0.28      libjack.so.0

Library SONAME hasn't changed, but in this case that is misleading,
because:

$ rpmsodiff jack-audio-connection-kit-0.103.0-5.fc9.i386.rpm jack-audio-connection-kit-0.109.0-1.fc9.i386.rpm
[...]
        2 symbols removed
T jack_port_lock
T jack_port_unlock
[...]
        11 symbols added
[...]

The two removed symbols break dependencies at run-time and at build-time.
Both the ABI and the API of the library have changed.

For the alternative abicheck tool you would install the built upgrade rpms,
then check binaries that are linked against the library:

$ rpm -q jack-audio-connection-kit
jack-audio-connection-kit-0.103.0-4.fc8
$ rpm -U jack-audio-connection-kit-0.109.0-1.fc8.i386.rpm 

$ abicheck /usr/bin/audacity 
[...]
/usr/bin/audacity: UNBOUND_SYMBOLS: 2 (run ldd -r on binary for more info)

$ ldd -r /usr/bin/audacity|grep undef
undefined symbol: jack_port_lock        (/usr/bin/audacity)
undefined symbol: jack_port_unlock      (/usr/bin/audacity)

$ abicheck /usr/lib/libportaudio.so.2
[...]
/usr/lib/libportaudio.so.2: UNBOUND_SYMBOLS: 2 (run ldd -r on binary for more info)

$ ldd -r /usr/lib/libportaudio.so.2|grep undef
undefined symbol: jack_port_lock        (/usr/lib/libportaudio.so.2)
undefined symbol: jack_port_unlock      (/usr/lib/libportaudio.so.2)

-- 
Michael Schwendt <mschwendt@xxxxxxxxxxxxxxxxx>
Fedora release 8 (Werewolf) - Linux 2.6.23.15-137.fc8
loadavg: 1.06 1.23 1.25

-- 
fedora-devel-list mailing list
fedora-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-devel-list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux