xcb: don't build-depend on python-native

xcb-proto had a dependency on python-native as it builds and installs a Python
module, but xcb-proto is very low in the build to force a dependency on
python-native.

As it turns out libxcb simply asks pkg-config for the full path to the module
xcb-proto installed and uses it directly so there is no need to build
python-native.  Instead replace AM_PATH_PYTHON with two explicit variable
definitions (need to set PYTHON for automake's install logic).

Also remove the dependency on xcb-proto-native as libxcb uses the data files and
tooling from the target sysroot, and patching it to use the native sysroot adds
complication for no good reason.

(From OE-Core rev: bc38ef47b05128623a916172c2cfd244510b201e)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton 2015-12-11 15:08:57 +00:00 committed by Richard Purdie
parent d7759a5b43
commit 8df88fb3c5
3 changed files with 34 additions and 6 deletions

View File

@ -19,13 +19,13 @@ SRC_URI[sha256sum] = "b720fd6c7d200e5371affdb3f049cc8f88cff9aed942ff1b824d95eedb
BBCLASSEXTEND = "native nativesdk"
DEPENDS = "xcb-proto xproto libxau xcb-proto-native libpthread-stubs libxdmcp"
DEPENDS = "xcb-proto xproto libxau libpthread-stubs libxdmcp"
PACKAGES_DYNAMIC = "^libxcb-.*"
FILES_${PN} = "${libdir}/libxcb.so.*"
inherit autotools pkgconfig pythonnative distro_features_check
inherit autotools pkgconfig distro_features_check
# The libxau and others requires x11 in DISTRO_FEATURES
REQUIRED_DISTRO_FEATURES = "x11"

View File

@ -9,17 +9,18 @@ BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=XCB"
SECTION = "x11/libs"
LICENSE = "MIT-X"
SRC_URI = "http://xcb.freedesktop.org/dist/xcb-proto-${PV}.tar.bz2"
SRC_URI = "http://xcb.freedesktop.org/dist/xcb-proto-${PV}.tar.bz2 \
file://no-python-native.patch"
inherit autotools pkgconfig pythonnative
inherit autotools pkgconfig
PACKAGES += "python-xcbgen"
FILES_${PN} = ""
FILES_${PN}-dev += "${datadir}/xcb/*.xml ${datadir}/xcb/*.xsd"
FILES_python-xcbgen = "${libdir}/python*"
FILES_python-xcbgen = "${libdir}/xcb-proto"
RDEPENDS_${PN}-dev = ""
RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
DEPENDS_append_class-native = " python-native"
BBCLASSEXTEND = "native nativesdk"

View File

@ -0,0 +1,27 @@
Upstream uses AM_PATH_PYTHON to find a python binary and ask it where to install
libraries. This means we either need to depend on python-native (large build
dependency, early in the build) or use the host python (pythondir reflects the
host and not the target, breaks builds).
The third option is to just hardcode the path where the module goes, as most
callers of the code use pkg-config to find where it was installed anyway.
Upstream-Status: Inappropriate
Signed-off-by: Ross Burton <ross.burton@intel.com>
diff --git a/configure.ac b/configure.ac
index d140bfe..c7b68da 100644
--- a/configure.ac
+++ b/configure.ac
@@ -14,7 +14,10 @@ if test "$XMLLINT" = "no"; then
AC_MSG_WARN([xmllint not found; unable to validate against schema.])
fi
-AM_PATH_PYTHON([2.5])
+pythondir="${libdir}/xcb-proto"
+AC_SUBST(pythondir)
+PYTHON="python"
+AC_SUBST(PYTHON)
xcbincludedir='${datadir}/xcb'
AC_SUBST(xcbincludedir)