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

Bug#729203: Packaging for FFmpeg avoiding conflicts with libav



Hi all,

I have looked at the packaging provided by Antoine and it seems - no offense intended - a little bit messy. Thus I have started from scratch and packaged FFmpeg 2.1.3 [1] (see attached debian.tar.xz).

I have taken care to avoid conflicts with libav as far as possible, but the development files have to conflict, as it is really no good idea to build against both ffmpeg and libav at the same time.

The ffmpeg package does not provide qt-faststart to avoid a conflict with libav-tools.

The libraries are build with --enable-raise-major, which bumps the sonames by 100 to get i.e. libavcodec155, thus avoiding conflicts. Note that there is also --enable-incompatible-libav-abi that would allow packages build against libav to be used with the ffmpeg library, but upstream thinks this would not work the other way round as well. And I think there wouldn't be too much use for FFmpeg libraries that can only be used as a drop in replacement the libav ones, but not to compile programs.

As the libav development packages are called libavcodec-dev etc., FFmpeg has to use different names and I chose libavcodec-ffmpeg-dev and so on.

I'm not sure if this package will build on every architecture, because I can't test that. Any build failures could probably be sorted out by disabling some features for some architectures, as I enabled as many features as possible for building on linux-amd64, as long as the result is still GPLv2 licensed. (Only four codecs are GPLv3.)

I fixed most of the lintian problems, but some remain:

E: ffmpeg source: debian-watch-file-pubkey-file-is-missing
W: ffmpeg: manpage-has-errors-from-man usr/share/man/man1/ffmpeg-all.1.gz 1267: warning [p 13, 2.5i, div `an-div', 0.2i]: can't break line W: ffmpeg: manpage-has-errors-from-man usr/share/man/man1/ffmpeg-filters.1.gz 273: warning [p 2, 9.2i]: can't break line W: ffmpeg: manpage-has-errors-from-man usr/share/man/man1/ffmpeg.1.gz 1267: warning [p 13, 2.5i, div `an-div', 0.2i]: can't break line W: ffmpeg: manpage-has-errors-from-man usr/share/man/man1/ffplay-all.1.gz 9728: warning [p 87, 11.8i]: can't break line W: ffmpeg: manpage-has-errors-from-man usr/share/man/man1/ffprobe-all.1.gz 10045: warning [p 73, 2.2i]: can't break line W: ffmpeg: manpage-has-errors-from-man usr/share/man/man1/ffserver-all.1.gz 9745: warning [p 85, 15.5i]: can't break line E: libavfilter103: embedded-library usr/lib/x86_64-linux-gnu/libavfilter.so.103.90.100: libavfilter I: libavfilter103: no-symbols-control-file usr/lib/x86_64-linux-gnu/libavfilter.so.103.90.100 E: libavdevice155: embedded-library usr/lib/x86_64-linux-gnu/libavdevice.so.155.5.100: libavdevice I: libavdevice155: no-symbols-control-file usr/lib/x86_64-linux-gnu/libavdevice.so.155.5.100 E: libpostproc152: embedded-library usr/lib/x86_64-linux-gnu/libpostproc.so.152.3.100: libpostproc I: libpostproc152: no-symbols-control-file usr/lib/x86_64-linux-gnu/libpostproc.so.152.3.100 I: libavcodec155: no-symbols-control-file usr/lib/x86_64-linux-gnu/libavcodec.so.155.39.101 I: libswscale102: no-symbols-control-file usr/lib/x86_64-linux-gnu/libswscale.so.102.5.101 E: libavutil152: embedded-library usr/lib/x86_64-linux-gnu/libavutil.so.152.48.101: libavutil I: libavutil152: no-symbols-control-file usr/lib/x86_64-linux-gnu/libavutil.so.152.48.101 I: libavformat155: no-symbols-control-file usr/lib/x86_64-linux-gnu/libavformat.so.155.19.104 I: libswresample100: no-symbols-control-file usr/lib/x86_64-linux-gnu/libswresample.so.100.17.104

 * E: debian-watch-file-pubkey-file-is-missing:
      This is a bug in lintian [2].
 * E: embedded-library: I don't understand this one:
      Does it complain about libavfilter embedding libavfilter?
      Seems like a bug in lintian.
 * W: manpage-has-errors-from-man:
      I don't know how to fix the manpages. Can someone help?
 * I: no-symbols-control-file:
      If anyone wants to create one, feel free to do so.

With this package, users can install either ffmpeg or libav-tools and developers can either depend on lib*-ffmpeg-dev or on lib*-dev and everyone should be happy.
Adrian, do you agree that this is sane?

If the security team is not willing to support both, they can ask the TC to decide which one to use, but this does not prevent an upload of FFmpeg.

I think this package is ready for upload, but I'm neither DD nor DM, so I can't do this. Rogério, Jackson are you willing to review my packaging and then upload/maintain it? I can help e.g. rebuilding reverse-dependencies for future transitions and similar stuff.

In fact, If have rebuild the 109 reverse build-dependencies of src:libav simply exchanging lib*-dev with lib*-ffmpeg-dev and 59 build successfully, only 50 FTBFS (similarly many fail building with libav 10 [3], probably due to the same reasons [4]). Most failures are due to missing AVCODEC_MAX_AUDIO_FRAME_SIZE and CodecID. Only two packages check for a version smaller than 100 and thus fail to configure.

I hope FFmpeg will be back in Debian soon.

Best regards,
Andreas


1: https://ffmpeg.org/releases/ffmpeg-2.1.3.tar.gz
2: https://bugs.debian.org/738597
3: https://bugs.debian.org/739079
4: https://wiki.libav.org/Migration/10

Attachment: ffmpeg_2.1.3-1.debian.tar.xz
Description: Binary data


Reply to: