]> code.ossystems Code Review - openembedded-core.git/commitdiff
python3-io: Fixes compilation of python3 ssl module
authorAlejandro Hernandez <alejandro.hernandez@linux.intel.com>
Thu, 14 May 2015 16:43:24 +0000 (16:43 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 8 Jun 2015 16:32:43 +0000 (17:32 +0100)
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 <alejandro.hernandez@linux.intel.com>
meta/recipes-devtools/python/python3/fix_ssl_include_dir.patch [new file with mode: 0644]
meta/recipes-devtools/python/python3_3.4.3.bb

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 (file)
index 0000000..9972829
--- /dev/null
@@ -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 <alejandro.hernandez@linux.intel.com>
+
+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):
index 4bab4db81ba9e6a65839bfce9662b74c657a8060..8e0c2ba5f015f10699bf9ad648a5c99a69f4abd5 100644 (file)
@@ -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"