From 1db9dee3289f734f2acfdb9fae30b074e1908e61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serhat=20And=C4=B1=C3=A7?= Date: Tue, 8 Sep 2026 19:15:45 +0300 Subject: [PATCH] Retire Debian Bullseye packaging builders Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../build-citus-community-nightlies.yml | 1 - .github/workflows/build-package-test.yml | 1 - .github/workflows/build-package.yml | 1 - .github/workflows/build-pgazure-nightlies.yml | 1 - .github/workflows/image-health-check.yml | 1 - README.md | 2 + ci/push_images | 5 + dockerfiles/debian-bullseye-all/Dockerfile | 140 ------------------ os-list.csv | 1 - update_image | 5 + 10 files changed, 12 insertions(+), 146 deletions(-) delete mode 100644 dockerfiles/debian-bullseye-all/Dockerfile diff --git a/.github/workflows/build-citus-community-nightlies.yml b/.github/workflows/build-citus-community-nightlies.yml index 3800f2423..7a05fd28b 100644 --- a/.github/workflows/build-citus-community-nightlies.yml +++ b/.github/workflows/build-citus-community-nightlies.yml @@ -30,7 +30,6 @@ jobs: matrix: platform: - el/8 - - debian/bullseye - debian/bookworm - debian/trixie - ubuntu/jammy diff --git a/.github/workflows/build-package-test.yml b/.github/workflows/build-package-test.yml index d8942895f..6774d759c 100644 --- a/.github/workflows/build-package-test.yml +++ b/.github/workflows/build-package-test.yml @@ -51,7 +51,6 @@ jobs: include: - TARGET_PLATFORM: almalinux,9 POSTGRES_VERSION: 19 - - TARGET_PLATFORM: debian,bullseye - TARGET_PLATFORM: debian,bookworm - TARGET_PLATFORM: debian,trixie - TARGET_PLATFORM: ubuntu,jammy diff --git a/.github/workflows/build-package.yml b/.github/workflows/build-package.yml index 4097cec4e..beb10db22 100644 --- a/.github/workflows/build-package.yml +++ b/.github/workflows/build-package.yml @@ -51,7 +51,6 @@ jobs: include: - TARGET_PLATFORM: almalinux,9 POSTGRES_VERSION: 19 - - TARGET_PLATFORM: debian,bullseye - TARGET_PLATFORM: debian,bookworm - TARGET_PLATFORM: debian,trixie - TARGET_PLATFORM: ubuntu,jammy diff --git a/.github/workflows/build-pgazure-nightlies.yml b/.github/workflows/build-pgazure-nightlies.yml index 41a28279b..d09175a78 100644 --- a/.github/workflows/build-pgazure-nightlies.yml +++ b/.github/workflows/build-pgazure-nightlies.yml @@ -32,7 +32,6 @@ jobs: # temporarily removed from nightlies since pg15 beta is not being downloaded for ol/7 # - ol/7 - debian/buster - - debian/bullseye - ubuntu/bionic - ubuntu/focal diff --git a/.github/workflows/image-health-check.yml b/.github/workflows/image-health-check.yml index c2866e08d..eea14fc6a 100644 --- a/.github/workflows/image-health-check.yml +++ b/.github/workflows/image-health-check.yml @@ -53,7 +53,6 @@ jobs: include: - TARGET_PLATFORM: almalinux,9 POSTGRES_VERSION: 19 - - TARGET_PLATFORM: debian,bullseye - TARGET_PLATFORM: debian,bookworm - TARGET_PLATFORM: debian,trixie - TARGET_PLATFORM: ubuntu,jammy diff --git a/README.md b/README.md index ff99f61ff..8d1a3a69f 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,8 @@ The build type can be `release`, `nightly`, or any valid git reference. `release By default, `build_packages` builds on _all_ supported operating systems. Edit `os-list.csv` if you wish to build for fewer. +Debian 11 (Bullseye) is no longer supported following the end of Debian LTS on August 31, 2026. Use Debian 12 (Bookworm) or Debian 13 (Trixie) instead. + ### Updating Dockerfiles `update_dockerfiles` generates a new set of Dockerfiles. This repository has automated builds configured, so if you need to change the Docker images, run `update_dockerfiles`, commit the resulting Dockerfile changes, and push. diff --git a/ci/push_images b/ci/push_images index 09162b601..78b64d006 100755 --- a/ci/push_images +++ b/ci/push_images @@ -23,6 +23,11 @@ else image_name="packaging" fi +if [[ "${TARGET_PLATFORM:-}" = 'debian,bullseye' ]]; then + echo "${TARGET_PLATFORM} unsupported: Debian LTS ended on 2026-08-31" >&2 + exit 1 +fi + echo "${DOCKERHUB_PASSWORD}" | docker login -u "${DOCKERHUB_USER_NAME}" --password-stdin declare args diff --git a/dockerfiles/debian-bullseye-all/Dockerfile b/dockerfiles/debian-bullseye-all/Dockerfile deleted file mode 100644 index f60f72b4f..000000000 --- a/dockerfiles/debian-bullseye-all/Dockerfile +++ /dev/null @@ -1,140 +0,0 @@ -# vim:set ft=dockerfile: -FROM debian:bullseye -ARG DEBIAN_FRONTEND=noninteractive - -# See https://github.com/tianon/docker-brew-debian/issues/49 for discussion of the following -# -# https://bugs.debian.org/830696 (apt uses gpgv by default in newer releases, rather than gpg) -RUN set -x \ - && apt-get update \ -# Fix ipv6 issue on travis: https://github.com/f-secure-foundry/usbarmory-debian-base_image/issues/9#issuecomment-466594168 - && mkdir ~/.gnupg && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && { \ - which gpg \ -# prefer gnupg2, to match APT's Recommends - || apt-get install -y --no-install-recommends gnupg2 \ - || apt-get install -y --no-install-recommends gnupg \ - ; } \ -# Ubuntu includes "gnupg" (not "gnupg2", but still 2.x), but not dirmngr, and gnupg 2.x requires dirmngr -# so, if we're not running gnupg 1.x, explicitly install dirmngr too - && { \ - gpg --version | grep -q '^gpg (GnuPG) 1\.' \ - || apt-get install -y --no-install-recommends dirmngr \ - ; } \ - && rm -rf /var/lib/apt/lists/* - -RUN set -ex; \ -# pub 4096R/ACCC4CF8 2011-10-13 [expires: 2019-07-02] -# Key fingerprint = B97B 0AFC AA1A 47F0 44F2 44A0 7FCC 7D46 ACCC 4CF8 -# uid PostgreSQL Debian Repository - key='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8'; \ - export GNUPGHOME="$(mktemp -d)"; \ -# Fix ipv6 issue on travis: https://github.com/f-secure-foundry/usbarmory-debian-base_image/issues/9#issuecomment-466594168 - echo "disable-ipv6" >> $GNUPGHOME/dirmngr.conf; \ - gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$key"; \ - gpg --batch --export "$key" > /etc/apt/trusted.gpg.d/postgres.gpg; \ - command -v gpgconf > /dev/null && gpgconf --kill all; \ - rm -rf "$GNUPGHOME"; \ - gpg --batch --no-default-keyring --keyring /etc/apt/trusted.gpg.d/postgres.gpg --list-keys || true - -# add buster backports repo to be able to download missing packages in buster main repo -RUN ( [ debian != debian ] || [ bullseye != buster ] ) || ( \ - echo "deb http://deb.debian.org/debian buster-backports main" >> /etc/apt/sources.list \ - ) - -# install build tools and PostgreSQL development files - -RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main 19' > /etc/apt/sources.list.d/pgdg.list \ - && apt-get update \ - && apt-get install -y --no-install-recommends \ - autotools-dev \ - build-essential \ - ca-certificates \ - curl \ - debhelper \ - devscripts \ - fakeroot \ - flex \ - libbz2-dev \ - libffi-dev \ - libcurl4-openssl-dev \ - libdistro-info-perl \ - libedit-dev \ - libfile-fcntllock-perl \ - libicu-dev \ - libkrb5-dev \ - libpam0g-dev \ - libreadline-dev \ - libselinux1-dev \ - libssl-dev \ - libxslt-dev \ - lintian \ - postgresql-server-dev-all \ - postgresql-server-dev-19 \ - wget \ - zlib1g-dev \ - python3-pip \ - python3-sphinx \ - python3-setuptools \ - liblz4-dev \ - liblz4-1 \ - libzstd1 \ - libzstd-dev \ -# below are needed for cmake and pgazure build - checkinstall \ - git \ - libtemplate-perl \ - pkg-config \ - tar \ - unzip \ - uuid \ - uuid-dev \ - zip \ - sudo \ - && rm -rf /var/lib/apt/lists/* - - -# install jq to process JSON API responses (distro package is arch-independent, -# unlike the amd64-only jq-linux64 release binary, so it works on arm64 too) -RUN apt-get update \ - && apt-get install -y --no-install-recommends jq \ - && rm -rf /var/lib/apt/lists/* - -# install packagecloud repos for pg_auto_failover (amd64 only: the community -# repo has no non-x86_64 packages and its installer aborts on other arches) -RUN [ "$(dpkg --print-architecture)" != "amd64" ] || curl https://install.citusdata.com/community/deb.sh | bash \ - && rm -rf /var/lib/apt/lists/* - - -# install cmake from source -RUN wget https://github.com/Kitware/CMake/releases/download/v3.22.2/cmake-3.22.2.tar.gz && \ - tar -zxvf cmake-3.22.2.tar.gz && \ - cd cmake-3.22.2 && ./bootstrap && \ - make && \ - make install && \ - rm -f cmake-3.22.2.tar.gz && \ - rm -rf cmake-3.22.2 - -# install pyenv and python 3.8 to be able to execute tools scripts -ARG PYTHON_VERSION=3.8.16 -RUN set -ex \ - && curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash \ - && export PATH="$HOME/.pyenv/bin:$PATH" \ - && pyenv update \ - && pyenv install $PYTHON_VERSION \ - && pyenv global $PYTHON_VERSION \ - && pyenv rehash \ - && echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc \ - && echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc \ - && echo 'eval "$(pyenv init -)"' >> ~/.bashrc - - -# Added for pg19 beta package support. -ENV DEB_PG_SUPPORTED_VERSIONS="14 15 16 17 18 19" - -# place scripts on path and declare output volume -ENV PATH /scripts:$PATH -COPY scripts /scripts -VOLUME /packages - -ENTRYPOINT ["/scripts/fetch_and_build_deb"] diff --git a/os-list.csv b/os-list.csv index a12545b05..458941aa5 100644 --- a/os-list.csv +++ b/os-list.csv @@ -1,6 +1,5 @@ almalinux,8 almalinux,9 -debian,bullseye debian,bookworm debian,trixie oraclelinux,8 diff --git a/update_image b/update_image index 950cf736f..f78d3c1f6 100755 --- a/update_image +++ b/update_image @@ -37,6 +37,11 @@ if [[ "${os},${release}" =~ ^ubuntu,(focal|bionic)$ ]]; then exit 1 fi +if [[ "${os},${release}" = 'debian,bullseye' ]]; then + echo "${TARGET_PLATFORM} unsupported: Debian LTS ended on 2026-08-31" >&2 + exit 1 +fi + if [[ "${os}" = 'debian' ]] || [[ "${os}" = 'ubuntu' ]]; then tag="${os}-${release}-all" args+="build --pull --no-cache -t citus/${image_name}:${tag} -f ${dockerfiles_dir}/${tag}/Dockerfile .\n"