From 54eba521b938a43a8470b3d139dfeccb01bb8e74 Mon Sep 17 00:00:00 2001 From: Scott Hart Date: Thu, 8 Oct 2026 10:51:32 -0400 Subject: [PATCH 1/6] ci: apply gRPC SSL workaround to reduce flakes in demo builds --- .../demo-debian-bookworm.Dockerfile | 10 +++- .../dockerfiles/demo-fedora.Dockerfile | 10 +++- .../dockerfiles/demo-opensuse-leap.Dockerfile | 10 +++- .../dockerfiles/demo-rockylinux-9.Dockerfile | 10 +++- .../dockerfiles/demo-ubuntu-24.04.Dockerfile | 10 +++- .../dockerfiles/demo-ubuntu-jammy.Dockerfile | 10 +++- doc/packaging.md | 60 +++++++++++++++---- 7 files changed, 96 insertions(+), 24 deletions(-) diff --git a/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile b/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile index 0af3700ded566..b45c4bca32148 100644 --- a/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile @@ -166,8 +166,14 @@ RUN curl -fsSL https://github.com/google/re2/archive/2025-11-05.tar.gz | \ # ```bash WORKDIR /var/tmp/build/grpc -RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ +RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ + mkdir -p third_party/grpc-proto && \ + curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ + tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ + mkdir -p third_party/boringssl-with-bazel && \ + curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ + tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ @@ -178,7 +184,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=module \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -S . -B cmake-out && \ diff --git a/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile b/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile index 8e86caa2e9123..0aee31120ded1 100644 --- a/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile @@ -128,8 +128,14 @@ RUN curl -fsSL https://github.com/open-telemetry/opentelemetry-cpp/archive/v1.24 # ```bash WORKDIR /var/tmp/build/grpc RUN dnf makecache && dnf install -y c-ares-devel re2-devel -RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ +RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ + mkdir -p third_party/grpc-proto && \ + curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ + tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ + mkdir -p third_party/boringssl-with-bazel && \ + curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ + tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=17 \ @@ -141,7 +147,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_PROTOBUF_PACKAGE_TYPE=CONFIG \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=module \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -DgRPC_BUILD_GRPCPP_OTEL_PLUGIN=ON \ diff --git a/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile b/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile index 0a337c4a8b61a..208f07339476f 100644 --- a/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile @@ -141,8 +141,14 @@ RUN curl -fsSL https://github.com/google/re2/archive/2025-11-05.tar.gz | \ # ```bash WORKDIR /var/tmp/build/grpc -RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ +RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ + mkdir -p third_party/grpc-proto && \ + curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ + tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ + mkdir -p third_party/boringssl-with-bazel && \ + curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ + tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ @@ -153,7 +159,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=module \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -S . -B cmake-out && \ diff --git a/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile b/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile index 472b573ff9faf..6dea546ff999a 100644 --- a/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile @@ -160,8 +160,14 @@ RUN curl -fsSL https://github.com/google/re2/archive/2025-11-05.tar.gz | \ # ```bash WORKDIR /var/tmp/build/grpc -RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ +RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ + mkdir -p third_party/grpc-proto && \ + curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ + tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ + mkdir -p third_party/boringssl-with-bazel && \ + curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ + tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_BUILD_TYPE=Debug \ @@ -172,7 +178,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=module \ -DgRPC_ZLIB_PROVIDER=package \ -S . -B cmake-out && \ cmake --build cmake-out -- -j ${NCPU:-4} && \ diff --git a/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile b/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile index 3ee7fb793dae4..6f5e8f841ce36 100644 --- a/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile @@ -166,8 +166,14 @@ RUN curl -fsSL https://github.com/google/re2/archive/2025-11-05.tar.gz | \ # ```bash WORKDIR /var/tmp/build/grpc -RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ +RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ + mkdir -p third_party/grpc-proto && \ + curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ + tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ + mkdir -p third_party/boringssl-with-bazel && \ + curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ + tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ @@ -178,7 +184,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=module \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -DgRPC_BUILD_GRPCPP_OTEL_PLUGIN=ON \ diff --git a/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile b/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile index 6c462378af748..78adf8229d240 100644 --- a/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile @@ -97,8 +97,14 @@ RUN curl -fsSL https://github.com/protocolbuffers/protobuf/archive/v36.0.tar.gz # ```bash WORKDIR /var/tmp/build/grpc -RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ +RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ + mkdir -p third_party/grpc-proto && \ + curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ + tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ + mkdir -p third_party/boringssl-with-bazel && \ + curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ + tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ @@ -109,7 +115,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=module \ -DgRPC_ZLIB_PROVIDER=package \ -S . -B cmake-out && \ cmake --build cmake-out -- -j ${NCPU:-4} && \ diff --git a/doc/packaging.md b/doc/packaging.md index 9db11e9263272..982c5bddc7e20 100644 --- a/doc/packaging.md +++ b/doc/packaging.md @@ -344,8 +344,14 @@ sudo ldconfig ```bash mkdir -p $HOME/Downloads/grpc && cd $HOME/Downloads/grpc sudo dnf makecache && sudo dnf install -y c-ares-devel re2-devel -curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ +curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ + mkdir -p third_party/grpc-proto && \ + curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ + tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ + mkdir -p third_party/boringssl-with-bazel && \ + curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ + tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=17 \ @@ -357,7 +363,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_PROTOBUF_PACKAGE_TYPE=CONFIG \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=module \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -DgRPC_BUILD_GRPCPP_OTEL_PLUGIN=ON \ @@ -514,8 +520,14 @@ sudo ldconfig ```bash mkdir -p $HOME/Downloads/grpc && cd $HOME/Downloads/grpc -curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ +curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ + mkdir -p third_party/grpc-proto && \ + curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ + tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ + mkdir -p third_party/boringssl-with-bazel && \ + curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ + tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ @@ -526,7 +538,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=module \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -S . -B cmake-out && \ @@ -712,8 +724,14 @@ sudo ldconfig ```bash mkdir -p $HOME/Downloads/grpc && cd $HOME/Downloads/grpc -curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ +curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ + mkdir -p third_party/grpc-proto && \ + curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ + tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ + mkdir -p third_party/boringssl-with-bazel && \ + curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ + tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ @@ -724,7 +742,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=module \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -DgRPC_BUILD_GRPCPP_OTEL_PLUGIN=ON \ @@ -842,8 +860,14 @@ Platform proto files. We install it using: ```bash mkdir -p $HOME/Downloads/grpc && cd $HOME/Downloads/grpc -curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ +curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ + mkdir -p third_party/grpc-proto && \ + curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ + tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ + mkdir -p third_party/boringssl-with-bazel && \ + curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ + tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ @@ -854,7 +878,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=module \ -DgRPC_ZLIB_PROVIDER=package \ -S . -B cmake-out && \ cmake --build cmake-out -- -j ${NCPU:-4} && \ @@ -1081,8 +1105,14 @@ sudo ldconfig ```bash mkdir -p $HOME/Downloads/grpc && cd $HOME/Downloads/grpc -curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ +curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ + mkdir -p third_party/grpc-proto && \ + curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ + tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ + mkdir -p third_party/boringssl-with-bazel && \ + curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ + tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ @@ -1093,7 +1123,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=module \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -S . -B cmake-out && \ @@ -1273,8 +1303,14 @@ install it using: ```bash mkdir -p $HOME/Downloads/grpc && cd $HOME/Downloads/grpc -curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ +curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ + mkdir -p third_party/grpc-proto && \ + curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ + tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ + mkdir -p third_party/boringssl-with-bazel && \ + curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ + tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_BUILD_TYPE=Debug \ @@ -1285,7 +1321,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.71.2.tar.gz | \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=package \ + -DgRPC_SSL_PROVIDER=module \ -DgRPC_ZLIB_PROVIDER=package \ -S . -B cmake-out && \ cmake --build cmake-out -- -j ${NCPU:-4} && \ From 5d67c78934f5ba8b600706d2aa4112d01f77baa6 Mon Sep 17 00:00:00 2001 From: Scott Hart Date: Thu, 8 Oct 2026 11:58:46 -0400 Subject: [PATCH 2/6] update install location --- ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile | 1 + ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile | 1 + ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile | 1 + ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile | 1 + ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile | 1 + ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile | 1 + .../dockerfiles/fedora-cmake-quickstart.Dockerfile | 1 + doc/packaging.md | 6 ++++++ 8 files changed, 13 insertions(+) diff --git a/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile b/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile index b45c4bca32148..4479a0d940cd2 100644 --- a/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile @@ -175,6 +175,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ diff --git a/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile b/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile index 0aee31120ded1..20f5451e62216 100644 --- a/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile @@ -137,6 +137,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=ON \ diff --git a/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile b/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile index 208f07339476f..0e51b725ca8f4 100644 --- a/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile @@ -150,6 +150,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ diff --git a/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile b/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile index 6dea546ff999a..e7b776300fe09 100644 --- a/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile @@ -169,6 +169,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_BUILD_TYPE=Debug \ -DBUILD_SHARED_LIBS=yes \ diff --git a/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile b/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile index 6f5e8f841ce36..04465b1d80906 100644 --- a/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile @@ -175,6 +175,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=ON \ diff --git a/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile b/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile index 78adf8229d240..3108333a9d815 100644 --- a/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile @@ -106,6 +106,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ diff --git a/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile b/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile index 9b6b537e82353..961f8891ef557 100644 --- a/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile +++ b/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile @@ -188,6 +188,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=ON \ diff --git a/doc/packaging.md b/doc/packaging.md index 982c5bddc7e20..2e6deca80935c 100644 --- a/doc/packaging.md +++ b/doc/packaging.md @@ -353,6 +353,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=ON \ @@ -529,6 +530,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ @@ -733,6 +735,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=ON \ @@ -869,6 +872,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ @@ -1114,6 +1118,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ @@ -1312,6 +1317,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ cmake \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_BUILD_TYPE=Debug \ -DBUILD_SHARED_LIBS=yes \ From 5a77ff4b5ab34e3a925035ce65c4c433f07a524e Mon Sep 17 00:00:00 2001 From: Scott Hart Date: Thu, 8 Oct 2026 13:15:15 -0400 Subject: [PATCH 3/6] update cmake to find openssl dep --- google/cloud/config.cmake.in | 3 +++ 1 file changed, 3 insertions(+) diff --git a/google/cloud/config.cmake.in b/google/cloud/config.cmake.in index fc7e88a7b5f60..9ad74ada11524 100644 --- a/google/cloud/config.cmake.in +++ b/google/cloud/config.cmake.in @@ -15,6 +15,9 @@ include(CMakeFindDependencyMacro) find_dependency(Threads) find_dependency(absl) +if (NOT WIN32) + find_dependency(OpenSSL) +endif () @GOOGLE_CLOUD_CPP_FIND_OPTIONAL_DEPENDENCIES@ include("${CMAKE_CURRENT_LIST_DIR}/google_cloud_cpp_common-targets.cmake") From 27f0fc8b47f4536a559c4baa5de6899743acc2a6 Mon Sep 17 00:00:00 2001 From: Scott Hart Date: Thu, 8 Oct 2026 15:15:36 -0400 Subject: [PATCH 4/6] more install updates --- ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile | 1 + ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile | 1 + ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile | 1 + ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile | 1 + ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile | 1 + ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile | 1 + .../dockerfiles/fedora-cmake-quickstart.Dockerfile | 1 + doc/packaging.md | 6 ++++++ 8 files changed, 13 insertions(+) diff --git a/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile b/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile index 4479a0d940cd2..a76aa98cbf475 100644 --- a/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile @@ -174,6 +174,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ diff --git a/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile b/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile index 20f5451e62216..593a63f94d221 100644 --- a/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile @@ -136,6 +136,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Release \ diff --git a/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile b/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile index 0e51b725ca8f4..1eddb5e170831 100644 --- a/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile @@ -149,6 +149,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ diff --git a/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile b/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile index e7b776300fe09..f1f1093e915bc 100644 --- a/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile @@ -168,6 +168,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_CXX_STANDARD=17 \ diff --git a/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile b/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile index 04465b1d80906..877c42c79087a 100644 --- a/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile @@ -174,6 +174,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ diff --git a/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile b/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile index 3108333a9d815..3f2e4bfa25317 100644 --- a/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile @@ -105,6 +105,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ diff --git a/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile b/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile index 961f8891ef557..b4b5c083afe6e 100644 --- a/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile +++ b/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile @@ -187,6 +187,7 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Release \ diff --git a/doc/packaging.md b/doc/packaging.md index 2e6deca80935c..96502575a9a76 100644 --- a/doc/packaging.md +++ b/doc/packaging.md @@ -352,6 +352,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Release \ @@ -529,6 +530,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ @@ -734,6 +736,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ @@ -871,6 +874,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ @@ -1117,6 +1121,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ @@ -1316,6 +1321,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_CXX_STANDARD=17 \ From d0adb49c9f49492cf8167b6d93740347871ba2b0 Mon Sep 17 00:00:00 2001 From: Scott Hart Date: Wed, 14 Oct 2026 11:46:43 -0400 Subject: [PATCH 5/6] use boringssl symbol prefixing with grpc --- .../demo-debian-bookworm.Dockerfile | 17 +++- .../dockerfiles/demo-fedora.Dockerfile | 16 ++- .../dockerfiles/demo-opensuse-leap.Dockerfile | 16 ++- .../dockerfiles/demo-rockylinux-9.Dockerfile | 16 ++- .../dockerfiles/demo-ubuntu-24.04.Dockerfile | 16 ++- .../dockerfiles/demo-ubuntu-jammy.Dockerfile | 16 ++- .../fedora-cmake-quickstart.Dockerfile | 16 ++- doc/packaging.md | 97 +++++++++++++++++-- 8 files changed, 197 insertions(+), 13 deletions(-) diff --git a/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile b/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile index a76aa98cbf475..564dcd35e4d64 100644 --- a/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile @@ -23,7 +23,8 @@ ARG NCPU=4 RUN apt-get update && \ apt-get --no-install-recommends install -y apt-transport-https apt-utils \ automake build-essential ca-certificates cmake curl git \ - gcc g++ m4 make ninja-build pkg-config tar wget zlib1g-dev libc6-dbg + gcc g++ golang-go m4 make ninja-build pkg-config tar wget zlib1g-dev \ + libc6-dbg # ``` # Install the development packages for direct `google-cloud-cpp` dependencies: @@ -174,12 +175,26 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ + cmake -S third_party/boringssl-with-bazel -B bssl-build && \ + cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ + (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ + rm -rf bssl-build && \ sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ + printf '%s\n' \ + 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ + 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ + 'add_dependencies(ssl boringssl_prefix_symbols)' \ + 'target_compile_definitions(crypto PUBLIC $)' \ + 'target_include_directories(crypto PUBLIC $)' \ + >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ diff --git a/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile b/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile index 593a63f94d221..6dcfb6d0b7c39 100644 --- a/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile @@ -127,7 +127,7 @@ RUN curl -fsSL https://github.com/open-telemetry/opentelemetry-cpp/archive/v1.24 # ```bash WORKDIR /var/tmp/build/grpc -RUN dnf makecache && dnf install -y c-ares-devel re2-devel +RUN dnf makecache && dnf install -y c-ares-devel golang re2-devel RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ mkdir -p third_party/grpc-proto && \ @@ -136,12 +136,26 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ + cmake -S third_party/boringssl-with-bazel -B bssl-build && \ + cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ + (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ + rm -rf bssl-build && \ sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ + printf '%s\n' \ + 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ + 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ + 'add_dependencies(ssl boringssl_prefix_symbols)' \ + 'target_compile_definitions(crypto PUBLIC $)' \ + 'target_include_directories(crypto PUBLIC $)' \ + >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=ON \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ diff --git a/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile b/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile index 1eddb5e170831..36ef3870623cd 100644 --- a/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile @@ -27,7 +27,7 @@ ARG NCPU=4 # ```bash RUN zypper refresh && \ zypper install --allow-downgrade -y automake cmake curl \ - gcc gcc-c++ git gzip libtool make patch tar wget + gcc gcc-c++ git go gzip libtool make patch tar wget # ``` # Install some of the dependencies for `google-cloud-cpp`. @@ -149,12 +149,26 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ + cmake -S third_party/boringssl-with-bazel -B bssl-build && \ + cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ + (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ + rm -rf bssl-build && \ sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ + printf '%s\n' \ + 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ + 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ + 'add_dependencies(ssl boringssl_prefix_symbols)' \ + 'target_compile_definitions(crypto PUBLIC $)' \ + 'target_include_directories(crypto PUBLIC $)' \ + >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ diff --git a/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile b/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile index f1f1093e915bc..3578f89a198a0 100644 --- a/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile @@ -26,7 +26,7 @@ RUN dnf makecache && \ dnf install -y epel-release && \ dnf config-manager --set-enabled crb && \ dnf makecache && \ - dnf install -y cmake findutils gcc-c++ git make openssl-devel \ + dnf install -y cmake findutils gcc-c++ git golang make openssl-devel \ patch zlib-devel libnghttp2-devel c-ares-devel tar wget which \ autoconf automake libtool binutils dnf-utils RUN dnf makecache && dnf debuginfo-install -y glibc @@ -168,12 +168,26 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ + cmake -S third_party/boringssl-with-bazel -B bssl-build && \ + cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ + (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ + rm -rf bssl-build && \ sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ + printf '%s\n' \ + 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ + 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ + 'add_dependencies(ssl boringssl_prefix_symbols)' \ + 'target_compile_definitions(crypto PUBLIC $)' \ + 'target_include_directories(crypto PUBLIC $)' \ + >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_BUILD_TYPE=Debug \ -DBUILD_SHARED_LIBS=yes \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ diff --git a/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile b/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile index 877c42c79087a..11002921db250 100644 --- a/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile @@ -23,7 +23,7 @@ ARG NCPU=4 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get --no-install-recommends install -y apt-transport-https apt-utils \ - cmake ca-certificates curl git gcc g++ m4 make tar libc6-dbg + cmake ca-certificates curl git gcc g++ golang-go m4 make tar libc6-dbg # ``` # Ubuntu:24 includes packages for most of the direct dependencies of @@ -174,12 +174,26 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ + cmake -S third_party/boringssl-with-bazel -B bssl-build && \ + cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ + (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ + rm -rf bssl-build && \ sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ + printf '%s\n' \ + 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ + 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ + 'add_dependencies(ssl boringssl_prefix_symbols)' \ + 'target_compile_definitions(crypto PUBLIC $)' \ + 'target_include_directories(crypto PUBLIC $)' \ + >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=ON \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ diff --git a/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile b/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile index 3f2e4bfa25317..71e5f94f548ac 100644 --- a/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile @@ -24,7 +24,7 @@ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get --no-install-recommends install -y apt-transport-https apt-utils \ automake build-essential cmake ca-certificates curl git \ - gcc g++ libc-ares-dev libc-ares2 libnghttp2-dev libre2-dev \ + gcc g++ golang-go libc-ares-dev libc-ares2 libnghttp2-dev libre2-dev \ libssl-dev m4 make pkg-config tar wget zlib1g-dev libc6-dbg # ``` @@ -105,12 +105,26 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ + cmake -S third_party/boringssl-with-bazel -B bssl-build && \ + cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ + (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ + rm -rf bssl-build && \ sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ + printf '%s\n' \ + 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ + 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ + 'add_dependencies(ssl boringssl_prefix_symbols)' \ + 'target_compile_definitions(crypto PUBLIC $)' \ + 'target_include_directories(crypto PUBLIC $)' \ + >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ diff --git a/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile b/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile index b4b5c083afe6e..7cbb2435d7346 100644 --- a/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile +++ b/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile @@ -178,7 +178,7 @@ RUN curl -fsSL https://github.com/open-telemetry/opentelemetry-cpp/archive/v1.24 ldconfig && cd /var/tmp && rm -fr build WORKDIR /var/tmp/build/grpc -RUN dnf makecache && dnf install -y c-ares-devel re2-devel +RUN dnf makecache && dnf install -y c-ares-devel golang re2-devel RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ mkdir -p third_party/grpc-proto && \ @@ -187,12 +187,26 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ + cmake -S third_party/boringssl-with-bazel -B bssl-build && \ + cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ + (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ + rm -rf bssl-build && \ sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ + printf '%s\n' \ + 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ + 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ + 'add_dependencies(ssl boringssl_prefix_symbols)' \ + 'target_compile_definitions(crypto PUBLIC $)' \ + 'target_include_directories(crypto PUBLIC $)' \ + >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=ON \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ diff --git a/doc/packaging.md b/doc/packaging.md index 96502575a9a76..a5813e38034a6 100644 --- a/doc/packaging.md +++ b/doc/packaging.md @@ -343,7 +343,7 @@ sudo ldconfig ```bash mkdir -p $HOME/Downloads/grpc && cd $HOME/Downloads/grpc -sudo dnf makecache && sudo dnf install -y c-ares-devel re2-devel +sudo dnf makecache && sudo dnf install -y c-ares-devel golang re2-devel curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ mkdir -p third_party/grpc-proto && \ @@ -352,12 +352,26 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ + cmake -S third_party/boringssl-with-bazel -B bssl-build && \ + cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ + (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ + rm -rf bssl-build && \ sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ + printf '%s\n' \ + 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ + 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ + 'add_dependencies(ssl boringssl_prefix_symbols)' \ + 'target_compile_definitions(crypto PUBLIC $)' \ + 'target_include_directories(crypto PUBLIC $)' \ + >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=ON \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ @@ -410,7 +424,7 @@ use GCC 8 or higher to compile `google-cloud-cpp`. ```bash sudo zypper refresh && \ sudo zypper install --allow-downgrade -y automake cmake curl \ - gcc gcc-c++ git gzip libtool make patch tar wget + gcc gcc-c++ git go gzip libtool make patch tar wget ``` Install some of the dependencies for `google-cloud-cpp`. @@ -530,12 +544,26 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ + cmake -S third_party/boringssl-with-bazel -B bssl-build && \ + cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ + (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ + rm -rf bssl-build && \ sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ + printf '%s\n' \ + 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ + 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ + 'add_dependencies(ssl boringssl_prefix_symbols)' \ + 'target_compile_definitions(crypto PUBLIC $)' \ + 'target_include_directories(crypto PUBLIC $)' \ + >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ @@ -582,7 +610,7 @@ Install the minimal development tools, OpenSSL and libc-ares: export DEBIAN_FRONTEND=noninteractive sudo apt-get update && \ sudo apt-get --no-install-recommends install -y apt-transport-https apt-utils \ - cmake ca-certificates curl git gcc g++ m4 make tar libc6-dbg + cmake ca-certificates curl git gcc g++ golang-go m4 make tar libc6-dbg ``` Ubuntu:24 includes packages for most of the direct dependencies of @@ -736,12 +764,26 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ + cmake -S third_party/boringssl-with-bazel -B bssl-build && \ + cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ + (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ + rm -rf bssl-build && \ sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ + printf '%s\n' \ + 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ + 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ + 'add_dependencies(ssl boringssl_prefix_symbols)' \ + 'target_compile_definitions(crypto PUBLIC $)' \ + 'target_include_directories(crypto PUBLIC $)' \ + >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=ON \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ @@ -790,7 +832,7 @@ export DEBIAN_FRONTEND=noninteractive sudo apt-get update && \ sudo apt-get --no-install-recommends install -y apt-transport-https apt-utils \ automake build-essential cmake ca-certificates curl git \ - gcc g++ libc-ares-dev libc-ares2 libnghttp2-dev libre2-dev \ + gcc g++ golang-go libc-ares-dev libc-ares2 libnghttp2-dev libre2-dev \ libssl-dev m4 make pkg-config tar wget zlib1g-dev libc6-dbg ``` @@ -874,12 +916,26 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ + cmake -S third_party/boringssl-with-bazel -B bssl-build && \ + cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ + (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ + rm -rf bssl-build && \ sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ + printf '%s\n' \ + 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ + 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ + 'add_dependencies(ssl boringssl_prefix_symbols)' \ + 'target_compile_definitions(crypto PUBLIC $)' \ + 'target_include_directories(crypto PUBLIC $)' \ + >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ @@ -967,7 +1023,8 @@ Install the minimal development tools. sudo apt-get update && \ sudo apt-get --no-install-recommends install -y apt-transport-https apt-utils \ automake build-essential ca-certificates cmake curl git \ - gcc g++ m4 make ninja-build pkg-config tar wget zlib1g-dev libc6-dbg + gcc g++ golang-go m4 make ninja-build pkg-config tar wget zlib1g-dev \ + libc6-dbg ``` Install the development packages for direct `google-cloud-cpp` dependencies: @@ -1121,12 +1178,26 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ + cmake -S third_party/boringssl-with-bazel -B bssl-build && \ + cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ + (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ + rm -rf bssl-build && \ sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ + printf '%s\n' \ + 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ + 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ + 'add_dependencies(ssl boringssl_prefix_symbols)' \ + 'target_compile_definitions(crypto PUBLIC $)' \ + 'target_include_directories(crypto PUBLIC $)' \ + >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ @@ -1176,7 +1247,7 @@ sudo dnf update -y && \ sudo dnf install -y epel-release && \ sudo dnf config-manager --set-enabled crb && \ sudo dnf makecache && \ -sudo dnf install -y cmake findutils gcc-c++ git make openssl-devel \ +sudo dnf install -y cmake findutils gcc-c++ git golang make openssl-devel \ patch zlib-devel libnghttp2-devel c-ares-devel tar wget which \ autoconf automake libtool binutils dnf-utils sudo dnf makecache && sudo dnf debuginfo-install -y glibc @@ -1321,12 +1392,26 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ + printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ + cmake -S third_party/boringssl-with-bazel -B bssl-build && \ + cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ + (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ + rm -rf bssl-build && \ sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ + printf '%s\n' \ + 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ + 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ + 'add_dependencies(ssl boringssl_prefix_symbols)' \ + 'target_compile_definitions(crypto PUBLIC $)' \ + 'target_include_directories(crypto PUBLIC $)' \ + >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_BUILD_TYPE=Debug \ -DBUILD_SHARED_LIBS=yes \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ From 492b25823da57954752849ca906556f62e305110 Mon Sep 17 00:00:00 2001 From: Scott Hart Date: Thu, 15 Oct 2026 17:49:38 -0400 Subject: [PATCH 6/6] make packaging doc better --- .../demo-debian-bookworm.Dockerfile | 29 +++- .../dockerfiles/demo-fedora.Dockerfile | 28 +++- .../dockerfiles/demo-opensuse-leap.Dockerfile | 28 +++- .../dockerfiles/demo-rockylinux-9.Dockerfile | 28 +++- .../dockerfiles/demo-ubuntu-24.04.Dockerfile | 28 +++- .../dockerfiles/demo-ubuntu-jammy.Dockerfile | 28 +++- .../fedora-cmake-quickstart.Dockerfile | 6 + doc/packaging.md | 139 ++---------------- 8 files changed, 168 insertions(+), 146 deletions(-) diff --git a/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile b/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile index 564dcd35e4d64..cee79720ae9ba 100644 --- a/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile @@ -23,8 +23,7 @@ ARG NCPU=4 RUN apt-get update && \ apt-get --no-install-recommends install -y apt-transport-https apt-utils \ automake build-essential ca-certificates cmake curl git \ - gcc g++ golang-go m4 make ninja-build pkg-config tar wget zlib1g-dev \ - libc6-dbg + gcc g++ m4 make ninja-build pkg-config tar wget zlib1g-dev libc6-dbg # ``` # Install the development packages for direct `google-cloud-cpp` dependencies: @@ -167,11 +166,26 @@ RUN curl -fsSL https://github.com/google/re2/archive/2025-11-05.tar.gz | \ # ```bash WORKDIR /var/tmp/build/grpc +## [BEGIN IGNORED] +## The [BEGIN IGNORED] / [DONE IGNORED] sections below are omitted when +## generating doc/packaging.md via ci/generate-markdown/generate-packaging.sh. +## They work around an upstream gRPC + OpenSSL issue +## (https://github.com/grpc/grpc/issues/42068) in CI by building gRPC against +## its bundled BoringSSL (-DgRPC_SSL_PROVIDER=module) with prefixed symbols +## (BORINGSSL_PREFIX=bssl_grpc) and renamed shared libraries (bssl_crypto, +## bssl_ssl) so they do not collide with system OpenSSL (libssl.so, libcrypto.so) +## at build or run time. +RUN apt-get update && apt-get --no-install-recommends install -y golang-go +## [DONE IGNORED] RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ mkdir -p third_party/grpc-proto && \ curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ +## [BEGIN IGNORED] +## Build BoringSSL once to extract its symbol list with Go, disable its CMake +## install rules (to avoid overwriting system OpenSSL headers/pkg-config), and +## rename its shared libraries so they can be installed alongside OpenSSL. mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ @@ -188,20 +202,27 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ 'target_compile_definitions(crypto PUBLIC $)' \ 'target_include_directories(crypto PUBLIC $)' \ >> third_party/boringssl-with-bazel/CMakeLists.txt && \ +## [DONE IGNORED] cmake \ +## [BEGIN IGNORED] -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ +## [DONE IGNORED] -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ - -DBORINGSSL_PREFIX=bssl_grpc \ - -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ +## [BEGIN IGNORED] -DgRPC_SSL_PROVIDER=module \ +## [DONE IGNORED] +## Emit -DgRPC_SSL_PROVIDER=package into doc/packaging.md while ignoring it in Docker. +# -DgRPC_SSL_PROVIDER=package \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -S . -B cmake-out && \ diff --git a/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile b/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile index 6dcfb6d0b7c39..53d07f97884ed 100644 --- a/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile @@ -127,12 +127,27 @@ RUN curl -fsSL https://github.com/open-telemetry/opentelemetry-cpp/archive/v1.24 # ```bash WORKDIR /var/tmp/build/grpc -RUN dnf makecache && dnf install -y c-ares-devel golang re2-devel +RUN dnf makecache && dnf install -y c-ares-devel re2-devel +## [BEGIN IGNORED] +## The [BEGIN IGNORED] / [DONE IGNORED] sections below are omitted when +## generating doc/packaging.md via ci/generate-markdown/generate-packaging.sh. +## They work around an upstream gRPC + OpenSSL issue +## (https://github.com/grpc/grpc/issues/42068) in CI by building gRPC against +## its bundled BoringSSL (-DgRPC_SSL_PROVIDER=module) with prefixed symbols +## (BORINGSSL_PREFIX=bssl_grpc) and renamed shared libraries (bssl_crypto, +## bssl_ssl) so they do not collide with system OpenSSL (libssl.so, libcrypto.so) +## at build or run time. +RUN dnf makecache && dnf install -y golang +## [DONE IGNORED] RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ mkdir -p third_party/grpc-proto && \ curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ +## [BEGIN IGNORED] +## Build BoringSSL once to extract its symbol list with Go, disable its CMake +## install rules (to avoid overwriting system OpenSSL headers/pkg-config), and +## rename its shared libraries so they can be installed alongside OpenSSL. mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ @@ -149,13 +164,16 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ 'target_compile_definitions(crypto PUBLIC $)' \ 'target_include_directories(crypto PUBLIC $)' \ >> third_party/boringssl-with-bazel/CMakeLists.txt && \ +## [DONE IGNORED] cmake \ +## [BEGIN IGNORED] -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ +## [DONE IGNORED] -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=ON \ - -DBORINGSSL_PREFIX=bssl_grpc \ - -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ @@ -163,7 +181,11 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_PROTOBUF_PACKAGE_TYPE=CONFIG \ -DgRPC_RE2_PROVIDER=package \ +## [BEGIN IGNORED] -DgRPC_SSL_PROVIDER=module \ +## [DONE IGNORED] +## Emit -DgRPC_SSL_PROVIDER=package into doc/packaging.md while ignoring it in Docker. +# -DgRPC_SSL_PROVIDER=package \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -DgRPC_BUILD_GRPCPP_OTEL_PLUGIN=ON \ diff --git a/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile b/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile index 36ef3870623cd..c240f7d3c3ce3 100644 --- a/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-opensuse-leap.Dockerfile @@ -27,7 +27,7 @@ ARG NCPU=4 # ```bash RUN zypper refresh && \ zypper install --allow-downgrade -y automake cmake curl \ - gcc gcc-c++ git go gzip libtool make patch tar wget + gcc gcc-c++ git gzip libtool make patch tar wget # ``` # Install some of the dependencies for `google-cloud-cpp`. @@ -141,11 +141,26 @@ RUN curl -fsSL https://github.com/google/re2/archive/2025-11-05.tar.gz | \ # ```bash WORKDIR /var/tmp/build/grpc +## [BEGIN IGNORED] +## The [BEGIN IGNORED] / [DONE IGNORED] sections below are omitted when +## generating doc/packaging.md via ci/generate-markdown/generate-packaging.sh. +## They work around an upstream gRPC + OpenSSL issue +## (https://github.com/grpc/grpc/issues/42068) in CI by building gRPC against +## its bundled BoringSSL (-DgRPC_SSL_PROVIDER=module) with prefixed symbols +## (BORINGSSL_PREFIX=bssl_grpc) and renamed shared libraries (bssl_crypto, +## bssl_ssl) so they do not collide with system OpenSSL (libssl.so, libcrypto.so) +## at build or run time. +RUN zypper refresh && zypper install --allow-downgrade -y go +## [DONE IGNORED] RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ mkdir -p third_party/grpc-proto && \ curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ +## [BEGIN IGNORED] +## Build BoringSSL once to extract its symbol list with Go, disable its CMake +## install rules (to avoid overwriting system OpenSSL headers/pkg-config), and +## rename its shared libraries so they can be installed alongside OpenSSL. mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ @@ -162,20 +177,27 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ 'target_compile_definitions(crypto PUBLIC $)' \ 'target_include_directories(crypto PUBLIC $)' \ >> third_party/boringssl-with-bazel/CMakeLists.txt && \ +## [DONE IGNORED] cmake \ +## [BEGIN IGNORED] -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ +## [DONE IGNORED] -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ - -DBORINGSSL_PREFIX=bssl_grpc \ - -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ +## [BEGIN IGNORED] -DgRPC_SSL_PROVIDER=module \ +## [DONE IGNORED] +## Emit -DgRPC_SSL_PROVIDER=package into doc/packaging.md while ignoring it in Docker. +# -DgRPC_SSL_PROVIDER=package \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -S . -B cmake-out && \ diff --git a/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile b/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile index 3578f89a198a0..5252e6d28672a 100644 --- a/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile @@ -26,7 +26,7 @@ RUN dnf makecache && \ dnf install -y epel-release && \ dnf config-manager --set-enabled crb && \ dnf makecache && \ - dnf install -y cmake findutils gcc-c++ git golang make openssl-devel \ + dnf install -y cmake findutils gcc-c++ git make openssl-devel \ patch zlib-devel libnghttp2-devel c-ares-devel tar wget which \ autoconf automake libtool binutils dnf-utils RUN dnf makecache && dnf debuginfo-install -y glibc @@ -160,11 +160,26 @@ RUN curl -fsSL https://github.com/google/re2/archive/2025-11-05.tar.gz | \ # ```bash WORKDIR /var/tmp/build/grpc +## [BEGIN IGNORED] +## The [BEGIN IGNORED] / [DONE IGNORED] sections below are omitted when +## generating doc/packaging.md via ci/generate-markdown/generate-packaging.sh. +## They work around an upstream gRPC + OpenSSL issue +## (https://github.com/grpc/grpc/issues/42068) in CI by building gRPC against +## its bundled BoringSSL (-DgRPC_SSL_PROVIDER=module) with prefixed symbols +## (BORINGSSL_PREFIX=bssl_grpc) and renamed shared libraries (bssl_crypto, +## bssl_ssl) so they do not collide with system OpenSSL (libssl.so, libcrypto.so) +## at build or run time. +RUN dnf makecache && dnf install -y golang +## [DONE IGNORED] RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ mkdir -p third_party/grpc-proto && \ curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ +## [BEGIN IGNORED] +## Build BoringSSL once to extract its symbol list with Go, disable its CMake +## install rules (to avoid overwriting system OpenSSL headers/pkg-config), and +## rename its shared libraries so they can be installed alongside OpenSSL. mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ @@ -181,20 +196,27 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ 'target_compile_definitions(crypto PUBLIC $)' \ 'target_include_directories(crypto PUBLIC $)' \ >> third_party/boringssl-with-bazel/CMakeLists.txt && \ +## [DONE IGNORED] cmake \ +## [BEGIN IGNORED] -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ +## [DONE IGNORED] -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_BUILD_TYPE=Debug \ -DBUILD_SHARED_LIBS=yes \ - -DBORINGSSL_PREFIX=bssl_grpc \ - -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ +## [BEGIN IGNORED] -DgRPC_SSL_PROVIDER=module \ +## [DONE IGNORED] +## Emit -DgRPC_SSL_PROVIDER=package into doc/packaging.md while ignoring it in Docker. +# -DgRPC_SSL_PROVIDER=package \ -DgRPC_ZLIB_PROVIDER=package \ -S . -B cmake-out && \ cmake --build cmake-out -- -j ${NCPU:-4} && \ diff --git a/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile b/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile index 11002921db250..d3a72b49bf67a 100644 --- a/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile @@ -23,7 +23,7 @@ ARG NCPU=4 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get --no-install-recommends install -y apt-transport-https apt-utils \ - cmake ca-certificates curl git gcc g++ golang-go m4 make tar libc6-dbg + cmake ca-certificates curl git gcc g++ m4 make tar libc6-dbg # ``` # Ubuntu:24 includes packages for most of the direct dependencies of @@ -166,11 +166,26 @@ RUN curl -fsSL https://github.com/google/re2/archive/2025-11-05.tar.gz | \ # ```bash WORKDIR /var/tmp/build/grpc +## [BEGIN IGNORED] +## The [BEGIN IGNORED] / [DONE IGNORED] sections below are omitted when +## generating doc/packaging.md via ci/generate-markdown/generate-packaging.sh. +## They work around an upstream gRPC + OpenSSL issue +## (https://github.com/grpc/grpc/issues/42068) in CI by building gRPC against +## its bundled BoringSSL (-DgRPC_SSL_PROVIDER=module) with prefixed symbols +## (BORINGSSL_PREFIX=bssl_grpc) and renamed shared libraries (bssl_crypto, +## bssl_ssl) so they do not collide with system OpenSSL (libssl.so, libcrypto.so) +## at build or run time. +RUN apt-get update && apt-get --no-install-recommends install -y golang-go +## [DONE IGNORED] RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ mkdir -p third_party/grpc-proto && \ curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ +## [BEGIN IGNORED] +## Build BoringSSL once to extract its symbol list with Go, disable its CMake +## install rules (to avoid overwriting system OpenSSL headers/pkg-config), and +## rename its shared libraries so they can be installed alongside OpenSSL. mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ @@ -187,20 +202,27 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ 'target_compile_definitions(crypto PUBLIC $)' \ 'target_include_directories(crypto PUBLIC $)' \ >> third_party/boringssl-with-bazel/CMakeLists.txt && \ +## [DONE IGNORED] cmake \ +## [BEGIN IGNORED] -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ +## [DONE IGNORED] -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=ON \ - -DBORINGSSL_PREFIX=bssl_grpc \ - -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ +## [BEGIN IGNORED] -DgRPC_SSL_PROVIDER=module \ +## [DONE IGNORED] +## Emit -DgRPC_SSL_PROVIDER=package into doc/packaging.md while ignoring it in Docker. +# -DgRPC_SSL_PROVIDER=package \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -DgRPC_BUILD_GRPCPP_OTEL_PLUGIN=ON \ diff --git a/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile b/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile index 71e5f94f548ac..1cad20bbf7807 100644 --- a/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile +++ b/ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile @@ -24,7 +24,7 @@ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get --no-install-recommends install -y apt-transport-https apt-utils \ automake build-essential cmake ca-certificates curl git \ - gcc g++ golang-go libc-ares-dev libc-ares2 libnghttp2-dev libre2-dev \ + gcc g++ libc-ares-dev libc-ares2 libnghttp2-dev libre2-dev \ libssl-dev m4 make pkg-config tar wget zlib1g-dev libc6-dbg # ``` @@ -97,11 +97,26 @@ RUN curl -fsSL https://github.com/protocolbuffers/protobuf/archive/v36.0.tar.gz # ```bash WORKDIR /var/tmp/build/grpc +## [BEGIN IGNORED] +## The [BEGIN IGNORED] / [DONE IGNORED] sections below are omitted when +## generating doc/packaging.md via ci/generate-markdown/generate-packaging.sh. +## They work around an upstream gRPC + OpenSSL issue +## (https://github.com/grpc/grpc/issues/42068) in CI by building gRPC against +## its bundled BoringSSL (-DgRPC_SSL_PROVIDER=module) with prefixed symbols +## (BORINGSSL_PREFIX=bssl_grpc) and renamed shared libraries (bssl_crypto, +## bssl_ssl) so they do not collide with system OpenSSL (libssl.so, libcrypto.so) +## at build or run time. +RUN apt-get update && apt-get --no-install-recommends install -y golang-go +## [DONE IGNORED] RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ mkdir -p third_party/grpc-proto && \ curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ +## [BEGIN IGNORED] +## Build BoringSSL once to extract its symbol list with Go, disable its CMake +## install rules (to avoid overwriting system OpenSSL headers/pkg-config), and +## rename its shared libraries so they can be installed alongside OpenSSL. mkdir -p third_party/boringssl-with-bazel && \ curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ @@ -118,20 +133,27 @@ RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ 'target_compile_definitions(crypto PUBLIC $)' \ 'target_include_directories(crypto PUBLIC $)' \ >> third_party/boringssl-with-bazel/CMakeLists.txt && \ +## [DONE IGNORED] cmake \ +## [BEGIN IGNORED] -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DBORINGSSL_PREFIX=bssl_grpc \ + -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ +## [DONE IGNORED] -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ - -DBORINGSSL_PREFIX=bssl_grpc \ - -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ +## [BEGIN IGNORED] -DgRPC_SSL_PROVIDER=module \ +## [DONE IGNORED] +## Emit -DgRPC_SSL_PROVIDER=package into doc/packaging.md while ignoring it in Docker. +# -DgRPC_SSL_PROVIDER=package \ -DgRPC_ZLIB_PROVIDER=package \ -S . -B cmake-out && \ cmake --build cmake-out -- -j ${NCPU:-4} && \ diff --git a/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile b/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile index 7cbb2435d7346..8c4d876009a40 100644 --- a/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile +++ b/ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile @@ -177,6 +177,12 @@ RUN curl -fsSL https://github.com/open-telemetry/opentelemetry-cpp/archive/v1.24 cmake --build cmake-out --target install && \ ldconfig && cd /var/tmp && rm -fr build +# Work around an upstream gRPC + OpenSSL issue +# (https://github.com/grpc/grpc/issues/42068) by building gRPC against its +# bundled BoringSSL (-DgRPC_SSL_PROVIDER=module) with prefixed symbols +# (BORINGSSL_PREFIX=bssl_grpc) and renamed shared libraries (bssl_crypto, +# bssl_ssl) so they do not collide with system OpenSSL (libssl.so, libcrypto.so) +# at build or run time. WORKDIR /var/tmp/build/grpc RUN dnf makecache && dnf install -y c-ares-devel golang re2-devel RUN curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ diff --git a/doc/packaging.md b/doc/packaging.md index a5813e38034a6..002085934d98f 100644 --- a/doc/packaging.md +++ b/doc/packaging.md @@ -343,35 +343,16 @@ sudo ldconfig ```bash mkdir -p $HOME/Downloads/grpc && cd $HOME/Downloads/grpc -sudo dnf makecache && sudo dnf install -y c-ares-devel golang re2-devel +sudo dnf makecache && sudo dnf install -y c-ares-devel re2-devel curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ tar -xzf - --strip-components=1 && \ mkdir -p third_party/grpc-proto && \ curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ - mkdir -p third_party/boringssl-with-bazel && \ - curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ - tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ - printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ - cmake -S third_party/boringssl-with-bazel -B bssl-build && \ - cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ - (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ - rm -rf bssl-build && \ - sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ - printf '%s\n' \ - 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ - 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ - 'add_dependencies(ssl boringssl_prefix_symbols)' \ - 'target_compile_definitions(crypto PUBLIC $)' \ - 'target_include_directories(crypto PUBLIC $)' \ - >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=ON \ - -DBORINGSSL_PREFIX=bssl_grpc \ - -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ @@ -379,7 +360,7 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_PROTOBUF_PACKAGE_TYPE=CONFIG \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=module \ + -DgRPC_SSL_PROVIDER=package \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -DgRPC_BUILD_GRPCPP_OTEL_PLUGIN=ON \ @@ -424,7 +405,7 @@ use GCC 8 or higher to compile `google-cloud-cpp`. ```bash sudo zypper refresh && \ sudo zypper install --allow-downgrade -y automake cmake curl \ - gcc gcc-c++ git go gzip libtool make patch tar wget + gcc gcc-c++ git gzip libtool make patch tar wget ``` Install some of the dependencies for `google-cloud-cpp`. @@ -541,36 +522,17 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/grpc-proto && \ curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ - mkdir -p third_party/boringssl-with-bazel && \ - curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ - tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ - printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ - cmake -S third_party/boringssl-with-bazel -B bssl-build && \ - cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ - (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ - rm -rf bssl-build && \ - sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ - printf '%s\n' \ - 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ - 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ - 'add_dependencies(ssl boringssl_prefix_symbols)' \ - 'target_compile_definitions(crypto PUBLIC $)' \ - 'target_include_directories(crypto PUBLIC $)' \ - >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ - -DBORINGSSL_PREFIX=bssl_grpc \ - -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=module \ + -DgRPC_SSL_PROVIDER=package \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -S . -B cmake-out && \ @@ -610,7 +572,7 @@ Install the minimal development tools, OpenSSL and libc-ares: export DEBIAN_FRONTEND=noninteractive sudo apt-get update && \ sudo apt-get --no-install-recommends install -y apt-transport-https apt-utils \ - cmake ca-certificates curl git gcc g++ golang-go m4 make tar libc6-dbg + cmake ca-certificates curl git gcc g++ m4 make tar libc6-dbg ``` Ubuntu:24 includes packages for most of the direct dependencies of @@ -761,36 +723,17 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/grpc-proto && \ curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ - mkdir -p third_party/boringssl-with-bazel && \ - curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ - tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ - printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ - cmake -S third_party/boringssl-with-bazel -B bssl-build && \ - cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ - (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ - rm -rf bssl-build && \ - sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ - printf '%s\n' \ - 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ - 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ - 'add_dependencies(ssl boringssl_prefix_symbols)' \ - 'target_compile_definitions(crypto PUBLIC $)' \ - 'target_include_directories(crypto PUBLIC $)' \ - >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=ON \ - -DBORINGSSL_PREFIX=bssl_grpc \ - -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=module \ + -DgRPC_SSL_PROVIDER=package \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -DgRPC_BUILD_GRPCPP_OTEL_PLUGIN=ON \ @@ -832,7 +775,7 @@ export DEBIAN_FRONTEND=noninteractive sudo apt-get update && \ sudo apt-get --no-install-recommends install -y apt-transport-https apt-utils \ automake build-essential cmake ca-certificates curl git \ - gcc g++ golang-go libc-ares-dev libc-ares2 libnghttp2-dev libre2-dev \ + gcc g++ libc-ares-dev libc-ares2 libnghttp2-dev libre2-dev \ libssl-dev m4 make pkg-config tar wget zlib1g-dev libc6-dbg ``` @@ -913,36 +856,17 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/grpc-proto && \ curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ - mkdir -p third_party/boringssl-with-bazel && \ - curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ - tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ - printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ - cmake -S third_party/boringssl-with-bazel -B bssl-build && \ - cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ - (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ - rm -rf bssl-build && \ - sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ - printf '%s\n' \ - 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ - 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ - 'add_dependencies(ssl boringssl_prefix_symbols)' \ - 'target_compile_definitions(crypto PUBLIC $)' \ - 'target_include_directories(crypto PUBLIC $)' \ - >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ - -DBORINGSSL_PREFIX=bssl_grpc \ - -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=module \ + -DgRPC_SSL_PROVIDER=package \ -DgRPC_ZLIB_PROVIDER=package \ -S . -B cmake-out && \ cmake --build cmake-out -- -j ${NCPU:-4} && \ @@ -1023,8 +947,7 @@ Install the minimal development tools. sudo apt-get update && \ sudo apt-get --no-install-recommends install -y apt-transport-https apt-utils \ automake build-essential ca-certificates cmake curl git \ - gcc g++ golang-go m4 make ninja-build pkg-config tar wget zlib1g-dev \ - libc6-dbg + gcc g++ m4 make ninja-build pkg-config tar wget zlib1g-dev libc6-dbg ``` Install the development packages for direct `google-cloud-cpp` dependencies: @@ -1175,36 +1098,17 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/grpc-proto && \ curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ - mkdir -p third_party/boringssl-with-bazel && \ - curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ - tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ - printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ - cmake -S third_party/boringssl-with-bazel -B bssl-build && \ - cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ - (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ - rm -rf bssl-build && \ - sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ - printf '%s\n' \ - 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ - 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ - 'add_dependencies(ssl boringssl_prefix_symbols)' \ - 'target_compile_definitions(crypto PUBLIC $)' \ - 'target_include_directories(crypto PUBLIC $)' \ - >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_BUILD_TYPE=Debug \ -DCMAKE_CXX_STANDARD=17 \ -DBUILD_SHARED_LIBS=yes \ - -DBORINGSSL_PREFIX=bssl_grpc \ - -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=module \ + -DgRPC_SSL_PROVIDER=package \ -DgRPC_ZLIB_PROVIDER=package \ -DgRPC_OPENTELEMETRY_PROVIDER=package \ -S . -B cmake-out && \ @@ -1247,7 +1151,7 @@ sudo dnf update -y && \ sudo dnf install -y epel-release && \ sudo dnf config-manager --set-enabled crb && \ sudo dnf makecache && \ -sudo dnf install -y cmake findutils gcc-c++ git golang make openssl-devel \ +sudo dnf install -y cmake findutils gcc-c++ git make openssl-devel \ patch zlib-devel libnghttp2-devel c-ares-devel tar wget which \ autoconf automake libtool binutils dnf-utils sudo dnf makecache && sudo dnf debuginfo-install -y glibc @@ -1389,36 +1293,17 @@ curl -fsSL https://github.com/grpc/grpc/archive/v1.84.0.tar.gz | \ mkdir -p third_party/grpc-proto && \ curl -fsSL https://github.com/grpc/grpc-proto/archive/ec30f589e2519d595688b9a42f88a91bdd6b733f.tar.gz | \ tar -xzf - -C third_party/grpc-proto --strip-components=1 && \ - mkdir -p third_party/boringssl-with-bazel && \ - curl -fsSL https://github.com/google/boringssl/archive/2b44a3701a4788e1ef866ddc7f143060a3d196c9.tar.gz | \ - tar -xzf - -C third_party/boringssl-with-bazel --strip-components=1 && \ - printf 'module boringssl.googlesource.com/boringssl.git\n\ngo 1.18\n' > third_party/boringssl-with-bazel/go.mod && \ - cmake -S third_party/boringssl-with-bazel -B bssl-build && \ - cmake --build bssl-build --target crypto ssl -- -j ${NCPU:-4} && \ - (cd third_party/boringssl-with-bazel && go run util/read_symbols.go -out ../../bssl_symbols.txt ../../bssl-build/libcrypto.a ../../bssl-build/libssl.a) && \ - rm -rf bssl-build && \ - sed -i 's/set(INSTALL_ENABLED 1)/set(INSTALL_ENABLED 0)/' third_party/boringssl-with-bazel/CMakeLists.txt && \ - printf '%s\n' \ - 'set_target_properties(crypto PROPERTIES OUTPUT_NAME bssl_crypto)' \ - 'set_target_properties(ssl PROPERTIES OUTPUT_NAME bssl_ssl)' \ - 'add_dependencies(ssl boringssl_prefix_symbols)' \ - 'target_compile_definitions(crypto PUBLIC $)' \ - 'target_include_directories(crypto PUBLIC $)' \ - >> third_party/boringssl-with-bazel/CMakeLists.txt && \ cmake \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_BUILD_TYPE=Debug \ -DBUILD_SHARED_LIBS=yes \ - -DBORINGSSL_PREFIX=bssl_grpc \ - -DBORINGSSL_PREFIX_SYMBOLS="$(pwd)/bssl_symbols.txt" \ -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DgRPC_ABSL_PROVIDER=package \ -DgRPC_CARES_PROVIDER=package \ -DgRPC_PROTOBUF_PROVIDER=package \ -DgRPC_RE2_PROVIDER=package \ - -DgRPC_SSL_PROVIDER=module \ + -DgRPC_SSL_PROVIDER=package \ -DgRPC_ZLIB_PROVIDER=package \ -S . -B cmake-out && \ cmake --build cmake-out -- -j ${NCPU:-4} && \