Files
poky/meta/recipes-devtools/python/python-native_2.7.11.bb
Khem Raj f969ce9ddf python-native: Point to expat in native sysroot and add missing dep on expat-native
This fixes inconsistency where expat dependency is
then depending upon build host having it or not having it

Fixes errors like
WARNING: renaming "pyexpat" since importing it failed: build/lib.linux-x86_64-2.7/pyexpat.so: undefined symbol: XML_SetCommentHandler

also reported here
https://dev.openwrt.org/ticket/20087

This work due to the fact that we use -isystem pointing to native sysroot
so the search order of native includedir is moved after buildhosts system
includdirs. Moment we replace it with -I, build falls apart

This also fixes the error

Caught exception: <type 'exceptions.ImportError'> ImportError('No module named _elementtree',)

where gobject-introspection-native fails to find _elementtree
which is only compiled if expat is available

(From OE-Core rev: a63798df712bf0d2362e07713c06af3b071a10b2)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-14 23:05:12 +01:00

64 lines
2.3 KiB
BlitzBasic

require python.inc
EXTRANATIVEPATH += "bzip2-native"
DEPENDS = "openssl-native bzip2-replacement-native zlib-native readline-native sqlite3-native expat-native"
PR = "${INC_PR}.1"
SRC_URI += "\
file://05-enable-ctypes-cross-build.patch \
file://10-distutils-fix-swig-parameter.patch \
file://11-distutils-never-modify-shebang-line.patch \
file://12-distutils-prefix-is-inside-staging-area.patch \
file://debug.patch \
file://unixccompiler.patch \
file://nohostlibs.patch \
file://multilib.patch \
file://add-md5module-support.patch \
file://builddir.patch \
file://parallel-makeinst-create-bindir.patch \
file://revert_use_of_sysconfigdata.patch \
file://avoid_parallel_make_races_on_pgen.patch \
"
S = "${WORKDIR}/Python-${PV}"
FILESEXTRAPATHS =. "${FILE_DIRNAME}/${PN}:"
inherit native
RPROVIDES += "python-distutils-native python-compression-native python-textutils-native python-codecs-native python-core-native python-unittest-native"
EXTRA_OECONF_append = " --bindir=${bindir}/${PN} --with-system-expat=${STAGING_DIR_HOST}"
EXTRA_OEMAKE = '\
BUILD_SYS="" \
HOST_SYS="" \
LIBC="" \
STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE} \
STAGING_INCDIR=${STAGING_INCDIR_NATIVE} \
'
do_configure_append() {
autoreconf --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi
}
do_install() {
oe_runmake 'DESTDIR=${D}' install
install -d ${D}${bindir}/${PN}
install -m 0755 Parser/pgen ${D}${bindir}/${PN}
# Make sure we use /usr/bin/env python
for PYTHSCRIPT in `grep -rIl ${bindir}/${PN}/python ${D}${bindir}/${PN}`; do
sed -i -e '1s|^#!.*|#!/usr/bin/env python|' $PYTHSCRIPT
done
# Add a symlink to the native Python so that scripts can just invoke
# "nativepython" and get the right one without needing absolute paths
# (these often end up too long for the #! parser in the kernel as the
# buffer is 128 bytes long).
ln -s python-native/python ${D}${bindir}/nativepython
# We don't want modules in ~/.local being used in preference to those
# installed in the native sysroot, so disable user site support.
sed -i -e 's,^\(ENABLE_USER_SITE = \).*,\1False,' ${D}${libdir}/python${PYTHON_MAJMIN}/site.py
}