A Mennucc <[EMAIL PROTECTED]> writes:

>> So far, I'm not aware of any regressions
>> yet. I am aware that an updated ffmpeg could introduce regression.
>> Therefore I rely that Sam will bump the SONAME of the libraries when he
>> updates an incompatible version of ffmpeg in debian. 
>
> (disclaimer: I am not expert of SONAME details, so please bear any error)
>
> there may be a misunderstanding here
>
> AFAIU  the whole point that is asked by
> Aurélien GÉRÔME  and Moritz Muehlenhoff
>   is that there should be less copies of ffmpeg around

Which I also think is a good idea, since this way, we share bugs and
security issues, which can be fixed in a centralized way.

> I try to clarify things: currently
> $ objdump -p /usr/lib/libavcodec.so.0d.51.11.0 | grep SONAME
>   SONAME      libavcodec.so.0d

Let's go through a potential ffmpeg update in detail:

Sam prepares a new ffmpeg package. There are basically 3 possibilities:

 a) the update doesn't change anything at the (exposed) interface to
    applications
 b) the update introduces additional symbols, and doesn't change
    semantics
 c) the update removes symbols or changes semantics to existing
    functions.

a) isn't critical at all and can be uploaded without any
coordination. Most updates to packaging or configure options fall to
this category.

b) isn't too critical as well. You just need to make sure that an
mplayer binary which is built against this update isn't used with an
older ffmpeg binary package. This is done using the debian shlibs system
in an (semi) automatic way. In this case, Sam needs to update the
dh_makeshlibs call in his debian/rules, and the dh_shlibdeps of
debian/rules of the mplayer package will generate correct versioned
dependencies.

c) is critical, because binary packages which got built against the
current package NEED to be rebuilt against the updated package. In this
case (and only here) upstream (well, Sam in this case) needs to "bump"
the SONAME, and Sam needs to change the name of the binary package. When
he uploads this to unstable, all depending package will become instantly
uninstallable, until they get rebuilt. 

Sam told me on irc that he check every package using ffmpeg that it
still builds with the updated ffmpeg package. If he could provide such
updated packages in experimental, I'd be happy to upload newer package
to experimental as well for testing to build and look for (potential)
regressions. Then we could coordinate an upload of all ffmpeg
related/using packages.

> Suppose Sam packs a new FFMpeg package from current SVN, and, since it
> is is incompatible with xine and other sw already using libavcodec0d ,
> it puts it in binary libavcodec1d and gives it a SONAME of
> libavcodec.so.1d; then I may link MPlayer with that lib, with no fear of
> breakage.

Yes, this is case c) from above.

> But this would not solve the original question of having one less copy
> of ffmpeg around, right? unless also all other sw would be modified to
> work with the new libavcodec.so.1d , and libavcodec0d is removed from etch.

since all package using libavcodec0d become uninstallable when it gets
superseeded by libavcodec1d, all package should better be rebuilt
against the newer ffmpeg sooner than later.

> so again:
>
>> Therefore I rely that Sam will bump the SONAME of the libraries when
>> he updates an incompatible version of ffmpeg in debian.
>
> would you then update/patch xine to link with that ?
> how feasible is that ?

So far, I didn't notice any problems with ffmpeg updates yet. xine is
focusing on an internal snapshot and only supports its interface, but as
said, I didn't have problems yet. I know that problems due to ABI/API
changes aren't too unlikely, and in this case, I'd have to look for an
patch from xine cvs for a newer ffmpeg. 

> (e.g. is there an upstream version of xine using a newer ffmpeg? )

xine 1.1.2, which is currently in etch, uses and older ffmpeg snapshot
internally. I didn't spot any problems using the newer ffmpeg debian
(other that the newly introduced ffmpeg features like WMV9 support isn't
available in 1.1.2). The current cvs, which will become xine 1.1.3 is
using an newer ffmpeg snapshot. I'm uploading that branch from time to
time to debian/experimental for regression tests.

-- 
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4

Attachment: pgpNF7NqP1VuW.pgp
Description: PGP signature

Reply via email to