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 e5c0821  Add uv to relevant images (#416)
e5c0821 is described below

commit e5c0821206aee730a7864f6af817963ed5f58d43
Author: Brian Neradt <[email protected]>
AuthorDate: Tue Jan 6 16:15:44 2026 -0600

    Add uv to relevant images (#416)
---
 docker/fedora42/Dockerfile                     |  1 +
 docker/fedora43/Dockerfile                     |  1 +
 docker/rockylinux8/Dockerfile                  | 38 +++++++++++++++++++++++---
 docker/rockylinux8/build_boringssl_h3_tools.sh | 16 +++++------
 docker/rockylinux8/build_openssl_h3_tools.sh   | 14 +++++-----
 docker/rockylinux9/Dockerfile                  |  1 +
 6 files changed, 52 insertions(+), 19 deletions(-)

diff --git a/docker/fedora42/Dockerfile b/docker/fedora42/Dockerfile
index c46bfc7..acd35f8 100644
--- a/docker/fedora42/Dockerfile
+++ b/docker/fedora42/Dockerfile
@@ -249,6 +249,7 @@ RUN <<EOF
 EOF
 
 RUN pip3 install pipenv httpbin
+RUN curl -LsSf https://astral.sh/uv/install.sh | sh
 
 # Add the CI's test user. N.B: 1200 is the uid that our jenkins user is
 # configured with, so that has to be used. Otherwise there will be permissions
diff --git a/docker/fedora43/Dockerfile b/docker/fedora43/Dockerfile
index 68242d6..4b8c995 100644
--- a/docker/fedora43/Dockerfile
+++ b/docker/fedora43/Dockerfile
@@ -249,6 +249,7 @@ RUN <<EOF
 EOF
 
 RUN pip3 install pipenv httpbin
+RUN curl -LsSf https://astral.sh/uv/install.sh | sh
 
 # Add the CI's test user. N.B: 1200 is the uid that our jenkins user is
 # configured with, so that has to be used. Otherwise there will be permissions
diff --git a/docker/rockylinux8/Dockerfile b/docker/rockylinux8/Dockerfile
index fb9d4ae..1d26f4a 100644
--- a/docker/rockylinux8/Dockerfile
+++ b/docker/rockylinux8/Dockerfile
@@ -23,7 +23,7 @@ RUN <<EOF
     python3.12-devel \
     libev-devel jemalloc-devel libxml2-devel \
     c-ares-devel libevent-devel jansson-devel cjose-devel \
-    zlib-devel systemd-devel
+    zlib-devel systemd-devel libpsl-devel
 
   # Various other tools
   dnf -y install \
@@ -69,11 +69,18 @@ ARG PATH=/opt/bin:$PATH
 # older system version.
 RUN <<EOF
   set -e
-  wget 
https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-linux.zip
-  unzip ninja-linux.zip
+  arch=$(uname -m)
+  ninja_version=1.12.1
+  if [ "${arch}" = "aarch64" ]; then
+    ninja_zip="ninja-linux-aarch64.zip"
+  else
+    ninja_zip="ninja-linux.zip"
+  fi
+  wget 
https://github.com/ninja-build/ninja/releases/download/v${ninja_version}/${ninja_zip}
+  unzip ${ninja_zip}
   cp ninja /opt/bin
   chmod 755 /opt/bin/
-  rm -f ninja ninja-linux.zip
+  rm -f ninja ${ninja_zip}
 EOF
 
 RUN <<EOF
@@ -83,6 +90,8 @@ RUN <<EOF
 
   python3.12 -m pip install --upgrade pip
   python3.12 -m pip install pipenv httpbin
+
+  curl -LsSf https://astral.sh/uv/install.sh | sh
 EOF
 
 
#-------------------------------------------------------------------------------
@@ -102,6 +111,25 @@ RUN <<EOF
   dnf clean all
 EOF
 
+# Build c-ares from source since Rocky Linux 8's version (1.13.0) is too old
+# for nghttp2's --enable-app option which requires >= 1.16.0.
+RUN <<EOF
+  set -e
+  source /opt/rh/gcc-toolset-14/enable
+  cd /root
+  c_ares_version=1.34.4
+  wget 
https://github.com/c-ares/c-ares/releases/download/v${c_ares_version}/c-ares-${c_ares_version}.tar.gz
+  tar xf c-ares-${c_ares_version}.tar.gz
+  cd c-ares-${c_ares_version}
+  # Use INSTALL_LIBDIR=lib to ensure pkg-config file goes to a known location.
+  cmake -B build -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_INSTALL_LIBDIR=lib
+  cmake --build build
+  cmake --install build
+  cd /root
+  rm -rf c-ares-${c_ares_version} c-ares-${c_ares_version}.tar.gz
+  ldconfig /usr/local/lib
+EOF
+
 RUN <<EOF
   set -e
   cd ${h3_tools_dir}
@@ -172,6 +200,7 @@ RUN <<EOF
     -DCMAKE_INSTALL_PREFIX=/opt/ \
     -DCMAKE_CXX_STANDARD=17 \
     -DCMAKE_CXX_FLAGS="-Wno-sign-compare" \
+    -DCMAKE_EXE_LINKER_FLAGS="-ldl" \
     -DOPENSSL_LIBRARY_PATH=${OPENSSL_LIB} \
     -DOPENSSL_INCLUDE_PATH=${OPENSSL_PREFIX}/include
   cmake --build build_openssl
@@ -189,6 +218,7 @@ RUN <<EOF
     -DCMAKE_INSTALL_PREFIX=/opt/nuraft-boringssl \
     -DCMAKE_CXX_STANDARD=17 \
     -DCMAKE_CXX_FLAGS="-Wno-sign-compare" \
+    -DCMAKE_EXE_LINKER_FLAGS="-ldl" \
     -DOPENSSL_LIBRARY_PATH=${BORINGSSL_LIB} \
     -DOPENSSL_INCLUDE_PATH=${BORINGSSL_PREFIX}/include
   cmake --build build_boringssl
diff --git a/docker/rockylinux8/build_boringssl_h3_tools.sh 
b/docker/rockylinux8/build_boringssl_h3_tools.sh
index e24ee3b..72f790b 100755
--- a/docker/rockylinux8/build_boringssl_h3_tools.sh
+++ b/docker/rockylinux8/build_boringssl_h3_tools.sh
@@ -128,7 +128,7 @@ GO_BINARY_PATH=${BASE}/go/bin/go
 if [ ! -d boringssl ]; then
   git clone https://boringssl.googlesource.com/boringssl
   cd boringssl
-  git checkout a1843d660b47116207877614af53defa767be46a
+  git checkout 45b2464158379f48cec6e35a1ef503ddea1511a6
   cd ..
 fi
 cd boringssl
@@ -180,7 +180,7 @@ echo "Building quiche"
 QUICHE_BASE="${BASE:-/opt}/quiche"
 [ ! -d quiche ] && git clone  https://github.com/cloudflare/quiche.git
 cd quiche
-git checkout 0.22.0
+git checkout 0.23.2
 QUICHE_BSSL_PATH=${BORINGSSL_LIB_PATH} QUICHE_BSSL_LINK_KIND=dylib cargo build 
-j4 --package quiche --release --features ffi,pkg-config-meta,qlog
 mkdir -p ${QUICHE_BASE}/lib/pkgconfig
 mkdir -p ${QUICHE_BASE}/include
@@ -197,7 +197,7 @@ LDFLAGS=${LDFLAGS:-"-Wl,-rpath,${BORINGSSL_LIB_PATH}"}
 
 # Then nghttp3
 echo "Building nghttp3..."
-[ ! -d nghttp3 ] && git clone --depth 1 -b v1.2.0 
https://github.com/ngtcp2/nghttp3.git
+[ ! -d nghttp3 ] && git clone --depth 1 -b v1.8.0 
https://github.com/ngtcp2/nghttp3.git
 cd nghttp3
 git submodule update --init
 autoreconf -if
@@ -215,7 +215,7 @@ cd ..
 
 # Now ngtcp2
 echo "Building ngtcp2..."
-[ ! -d ngtcp2 ] && git clone --depth 1 -b v1.4.0 
https://github.com/ngtcp2/ngtcp2.git
+[ ! -d ngtcp2 ] && git clone --depth 1 -b v1.11.0 
https://github.com/ngtcp2/ngtcp2.git
 cd ngtcp2
 autoreconf -if
 ./configure \
@@ -235,7 +235,7 @@ cd ..
 
 # Then nghttp2, with support for H3
 echo "Building nghttp2 ..."
-[ ! -d nghttp2 ] && git clone --depth 1 -b v1.60.0 
https://github.com/tatsuhiro-t/nghttp2.git
+[ ! -d nghttp2 ] && git clone --depth 1 -b v1.65.0 
https://github.com/tatsuhiro-t/nghttp2.git
 cd nghttp2
 git submodule update --init
 autoreconf -if
@@ -250,10 +250,10 @@ fi
 # Note for FreeBSD: This will not build h2load. h2load can be run on a remote 
machine.
 ./configure \
   --prefix=${BASE} \
-  PKG_CONFIG_PATH=${BASE}/lib/pkgconfig \
+  PKG_CONFIG_PATH=${BASE}/lib/pkgconfig:/usr/local/lib/pkgconfig \
   CFLAGS="${CFLAGS} -I${BORINGSSL_PATH}/include" \
   CXXFLAGS="${CXXFLAGS} -I${BORINGSSL_PATH}/include" \
-  LDFLAGS="${LDFLAGS}" \
+  LDFLAGS="${LDFLAGS} -L/usr/local/lib" \
   OPENSSL_LIBS="-lcrypto -lssl -L${BORINGSSL_LIB_PATH}" \
   --enable-http3 \
   --disable-examples \
@@ -265,7 +265,7 @@ cd ..
 
 # Then curl
 echo "Building curl ..."
-[ ! -d curl ] && git clone --depth 1 -b curl-8_7_1 
https://github.com/curl/curl.git
+[ ! -d curl ] && git clone --depth 1 -b curl-8_12_1 
https://github.com/curl/curl.git
 cd curl
 # On mac autoreconf fails on the first attempt with an issue finding ltmain.sh.
 # The second runs fine.
diff --git a/docker/rockylinux8/build_openssl_h3_tools.sh 
b/docker/rockylinux8/build_openssl_h3_tools.sh
index bde4bbc..0283fae 100755
--- a/docker/rockylinux8/build_openssl_h3_tools.sh
+++ b/docker/rockylinux8/build_openssl_h3_tools.sh
@@ -127,7 +127,7 @@ echo "Building quiche"
 QUICHE_BASE="${BASE:-/opt}/quiche"
 [ ! -d quiche ] && git clone https://github.com/cloudflare/quiche.git
 cd quiche
-git checkout 0.22.0
+git checkout 0.23.2
 
 PKG_CONFIG_PATH="$OPENSSL_LIB"/pkgconfig LD_LIBRARY_PATH="$OPENSSL_LIB" \
   cargo build -j4 --package quiche --release --features 
ffi,pkg-config-meta,qlog,openssl
@@ -146,7 +146,7 @@ cd ..
 
 # Then nghttp3
 echo "Building nghttp3..."
-[ ! -d nghttp3 ] && git clone --depth 1 -b v1.2.0 
https://github.com/ngtcp2/nghttp3.git
+[ ! -d nghttp3 ] && git clone --depth 1 -b v1.8.0 
https://github.com/ngtcp2/nghttp3.git
 cd nghttp3
 git submodule update --init
 autoreconf -if
@@ -164,7 +164,7 @@ cd ..
 
 # Now ngtcp2
 echo "Building ngtcp2..."
-[ ! -d ngtcp2 ] && git clone --depth 1 -b v1.4.0 
https://github.com/ngtcp2/ngtcp2.git
+[ ! -d ngtcp2 ] && git clone --depth 1 -b v1.11.0 
https://github.com/ngtcp2/ngtcp2.git
 cd ngtcp2
 autoreconf -if
 ./configure \
@@ -181,7 +181,7 @@ cd ..
 
 # Then nghttp2, with support for H3
 echo "Building nghttp2 ..."
-[ ! -d nghttp2 ] && git clone --depth 1 -b v1.60.0 
https://github.com/tatsuhiro-t/nghttp2.git
+[ ! -d nghttp2 ] && git clone --depth 1 -b v1.65.0 
https://github.com/tatsuhiro-t/nghttp2.git
 cd nghttp2
 git submodule update --init
 autoreconf -if
@@ -196,10 +196,10 @@ fi
 # Note for FreeBSD: This will not build h2load. h2load can be run on a remote 
machine.
 ./configure \
   --prefix=${BASE} \
-  PKG_CONFIG_PATH=${BASE}/lib/pkgconfig:${OPENSSL_LIB}/pkgconfig \
+  
PKG_CONFIG_PATH=${BASE}/lib/pkgconfig:${OPENSSL_LIB}/pkgconfig:/usr/local/lib/pkgconfig
 \
   CFLAGS="${CFLAGS}" \
   CXXFLAGS="${CXXFLAGS}" \
-  LDFLAGS="${LDFLAGS} -L${OPENSSL_LIB}" \
+  LDFLAGS="${LDFLAGS} -L${OPENSSL_LIB} -L/usr/local/lib" \
   --enable-http3 \
   ${ENABLE_APP}
 ${MAKE} -j ${num_threads}
@@ -209,7 +209,7 @@ cd ..
 
 # Then curl
 echo "Building curl ..."
-[ ! -d curl ] && git clone --depth 1 -b curl-8_7_1 
https://github.com/curl/curl.git
+[ ! -d curl ] && git clone --depth 1 -b curl-8_12_1 
https://github.com/curl/curl.git
 cd curl
 # On mac autoreconf fails on the first attempt with an issue finding ltmain.sh.
 # The second runs fine.
diff --git a/docker/rockylinux9/Dockerfile b/docker/rockylinux9/Dockerfile
index b33a9aa..b640130 100644
--- a/docker/rockylinux9/Dockerfile
+++ b/docker/rockylinux9/Dockerfile
@@ -38,6 +38,7 @@ RUN <<EOF
   set -e
   pip3 install --upgrade pip
   pip3 install pipenv httpbin
+  curl -LsSf https://astral.sh/uv/install.sh | sh
 EOF
 
 
#-------------------------------------------------------------------------------

Reply via email to