From 9d763ff09d8b52a02ea615805a85e49a3e795d96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Gronowski?= Date: Fri, 28 Mar 2025 10:44:01 +0100 Subject: [PATCH 1/2] Jenkinsfile: add Ubuntu 25.04 "Plucky Puffin" (not yet released) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds the upcoming ubuntu release to start testing builds in CI. This release is a non-LTS release, and planned to be release on April 17, 2025; - https://wiki.ubuntu.com/Releases - https://discourse.ubuntu.com/t/plucky-puffin-release-schedule/36461 Signed-off-by: Paweł Gronowski --- .github/workflows/ci.yml | 1 + Jenkinsfile | 1 + deb/Makefile | 2 +- deb/ubuntu-plucky/Dockerfile | 46 ++++++++++++++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 deb/ubuntu-plucky/Dockerfile diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 75c6bd7af9..417faf2b0c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,6 +23,7 @@ jobs: - ubuntu-jammy - ubuntu-noble - ubuntu-oracular + - ubuntu-plucky - fedora-41 - fedora-42 - centos-9 diff --git a/Jenkinsfile b/Jenkinsfile index 6534208029..e3f8736056 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -16,6 +16,7 @@ def pkgs = [ [target: "ubuntu-jammy", image: "ubuntu:jammy", arches: ["amd64", "aarch64", "armhf"]], // Ubuntu 22.04 LTS (End of support: June, 2027. EOL: April, 2032) [target: "ubuntu-noble", image: "ubuntu:noble", arches: ["amd64", "aarch64", "armhf"]], // Ubuntu 24.04 LTS (End of support: June, 2029. EOL: April, 2034) [target: "ubuntu-oracular", image: "ubuntu:oracular", arches: ["amd64", "aarch64", "armhf"]], // Ubuntu 24.10 (EOL: July, 2025) + [target: "ubuntu-plucky", image: "ubuntu:plucky", arches: ["amd64", "aarch64", "armhf"]], // Ubuntu 25.04 (EOL: January, 2026) ] def genBuildStep(LinkedHashMap pkg, String arch) { diff --git a/deb/Makefile b/deb/Makefile index 2a536dc7e7..7f8a00644d 100644 --- a/deb/Makefile +++ b/deb/Makefile @@ -51,7 +51,7 @@ RUN?=docker run --rm \ debbuild-$@/$(ARCH) DEBIAN_VERSIONS ?= debian-bullseye debian-bookworm -UBUNTU_VERSIONS ?= ubuntu-focal ubuntu-jammy ubuntu-noble ubuntu-oracular +UBUNTU_VERSIONS ?= ubuntu-focal ubuntu-jammy ubuntu-noble ubuntu-oracular ubuntu-plucky RASPBIAN_VERSIONS ?= raspbian-bullseye raspbian-bookworm DISTROS := $(DEBIAN_VERSIONS) $(UBUNTU_VERSIONS) $(RASPBIAN_VERSIONS) diff --git a/deb/ubuntu-plucky/Dockerfile b/deb/ubuntu-plucky/Dockerfile new file mode 100644 index 0000000000..ebbfbadd67 --- /dev/null +++ b/deb/ubuntu-plucky/Dockerfile @@ -0,0 +1,46 @@ +# syntax=docker/dockerfile:1 + +ARG GO_IMAGE=golang:latest +ARG DISTRO=ubuntu +ARG SUITE=plucky +ARG VERSION_ID=25.04 +ARG BUILD_IMAGE=${DISTRO}:${SUITE} + +FROM ${GO_IMAGE} AS golang + +FROM ${BUILD_IMAGE} + +# Remove diverted man binary to prevent man-pages being replaced with "minimized" message. See docker/for-linux#639 +RUN if [ "$(dpkg-divert --truename /usr/bin/man)" = "/usr/bin/man.REAL" ]; then \ + rm -f /usr/bin/man; \ + dpkg-divert --quiet --remove --rename /usr/bin/man; \ + fi + +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y curl devscripts equivs git + +ENV GOPROXY=https://proxy.golang.org|direct +ENV GO111MODULE=off +ENV GOPATH=/go +ENV GOTOOLCHAIN=local +ENV PATH=$PATH:/usr/local/go/bin:$GOPATH/bin + +ARG COMMON_FILES +COPY --link ${COMMON_FILES} /root/build-deb/debian +RUN apt-get update \ + && mk-build-deps -t "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y" -i /root/build-deb/debian/control + +COPY --link sources/ /sources +ARG DISTRO +ARG SUITE +ARG VERSION_ID +ENV DISTRO=${DISTRO} +ENV SUITE=${SUITE} +ENV VERSION_ID=${VERSION_ID} + +COPY --link --from=golang /usr/local/go /usr/local/go + +WORKDIR /root/build-deb +COPY build-deb /root/build-deb/build-deb + +ENTRYPOINT ["/root/build-deb/build-deb"] From 9d43237307f19be08611b6d571abfab2ab8f1c00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Gronowski?= Date: Wed, 2 Apr 2025 14:12:39 +0200 Subject: [PATCH 2/2] Replace usage of deprecated apt-key MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Paweł Gronowski --- install-containerd-helpers | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/install-containerd-helpers b/install-containerd-helpers index e38c613990..d40ad7e370 100644 --- a/install-containerd-helpers +++ b/install-containerd-helpers @@ -65,7 +65,9 @@ function install_debian_containerd() { # Make sure ca-certificates are up-to-date update-ca-certificates -f - curl -fsSL "${REPO_URL}/gpg" | apt-key add - + install -m 0755 -d /etc/apt/keyrings + curl -fsSL "${REPO_URL}/gpg" | tee /etc/apt/keyrings/docker.asc + chmod a+r /etc/apt/keyrings/docker.asc if [ "${DIST_VERSION}" = "sid" ]; then echo 'Debian sid ("unstable") cannot be used for packaging: replace with the actual codename' @@ -77,7 +79,7 @@ function install_debian_containerd() { # Once a containerd package becomes stable it will also be available in the test channel, # so this logic works for both cases. # (See also same logic in install_rpm_containerd) - echo "deb [arch=${ARCH}] ${REPO_URL} ${DIST_VERSION} test" > /etc/apt/sources.list.d/docker.list + echo "deb [arch=${ARCH} signed-by=/etc/apt/keyrings/docker.asc] ${REPO_URL} ${DIST_VERSION} test" > /etc/apt/sources.list.d/docker.list apt-get update }