From f1a9c60f17a96637cff717c53e5e47c79249c298 Mon Sep 17 00:00:00 2001 From: Niels Kristensen Date: Tue, 2 Sep 2025 10:27:45 +0200 Subject: [PATCH] packaging: add debian trixie support Signed-off-by: Niels Kristensen --- packaging/README.md | 2 + packaging/build-config.json | 8 +++ packaging/distros/debian/Dockerfile | 50 +++++++++++++++++++ .../smoke/packages/Dockerfile.debian13 | 47 +++++++++++++++++ packaging/update-apt-repo.sh | 2 +- packaging/update-repos.sh | 1 + 6 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 packaging/testing/smoke/packages/Dockerfile.debian13 diff --git a/packaging/README.md b/packaging/README.md index 440e2c1047f..b726c0a6817 100644 --- a/packaging/README.md +++ b/packaging/README.md @@ -21,6 +21,8 @@ The [`distros`](./distros/) directory contains OCI container definitions used to | CentOS | 8 | arm64v8 | centos/8.arm64v8 | | CentOS | 7 | x86_64 | centos/7 | | CentOS | 7 | arm64v8 | centos/7.arm64v8 | +| Debian | 13 | x86_64 | debian/trixie | +| Debian | 13 | arm64v8 | debian/trixie.arm64v8 | | Debian | 12 | x86_64 | debian/bookworm | | Debian | 12 | arm64v8 | debian/bookworm.arm64v8 | | Debian | 11 | x86_64 | debian/bullseye | diff --git a/packaging/build-config.json b/packaging/build-config.json index f6e5a2744cf..ab669256b1f 100644 --- a/packaging/build-config.json +++ b/packaging/build-config.json @@ -96,6 +96,14 @@ "target": "debian/bullseye.arm64v8", "type": "deb" }, + { + "target": "debian/trixie", + "type": "deb" + }, + { + "target": "debian/trixie.arm64v8", + "type": "deb" + }, { "target": "ubuntu/22.04", "type": "deb" diff --git a/packaging/distros/debian/Dockerfile b/packaging/distros/debian/Dockerfile index ffbee37bed3..82edf687423 100644 --- a/packaging/distros/debian/Dockerfile +++ b/packaging/distros/debian/Dockerfile @@ -169,6 +169,56 @@ RUN apt-get -qq update && \ ENV PATH="${CMAKE_HOME}/bin:${PATH}" +# debian/trixie base image +FROM debian:trixie-slim AS debian-trixie-base +ENV DEBIAN_FRONTEND="noninteractive" \ + CMAKE_HOME="/opt/cmake" + +ARG CMAKE_VERSION="3.31.6" +ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download" + +# hadolint ignore=DL3008,DL3015 +RUN apt-get -qq update && \ + apt-get install -y curl ca-certificates build-essential \ + make bash sudo wget unzip dh-make \ + libsystemd-dev zlib1g-dev flex bison \ + libssl3 libssl-dev libpq-dev postgresql-server-dev-all \ + libsasl2-2 libsasl2-dev libyaml-dev libcurl4-openssl-dev pkg-config \ + tar gzip && \ + apt-get install -y --reinstall lsb-base lsb-release && \ + mkdir -p "${CMAKE_HOME}" && \ + cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \ + echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \ + curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1 + +ENV PATH="${CMAKE_HOME}/bin:${PATH}" + +# debian/trixie.arm64v8 base image +FROM arm64v8/debian:trixie-slim AS debian-trixie.arm64v8-base +ENV DEBIAN_FRONTEND="noninteractive" \ + CMAKE_HOME="/opt/cmake" + +COPY --from=multiarch-aarch64 /usr/bin/qemu-aarch64-static /usr/bin/qemu-aarch64-static + +ARG CMAKE_VERSION="3.31.6" +ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download" + +# hadolint ignore=DL3008,DL3015 +RUN apt-get -qq update && \ + apt-get install -y curl ca-certificates build-essential \ + make bash sudo wget unzip dh-make \ + libsystemd-dev zlib1g-dev flex bison \ + libssl3 libssl-dev libpq-dev postgresql-server-dev-all \ + libsasl2-2 libsasl2-dev libyaml-dev libcurl4-openssl-dev pkg-config \ + tar gzip && \ + apt-get install -y --reinstall lsb-base lsb-release && \ + mkdir -p "${CMAKE_HOME}" && \ + cmake_download_url="${CMAKE_URL}/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-$(uname -m).tar.gz" && \ + echo "Downloading CMake ${CMAKE_VERSION}: ${cmake_download_url} -> ${CMAKE_HOME}" && \ + curl -jksSL "${cmake_download_url}" | tar -xzf - -C "${CMAKE_HOME}" --strip-components 1 + +ENV PATH="${CMAKE_HOME}/bin:${PATH}" + # Common build for all distributions now # hadolint ignore=DL3006 FROM $BASE_BUILDER AS builder diff --git a/packaging/testing/smoke/packages/Dockerfile.debian13 b/packaging/testing/smoke/packages/Dockerfile.debian13 new file mode 100644 index 00000000000..c0fd645c94f --- /dev/null +++ b/packaging/testing/smoke/packages/Dockerfile.debian13 @@ -0,0 +1,47 @@ +# For staging upgrade we use the 'official-install' as the base +ARG STAGING_BASE=docker.io/dokken/debian-13 + +ARG RELEASE_URL=https://packages.fluentbit.io +ARG RELEASE_KEY=https://packages.fluentbit.io/fluentbit.key + +# hadolint ignore=DL3006 +FROM docker.io/dokken/debian-13 as official-install + +ARG RELEASE_URL +ENV FLUENT_BIT_PACKAGES_URL=${RELEASE_URL} + +ARG RELEASE_KEY +ENV FLUENT_BIT_PACKAGES_KEY=${RELEASE_KEY} + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +RUN curl https://raw.githubusercontent.com/fluent/fluent-bit/master/install.sh | sh +RUN systemctl enable fluent-bit + +COPY ./test.sh /test.sh +RUN chmod a+x /test.sh + +FROM official-install as staging-upgrade-prep +RUN rm -f /etc/apt/sources.list.d/fluent-bit.list + +# hadolint ignore=DL3006 +FROM ${STAGING_BASE} as staging-install +ARG STAGING_VERSION +ENV STAGING_VERSION=${STAGING_VERSION} + +ARG STAGING_URL +ENV FLUENT_BIT_PACKAGES_URL=${STAGING_URL} + +ARG STAGING_KEY=${STAGING_URL}/fluentbit.key +ENV FLUENT_BIT_PACKAGES_KEY=${STAGING_KEY} + +SHELL ["/bin/bash", "-o", "pipefail", "-c"] +RUN wget -qO - $FLUENT_BIT_PACKAGES_KEY | apt-key add - +RUN echo "deb $FLUENT_BIT_PACKAGES_URL/debian/trixie trixie main" >> /etc/apt/sources.list +# hadolint ignore=DL3015,DL3008,DL3009 +RUN apt-get update && apt-get install -y fluent-bit +RUN systemctl enable fluent-bit + +COPY ./test.sh /test.sh +RUN chmod a+x /test.sh + +FROM staging-install as staging-upgrade diff --git a/packaging/update-apt-repo.sh b/packaging/update-apt-repo.sh index 54f9851dff6..a975217d68e 100755 --- a/packaging/update-apt-repo.sh +++ b/packaging/update-apt-repo.sh @@ -10,7 +10,7 @@ if [[ ! -d "$BASE_PATH" ]]; then exit 1 fi -# "debian/bookworm" "debian/bullseye" "debian/buster" "ubuntu/xenial" "ubuntu/bionic" "ubuntu/focal" "ubuntu/jammy" "raspbian/buster" "raspbian/bullseye" +# "debian/bookworm" "debian/bullseye" "debian/buster" "debian/trixie" "ubuntu/xenial" "ubuntu/bionic" "ubuntu/focal" "ubuntu/jammy" "raspbian/buster" "raspbian/bullseye" DEB_REPO=${DEB_REPO:?} # Set true to prevent signing diff --git a/packaging/update-repos.sh b/packaging/update-repos.sh index f79542a2099..4667bfe793f 100755 --- a/packaging/update-repos.sh +++ b/packaging/update-repos.sh @@ -50,6 +50,7 @@ done DEB_REPO_PATHS=( "debian/bookworm" "debian/bullseye" "debian/buster" + "debian/trixie" "ubuntu/jammy" "ubuntu/noble" "raspbian/bookworm"