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

Bug#729203: Packaging for FFmpeg avoiding conflicts with libav



[Adding the CCs again, I hope you don't mind.]

Hi Timothy,

thanks for your remarks and sorry for not responding sooner, I got distracted...

On 22.02.2014 20:39, Timothy Gu wrote:
On Sat, Feb 22, 2014 at 11:18 AM, Andreas Cadhalpun
<andreas.cadhalpun@googlemail.com> wrote:
Upstream thinks qt-faststart is not used very often nowadays and
there are not many differences between the ffmpeg and the libav
version. So anyone who needs qt-faststart can install libav-tools. I
don't see a need for a qt-faststart binary package, but if there
were bugs in the libav version that are not in the ffmpeg version,
we could create a qt-faststart package.

IIRC FFmpeg qt-faststart is faster than Libav because of

http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=f4d9148fe282879b9fcc755767c9c04de9ddbcfa.

That's exactly the kind of bug that I think justifies a qt-faststart package. So I added it, see attached patch. It diverts the qt-faststart from libav to qt-faststart.libav.

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

    * 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.

Not sure about those.

Well, the first is a bug in lintian due to the transition from
debian/upstream-signing-key.pgp to
debian/upstream/signing-key.{asc,pgp},
discussed on debian-devel recently.
The second is a mystery to me.

Does the libav package has those warnings?

Libav doesn't have this errors, because it still uses the old location of the signing-key and according to Raphael lintian detects the embedded libraries by checking a known list of "sources", which contains libav, but obviously not the newly created ffmpeg package.

But libav has the warnings about the manpage as well. [1]

    * W: manpage-has-errors-from-man:
         I don't know how to fix the manpages. Can someone help?

I had the manpage errors as well, I think we can ignore those for now.

I figured this as well, but maybe someone knows how to fix it.

That is upstream problem. See e.g. ffmpeg/doc/ffmpeg.texi ll. 805 [1].

So it seems the line is just to long, but it probably doesn't make sense to break it. So is this a wontfix? If so we should add a lintian override explaining the problem.

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.

That would be awesome.

Exactly my opinion. ;)
By the way, of course users can also install both ffmpeg and
libav-tools and also packages build against ffmpeg and other
packages build against libav.

Yay! I didn't think of a way good enough like that.

Thank you so much for all your work!

Unfortunately it seems that the security team will not allow both FFmpeg and libav in a stable release.

Best regards,
Andreas


1: http://lintian.debian.org/maintainer/pkg-multimedia-maintainers@lists.alioth.debian.org.html#libav

diff -ruN debian.orig/control debian/control
--- debian.orig/control	2014-02-22 12:55:59.000000000 +0100
+++ debian/control	2014-02-22 23:02:23.000000000 +0100
@@ -115,6 +115,25 @@
   * ffprobe: a simple multimedia stream analyzer
  .
  NOTE: It does not contain qt-faststart to avoid a conflict with libav-tools.
+       If you need qt-faststart from ffmepg, install the package qt-faststart.
+
+Package: qt-faststart
+Architecture: any
+Multi-Arch: foreign
+Depends:
+ ${shlibs:Depends},
+ ${misc:Depends}
+Description: Utility to rearrange a Quicktime file
+ FFmpeg is the leading multimedia framework, able to decode, encode, transcode,
+ mux, demux, stream, filter and play pretty much anything that humans and
+ machines have created. It supports the most obscure ancient formats up to the
+ cutting edge.
+ .
+ This package contains qt-faststart, a utility that rearranges a Quicktime
+ file such that the moov atom is in front of the data, thus facilitating
+ network streaming.
+ .
+ NOTE: It diverts the qt-faststart from libav-tools to qt-faststart.libav.
 
 Package: ffmpeg-dbg
 Section: debug
