Skip to content

Commit 14f7344

Browse files
authored
Merge branch 'main' into feat-generator-any-struct-value
2 parents 5ade49c + f44759f commit 14f7344

26 files changed

Lines changed: 1321 additions & 37 deletions

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ for details on updating existing applications using v1.x.y or v2.x.y.
99

1010
## v3.9.0 - TBD
1111

12+
### Dependency version update
13+
14+
- Updated minimum version of libcurl from 7.74.0 to 8.7.1. This was done primarily to avoid a known bug introduced in libcurl 8.5.0. For more information, see [Issue #16343](https://github.com/googleapis/google-cloud-cpp/issues/16343).
15+
1216
### New Libraries
1317

1418
We are happy to announce the following GA libraries. Unless specifically noted,

ci/cloudbuild/dockerfiles/demo-debian-bookworm.Dockerfile

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ RUN apt-get update && \
3131
# ```bash
3232
RUN apt-get update && \
3333
apt-get --no-install-recommends install -y \
34-
libcurl4-openssl-dev libssl-dev nlohmann-json3-dev
34+
libnghttp2-dev libssl-dev nlohmann-json3-dev
3535
# ```
3636

3737
# #### Patching pkg-config
@@ -55,6 +55,28 @@ RUN curl -fsSL https://distfiles.ariadne.space/pkgconf/pkgconf-2.2.0.tar.gz | \
5555
ENV PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig
5656
# ```
5757

58+
# #### curl
59+
#
60+
# Install curl from source to avoid a libcurl bug present in older versions.
61+
# See https://github.com/googleapis/google-cloud-cpp/issues/16343 for more
62+
# details.
63+
#
64+
# ```bash
65+
WORKDIR /var/tmp/build/curl
66+
RUN curl -fsSL https://github.com/curl/curl/releases/download/curl-8_7_1/curl-8.7.1.tar.gz | \
67+
tar -xzf - --strip-components=1 && \
68+
cmake \
69+
-DCMAKE_BUILD_TYPE=Debug \
70+
-DCMAKE_CXX_STANDARD=17 \
71+
-DBUILD_SHARED_LIBS=ON \
72+
-DCURL_USE_OPENSSL=ON \
73+
-DBUILD_CURL_EXE=OFF \
74+
-DBUILD_TESTING=OFF \
75+
-GNinja -S . -B cmake-out && \
76+
cmake --build cmake-out --target install && \
77+
ldconfig && cd /var/tmp && rm -fr build
78+
# ```
79+
5880
# #### Abseil
5981

6082
# ```bash

ci/cloudbuild/dockerfiles/demo-debian-bullseye.Dockerfile

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ ARG NCPU=4
1717

1818
## [BEGIN packaging.md]
1919

20-
# Install the minimal development tools, libcurl, and OpenSSL:
20+
# Install the minimal development tools, OpenSSL, and libnghttp2:
2121

2222
# ```bash
2323
RUN apt-get update && \
2424
apt-get --no-install-recommends install -y apt-transport-https apt-utils \
2525
automake build-essential ca-certificates curl git \
26-
gcc g++ libc-ares-dev libc-ares2 libcurl4-openssl-dev \
26+
gcc g++ libc-ares-dev libc-ares2 libnghttp2-dev \
2727
libssl-dev m4 make ninja-build pkg-config tar wget zlib1g-dev libc6-dbg
2828
# ```
2929

@@ -33,6 +33,28 @@ RUN curl -fsSL https://github.com/Kitware/cmake/archive/v3.31.12.tar.gz | \
3333
tar -xzf - --strip-components=1 && \
3434
./bootstrap && make -j ${NCPU:-4} && make install
3535

36+
# #### curl
37+
#
38+
# Install curl from source to avoid a libcurl bug present in older versions.
39+
# See https://github.com/googleapis/google-cloud-cpp/issues/16343 for more
40+
# details.
41+
#
42+
# ```bash
43+
WORKDIR /var/tmp/build/curl
44+
RUN curl -fsSL https://github.com/curl/curl/releases/download/curl-8_7_1/curl-8.7.1.tar.gz | \
45+
tar -xzf - --strip-components=1 && \
46+
cmake \
47+
-DCMAKE_BUILD_TYPE=Debug \
48+
-DCMAKE_CXX_STANDARD=17 \
49+
-DBUILD_SHARED_LIBS=ON \
50+
-DCURL_USE_OPENSSL=ON \
51+
-DBUILD_CURL_EXE=OFF \
52+
-DBUILD_TESTING=OFF \
53+
-GNinja -S . -B cmake-out && \
54+
cmake --build cmake-out --target install && \
55+
ldconfig && cd /var/tmp && rm -fr build
56+
# ```
57+
3658
# #### Abseil
3759

3860
# ```bash

ci/cloudbuild/dockerfiles/demo-fedora.Dockerfile

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ RUN dnf makecache && dnf debuginfo-install -y glibc
3131

3232
# ```bash
3333
RUN dnf makecache && \
34-
dnf install -y json-devel libcurl-devel openssl-devel
34+
dnf install -y json-devel libnghttp2-devel openssl-devel
3535
# ```
3636

3737
# #### Patching pkg-config
@@ -62,6 +62,28 @@ RUN curl -fsSL https://distfiles.ariadne.space/pkgconf/pkgconf-2.2.0.tar.gz | \
6262
ENV PKG_CONFIG_PATH=/usr/local/share/pkgconfig:/usr/lib64/pkgconfig:/usr/local/lib64/pkgconfig
6363
# ```
6464

65+
# #### curl
66+
#
67+
# Install curl from source to avoid a libcurl bug present in older versions.
68+
# See https://github.com/googleapis/google-cloud-cpp/issues/16343 for more
69+
# details.
70+
#
71+
# ```bash
72+
WORKDIR /var/tmp/build/curl
73+
RUN curl -fsSL https://github.com/curl/curl/releases/download/curl-8_7_1/curl-8.7.1.tar.gz | \
74+
tar -xzf - --strip-components=1 && \
75+
cmake \
76+
-DCMAKE_BUILD_TYPE=Release \
77+
-DCMAKE_CXX_STANDARD=17 \
78+
-DBUILD_SHARED_LIBS=ON \
79+
-DCURL_USE_OPENSSL=ON \
80+
-DBUILD_CURL_EXE=OFF \
81+
-DBUILD_TESTING=OFF \
82+
-GNinja -S . -B cmake-out && \
83+
cmake --build cmake-out --target install && \
84+
ldconfig && cd /var/tmp && rm -fr build
85+
# ```
86+
6587
# #### Protobuf
6688

6789
# ```bash

ci/cloudbuild/dockerfiles/demo-rockylinux-9.Dockerfile

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,17 @@ ARG NCPU=4
1717

1818
## [BEGIN packaging.md]
1919

20-
# Install the minimal development tools, libcurl, OpenSSL, and the c-ares
20+
# Install the minimal development tools, OpenSSL, and the c-ares
2121
# library (required by gRPC):
2222

2323
# ```bash
2424
RUN dnf makecache && \
2525
dnf update -y && \
2626
dnf install -y epel-release && \
27+
dnf config-manager --set-enabled crb && \
2728
dnf makecache && \
2829
dnf install -y cmake findutils gcc-c++ git make openssl-devel \
29-
patch zlib-devel libcurl-devel c-ares-devel tar wget which \
30+
patch zlib-devel libnghttp2-devel c-ares-devel tar wget which \
3031
autoconf automake libtool binutils dnf-utils
3132
RUN dnf makecache && dnf debuginfo-install -y glibc
3233

@@ -68,6 +69,28 @@ ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib
6869
ENV PATH=/usr/local/bin:${PATH}
6970
# ```
7071

72+
# #### curl
73+
#
74+
# Install curl from source to avoid a libcurl bug present in older versions.
75+
# See https://github.com/googleapis/google-cloud-cpp/issues/16343 for more
76+
# details.
77+
#
78+
# ```bash
79+
WORKDIR /var/tmp/build/curl
80+
RUN curl -fsSL https://github.com/curl/curl/releases/download/curl-8_7_1/curl-8.7.1.tar.gz | \
81+
tar -xzf - --strip-components=1 && \
82+
cmake \
83+
-DCMAKE_BUILD_TYPE=Debug \
84+
-DCMAKE_CXX_STANDARD=17 \
85+
-DBUILD_SHARED_LIBS=ON \
86+
-DCURL_USE_OPENSSL=ON \
87+
-DBUILD_CURL_EXE=OFF \
88+
-DBUILD_TESTING=OFF \
89+
-S . -B cmake-out && \
90+
cmake --build cmake-out --target install && \
91+
ldconfig && cd /var/tmp && rm -fr build
92+
# ```
93+
7194
# #### Abseil
7295

7396
# ```bash

ci/cloudbuild/dockerfiles/demo-ubuntu-24.04.Dockerfile

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ ARG NCPU=4
1717

1818
## [BEGIN packaging.md]
1919

20-
# Install the minimal development tools, libcurl, OpenSSL and libc-ares:
20+
# Install the minimal development tools, OpenSSL and libc-ares:
2121

2222
# ```bash
2323
ENV DEBIAN_FRONTEND=noninteractive
@@ -33,7 +33,7 @@ RUN apt-get update && \
3333
ENV DEBIAN_FRONTEND=noninteractive
3434
RUN apt-get update && \
3535
apt-get --no-install-recommends install -y \
36-
libssl-dev libcurl4-openssl-dev nlohmann-json3-dev zlib1g-dev \
36+
libssl-dev libnghttp2-dev nlohmann-json3-dev zlib1g-dev \
3737
libsystemd-dev
3838
# ```
3939

@@ -59,6 +59,28 @@ RUN curl -fsSL https://distfiles.ariadne.space/pkgconf/pkgconf-2.2.0.tar.gz | \
5959
RUN ln -s /usr/bin/pkgconf /usr/bin/pkg-config
6060
# ```
6161

62+
# #### curl
63+
#
64+
# Install curl from source to avoid a libcurl bug present in older versions.
65+
# See https://github.com/googleapis/google-cloud-cpp/issues/16343 for more
66+
# details.
67+
#
68+
# ```bash
69+
WORKDIR /var/tmp/build/curl
70+
RUN curl -fsSL https://github.com/curl/curl/releases/download/curl-8_7_1/curl-8.7.1.tar.gz | \
71+
tar -xzf - --strip-components=1 && \
72+
cmake \
73+
-DCMAKE_BUILD_TYPE=Debug \
74+
-DCMAKE_CXX_STANDARD=17 \
75+
-DBUILD_SHARED_LIBS=ON \
76+
-DCURL_USE_OPENSSL=ON \
77+
-DBUILD_CURL_EXE=OFF \
78+
-DBUILD_TESTING=OFF \
79+
-S . -B cmake-out && \
80+
cmake --build cmake-out --target install && \
81+
ldconfig && cd /var/tmp && rm -fr build
82+
# ```
83+
6284
# #### Abseil
6385

6486
# ```bash

ci/cloudbuild/dockerfiles/demo-ubuntu-jammy.Dockerfile

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,39 @@ ARG NCPU=4
1717

1818
## [BEGIN packaging.md]
1919

20-
# Install the minimal development tools, libcurl, OpenSSL and libc-ares:
20+
# Install the minimal development tools, OpenSSL and libc-ares:
2121

2222
# ```bash
2323
ENV DEBIAN_FRONTEND=noninteractive
2424
RUN apt-get update && \
2525
apt-get --no-install-recommends install -y apt-transport-https apt-utils \
2626
automake build-essential cmake ca-certificates curl git \
27-
gcc g++ libc-ares-dev libc-ares2 libcurl4-openssl-dev libre2-dev \
27+
gcc g++ libc-ares-dev libc-ares2 libnghttp2-dev libre2-dev \
2828
libssl-dev m4 make pkg-config tar wget zlib1g-dev libc6-dbg
2929
# ```
3030

31+
# #### curl
32+
#
33+
# Install curl from source to avoid a libcurl bug present in older versions.
34+
# See https://github.com/googleapis/google-cloud-cpp/issues/16343 for more
35+
# details.
36+
#
37+
# ```bash
38+
WORKDIR /var/tmp/build/curl
39+
RUN curl -fsSL https://github.com/curl/curl/releases/download/curl-8_7_1/curl-8.7.1.tar.gz | \
40+
tar -xzf - --strip-components=1 && \
41+
cmake \
42+
-DCMAKE_BUILD_TYPE=Debug \
43+
-DCMAKE_CXX_STANDARD=17 \
44+
-DBUILD_SHARED_LIBS=ON \
45+
-DCURL_USE_OPENSSL=ON \
46+
-DBUILD_CURL_EXE=OFF \
47+
-DBUILD_TESTING=OFF \
48+
-S . -B cmake-out && \
49+
cmake --build cmake-out --target install && \
50+
ldconfig && cd /var/tmp && rm -fr build
51+
# ```
52+
3153
# #### Abseil
3254

3355
# ```bash

ci/cloudbuild/dockerfiles/fedora-cmake-quickstart.Dockerfile

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ FROM fedora:40
1616
ARG NCPU=4
1717
ARG ARCH=amd64
1818

19-
# Fedora includes packages for libcurl and OpenSSL that are recent enough
19+
# Fedora includes packages for OpenSSL that are recent enough
2020
# for `google-cloud-cpp`. Install these packages and additional development
2121
# tools to compile the dependencies:
2222
RUN dnf makecache && \
2323
dnf install -y abi-compliance-checker autoconf automake \
2424
clang clang-analyzer clang-tools-extra \
2525
cmake diffutils findutils gcc-c++ git \
26-
libcurl-devel llvm make ninja-build \
26+
libnghttp2-devel llvm make ninja-build \
2727
openssl-devel patch python python3 \
2828
python-pip tar unzip w3m wget which zip zlib-devel
2929

@@ -81,6 +81,23 @@ RUN curl -fsSL https://distfiles.ariadne.space/pkgconf/pkgconf-2.2.0.tar.gz | \
8181
# set the search path.
8282
ENV PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib64/pkgconfig
8383

84+
# Install curl from source to avoid a libcurl bug present in older versions.
85+
# See https://github.com/googleapis/google-cloud-cpp/issues/16343 for more
86+
# details.
87+
WORKDIR /var/tmp/build/curl
88+
RUN curl -fsSL https://github.com/curl/curl/releases/download/curl-8_7_1/curl-8.7.1.tar.gz | \
89+
tar -xzf - --strip-components=1 && \
90+
cmake \
91+
-DCMAKE_BUILD_TYPE=Release \
92+
-DCMAKE_CXX_STANDARD=17 \
93+
-DBUILD_SHARED_LIBS=ON \
94+
-DCURL_USE_OPENSSL=ON \
95+
-DBUILD_CURL_EXE=OFF \
96+
-DBUILD_TESTING=OFF \
97+
-GNinja -S . -B cmake-out && \
98+
cmake --build cmake-out --target install && \
99+
ldconfig && cd /var/tmp && rm -fr build
100+
84101
# We disable the inline namespace because otherwise Abseil LTS updates break our
85102
# `check-api` build.
86103
WORKDIR /var/tmp/build

ci/cloudbuild/dockerfiles/fedora-latest-cmake.Dockerfile

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ FROM fedora:40
1616
ARG NCPU=4
1717
ARG ARCH=amd64
1818

19-
# Fedora includes packages for libcurl and OpenSSL that are recent enough
19+
# Fedora includes packages for OpenSSL that are recent enough
2020
# for `google-cloud-cpp`. Install these packages and additional development
2121
# tools to compile the dependencies:
2222
RUN dnf makecache && \
2323
dnf install -y abi-compliance-checker autoconf automake \
2424
clang clang-analyzer clang-tools-extra \
2525
cmake diffutils findutils gcc-c++ git \
26-
libcurl-devel llvm make ninja-build \
26+
libnghttp2-devel llvm make ninja-build \
2727
openssl-devel patch python python3 \
2828
python-pip tar unzip w3m wget which zip zlib-devel
2929

@@ -81,6 +81,23 @@ RUN curl -fsSL https://distfiles.ariadne.space/pkgconf/pkgconf-2.2.0.tar.gz | \
8181
# set the search path.
8282
ENV PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib64/pkgconfig
8383

84+
# Install curl from source to avoid a libcurl bug present in older versions.
85+
# See https://github.com/googleapis/google-cloud-cpp/issues/16343 for more
86+
# details.
87+
WORKDIR /var/tmp/build/curl
88+
RUN curl -fsSL https://github.com/curl/curl/releases/download/curl-8_7_1/curl-8.7.1.tar.gz | \
89+
tar -xzf - --strip-components=1 && \
90+
cmake \
91+
-DCMAKE_BUILD_TYPE=Release \
92+
-DCMAKE_CXX_STANDARD=17 \
93+
-DBUILD_SHARED_LIBS=ON \
94+
-DCURL_USE_OPENSSL=ON \
95+
-DBUILD_CURL_EXE=OFF \
96+
-DBUILD_TESTING=OFF \
97+
-GNinja -S . -B cmake-out && \
98+
cmake --build cmake-out --target install && \
99+
ldconfig && cd /var/tmp && rm -fr build
100+
84101
# We disable the inline namespace because otherwise Abseil LTS updates break our
85102
# `check-api` build.
86103
WORKDIR /var/tmp/build

ci/cloudbuild/dockerfiles/fedora-latest-cxx20.Dockerfile

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ FROM fedora:40
1616
ARG NCPU=4
1717
ARG ARCH=amd64
1818

19-
# Fedora includes packages for gRPC, libcurl, and OpenSSL that are recent enough
19+
# Fedora includes packages for gRPC and OpenSSL that are recent enough
2020
# for `google-cloud-cpp`. Install these packages and additional development
2121
# tools to compile the dependencies:
2222
RUN dnf makecache && \
@@ -25,10 +25,10 @@ RUN dnf makecache && \
2525
make ninja-build patch python3 \
2626
python-pip tar unzip wget which zip zlib-devel
2727

28-
# Install the development packages for libcurl and OpenSSL. Neither are affected
28+
# Install the development packages for OpenSSL and libnghttp2. Neither are affected
2929
# by the C++ version, so we can use the pre-built binaries.
3030
RUN dnf makecache && \
31-
dnf install -y libcurl-devel openssl-devel
31+
dnf install -y libnghttp2-devel openssl-devel
3232

3333
# Install the Python modules needed to run the storage emulator
3434
RUN dnf makecache && dnf install -y python3-devel
@@ -67,6 +67,23 @@ RUN curl -fsSL https://distfiles.ariadne.space/pkgconf/pkgconf-2.2.0.tar.gz | \
6767
# set the search path.
6868
ENV PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib64/pkgconfig
6969

70+
# Install curl from source to avoid a libcurl bug present in older versions.
71+
# See https://github.com/googleapis/google-cloud-cpp/issues/16343 for more
72+
# details.
73+
WORKDIR /var/tmp/build/curl
74+
RUN curl -fsSL https://github.com/curl/curl/releases/download/curl-8_7_1/curl-8.7.1.tar.gz | \
75+
tar -xzf - --strip-components=1 && \
76+
cmake \
77+
-DCMAKE_BUILD_TYPE=Release \
78+
-DCMAKE_CXX_STANDARD=20 \
79+
-DBUILD_SHARED_LIBS=ON \
80+
-DCURL_USE_OPENSSL=ON \
81+
-DBUILD_CURL_EXE=OFF \
82+
-DBUILD_TESTING=OFF \
83+
-GNinja -S . -B cmake-out && \
84+
cmake --build cmake-out --target install && \
85+
ldconfig && cd /var/tmp && rm -fr build
86+
7087
# Download and install direct dependencies of `google-cloud-cpp`. Including
7188
# development dependencies. In each case, remove the downloaded files and the
7289
# temporary artifacts after a successful build to keep the image smaller (and

0 commit comments

Comments
 (0)