Source: qutecom
Version: 2.2.1+dfsg1-5
Severity: wishlist
Tags: patch
Usertags: reintroducing-ffmpeg

Dear maintainer,

I am working on reintroducing FFmpeg to Debian [1-2].

In order to make FFmpeg co-installable with Libav, the libraries were
renamed to lib*-ffmpeg. Thus using linker flags like '-lavcodec' doesn't
work with the FFmpeg packages.

To get the correct linking flags for both FFmpeg and Libav, one can
(and should) use pkg-config.

Attached patch achieves that for this package. Please apply it to
facilitate building your package with FFmpeg in Debian.

If you want to facilitate this even further, you can also add
lib*-ffmpeg-dev alternatives to the Libav build-dependencies.

While the FFmpeg package is still waiting in the NEW queue [3], it can
already be built from the git repository [4].

Best regards,
Andreas


1: https://lists.debian.org/debian-devel/2014/07/msg01010.html
2: https://bugs.debian.org/729203
3: https://ftp-master.debian.org/new/ffmpeg_7:2.3.1-1.html
4: https://anonscm.debian.org/cgit/collab-maint/ffmpeg.git

diff --git a/debian/patches/pkg-config-patch b/debian/patches/pkg-config-patch
new file mode 100644
index 0000000..4ec9d8f
--- /dev/null
+++ b/debian/patches/pkg-config-patch
@@ -0,0 +1,88 @@
+Description: Use pkg-config to determine FFmpeg linker flags
+
+Author: Andreas Cadhalpun <[email protected]>
+Last-Update: <2014-05-19>
+
+--- qutecom-2.2.1+dfsg1.orig/owbuild/FindFFMPEG.cmake
++++ qutecom-2.2.1+dfsg1/owbuild/FindFFMPEG.cmake
+@@ -23,18 +23,18 @@ else (FFMPEG_LIBRARIES AND FFMPEG_INCLUD
+   if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
+     include(UsePkgConfig)
+     pkgconfig(libavcodec _AVCODEC_INCLUDEDIR _AVCODEC_LIBDIR _AVCODEC_LDFLAGS _AVCODEC_CFLAGS)
+-#    pkgconfig(libavformat _AVFORMAT_INCLUDEDIR _AVFORMAT_LIBDIR _AVFORMAT_LDFLAGS _AVFORMAT_CFLAGS)
++    pkgconfig(libavformat _AVFORMAT_INCLUDEDIR _AVFORMAT_LIBDIR _AVFORMAT_LDFLAGS _AVFORMAT_CFLAGS)
+     pkgconfig(libavutil _AVUTIL_INCLUDEDIR _AVUTIL_LIBDIR _AVUTIL_LDFLAGS _AVUTIL_CFLAGS)
+-#    pkgconfig(libpostproc _POSTPROC_INCLUDEDIR _POSTPROC_LIBDIR _POSTPROC_LDFLAGS _POSTPROC_CFLAGS)
++    pkgconfig(libpostproc _POSTPROC_INCLUDEDIR _POSTPROC_LIBDIR _POSTPROC_LDFLAGS _POSTPROC_CFLAGS)
+     pkgconfig(libswscale _SWSCALE_INCLUDEDIR _SWSCALE_LIBDIR _SWSCALE_LDFLAGS _SWSCALE_CFLAGS)
+   else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
+     message("Doing find_package(PkgConfig)")
+     find_package(PkgConfig)
+     if (PKG_CONFIG_FOUND)
+       pkg_check_modules(_AVCODEC libavcodec)
+-#      pkg_check_modules(_AVFORMAT libavformat)
++      pkg_check_modules(_AVFORMAT libavformat)
+       pkg_check_modules(_AVUTIL libavutil)
+-#      pkg_check_modules(_POSTPROC libpostproc)
++      pkg_check_modules(_POSTPROC libpostproc)
+       pkg_check_modules(_SWSCALE libswscale)
+     endif (PKG_CONFIG_FOUND)
+   endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
+@@ -45,6 +45,12 @@ else (FFMPEG_LIBRARIES AND FFMPEG_INCLUD
+   message("_AVCODEC_LIBS_L = ${_AVCODEC_LIBS_L}")	
+   message("_AVCODEC_LIBS_PATH = ${_AVCODEC_LIBS_PATH}")	
+ 
++  string(REPLACE "-l" "" avc_name "${_AVCODEC_LIBRARIES}")
++  string(REPLACE "-l" "" avf_name "${_AVFORMAT_LIBRARIES}")
++  string(REPLACE "-l" "" avu_name "${_AVUTIL_LIBRARIES}")
++  string(REPLACE "-l" "" pos_name "${_POSTPROC_LIBRARIES}")
++  string(REPLACE "-l" "" sws_name "${_SWSCALE_LIBRARIES}")
++
+   set(_FFMPEG_LIBDIR
+       ${_FFMPEG_LIBDIR}
+       ${_AVCODEC_LIBDIR}
+@@ -139,7 +145,7 @@ else (FFMPEG_LIBRARIES AND FFMPEG_INCLUD
+ 
+   find_library(AVCODEC_LIBRARY
+     NAMES
+-      avcodec
++      ${avc_name} avcodec
+     PATHS
+       ${_AVCODEC_LIBDIR}
+       /usr/lib
+@@ -152,7 +158,7 @@ else (FFMPEG_LIBRARIES AND FFMPEG_INCLUD
+ 
+   find_library(AVUTIL_LIBRARY
+     NAMES
+-      avutil
++      ${avu_name} avutil
+     PATHS
+       ${_AVUTIL_LIBDIR}
+       /usr/lib
+@@ -166,7 +172,7 @@ else (FFMPEG_LIBRARIES AND FFMPEG_INCLUD
+   if (FALSE)
+   find_library(AVFORMAT_LIBRARY
+     NAMES
+-      avformat
++      ${avf_name} avformat
+     PATHS
+       ${_AVFORMAT_LIBDIR}
+       /usr/lib
+@@ -181,7 +187,7 @@ else (FFMPEG_LIBRARIES AND FFMPEG_INCLUD
+   if (FALSE)
+   find_library(POSTPROC_LIBRARY
+     NAMES
+-      postproc
++      ${pos_name} postproc
+     PATHS
+       ${_POSTPROC_LIBDIR}
+       /usr/lib
+@@ -195,7 +201,7 @@ else (FFMPEG_LIBRARIES AND FFMPEG_INCLUD
+ 
+   find_library(SWSCALE_LIBRARY
+     NAMES
+-      swscale
++      ${sws_name} swscale
+     PATHS
+       ${_SWSCALE_LIBDIR}
+       /usr/lib
diff --git a/debian/patches/series b/debian/patches/series
index 6c7280e..227df8f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -16,3 +16,4 @@ fix-missing-X11.patch
 build.patch
 libav9.8.patch
 libav10.patch
+pkg-config-patch

Reply via email to