Bug#512844: ffmpeg-debian breaks binary compatibility

Reinhard Tartler siretart at tauware.de
Sun Jan 25 09:40:32 UTC 2009

Jakub Wilk <ubanus at users.sf.net> writes:

> * Paul Gevers <paul at climbing.nl>, 2009-01-24, 16:03:
>>Maybe ffmpeg should conflict with old versions of the libraries, ie
>>Conflicts libavcodec51, libavcodec-unstripped-51 etc...
> That would be a sane work-around. However, the proper fix is to bump 
> libavutil soname, as its ABI have changed.

Well, yes and no.

I've talked to upstream about this yesterday, and the situation is more
complicated. Upstream follows ABI/API changes pretty closely, but only
for the "public" API. The idea is that all functions starting with
"ff_*" are strictly private and may be changed without notice. However
external API is kept private.

I've then asked why not write a linker script to hide the internal
symbols. This isn't possible, because libavcodec is allowed to use
internal symbols of libavutils. They are upstram and know what they are
doing. external programs like mplayer are not. *shrug*

anyway, this means that we cannot guarantee that it is possible to mix
around libav* packages from different snapshot dates. We therefore need
stricter dependencies in the ffmpeg packages. That's what this bug is
about. The other thing is mplayer referencing internal functions. This
has also been fixed upstream by renaming ff_gcd to av_gcd, read: making
it public. Problem solved upstream.

Reinhard Tartler, KeyID 945348A4

More information about the pkg-multimedia-maintainers mailing list