package/gstreamer1: add symlink to gstconfig.h in legacy location
authorYann E. MORIN <yann.morin.1998@free.fr>
Fri, 27 Nov 2015 13:58:56 +0000 (14:58 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Fri, 27 Nov 2015 18:32:24 +0000 (19:32 +0100)
After version 1.4 (the previous one packaged in Buildroot), gstreamer
has changed the location where it installs its gstconfig.h, because it
is architecture-dependent, see upstream commit:
    http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=444ceb068424122ceba46d8cc48a53b8b32c3cf5

However, this causes build failures in some pcakges (at least FreeRDP
is known to break) because either they do not use pkg-config (bad!) or,
like FreeRDP, have a broken buildsystem and have not yet fixed their
build failures [0].

In Buildroot, we do not really care about architecture-dependent
locatios, because we only build for one architecture. So, the legacy
location of that header is not problematic to us.

Create a symbolic link to gstconfig.h in its legacy location.

Fixes numerous FreeRDP build failures:
    http://autobuild.buildroot.org/results/438/4384ab572bdcb1d148bcdae5a67d8b0bf26d3049
    http://autobuild.buildroot.org/results/b00/b0060f16c7464c240bc7d3b0ff17c9cb311fe30d
    http://autobuild.buildroot.org/results/cad/cadb2fb90ce66b1fa3051a6fcfb7c8142f420c31
    ...

[0] FreeRDP does have a commit supposedly fixing the build with "newer"
gstreamer versions:
    https://github.com/FreeRDP/FreeRDP/commit/bea27fd919b64ee8d97996409e279e1e83d13594

but it makes the whole build completely fail, as it does not even
detect gstreamer anymore. Sigh... :-(

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/gstreamer1/gstreamer1/gstreamer1.mk

index d5982f9db436da173f669b7c4b0ae94f415fe557..265afa0c9b4ff49ddfda3c3cb017153c17749f97 100644 (file)
@@ -36,4 +36,14 @@ GSTREAMER1_CONF_OPTS = \
 
 GSTREAMER1_DEPENDENCIES = libglib2 host-pkgconf host-bison host-flex
 
+# gstreamer-1.6 changed the location of its gstconfig.h file,
+# and unfortunately, not all (by far!) consumers have been
+# updated to look in the correct location.
+# Add a symlink to the legacy location
+define GSTREAMER1_LEGACY_CGSTCONFIG_H
+       ln -sf $(STAGING_DIR)/usr/lib/gstreamer-1.0/include/gst/gstconfig.h \
+              $(STAGING_DIR)/usr/include/gstreamer-1.0/gst/gstconfig.h
+endef
+GSTREAMER1_POST_INSTALL_STAGING_HOOKS += GSTREAMER1_LEGACY_CGSTCONFIG_H
+
 $(eval $(autotools-package))