#!/bin/bash set -eo pipefail sudo apt-get update sudo apt-get -y install \ build-essential cmake \ zlib1g-dev libjpeg-dev libgnutls28-dev libssl-dev # Build and install zlib-ng rm -rf /tmp/zlib-ng pushd /tmp git clone https://github.com/zlib-ng/zlib-ng cd zlib-ng cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/tmp/inst -DZLIB_COMPAT=ON cmake --build build -j$(nproc) (cd build; ctest --verbose) cmake --install build popd cmake -S . -B build \ -DCI_MODE=1 -DBUILD_STATIC_LIBS=0 -DCMAKE_BUILD_TYPE=Release \ -DREQUIRE_CRYPTO_OPENSSL=1 -DREQUIRE_CRYPTO_GNUTLS=1 \ -DENABLE_QTC=1 cmake --build build --verbose -j$(nproc) -- -k # Make sure we can use zlib-ng sum1="$(./build/zlib-flate/zlib-flate -compress < README-maintainer.md | sha256sum -)" export LD_PRELOAD=/tmp/inst/lib/libz.so.1 sum2="$(./build/zlib-flate/zlib-flate -compress < README-maintainer.md | sha256sum -)" if [ "$sum1" = "$sum2" ]; then # If this happens, see if zlib-ng has become the default. If # that's the case, rework this test to use some other alternaive # zlib, such as the old one or any other API-compatible # implementation. echo "Using zlib-ng didn't change compression output" exit 2 fi # If this fails, please see ZLIB COMPATIBILITY in README-maintainer.md. (cd build; ctest --verbose)