Skip to contentSkip to conversation

python-native: Build with ipv6 enabled

PATCH Superseded Alejandro Hernandez 2 participants 5 messages Sep 26, 2017

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

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
index 4ff1e9608e7..9ca7c57a5c3 100644
@@ -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
index b40f551ab39..73b95ad2c71 100644
@@ -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
index 13df12fe566..2657ed09618 100644
@@ -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
index 4d73cd25c8b..c346b0988bd 100644
@@ -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
#1 lore raw
Quoted 5 lines · Alejandro Hernandez

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'

Why are changes beyond adding to DISTRO_FEATURES_NATIVE required at all?

Ross

#2 lore raw

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_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'

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_NATIVE required at all?

Ross

#3 lore raw
Quoted 4 lines · Alejandro Hernandez

Using EXTRA_OECONF_append gets 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

#4 lore raw
Quoted 7 lines · Ross
Quoted 3 lines · On 26 September 2017 at 18:23, Alejandro Hernandez…

Using EXTRA_OECONF_append gets 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_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.

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