Phillip Middleton <pmiddle...@gmail.com> added the comment:
I have the same issue installing v3.7.3 on RHEL6.8. The standard version came with openssl v1.0.1c, which would not configure. I installed openssl 1.0.2s in /usr/local and created a file /etc/profile.d/openssl.sh adding the following lines: # /etc/profile.d/openssl.sh pathmunge /usr/local/openssl/bin Exiting and relogging into the shell, the version returns openssl 1.0.2s 28 May 2019. As has been mentioned, there is no openssl distro out there that contains the filepath that either configure or make appears to expect. To get through configuration, I began with configure, modifying the ssldirs variable to /usr/local/openssl, and also repointing the following to the appropriate subdirs: 17214 if ! $found; then 17215 OPENSSL_INCLUDES= 17216 for ssldir in $ssldirs; do 17217 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openssl/ssl.h in $ssldir" >&5 17218 $as_echo_n "checking for openssl/ssl.h in $ssldir... " >&6; } 17219 if test -f "$ssldir/include/openssl/ssl.h"; then 17220 OPENSSL_INCLUDES="-I$ssldir/include/openssl" 17221 OPENSSL_LDFLAGS="-L$ssldir/lib" This apparently wasn't sufficient for configure to recognize this openssl installation. Next, I uncommented and modified Modules/Setup.dist to reflect the openssl header and lib paths: 211 SSL=/usr/local/openssl 212 _ssl _ssl.c \ 213 -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ 214 -L$(SSL)/lib -lssl -lcrypto That gets us to here with ./configure: checking whether compiling and linking against OpenSSL works... yes checking for X509_VERIFY_PARAM_set1_host in libssl... no checking for --with-ssl-default-suites... python However using ./configure -with-openssl=/usr/local/openssl, configure returns: checking whether compiling and linking against OpenSSL works... yes checking for X509_VERIFY_PARAM_set1_host in libssl... yes checking for --with-ssl-default-suites... python So at least from configure's standpoint, I was able to get configure to pick up the openssl folder and its include/openssl which contains x509_vfy.h. Ok great. However make doesn't appear to respect these changes in configure - I get one of the typical variants of: *** WARNING: renaming "_hashlib" since importing it failed: libssl.so.1.0.0: cannot open shared object file: No such file or directory Python build finished successfully! The necessary bits to build these optional modules were not found: _lzma _tkinter _uuid To find the necessary bits, look in setup.py in detect_modules() for the module's name. The following modules found by detect_modules() in setup.py, have been built by the Makefile instead, as configured by the Setup files: _abc atexit pwd time Failed to build these modules: _ssl Following modules built successfully but were removed because they could not be imported: _hashlib Could not build the ssl module! Python requires an OpenSSL 1.0.2 or 1.1 compatible libssl with X509_VERIFY_PARAM_set1_host(). LibreSSL 2.6.4 and earlier do not provide the necessary APIs, https://github.com/libressl-portable/portable/issues/381 What I'd like to know is, what is the difference between what configure is looking for and in what cases would make not necessarily respect the confirmations of configure's checks? Let me know if there are any dumps/logs you'd be interested in. I realize that in my case we're dealing with an older OS, but this issue doesn't seem restricted per se to that alone. ---------- nosy: +Phillip Middleton _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue34028> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com