[OE-core] [PATCH] xcb: don't build-depend on python-native

Ross Burton ross.burton at intel.com
Wed Dec 16 16:00:16 UTC 2015


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.

Signed-off-by: Ross Burton <ross.burton at intel.com>
---
 meta/recipes-graphics/xorg-lib/libxcb_1.11.1.bb    |  4 ++--
 meta/recipes-graphics/xorg-proto/xcb-proto.inc     |  9 ++++----
 .../xorg-proto/xcb-proto/no-python-native.patch    | 27 ++++++++++++++++++++++
 3 files changed, 34 insertions(+), 6 deletions(-)
 create mode 100644 meta/recipes-graphics/xorg-proto/xcb-proto/no-python-native.patch

diff --git a/meta/recipes-graphics/xorg-lib/libxcb_1.11.1.bb b/meta/recipes-graphics/xorg-lib/libxcb_1.11.1.bb
index 1f4852d..13da088 100644
--- a/meta/recipes-graphics/xorg-lib/libxcb_1.11.1.bb
+++ b/meta/recipes-graphics/xorg-lib/libxcb_1.11.1.bb
@@ -17,13 +17,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"
diff --git a/meta/recipes-graphics/xorg-proto/xcb-proto.inc b/meta/recipes-graphics/xorg-proto/xcb-proto.inc
index 2e1b57b..8703d63 100644
--- a/meta/recipes-graphics/xorg-proto/xcb-proto.inc
+++ b/meta/recipes-graphics/xorg-proto/xcb-proto.inc
@@ -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"
diff --git a/meta/recipes-graphics/xorg-proto/xcb-proto/no-python-native.patch b/meta/recipes-graphics/xorg-proto/xcb-proto/no-python-native.patch
new file mode 100644
index 0000000..f808e19
--- /dev/null
+++ b/meta/recipes-graphics/xorg-proto/xcb-proto/no-python-native.patch
@@ -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 at 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)
-- 
2.1.4




More information about the Openembedded-core mailing list