[Pkg-mpd-maintainers] Bug#795014: mpd fails to start because of a symbol mismatch with libadplug-2.2.1.so.0

Helmut Grohne helmut at subdivi.de
Mon Aug 10 14:10:08 UTC 2015


Control: reassign -1 libadplug-2.2.1-0
Control: found -1 libadplug-2.2.1-0/2.2.1+dfsg3-0.2+b1
Control: retitle -1 libadplug-2.2.1-0 broke ABI in binNMU due to libstdc++6 transition
Control: affects -1 + mpd opencubicplayer

On Sun, Aug 09, 2015 at 04:36:51PM +0200, Xavier Guerrin wrote:
> After dist-upgrade, mpd does not start anymore in unstable; indeed, running
> /usr/bin/mpd yields:
>   /usr/bin/mpd: symbol lookup error: /usr/bin/mpd: undefined symbol:
> _ZN7CAdPlug7factoryERKSsP4CoplRK8CPlayersRK13CFileProvider
> 
> All DSOs required by mpd are present on the system:
>   $ LANG=C ldd /usr/bin/mpd | grep 'found'
>   $
> 
> After a short investigation, it appears the missing symbol is supposed to be
> found in /usr/lib/libadplug-2.2.1.so.0; alas, there is a symbol name mismatch:
>   * mpd requires _ZN7CAdPlug7factoryERKSsP4CoplRK8CPlayersRK13CFileProvider
>   * libadplug-2.2.1.so.0 provides
> _ZN7CAdPlug7factoryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP4CoplRK8CPlayersRK13CFileProvider
> 
> The latter statement can be checked using readelf:
>   $ readelf --wide --symbols /usr/lib/libadplug-2.2.1.so.0 | grep
> _ZN7CAdPlug7factory
>      358: 00000000000247d0   692 FUNC    GLOBAL DEFAULT   11
> _ZN7CAdPlug7factoryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP4CoplRK8CPlayersRK13CFileProvider
> 
> This behaviour was observed with packages:
>   * mpd: 0.19.10-1+b2
>   * libadplug-2.2.1-0: 2.2.1+dfsg3-0.2+b1
> 
> I am unsure whether the fix should occur in mpd or libadplug, so I reported
> this bug for mpd, as it is rendered unusable by the issue.

The bug is in libadplug. Example symbol differences:

-CAdPlugDatabase::load(std::string)
+CAdPlugDatabase::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)

libadplug-2.2.1-0 needs to be renamed and have its own transition.

Helmut



More information about the Pkg-mpd-maintainers mailing list