During python3 compilation, the module ssl was being skippped due to
the fact that the compilation script couldnt find the required files,
this patch fixes setup.py so it looks for the files in the correct
directory, hence fixing its compilation and installation.

[YOCTO #7768]

Signed-off-by: Alejandro Hernandez <[email protected]>
---
 .../python/python3/fix_ssl_include_dir.patch       | 41 ++++++++++++++++++++++
 meta/recipes-devtools/python/python3_3.4.3.bb      |  1 +
 2 files changed, 42 insertions(+)
 create mode 100644 
meta/recipes-devtools/python/python3/fix_ssl_include_dir.patch

diff --git a/meta/recipes-devtools/python/python3/fix_ssl_include_dir.patch 
b/meta/recipes-devtools/python/python3/fix_ssl_include_dir.patch
new file mode 100644
index 0000000..9972829
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/fix_ssl_include_dir.patch
@@ -0,0 +1,41 @@
+Upstream-Status:  Inappropriate [Embedded Specific]
+
+Python 3 fails to compile the ssl module, later, when requesting to install 
packages that should include such modules
+no error is shown; but a running python shell trying to import the ssl library 
results in an import error, 
+since it was never installed.
+
+This looks for the modules in the correct directories so they are corretcly 
compiled and installed along with python3.
+
+ImportError: No module named _ssl
+
+Signed-Off-By: Alejandro Hernandez <[email protected]>
+
+Index: Python-3.4.3/setup.py
+===================================================================
+--- Python-3.4.3.orig/setup.py
++++ Python-3.4.3/setup.py
+@@ -726,10 +726,9 @@ class PyBuildExt(build_ext):
+         exts.append( Extension('_socket', ['socketmodule.c'],
+                                depends = ['socketmodule.h']) )
+         # Detect SSL support for the socket module (via _ssl)
+-        search_for_ssl_incs_in = [
+-                              '/usr/local/ssl/include',
+-                              '/usr/contrib/ssl/include/'
+-                             ]
++        search_for_ssl_incs_in = []
++        for dir in [os.getenv("STAGING_INCDIR")]:
++                search_for_ssl_incs_in.append(dir)
+         ssl_incs = find_file('openssl/ssl.h', inc_dirs,
+                              search_for_ssl_incs_in
+                              )
+@@ -739,9 +738,7 @@ class PyBuildExt(build_ext):
+             if krb5_h:
+                 ssl_incs += krb5_h
+         ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
+-                                     ['/usr/local/ssl/lib',
+-                                      '/usr/contrib/ssl/lib/'
+-                                     ] )
++                                     [os.getenv("STAGING_LIBDIR")])
+ 
+         if (ssl_incs is not None and
+             ssl_libs is not None):
diff --git a/meta/recipes-devtools/python/python3_3.4.3.bb 
b/meta/recipes-devtools/python/python3_3.4.3.bb
index 120b594..f7f68cb 100644
--- a/meta/recipes-devtools/python/python3_3.4.3.bb
+++ b/meta/recipes-devtools/python/python3_3.4.3.bb
@@ -36,6 +36,7 @@ SRC_URI += "\
             file://python3-setup.py-no-host-headers-libs.patch \
             file://sysconfig.py-add-_PYTHON_PROJECT_SRC.patch \
             file://setup.py-check-cross_compiling-when-get-FLAGS.patch \
+            file://fix_ssl_include_dir.patch \
            "
 SRC_URI[md5sum] = "7d092d1bba6e17f0d9bd21b49e441dd5"
 SRC_URI[sha256sum] = 
"b5b3963533768d5fc325a4d7a6bd6f666726002d696f1d399ec06b043ea996b8"
-- 
1.8.4.5

-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to