diff -ruN debian.orig/copyright debian/copyright
--- debian.orig/copyright	2014-02-21 18:17:07.000000000 +0100
+++ debian/copyright	2014-02-22 21:17:38.000000000 +0100
@@ -835,3 +835,8 @@
  License along with this packaging; if not, write to the Free Software
  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
+Files: debian/qt-faststart.1
+Copyright: Andres Mejia <mcitadel@gmail.com>
+License: public-domain
+ This manual page was written by Andres Mejia <mcitadel@gmail.com>
+ for the Debian GNU/Linux system, but may be used by others.
diff -ruN debian.orig/qt-faststart.1 debian/qt-faststart.1
--- debian.orig/qt-faststart.1	1970-01-01 01:00:00.000000000 +0100
+++ debian/qt-faststart.1	2014-01-18 16:50:35.000000000 +0100
@@ -0,0 +1,36 @@
+.\"                                      Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH QT-FASTSTART 1 "May 10, 2009"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh        disable hyphenation
+.\" .hy        enable hyphenation
+.\" .ad l      left justify
+.\" .ad b      justify to both left and right margins
+.\" .nf        disable filling
+.\" .fi        enable filling
+.\" .br        insert line break
+.\" .sp <n>    insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+qt-faststart \- utility for Quicktime files
+.SH SYNOPSIS
+.B qt-faststart
+.br
+.SH DESCRIPTION
+\fBqt-faststart\fP is a utility that rearranges a Quicktime file such that the
+moov atom is in front of the data, thus facilitating network streaming.
+.SH OPTIONS
+Options processed by the executable:
+.TP
+\fB\<infile.mov>\fR
+The source Quicktime file.
+.TP
+\fB\<outfile.mov>\fR
+The destination Quicktime file.
+.SH AUTHOR
+This manual page was written by Andres Mejia <mcitadel@gmail.com>
+for the Debian GNU/Linux system, but may be used by others.
diff -ruN debian.orig/qt-faststart.install debian/qt-faststart.install
--- debian.orig/qt-faststart.install	1970-01-01 01:00:00.000000000 +0100
+++ debian/qt-faststart.install	2014-02-22 23:03:02.000000000 +0100
@@ -0,0 +1,2 @@
+tools/qt-faststart					usr/bin
+debian/qt-faststart.1				usr/share/man/man1
diff -ruN debian.orig/qt-faststart.postrm debian/qt-faststart.postrm
--- debian.orig/qt-faststart.postrm	1970-01-01 01:00:00.000000000 +0100
+++ debian/qt-faststart.postrm	2014-02-23 01:23:02.000000000 +0100
@@ -0,0 +1,22 @@
+#! /bin/sh
+# postrm script for qt-faststart
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# Move the diverted files from libav-tools back
+if [ remove = "$1" ]; then
+   dpkg-divert --package qt-faststart --remove --rename \
+      --divert /usr/bin/qt-faststart.libav /usr/bin/qt-faststart
+   dpkg-divert --package qt-faststart --remove --rename \
+      --divert /usr/share/man/man1/qt-faststart.libav.1.gz /usr/share/man/man1/qt-faststart.1.gz
+fi
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff -ruN debian.orig/qt-faststart.preinst debian/qt-faststart.preinst
--- debian.orig/qt-faststart.preinst	1970-01-01 01:00:00.000000000 +0100
+++ debian/qt-faststart.preinst	2014-02-23 01:22:55.000000000 +0100
@@ -0,0 +1,22 @@
+#! /bin/sh
+# preinst script for qt-faststart
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# Divert the necessary files from libav-tools
+if [ install = "$1" -o upgrade = "$1" ]; then
+   dpkg-divert --package qt-faststart --add --rename \
+      --divert /usr/bin/qt-faststart.libav /usr/bin/qt-faststart
+   dpkg-divert --package qt-faststart --add --rename \
+      --divert /usr/share/man/man1/qt-faststart.libav.1.gz /usr/share/man/man1/qt-faststart.1.gz
+fi
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+

Reply to: