There's an erroneous assumption in
ropenssl.py that the OpenSSL header
comp.h will always be available, and consequently when that header isn't available the build can fail:
File "/private/tmp/pypy-20180426-89170-ltfanb/pypy2-v6.0.0-src/rpython/rtyper/tool/rffi_platform.py", line 844, in configure_external_library raise last_error [translation:ERROR] CompilationError: CompilationError(err=""" /private/tmp/pypy-20180426-89170-ltfanb/pypy2-v6.0.0-src/usession-release-pypy2.7-v6.0.0-0/platcheck_77.c:87:10: fatal error: 'openssl/comp.h' file not found #include <openssl/comp.h> ^~~~~~~~~~~~~~~~ 1 error generated. """)
Whilst it is usually available, it is perfectly legitimate to build openssl with
no-comp passed during compile, which apparently disables installing that header entirely. Homebrew, the macOS package manager, has recently switched its OpenSSL formula to build with
no-comp, which has revealed this issue.
Normally in C you could wrap the header inclusion in something like
#ifndef OPENSSL_NO_COMP but I'm not sure how to achieve that in Python.