[OE-core] [PATCH] gstreamer1.0-plugins-bad: Add PKG_CONFIG_SYSROOT_DIR to output of pkg-config

Jussi Kukkonen jussi.kukkonen at intel.com
Mon Dec 5 13:20:42 UTC 2016


On 1 December 2016 at 10:37, Khem Raj <raj.khem at gmail.com> wrote:

> When configure pokes for wayland-protocols isntallations it ended up
> using the ones from host, which is because it did not account for sysroot
> prefix
>
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
>  .../gstreamer/gstreamer1.0-plugins-bad.inc         |  2 +-
>  ...G_CONFIG_SYSROOT_DIR-to-pkg-config-output.patch | 37
> ++++++++++++++++++++++
>  .../gstreamer/gstreamer1.0-plugins-bad_1.10.1.bb   |  1 +
>  3 files changed, 39 insertions(+), 1 deletion(-)
>  create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-
> plugins-bad/0001-Prepend-PKG_CONFIG_SYSROOT_DIR-to-pkg-config-output.patch
>
> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
> b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
> index d26a6a9..d3c5326 100644
> --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
> @@ -64,7 +64,7 @@ PACKAGECONFIG[srtp]            =
> "--enable-srtp,--disable-srtp,libsrtp"
>  PACKAGECONFIG[uvch264]         = "--enable-uvch264,--disable-uvch264,libusb1
> libgudev"
>  PACKAGECONFIG[voaacenc]        = "--enable-voaacenc,--disable-
> voaacenc,vo-aacenc"
>  PACKAGECONFIG[voamrwbenc]      = "--enable-voamrwbenc,--
> disable-voamrwbenc,vo-amrwbenc"
> -PACKAGECONFIG[wayland]         = "--enable-wayland,--disable-wayland,wayland-native
> wayland"
> +PACKAGECONFIG[wayland]         = "--enable-wayland,--disable-wayland,wayland-native
> wayland wayland-protocols"
>  PACKAGECONFIG[webp]            = "--enable-webp,--disable-webp,libwebp"
>
>  # these plugins have not been ported to 1.0 (yet):
> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-
> plugins-bad/0001-Prepend-PKG_CONFIG_SYSROOT_DIR-to-pkg-config-output.patch
> b/meta/recipes-multimedia/gstreamer/gstreamer1.0-
> plugins-bad/0001-Prepend-PKG_CONFIG_SYSROOT_DIR-to-pkg-config-output.patch
> new file mode 100644
> index 0000000..eb789df
> --- /dev/null
> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-
> plugins-bad/0001-Prepend-PKG_CONFIG_SYSROOT_DIR-to-pkg-config-output.patch
> @@ -0,0 +1,37 @@
> +From c271503d7e233428ac0323c51d6517113e26bef7 Mon Sep 17 00:00:00 2001
> +From: Khem Raj <raj.khem at gmail.com>
> +Date: Thu, 1 Dec 2016 00:27:13 -0800
> +Subject: [PATCH] Prepend PKG_CONFIG_SYSROOT_DIR to pkg-config output
> +
> +In cross environment we have to prepend the sysroot to the path found by
> +pkgconfig since the path returned from pkgconfig does not have sysroot
> prefixed
> +it ends up using the files from host system. If build host has wayland
> installed
> +the build will succeed but if you dont have wayland-protocols installed
> on build host then
> +it wont find the files on build host
> +
> +This should work ok with non sysrooted builds too since in those cases
> PKG_CONFIG_SYSROOT_DIR
> +will be empty
> +
> +Upstream-Status: Pending
> +
> +Signed-off-by: Khem Raj <raj.khem at gmail.com>
> +---
> + configure.ac | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/configure.ac b/configure.ac
> +index f8ac96b..dc87b08 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -2233,7 +2233,7 @@ AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink],
> wayland , [
> +     PKG_CHECK_MODULES(WAYLAND_PROTOCOLS, wayland-protocols >= 1.4, [
> +       if test "x$wayland_scanner" != "x"; then
> +         HAVE_WAYLAND="yes"
> +-        AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG
> --variable=pkgdatadir wayland-protocols`)
> ++        AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, ${PKG_CONFIG_SYSROOT_DIR}`$PKG_CONFIG
> --variable=pkgdatadir wayland-protocols`)
>

I believe this breaks multilib because wayland-protocols is allarch so
PKG_CONFIG_SYSROOT_DIR may then be incorrect.

I've set "WAYLAND_PROTOCOLS_SYSROOT_DIR=${STAGING_DIR}/${MACHINE}"
in EXTRA_OECONF in other recipes and used that variable in the patches.
It's not pretty but seems to work.

Jussi

+       else
> +         AC_MSG_RESULT([wayland-scanner is required to build the wayland
> plugin])
> +         HAVE_WAYLAND="no"
> +--
> +2.10.2
> +
> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-
> plugins-bad_1.10.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-
> plugins-bad_1.10.1.bb
> index 9cd892e..6c6f011 100644
> --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.10.1.bb
> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.10.1.bb
> @@ -14,6 +14,7 @@ SRC_URI = " \
>      file://0001-gstreamer-gl.pc.in-don-t-append-GL_CFLAGS-to-CFLAGS.patch
> \
>      file://0009-glimagesink-Downrank-to-marginal.patch \
>      file://0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch
> \
> +    file://0001-Prepend-PKG_CONFIG_SYSROOT_DIR-to-pkg-config-output.patch
> \
>  "
>  SRC_URI[md5sum] = "491d2d5aab55ffc60c66e714d3d664ea"
>  SRC_URI[sha256sum] = "133e0ed9fe21011b15d3898e3d3a9d
> 17ab74eed31996da2e353353e688ca921d"
> --
> 2.10.2
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20161205/a7cacd5e/attachment-0002.html>


More information about the Openembedded-core mailing list