[oe] [PATCH][meta-oe] freerdp: backport patch to fix build with newer gstreamer

Martin Jansa martin.jansa at gmail.com
Tue Jan 5 13:17:33 UTC 2016


* otherwise the include path will miss sysroots/qemux86/usr/lib/gstreamer-1.0/include
* and build will fail like this:
  In file included from /OE/build/oe-core/tmp-glibc/sysroots/qemux86/usr/include/gstreamer-1.0/gst/gstbin.h:27:0,
                 from /OE/build/oe-core/tmp-glibc/sysroots/qemux86/usr/include/gstreamer-1.0/gst/gst.h:35,
                 from /OE/build/oe-core/tmp-glibc/work/i586-oe-linux/freerdp/1.2.5+gitrAUTOINC+62da9d28c6-r0/git/channels/tsmf/client/gstreamer/tsmf_gstreamer.c:36:
  /OE/build/oe-core/tmp-glibc/sysroots/qemux86/usr/include/gstreamer-1.0/gst/gstelement.h:55:27: fatal error: gst/gstconfig.h: No such file or directory
  compilation terminated.

Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
---
 ...er_1_0-fix-build-failure-for-new-gstreame.patch | 71 ++++++++++++++++++++++
 meta-oe/recipes-support/freerdp/freerdp_git.bb     |  5 +-
 2 files changed, 74 insertions(+), 2 deletions(-)
 create mode 100644 meta-oe/recipes-support/freerdp/freerdp/0001-FindGStreamer_1_0-fix-build-failure-for-new-gstreame.patch

