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 be7b920  Add boring to fedora:38 image (#151)
be7b920 is described below

commit be7b920826419dfd825a8cebda65506db5a62cb4
Author: Brian Neradt <[email protected]>
AuthorDate: Tue Apr 25 12:08:49 2023 -0500

    Add boring to fedora:38 image (#151)
---
 docker/fedora38/Dockerfile | 71 +++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 64 insertions(+), 7 deletions(-)

diff --git a/docker/fedora38/Dockerfile b/docker/fedora38/Dockerfile
index bad8706..7cb9be2 100644
--- a/docker/fedora38/Dockerfile
+++ b/docker/fedora38/Dockerfile
@@ -19,7 +19,7 @@ RUN yum -y install epel-release dnf-plugins-core; yum 
config-manager --set-enabl
     python3-gunicorn python3-requests python3-devel python3-psutil telnet 
golang;
 
 # This currently fails with latest fedora:38. Presumably the stock pip is
-# recent enough, so this shouldn't be a big dea.
+# recent enough, so this shouldn't be a big deal.
 # RUN pip3 install --upgrade pip
 RUN pip3 install pipenv httpbin
 
@@ -39,12 +39,6 @@ WORKDIR /root
 # Make sure we pick up this built version of curl, which is in /opt/bin.
 RUN echo 'PATH=/opt/bin:$PATH' | tee -a /etc/profile.d/curl_http3.sh
 
-RUN echo 'export GOROOT=/usr/local/go' | tee -a /etc/profile
-RUN echo 'export PATH=$PATH:/usr/local/go/bin' | tee -a /etc/profile
-RUN source /etc/profile
-RUN go install github.com/summerwind/h2spec/cmd/h2spec@latest
-RUN cp /root/go/bin/h2spec /usr/local/bin
-
 # 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
 # issues.
@@ -73,3 +67,66 @@ RUN git clone 
https://github.com/linux-test-project/lcov.git; \
 WORKDIR /root
 RUN rm -rf ${lcov_build_dir}
 RUN yum clean all
+
+#-----------------------------
+# Install quiche dependencies.
+#-----------------------------
+
+RUN yum install -y cmake
+
+# Retrieve quiche
+RUN \
+  mkdir -p src && \
+  cd src && \
+  git clone --recursive https://github.com/cloudflare/quiche
+
+# Install rust/cargo.
+RUN \
+  mkdir -p src && \
+  wget https://sh.rustup.rs -O src/rustup.sh && \
+  bash src/rustup.sh -y
+
+# Build quiche.
+RUN \
+  source "/root/.cargo/env" && \
+  cd src/quiche && \
+  cargo build -j4 --package quiche --release --features 
ffi,pkg-config-meta,qlog
+
+# Manually install quiche because, unfortunately, the cargo install command
+# doesn't work for quiche.
+RUN \
+  mkdir -p /opt/quiche/lib/pkgconfig && \
+  mkdir -p /opt/quiche/include && \
+  cp src/quiche/target/release/libquiche.a /opt/quiche/lib && \
+  cp src/quiche/target/release/libquiche.so /opt/quiche/lib && \
+  cp src/quiche/quiche/include/quiche.h /opt/quiche/include && \
+  cp src/quiche/target/release/quiche.pc /opt/quiche/lib/pkgconfig
+
+# Install go and some of our needed go applications.
+WORKDIR /root
+RUN yum remove -y golang
+RUN echo 'export PATH=$PATH:/usr/local/go/bin' | tee -a /etc/profile.d/go.sh
+RUN echo 'export GOBIN=/usr/local/go/bin' | tee -a /etc/profile.d/go.sh
+RUN wget https://go.dev/dl/go1.20.1.linux-amd64.tar.gz
+RUN rm -rf /usr/local/go && sudo tar -C /usr/local -xf 
go1.20.1.linux-amd64.tar.gz
+
+RUN \
+  /usr/local/go/bin/go install github.com/summerwind/h2spec/cmd/h2spec@latest; 
\
+  cp /root/go/bin/h2spec /usr/local/go/bin/
+
+RUN \
+  /usr/local/go/bin/go install 
github.com/mccutchen/go-httpbin/v2/cmd/[email protected]; \
+  cp /root/go/bin/go-httpbin /usr/local/go/bin/
+
+# BoringSSL has no releases or tags. For Docker image reproducibilty, we pin to
+# a particular commit. This should be updated regularly.
+RUN \
+  cd /root/src; \
+  git clone https://github.com/google/boringssl.git; \
+  cd boringssl/; \
+  git checkout b6a50fd62d1ae44ad211ebe26f803c66db444302; \
+  mkdir build; \
+  cd build; \
+  cmake -DGO_EXECUTABLE=/usr/local/go/bin/go 
-DCMAKE_INSTALL_PREFIX=/opt/boringssl -DCMAKE_BUILD_TYPE=Release 
-DBUILD_SHARED_LIBS=1 ../; \
+  make -j4; \
+  make install

Reply via email to