sipp / travis / osx build / openssl

sipp / travis / osx build / openssl

  • Written by
    Walter Doekes
  • Published on

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.


Back to overview Newer post: golang / statically linked Older post: lxc / create image / debian squeeze