diff --git a/meta-oe/recipes-support/freerdp/freerdp/0001-FindGStreamer_1_0-fix-build-failure-for-new-gstreame.patch b/meta-oe/recipes-support/freerdp/freerdp/0001-FindGStreamer_1_0-fix-build-failure-for-new-gstreame.patch
new file mode 100644
index 0000000..d5f6485
--- /dev/null
+++ b/meta-oe/recipes-support/freerdp/freerdp/0001-FindGStreamer_1_0-fix-build-failure-for-new-gstreame.patch
@@ -0,0 +1,71 @@
+From bea27fd919b64ee8d97996409e279e1e83d13594 Mon Sep 17 00:00:00 2001
+From: Jean-Louis Dupond <jean-louis at dupond.be>
+Date: Sun, 4 Oct 2015 18:17:33 +0200
+Subject: [PATCH] FindGStreamer_1_0: fix build failure for new gstreamer
+ versions
+
+---
+ cmake/FindGStreamer_1_0.cmake | 30 +++++++++++++++---------------
+ 1 file changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/cmake/FindGStreamer_1_0.cmake b/cmake/FindGStreamer_1_0.cmake
+index f7bf990..3aa8fc6 100644
+--- a/cmake/FindGStreamer_1_0.cmake
++++ b/cmake/FindGStreamer_1_0.cmake
+@@ -53,17 +53,17 @@ set(GSTREAMER_1_0_MINIMUM_VERSION 1.0.5)
+ # Helper macro to find a Gstreamer plugin (or Gstreamer itself)
+ #   _component_prefix is prepended to the _INCLUDE_DIRS and _LIBRARIES variables (eg. "GSTREAMER_1_0_AUDIO")
+ #   _pkgconfig_name is the component's pkg-config name (eg. "gstreamer-1.0", or "gstreamer-video-1.0").
+-#   _header is the component's header, relative to the gstreamer-1.0 directory (eg. "gst/gst.h").
+ #   _library is the component's library name (eg. "gstreamer-1.0" or "gstvideo-1.0")
+-macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _header _library)
++macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _library)
+     # FIXME: The QUIET keyword can be used once we require CMake 2.8.2.
+-    pkg_check_modules(PC_${_component_prefix} ${_pkgconfig_name})
+ 
+-    find_path(${_component_prefix}_INCLUDE_DIRS
+-        NAMES ${_header}
+-        HINTS ${PC_${_component_prefix}_INCLUDE_DIRS} ${PC_${_component_prefix}_INCLUDEDIR}
+-        PATH_SUFFIXES gstreamer-1.0
+-    )
++    string(REGEX MATCH "(.*)>=(.*)" _dummy "${_pkgconfig_name}")
++    if ("${CMAKE_MATCH_2}" STREQUAL "")
++        pkg_check_modules(PC_${_component_prefix} "${_pkgconfig_name} >= ${GStreamer_FIND_VERSION}")
++    else ()
++        pkg_check_modules(PC_${_component_prefix} ${_pkgconfig_name})
++    endif ()
++    set(${_component_prefix}_INCLUDE_DIRS ${PC_${_component_prefix}_INCLUDE_DIRS})
+ 
+     find_library(${_component_prefix}_LIBRARIES
+         NAMES ${_library} gstreamer_android
+@@ -78,8 +78,8 @@ endmacro()
+ # 1.1. Find headers and libraries
+ set(GLIB_ROOT_DIR ${GSTREAMER_1_0_ROOT_DIR})
+ find_package(Glib REQUIRED)
+-FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0 gstreamer-1.0 gst/gst.h gstreamer-1.0)
+-FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_BASE gstreamer-base-1.0 gst/gst.h gstbase-1.0)
++FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0 gstreamer-1.0 gstreamer-1.0)
++FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_BASE gstreamer-base-1.0 gstbase-1.0)
+ 
+ # 1.2. Check Gstreamer version
+ if (GSTREAMER_1_0_INCLUDE_DIRS)
+@@ -110,11 +110,11 @@ endif ()
+ # 2. Find Gstreamer plugins
+ # -------------------------
+ 
+-FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_APP gstreamer-app-1.0 gst/app/gstappsink.h gstapp-1.0)
+-FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_AUDIO gstreamer-audio-1.0 gst/audio/audio.h gstaudio-1.0)
+-FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_FFT gstreamer-fft-1.0 gst/fft/gstfft.h gstfft-1.0)
+-FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_PBUTILS gstreamer-pbutils-1.0 gst/pbutils/pbutils.h gstpbutils-1.0)
+-FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_VIDEO gstreamer-video-1.0 gst/video/video.h gstvideo-1.0)
++FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_APP gstreamer-app-1.0 gstapp-1.0)
++FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_AUDIO gstreamer-audio-1.0 gstaudio-1.0)
++FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_FFT gstreamer-fft-1.0 gstfft-1.0)
++FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_PBUTILS gstreamer-pbutils-1.0 gstpbutils-1.0)
++FIND_GSTREAMER_COMPONENT(GSTREAMER_1_0_VIDEO gstreamer-video-1.0 gstvideo-1.0)
+ 
+ # ------------------------------------------------
+ # 3. Process the COMPONENTS passed to FIND_PACKAGE
+-- 
+2.6.4
+
diff --git a/meta-oe/recipes-support/freerdp/freerdp_git.bb b/meta-oe/recipes-support/freerdp/freerdp_git.bb
index f9cb9a6..13dff6e 100644
--- a/meta-oe/recipes-support/freerdp/freerdp_git.bb
+++ b/meta-oe/recipes-support/freerdp/freerdp_git.bb
@@ -15,7 +15,8 @@ EXTRA_OECMAKE += "-DBUILD_STATIC_LIBS=OFF \
 
 SRCREV = "62da9d28c674814c81c245c1c7882eb0da7be76b"
 SRC_URI = "git://github.com/FreeRDP/FreeRDP.git \
-           file://winpr-makecert-Build-with-install-RPATH.patch \
-          "
+    file://winpr-makecert-Build-with-install-RPATH.patch \
+    file://0001-FindGStreamer_1_0-fix-build-failure-for-new-gstreame.patch \
+"
 
 S = "${WORKDIR}/git"
-- 
2.6.4




More information about the Openembedded-devel mailing list