python-native: Build with ipv6 enabled
PATCH 1/1 python-native: Build with ipv6 enabled
Before we introduced DISTRO_FEATURES_NATIVE on commit:db1f1adace58763c35774e3fdfeaac5c3ca646fd
ipv6 was enabled by default on DISTRO_FEATURES via DISTRO_FEATURES_LIBC hence python-native was built with ipv6 support.
After this, the check for ipv6 on DISTRO_FEATURES stopped working for the python-native recipe and it was always disabled.
This patch fixes the implementation of EXTRA_OECONF to get the ipv6 configuration correctly (whether were building for native or target), and it also modifies DISTRO_FEATURES_NATIVE to add ipv6 by default, simply to get it working like it was before changes were made'
--- meta/conf/bitbake.conf | 2 +- meta/recipes-devtools/python/python.inc | 11 +++++++++-- meta/recipes-devtools/python/python3_3.5.3.bb | 2 +- meta/recipes-devtools/python/python_2.7.13.bb | 2 +- 4 files changed, 12 insertions(+), 5 deletions(-)
meta/conf/bitbake.conf +1 -1
@@ -807,7 +807,7 @@ IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}" # Native distro features (will always be used for -native, even if they # are not enabled for target) -DISTRO_FEATURES_NATIVE ?= "x11" +DISTRO_FEATURES_NATIVE ?= "x11 ipv6" DISTRO_FEATURES_NATIVESDK ?= "x11 libc-charsets libc-locales libc-locale-code" # Normally target distro features will not be applied to native builds:
meta/recipes-devtools/python/python.inc +9 -2
@@ -22,13 +22,20 @@ PYTHON_MAJMIN = "2.7" inherit autotools pkgconfig -EXTRA_OECONF = "\ +EXTRA_OECONF_class-target = "\ + --enable-ipv6=${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'yes', 'no', d)} \ +" +EXTRA_OECONF_class-native = "\ + --enable-ipv6=${@bb.utils.contains('DISTRO_FEATURES_NATIVE', 'ipv6', 'yes', 'no', d)} \ +" + +# _append automatically gets appended to the correct EXTRA_OECONF_class-<> +EXTRA_OECONF_append = "\ --with-threads \ --with-pymalloc \ --without-cxx-main \ --with-signal-module \ --enable-shared \ - --enable-ipv6=${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'yes', 'no', d)} \ ac_cv_header_bluetooth_bluetooth_h=no ac_cv_header_bluetooth_h=no \ ${PYTHONLSBOPTS} \ "
meta/recipes-devtools/python/python3_3.5.3.bb +1 -1
@@ -66,7 +66,7 @@ CACHED_CONFIGUREVARS = "ac_cv_have_chflags=no \ TARGET_CC_ARCH += "-DNDEBUG -fno-inline" SDK_CC_ARCH += "-DNDEBUG -fno-inline" EXTRA_OEMAKE += "CROSS_COMPILE=yes" -EXTRA_OECONF += "CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ --without-ensurepip" +EXTRA_OECONF_append = " CROSSPYTHONPATH=${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dynload/ --without-ensurepip" export CROSS_COMPILE = "${TARGET_PREFIX}" export _PYTHON_PROJECT_BASE = "${B}"
meta/recipes-devtools/python/python_2.7.13.bb +1 -1
@@ -37,7 +37,7 @@ inherit autotools multilib_header python-dir pythonnative CONFIGUREOPTS += " --with-system-ffi " -EXTRA_OECONF += "ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no" +EXTRA_OECONF_append = " ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=no" do_configure_append() { rm -f ${S}/Makefile.orig
Signature · 1 line
2.12.3
Quoted 5 lines · Alejandro Hernandez
This patch fixes the implementation of
EXTRA_OECONFto get the ipv6 configuration correctly (whether were building for native or target), and it also modifiesDISTRO_FEATURES_NATIVEto add ipv6 by default, simply to get it working like it was before changes were made'
Why are changes beyond adding to DISTRO_FEATURES_NATIVE required at all?
Ross
Hey Ross,
Quoted 8 lines · Ross
On 26 September 2017 at 17:56, Alejandro Hernandez <[email protected] <mailto:[email protected]>> wrote:
This patch fixes the implementation of
EXTRA_OECONFto get the ipv6 configuration correctly (whether were building for native or target), and it also modifiesDISTRO_FEATURES_NATIVEto add ipv6 by default, simply to get it working like it was before changes were made'
Using EXTRA_OECONF_append gets added to the correct EXTRA_OECONF_class-<target/natve> correctly, otherwise its disregarded.
Quoted 3 lines
Why are changes beyond adding to
DISTRO_FEATURES_NATIVErequired at all?Ross
Quoted 4 lines · Alejandro Hernandez
Using
EXTRA_OECONF_appendgets added to the correct EXTRA_OECONF_class-<target/natve> correctly, otherwise its disregarded.
I guess the subtext was
+EXTRA_OECONF_class-native = "\
+ --enable-ipv6=${@bb.utils.contains('DISTRO_FEATURES_NATIVE', 'ipv6', 'yes', 'no', d)} \
That is totally wrong. In a native recipe, DISTRO_FEATURES has been altered based on DISTRO_FEATURES_NATIVE. You don't need to make other changes, and I suspect that reverting this chunk means the other chunks can also be reverted.
Ross
Quoted 7 lines · Ross
Quoted 3 lines · On 26 September 2017 at 18:23, Alejandro Hernandez…
Using
EXTRA_OECONF_appendgets added to the correct EXTRA_OECONF_class-<target/natve> correctly, otherwise its disregarded.
Quoted 8 lines
I guess the subtext was
+EXTRA_OECONF_class-native = "\
+ --enable-ipv6=${@bb.utils.contains('DISTRO_FEATURES_NATIVE', 'ipv6', 'yes', 'no', d)} \That is totally wrong. In a native recipe,
DISTRO_FEATUREShas been altered based on DISTRO_FEATURES_NATIVE. You don't need to make other changes, and I suspect that reverting this chunk means the other chunks can also be reverted.
I see your point, seems like I got confused, I just checked and the resulting EXTRA_OECONF is the same, but I understand why this is conceptually wrong, I'll send a v2 in a bit.
Thanks!
Alejandro
Quoted 3 lines
Ross