Skip to contentSkip to conversation

python-native: Build with ipv6 enabled

PATCH In review Alejandro Hernandez 2 participants 2 messages Sep 27, 2017 – Oct 2, 2017 2 messages not in the archive

lore
Share & tools
lore
#0 lore raw

PATCH v2 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.

On some python packages this may cause errors when they try to download something on their do_compile stage.

This patch fixes the implementation of EXTRA_OECONF to get the ipv6 configuration correctly, still letting the user choose if they'd like support for ipv6 on python for target, but forcing ipv6 support for python native, to avoid errors

[YOCTO #11978]

---
 meta/recipes-devtools/python/python.inc       | 12 ++++++++++--
 meta/recipes-devtools/python/python3_3.5.3.bb |  2 +-
 meta/recipes-devtools/python/python_2.7.13.bb |  2 +-
 3 files changed, 12 insertions(+), 4 deletions(-)
meta/recipes-devtools/python/python.inc +10 -2
index b40f551ab39..28aadb176c3 100644
@@ -22,13 +22,21 @@ PYTHON_MAJMIN = "2.7"
 
 inherit autotools pkgconfig
 
-EXTRA_OECONF = "\
+EXTRA_OECONF_class-target = "\
+  --enable-ipv6=${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'yes', 'no', d)} \
+"
+# Enable ipv6 support for native by default, without having to modify DISTRO_FEATURES_NATIVE 
+EXTRA_OECONF_class-native = "\
+  --enable-ipv6=yes \
+"
+
+# _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

A message that is not in the archive (sent off-list or not yet received): CAJTo0LZARrNgW0ULNmLgf7vgGAY9fw-T89Ox4LZkYN06hKnAmA@mail.gmail.com

A message that is not in the archive (sent off-list or not yet received): [email protected]

#3 lore raw

I think that's probably the best option. There's not a lot of network operations done by native applications and the ones that are will fallback to IPv4, so I'm not surprised it wasn't noticed.

Ross

Quoted 23 lines · Alejandro Hernandez

Yes, I really didnt want to enable ipv6 as a DISTRO_FEATURES_NATIVE, because it would affect other packages,

and since it was deleted back in April and no one has complained, I figured we didnt need to enable it for all of them,

but can definitely do that as well.

On 09/27/2017 02:46 PM, Burton, Ross wrote:

Quoted 3 lines · Alejandro Hernandez

+# Enable ipv6 support for native by default, without having to modify DISTRO_FEATURES_NATIVE

Or lets just change DISTRO_FEATURES_NATIVE?

Ross