From 25409cc789e88dc2a456a663777afa84c18f91d8 Mon Sep 17 00:00:00 2001 From: Jens Geyer Date: Thu, 1 Oct 2026 23:18:47 +0200 Subject: [PATCH] THRIFT-6398: Add 0.24.0 and 0.25.0 to the Docker Official Image packaging Client: docker update.sh was never run for 0.24.0, so versions.json still listed only 0.22.0 and 0.23.0. Run it for 0.24.0 and then 0.25.0, with RELEASED_DATE set to the release dates (2026-07-11 and 2026-09-30). Both tarballs pass the checksum and signature checks. With maintained_releases: 2, the generated library now covers 0.25.0 and 0.24.0, and 0.23.0 leaves it. Co-Authored-By: Claude Opus 5.5 (1M context) --- docker/0.24.0/Dockerfile | 78 ++++++++++++++++++++++++++++++ docker/0.24.0/Dockerfile.alpine | 74 ++++++++++++++++++++++++++++ docker/0.24.0/docker-entrypoint.sh | 10 ++++ docker/0.25.0/Dockerfile | 78 ++++++++++++++++++++++++++++++ docker/0.25.0/Dockerfile.alpine | 74 ++++++++++++++++++++++++++++ docker/0.25.0/docker-entrypoint.sh | 10 ++++ docker/versions.json | 16 ++++++ 7 files changed, 340 insertions(+) create mode 100644 docker/0.24.0/Dockerfile create mode 100644 docker/0.24.0/Dockerfile.alpine create mode 100755 docker/0.24.0/docker-entrypoint.sh create mode 100644 docker/0.25.0/Dockerfile create mode 100644 docker/0.25.0/Dockerfile.alpine create mode 100755 docker/0.25.0/docker-entrypoint.sh diff --git a/docker/0.24.0/Dockerfile b/docker/0.24.0/Dockerfile new file mode 100644 index 00000000000..f4c96fa406b --- /dev/null +++ b/docker/0.24.0/Dockerfile @@ -0,0 +1,78 @@ +FROM debian:trixie AS builder + +ARG THRIFT_VERSION=0.24.0 +ARG THRIFT_SOURCE_URL=https://archive.apache.org/dist/thrift/0.24.0/thrift-0.24.0.tar.gz +ARG THRIFT_SOURCE_SHA256=e0fa5839a4c5c1d631b0931cf2c554ebbfa4e2fee3a9fb3ffd4f82ce4396c6e4 +ARG THRIFT_SOURCE_SIGNER=8CD87F186F06E958EFCA963D76BD340FC4B75865 + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + bison \ + ca-certificates \ + cmake \ + curl \ + flex \ + g++ \ + gnupg \ + make \ + ; \ + rm -rf /var/lib/apt/lists/* + +WORKDIR /usr/src + +RUN set -eux; \ + curl -fsSL -o thrift.tar.gz "$THRIFT_SOURCE_URL"; \ + curl -fsSL -o thrift.tar.gz.asc "$THRIFT_SOURCE_URL.asc"; \ + curl -fsSL -o thrift-KEYS https://downloads.apache.org/thrift/KEYS; \ + echo "$THRIFT_SOURCE_SHA256 *thrift.tar.gz" | sha256sum -c -; \ + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --import thrift-KEYS; \ + gpg --batch --status-fd 1 --verify thrift.tar.gz.asc thrift.tar.gz > gpg.status; \ + grep -F "[GNUPG:] VALIDSIG $THRIFT_SOURCE_SIGNER " gpg.status; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + mkdir thrift; \ + tar -xzf thrift.tar.gz -C thrift --strip-components=1; \ + rm thrift.tar.gz thrift.tar.gz.asc thrift-KEYS gpg.status + +RUN set -eux; \ + cmake -S thrift -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_COMPILER=ON \ + -DBUILD_LIBRARIES=OFF \ + -DBUILD_TESTING=OFF \ + -DBUILD_TUTORIALS=OFF; \ + cmake --build build --target thrift-compiler -j "$(nproc)"; \ + cmake --install build --prefix /opt/thrift + +FROM debian:trixie-slim + +ARG THRIFT_VERSION=0.24.0 + +LABEL org.opencontainers.image.title="Apache Thrift Compiler" \ + org.opencontainers.image.version="$THRIFT_VERSION" \ + org.opencontainers.image.source="https://github.com/apache/thrift" \ + org.opencontainers.image.url="https://thrift.apache.org/" \ + org.opencontainers.image.licenses="Apache-2.0" + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends libstdc++6; \ + rm -rf /var/lib/apt/lists/* + +COPY --from=builder /opt/thrift/bin/thrift /usr/local/bin/thrift +COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh + +RUN set -eux; \ + thrift --version | grep -F "$THRIFT_VERSION"; \ + echo 'struct Ping { 1: string message }' > /tmp/smoke.thrift; \ + mkdir -p /tmp/smoke-out; \ + thrift --gen json -o /tmp/smoke-out /tmp/smoke.thrift; \ + find /tmp/smoke-out -type f | grep -q .; \ + rm -rf /tmp/smoke.thrift /tmp/smoke-out + +WORKDIR /data + +ENTRYPOINT ["docker-entrypoint.sh"] +CMD ["thrift"] diff --git a/docker/0.24.0/Dockerfile.alpine b/docker/0.24.0/Dockerfile.alpine new file mode 100644 index 00000000000..d50f0b0f9df --- /dev/null +++ b/docker/0.24.0/Dockerfile.alpine @@ -0,0 +1,74 @@ +FROM alpine:3.23 AS builder + +ARG THRIFT_VERSION=0.24.0 +ARG THRIFT_SOURCE_URL=https://archive.apache.org/dist/thrift/0.24.0/thrift-0.24.0.tar.gz +ARG THRIFT_SOURCE_SHA256=e0fa5839a4c5c1d631b0931cf2c554ebbfa4e2fee3a9fb3ffd4f82ce4396c6e4 +ARG THRIFT_SOURCE_SIGNER=8CD87F186F06E958EFCA963D76BD340FC4B75865 + +RUN set -eux; \ + apk add --no-cache \ + bison \ + build-base \ + ca-certificates \ + cmake \ + curl \ + flex \ + gnupg \ + ; \ + update-ca-certificates + +WORKDIR /usr/src + +RUN set -eux; \ + curl -fsSL -o thrift.tar.gz "$THRIFT_SOURCE_URL"; \ + curl -fsSL -o thrift.tar.gz.asc "$THRIFT_SOURCE_URL.asc"; \ + curl -fsSL -o thrift-KEYS https://downloads.apache.org/thrift/KEYS; \ + echo "$THRIFT_SOURCE_SHA256 *thrift.tar.gz" | sha256sum -c -; \ + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --import thrift-KEYS; \ + gpg --batch --status-fd 1 --verify thrift.tar.gz.asc thrift.tar.gz > gpg.status; \ + grep -F "[GNUPG:] VALIDSIG $THRIFT_SOURCE_SIGNER " gpg.status; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + mkdir thrift; \ + tar -xzf thrift.tar.gz -C thrift --strip-components=1; \ + rm thrift.tar.gz thrift.tar.gz.asc thrift-KEYS gpg.status + +RUN set -eux; \ + cmake -S thrift -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_COMPILER=ON \ + -DBUILD_LIBRARIES=OFF \ + -DBUILD_TESTING=OFF \ + -DBUILD_TUTORIALS=OFF; \ + cmake --build build --target thrift-compiler -j "$(nproc)"; \ + cmake --install build --prefix /opt/thrift + +FROM alpine:3.23 + +ARG THRIFT_VERSION=0.24.0 + +LABEL org.opencontainers.image.title="Apache Thrift Compiler" \ + org.opencontainers.image.version="$THRIFT_VERSION" \ + org.opencontainers.image.source="https://github.com/apache/thrift" \ + org.opencontainers.image.url="https://thrift.apache.org/" \ + org.opencontainers.image.licenses="Apache-2.0" + +RUN set -eux; \ + apk add --no-cache libstdc++ + +COPY --from=builder /opt/thrift/bin/thrift /usr/local/bin/thrift +COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh + +RUN set -eux; \ + thrift --version | grep -F "$THRIFT_VERSION"; \ + echo 'struct Ping { 1: string message }' > /tmp/smoke.thrift; \ + mkdir -p /tmp/smoke-out; \ + thrift --gen json -o /tmp/smoke-out /tmp/smoke.thrift; \ + find /tmp/smoke-out -type f | grep -q .; \ + rm -rf /tmp/smoke.thrift /tmp/smoke-out + +WORKDIR /data + +ENTRYPOINT ["docker-entrypoint.sh"] +CMD ["thrift"] diff --git a/docker/0.24.0/docker-entrypoint.sh b/docker/0.24.0/docker-entrypoint.sh new file mode 100755 index 00000000000..ac3ccae3954 --- /dev/null +++ b/docker/0.24.0/docker-entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/sh +set -e + +if [ "$#" -eq 0 ]; then + set -- thrift +elif [ "${1#-}" != "$1" ]; then + set -- thrift "$@" +fi + +exec "$@" diff --git a/docker/0.25.0/Dockerfile b/docker/0.25.0/Dockerfile new file mode 100644 index 00000000000..a9b32e66548 --- /dev/null +++ b/docker/0.25.0/Dockerfile @@ -0,0 +1,78 @@ +FROM debian:trixie AS builder + +ARG THRIFT_VERSION=0.25.0 +ARG THRIFT_SOURCE_URL=https://archive.apache.org/dist/thrift/0.25.0/thrift-0.25.0.tar.gz +ARG THRIFT_SOURCE_SHA256=66da4707214c54c94bac082103dc67adaf9e08925662700f269170a7b534b214 +ARG THRIFT_SOURCE_SIGNER=8CD87F186F06E958EFCA963D76BD340FC4B75865 + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + bison \ + ca-certificates \ + cmake \ + curl \ + flex \ + g++ \ + gnupg \ + make \ + ; \ + rm -rf /var/lib/apt/lists/* + +WORKDIR /usr/src + +RUN set -eux; \ + curl -fsSL -o thrift.tar.gz "$THRIFT_SOURCE_URL"; \ + curl -fsSL -o thrift.tar.gz.asc "$THRIFT_SOURCE_URL.asc"; \ + curl -fsSL -o thrift-KEYS https://downloads.apache.org/thrift/KEYS; \ + echo "$THRIFT_SOURCE_SHA256 *thrift.tar.gz" | sha256sum -c -; \ + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --import thrift-KEYS; \ + gpg --batch --status-fd 1 --verify thrift.tar.gz.asc thrift.tar.gz > gpg.status; \ + grep -F "[GNUPG:] VALIDSIG $THRIFT_SOURCE_SIGNER " gpg.status; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + mkdir thrift; \ + tar -xzf thrift.tar.gz -C thrift --strip-components=1; \ + rm thrift.tar.gz thrift.tar.gz.asc thrift-KEYS gpg.status + +RUN set -eux; \ + cmake -S thrift -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_COMPILER=ON \ + -DBUILD_LIBRARIES=OFF \ + -DBUILD_TESTING=OFF \ + -DBUILD_TUTORIALS=OFF; \ + cmake --build build --target thrift-compiler -j "$(nproc)"; \ + cmake --install build --prefix /opt/thrift + +FROM debian:trixie-slim + +ARG THRIFT_VERSION=0.25.0 + +LABEL org.opencontainers.image.title="Apache Thrift Compiler" \ + org.opencontainers.image.version="$THRIFT_VERSION" \ + org.opencontainers.image.source="https://github.com/apache/thrift" \ + org.opencontainers.image.url="https://thrift.apache.org/" \ + org.opencontainers.image.licenses="Apache-2.0" + +RUN set -eux; \ + apt-get update; \ + apt-get install -y --no-install-recommends libstdc++6; \ + rm -rf /var/lib/apt/lists/* + +COPY --from=builder /opt/thrift/bin/thrift /usr/local/bin/thrift +COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh + +RUN set -eux; \ + thrift --version | grep -F "$THRIFT_VERSION"; \ + echo 'struct Ping { 1: string message }' > /tmp/smoke.thrift; \ + mkdir -p /tmp/smoke-out; \ + thrift --gen json -o /tmp/smoke-out /tmp/smoke.thrift; \ + find /tmp/smoke-out -type f | grep -q .; \ + rm -rf /tmp/smoke.thrift /tmp/smoke-out + +WORKDIR /data + +ENTRYPOINT ["docker-entrypoint.sh"] +CMD ["thrift"] diff --git a/docker/0.25.0/Dockerfile.alpine b/docker/0.25.0/Dockerfile.alpine new file mode 100644 index 00000000000..85bd89563bf --- /dev/null +++ b/docker/0.25.0/Dockerfile.alpine @@ -0,0 +1,74 @@ +FROM alpine:3.23 AS builder + +ARG THRIFT_VERSION=0.25.0 +ARG THRIFT_SOURCE_URL=https://archive.apache.org/dist/thrift/0.25.0/thrift-0.25.0.tar.gz +ARG THRIFT_SOURCE_SHA256=66da4707214c54c94bac082103dc67adaf9e08925662700f269170a7b534b214 +ARG THRIFT_SOURCE_SIGNER=8CD87F186F06E958EFCA963D76BD340FC4B75865 + +RUN set -eux; \ + apk add --no-cache \ + bison \ + build-base \ + ca-certificates \ + cmake \ + curl \ + flex \ + gnupg \ + ; \ + update-ca-certificates + +WORKDIR /usr/src + +RUN set -eux; \ + curl -fsSL -o thrift.tar.gz "$THRIFT_SOURCE_URL"; \ + curl -fsSL -o thrift.tar.gz.asc "$THRIFT_SOURCE_URL.asc"; \ + curl -fsSL -o thrift-KEYS https://downloads.apache.org/thrift/KEYS; \ + echo "$THRIFT_SOURCE_SHA256 *thrift.tar.gz" | sha256sum -c -; \ + export GNUPGHOME="$(mktemp -d)"; \ + gpg --batch --import thrift-KEYS; \ + gpg --batch --status-fd 1 --verify thrift.tar.gz.asc thrift.tar.gz > gpg.status; \ + grep -F "[GNUPG:] VALIDSIG $THRIFT_SOURCE_SIGNER " gpg.status; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + mkdir thrift; \ + tar -xzf thrift.tar.gz -C thrift --strip-components=1; \ + rm thrift.tar.gz thrift.tar.gz.asc thrift-KEYS gpg.status + +RUN set -eux; \ + cmake -S thrift -B build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_COMPILER=ON \ + -DBUILD_LIBRARIES=OFF \ + -DBUILD_TESTING=OFF \ + -DBUILD_TUTORIALS=OFF; \ + cmake --build build --target thrift-compiler -j "$(nproc)"; \ + cmake --install build --prefix /opt/thrift + +FROM alpine:3.23 + +ARG THRIFT_VERSION=0.25.0 + +LABEL org.opencontainers.image.title="Apache Thrift Compiler" \ + org.opencontainers.image.version="$THRIFT_VERSION" \ + org.opencontainers.image.source="https://github.com/apache/thrift" \ + org.opencontainers.image.url="https://thrift.apache.org/" \ + org.opencontainers.image.licenses="Apache-2.0" + +RUN set -eux; \ + apk add --no-cache libstdc++ + +COPY --from=builder /opt/thrift/bin/thrift /usr/local/bin/thrift +COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh + +RUN set -eux; \ + thrift --version | grep -F "$THRIFT_VERSION"; \ + echo 'struct Ping { 1: string message }' > /tmp/smoke.thrift; \ + mkdir -p /tmp/smoke-out; \ + thrift --gen json -o /tmp/smoke-out /tmp/smoke.thrift; \ + find /tmp/smoke-out -type f | grep -q .; \ + rm -rf /tmp/smoke.thrift /tmp/smoke-out + +WORKDIR /data + +ENTRYPOINT ["docker-entrypoint.sh"] +CMD ["thrift"] diff --git a/docker/0.25.0/docker-entrypoint.sh b/docker/0.25.0/docker-entrypoint.sh new file mode 100755 index 00000000000..ac3ccae3954 --- /dev/null +++ b/docker/0.25.0/docker-entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/sh +set -e + +if [ "$#" -eq 0 ]; then + set -- thrift +elif [ "${1#-}" != "$1" ]; then + set -- thrift "$@" +fi + +exec "$@" diff --git a/docker/versions.json b/docker/versions.json index 56aad916bb8..57145ff2c00 100644 --- a/docker/versions.json +++ b/docker/versions.json @@ -16,6 +16,22 @@ "released": "2026-04-27", "debian": "trixie", "alpine": "3.23" + }, + "0.24.0": { + "source": "https://archive.apache.org/dist/thrift/0.24.0/thrift-0.24.0.tar.gz", + "sha256": "e0fa5839a4c5c1d631b0931cf2c554ebbfa4e2fee3a9fb3ffd4f82ce4396c6e4", + "signer": "8CD87F186F06E958EFCA963D76BD340FC4B75865", + "released": "2026-07-11", + "debian": "trixie", + "alpine": "3.23" + }, + "0.25.0": { + "source": "https://archive.apache.org/dist/thrift/0.25.0/thrift-0.25.0.tar.gz", + "sha256": "66da4707214c54c94bac082103dc67adaf9e08925662700f269170a7b534b214", + "signer": "8CD87F186F06E958EFCA963D76BD340FC4B75865", + "released": "2026-09-30", + "debian": "trixie", + "alpine": "3.23" } } }