build_botan()
{
# same revision used in the build recipe of the testing environment
- BOTAN_REV=2.11.0
+ BOTAN_REV=2.13.0
BOTAN_DIR=$TRAVIS_BUILD_DIR/../botan
if test -d "$BOTAN_DIR"; then
build_wolfssl()
{
- WOLFSSL_REV=v4.1.0-stable
+ WOLFSSL_REV=v4.3.0-stable
WOLFSSL_DIR=$TRAVIS_BUILD_DIR/../wolfssl
if test -d "$WOLFSSL_DIR"; then
build_tss2()
{
- TSS2_REV=2.1.0
+ TSS2_REV=2.3.1
TSS2_PKG=tpm2-tss-$TSS2_REV
TSS2_DIR=$TRAVIS_BUILD_DIR/../$TSS2_PKG
TSS2_SRC=https://github.com/tpm2-software/tpm2-tss/releases/download/$TSS2_REV/$TSS2_PKG.tar.gz
sudo apt-get install -qq libgcrypt20-dev &&
curl -L $TSS2_SRC | tar xz -C $TRAVIS_BUILD_DIR/.. &&
cd $TSS2_DIR &&
- ./configure &&
+ ./configure --disable-doxygen-doc &&
make -j4 >/dev/null &&
sudo make install >/dev/null &&
sudo ldconfig || exit $?
cd -
}
-build_openssl()
-{
- SSL_REV=1.1.1c
- SSL_PKG=openssl-$SSL_REV
- SSL_DIR=$TRAVIS_BUILD_DIR/../$SSL_PKG
- SSL_SRC=https://www.openssl.org/source/$SSL_PKG.tar.gz
- SSL_INS=/usr/local/ssl
- SSL_OPT="shared no-tls no-dtls no-ssl3 no-zlib no-comp no-idea no-psk no-srp
- no-stdio no-tests enable-rfc3779 enable-ec_nistp_64_gcc_128
- --api=1.1.0"
-
- if test -d "$SSL_DIR"; then
- return
- fi
-
- echo "$ build_openssl()"
-
- curl -L $SSL_SRC | tar xz -C $TRAVIS_BUILD_DIR/.. &&
- cd $SSL_DIR &&
- ./config --prefix=$SSL_INS --openssldir=$SSL_INS $SSL_OPT &&
- make -j4 >/dev/null &&
- sudo make install_sw >/dev/null &&
- echo $SSL_INS/lib | sudo tee /etc/ld.so.conf.d/openssl-$SSL_REV.conf >/dev/null &&
- sudo ldconfig || exit $?
- cd -
-}
-
-use_custom_openssl()
-{
- CFLAGS="$CFLAGS -I/usr/local/ssl/include"
- LDFLAGS="$LDFLAGS -L/usr/local/ssl/lib"
- export LDFLAGS
- if test "$1" = "deps"; then
- build_openssl
- fi
-}
-
if test -z $TRAVIS_BUILD_DIR; then
TRAVIS_BUILD_DIR=$PWD
fi
CONFIG="--disable-defaults --enable-pki --enable-openssl --enable-pem"
export TESTS_PLUGINS="test-vectors pem openssl!"
DEPS="libssl-dev"
- if test "$TEST" != "openssl-1.0"; then
- DEPS=""
- use_custom_openssl $1
- fi
;;
gcrypt)
CONFIG="--disable-defaults --enable-pki --enable-gcrypt --enable-pkcs1"
DEPS="$DEPS libcurl4-gnutls-dev libsoup2.4-dev libunbound-dev libldns-dev
libmysqlclient-dev libsqlite3-dev clearsilver-dev libfcgi-dev
libpcsclite-dev libpam0g-dev binutils-dev libunwind8-dev libnm-dev
- libjson0-dev iptables-dev python-pip libtspi-dev libsystemd-dev"
- PYDEPS="pytest"
+ libjson-c-dev iptables-dev python-pip libtspi-dev libsystemd-dev"
+ PYDEPS="tox"
if test "$1" = "deps"; then
build_botan
build_wolfssl
build_tss2
fi
- use_custom_openssl $1
;;
win*)
CONFIG="--disable-defaults --enable-svc --enable-ikev2
export CPPFLAGS
export LDFLAGS
;;
+freebsd)
+ # use the options of the FreeBSD port (including options), except smp,
+ # which requires a patch but is deprecated anyway, only using the builtin
+ # printf hooks
+ CONFIG="--enable-kernel-pfkey --enable-kernel-pfroute --disable-scripts
+ --disable-kernel-netlink --enable-openssl --enable-eap-identity
+ --enable-eap-md5 --enable-eap-tls --enable-eap-mschapv2
+ --enable-eap-peap --enable-eap-ttls --enable-md4 --enable-blowfish
+ --enable-addrblock --enable-whitelist --enable-cmd --enable-curl
+ --enable-eap-aka --enable-eap-aka-3gpp2 --enable-eap-dynamic
+ --enable-eap-radius --enable-eap-sim --enable-eap-sim-file
+ --enable-gcm --enable-ipseckey --enable-kernel-libipsec
+ --enable-load-tester --enable-ldap --enable-mediation
+ --enable-mysql --enable-sqlite --enable-tpm --enable-unbound
+ --enable-unity --enable-xauth-eap --enable-xauth-pam
+ --with-printf-hooks=builtin --enable-attr-sql --enable-sql"
+ DEPS="gmp openldap-client libxml2 mysql80-client sqlite3 unbound ldns"
+ export GPERF=/usr/local/bin/gperf
+ export LEX=/usr/local/bin/flex
+ ;;
fuzzing)
CFLAGS="$CFLAGS -DNO_CHECK_MEMWIPE"
CONFIG="--enable-fuzzing --enable-static --disable-shared --disable-scripts
;;
osx)
brew update && \
- # workaround for issue #6352
- brew uninstall --force libtool && brew install libtool && \
brew install $DEPS
;;
+ freebsd)
+ pkg install -y automake autoconf libtool pkgconf && \
+ pkg install -y bison flex gperf gettext $DEPS
+ ;;
esac
exit $?
fi
echo "$ make $TARGET"
case "$TEST" in
sonarcloud)
+ # there is an issue with the platform detection that causes sonarqube to
+ # fail on bionic with "ERROR: ld.so: object '...libinterceptor-${PLATFORM}.so'
+ # from LD_PRELOAD cannot be preloaded (cannot open shared object file)"
+ # https://jira.sonarsource.com/browse/CPP-2027
+ BW_PATH=$(dirname $(which build-wrapper-linux-x86-64))
+ cp $BW_PATH/libinterceptor-x86_64.so $BW_PATH/libinterceptor-haswell.so
# without target, coverage is currently not supported anyway because
# sonarqube only supports gcov, not lcov
build-wrapper-linux-x86-64 --out-dir bw-output make -j4 || exit $?