This is an automated email from the ASF dual-hosted git repository. bneradt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/trafficserver-ci.git
The following commit(s) were added to refs/heads/main by this push: new 27e33c8 Update rockylinux:8's build_h3_tools (#312) 27e33c8 is described below commit 27e33c8718915ffd8e4099a07facfed5ebdc8b6d Author: Brian Neradt <brian.ner...@gmail.com> AuthorDate: Tue Jan 9 15:52:01 2024 -0600 Update rockylinux:8's build_h3_tools (#312) Update rockylinux:8 build_h3_tools to a recent version. --- docker/rockylinux8/build_h3_tools.sh | 74 +++++++++++++++++------------------- 1 file changed, 35 insertions(+), 39 deletions(-) diff --git a/docker/rockylinux8/build_h3_tools.sh b/docker/rockylinux8/build_h3_tools.sh index 469ad51..58012a0 100644 --- a/docker/rockylinux8/build_h3_tools.sh +++ b/docker/rockylinux8/build_h3_tools.sh @@ -37,7 +37,7 @@ set -e # that it later removes. # Update this as the draft we support updates. -OPENSSL_BRANCH=${OPENSSL_BRANCH:-"openssl-3.1.0+quic+locks"} +OPENSSL_BRANCH=${OPENSSL_BRANCH:-"openssl-3.1.2+quic"} # Set these, if desired, to change these to your preferred installation # directory @@ -78,6 +78,14 @@ elif [ -e /etc/debian_version ]; then echo fi +if [ `uname -s` = "Darwin" ]; then + echo "+-------------------------------------------------------------------------+" + echo "| When building on a Mac, be aware that the Apple version of clang may |" + echo "| fail to build curl due to the issue described here: |" + echo "| https://github.com/curl/curl/issues/11391#issuecomment-1623890325 |" + echo "+-------------------------------------------------------------------------+" +fi + if [ -z ${QUICHE_BSSL_PATH+x} ]; then QUICHE_BSSL_PATH=${TMP_QUICHE_BSSL_PATH:-"${BASE}/boringssl/lib"} fi @@ -114,29 +122,30 @@ else OS="linux" fi -wget https://go.dev/dl/go1.20.1.${OS}-${ARCH}.tar.gz -rm -rf ${BASE}/go && tar -C ${BASE} -xf go1.20.1.${OS}-${ARCH}.tar.gz -rm go1.20.1.${OS}-${ARCH}.tar.gz +wget https://go.dev/dl/go1.21.0.${OS}-${ARCH}.tar.gz +rm -rf ${BASE}/go && tar -C ${BASE} -xf go1.21.0.${OS}-${ARCH}.tar.gz +rm go1.21.0.${OS}-${ARCH}.tar.gz +chmod -R a+rX ${BASE} GO_BINARY_PATH=${BASE}/go/bin/go if [ ! -d boringssl ]; then git clone https://boringssl.googlesource.com/boringssl cd boringssl - git checkout 31bad2514d21f6207f3925ba56754611c462a873 + git checkout e4f60679caa293c047be69f57fc48b46c7452327 cd .. fi cd boringssl -mkdir -p build -cd build cmake \ + -B build \ -DGO_EXECUTABLE=${GO_BINARY_PATH} \ -DCMAKE_INSTALL_PREFIX=${BASE}/boringssl \ -DCMAKE_BUILD_TYPE=Release \ - -DBUILD_SHARED_LIBS=1 ../ - -${MAKE} -j ${num_threads} -${MAKE} install -cd ../.. + -DCMAKE_CXX_FLAGS='-Wno-error=ignored-attributes' \ + -DBUILD_SHARED_LIBS=1 +cmake --build build -j ${num_threads} +cmake --install build +chmod -R a+rX ${BASE} +cd .. # Build quiche # Steps borrowed from: https://github.com/apache/trafficserver-ci/blob/main/docker/rockylinux8/Dockerfile @@ -161,26 +170,27 @@ cp target/release/libquiche.a ${QUICHE_BASE}/lib/ [ -f target/release/libquiche.so ] && cp target/release/libquiche.so ${QUICHE_BASE}/lib/ cp quiche/include/quiche.h ${QUICHE_BASE}/include/ cp target/release/quiche.pc ${QUICHE_BASE}/lib/pkgconfig +chmod -R a+rX ${BASE} cd .. -# OpenSSL needs special hackery ... Only grabbing the branch we need here... Bryan has shit for network. echo "Building OpenSSL with QUIC support" [ ! -d openssl-quic ] && git clone -b ${OPENSSL_BRANCH} --depth 1 https://github.com/quictls/openssl.git openssl-quic cd openssl-quic -git checkout 6c41837e9234a8c250f02ae8aa30f44e91342ef6 ./config enable-tls1_3 --prefix=${OPENSSL_PREFIX} ${MAKE} -j ${num_threads} ${MAKE} install_sw +chmod -R a+rX ${BASE} # The symlink target provides a more convenient path for the user while also # providing, in the symlink source, the precise branch of the OpenSSL build. ln -sf ${OPENSSL_PREFIX} ${OPENSSL_BASE} +chmod -R a+rX ${BASE} cd .. # OpenSSL will install in /lib or lib64 depending upon the architecture. -if [ -f "${OPENSSL_PREFIX}/lib/libssl.so" ]; then +if [ -d "${OPENSSL_PREFIX}/lib" ]; then OPENSSL_LIB="${OPENSSL_PREFIX}/lib" -elif [ -f "${OPENSSL_PREFIX}/lib64/libssl.so" ]; then +elif [ -d "${OPENSSL_PREFIX}/lib64" ]; then OPENSSL_LIB="${OPENSSL_PREFIX}/lib64" else echo "Could not find the OpenSSL install library directory." @@ -190,11 +200,7 @@ LDFLAGS=${LDFLAGS:-"-Wl,-rpath,${OPENSSL_LIB}"} # Then nghttp3 echo "Building nghttp3..." -if [ ! -d nghttp3 ]; then - git clone --depth 1 -b v0.12.0 https://github.com/ngtcp2/nghttp3.git - cd nghttp3 - cd .. -fi +[ ! -d nghttp3 ] && git clone --depth 1 -b v0.13.0 https://github.com/ngtcp2/nghttp3.git cd nghttp3 autoreconf -if ./configure \ @@ -206,15 +212,12 @@ autoreconf -if --enable-lib-only ${MAKE} -j ${num_threads} ${MAKE} install +chmod -R a+rX ${BASE} cd .. # Now ngtcp2 echo "Building ngtcp2..." -if [ ! -d ngtcp2 ]; then - git clone --depth 1 -b v0.16.0 https://github.com/ngtcp2/ngtcp2.git - cd ngtcp2 - cd .. -fi +[ ! -d ngtcp2 ] && git clone --depth 1 -b v0.17.0 https://github.com/ngtcp2/ngtcp2.git cd ngtcp2 autoreconf -if ./configure \ @@ -226,18 +229,12 @@ autoreconf -if --enable-lib-only ${MAKE} -j ${num_threads} ${MAKE} install +chmod -R a+rX ${BASE} cd .. # Then nghttp2, with support for H3 echo "Building nghttp2 ..." -if [ ! -d nghttp2 ]; then - git clone https://github.com/tatsuhiro-t/nghttp2.git - cd nghttp2 - # The following has a fix for builds on systems, like Mac, which do not have - # libev. There isn't currently a release with this fix yet. - git checkout 2c955ab76b42dfce58e812da6bbe8a526a125fea - cd .. -fi +[ ! -d nghttp2 ] && git clone --depth 1 -b v1.55.1 https://github.com/tatsuhiro-t/nghttp2.git cd nghttp2 autoreconf -if if [ `uname -s` = "Darwin" ] || [ `uname -s` = "FreeBSD" ] @@ -254,20 +251,18 @@ fi PKG_CONFIG_PATH=${BASE}/lib/pkgconfig:${OPENSSL_LIB}/pkgconfig \ CFLAGS="${CFLAGS}" \ CXXFLAGS="${CXXFLAGS}" \ - LDFLAGS="${LDFLAGS}" \ + LDFLAGS="${LDFLAGS} -L${OPENSSL_LIB}" \ --enable-http3 \ ${ENABLE_APP} ${MAKE} -j ${num_threads} ${MAKE} install +chmod -R a+rX ${BASE} cd .. # Then curl echo "Building curl ..." -[ ! -d curl ] && git clone https://github.com/curl/curl.git +[ ! -d curl ] && git clone --depth 1 -b curl-8_2_1 https://github.com/curl/curl.git cd curl -# There isn't currently a released curl yet which has the updates for the above -# ngtcp2 and nghttp3 library versions. -git checkout 891e25edb8527bb8de79cdca6d943216c230e905 # On mac autoreconf fails on the first attempt with an issue finding ltmain.sh. # The second runs fine. autoreconf -fi || autoreconf -fi @@ -282,4 +277,5 @@ autoreconf -fi || autoreconf -fi LDFLAGS="${LDFLAGS}" ${MAKE} -j ${num_threads} ${MAKE} install +chmod -R a+rX ${BASE} cd ..