A couple of days ago our SIPp Travis CI builds started failing due to missing OpenSSL include files.
checking openssl/bio.h usability... no checking openssl/bio.h presence... no checking for openssl/bio.h... no configure: error: <openssl/bio.h> header missing
It turns out that something had changed in the build environment and OpenSSL headers and libraries were no longer reachable.
After scouring the internet for clues, it was
brew link openssl --force that came with the resolution:
$ brew link openssl --force Warning: Refusing to link: openssl Linking keg-only openssl means you may end up linking against the insecure, deprecated system OpenSSL while using the headers from Homebrew's openssl. Instead, pass the full include/library paths to your compiler e.g.: -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib
The fix was to add appropriate
--- a/.travis.yml +++ b/.travis.yml @@ -59,7 +59,12 @@ before_script: - autoreconf -vifs - if [ "$TRAVIS_OS_NAME" = osx ]; then brew update; fi - if [ "$TRAVIS_OS_NAME" = osx ]; then brew install gsl; fi - - ./configure $CONFOPTS + # 2016-10: Apple doesn't include openssl any more because of security + # problems openssl had. Manually specify path to includes/libs. + - if [ "$TRAVIS_OS_NAME" = osx ]; then brew install openssl; fi + - if [ "$TRAVIS_OS_NAME" = osx ]; then CPPFLAGS="-I/usr/local/opt/openssl/include"; fi + - if [ "$TRAVIS_OS_NAME" = osx ]; then LDFLAGS="-L/usr/local/opt/openssl/lib"; fi + - ./configure CPPFLAGS=$CPPFLAGS LDFLAGS=$LDFLAGS $CONFOPTS script: - make -j2
All’s well that ends well.