sipp / travis / osx build / openssl
A couple of days ago our SIPp Travis CI builds started failing due to missing OpenSSL include files.
Between SIPp build 196 and SIPp build 215 the OSX builds on Travis started failing with the following configure error:
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 CPPFLAGS
and LDFLAGS
:
--- 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.