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

Reply via email to