From e5748cae4443ed5f14b4bd18678102f15edd1927 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Gronowski?= Date: Fri, 1 May 2026 10:42:39 +0200 Subject: [PATCH 1/2] rootless-install: use docker-29.4.2-2.tgz for version 29.4.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The static binary tarball for Docker 29.4.2 was re-released with a "-2" suffix. Add a static_release_version() helper that maps version numbers to their actual tarball name, so that 29.4.2 resolves to docker-29.4.2-2.tgz instead of docker-29.4.2.tgz. Signed-off-by: Paweł Gronowski --- rootless-install.sh | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/rootless-install.sh b/rootless-install.sh index 5d8728c3..64b92582 100755 --- a/rootless-install.sh +++ b/rootless-install.sh @@ -36,16 +36,32 @@ fi STATIC_RELEASE_URL= STATIC_RELEASE_ROOTLESS_URL= + +# static_release_url returns the download URL for a given package and version. +# Some releases use a different tarball name than the version number (e.g. a +# re-release with a suffix), which is handled here. +# Usage: static_release_url +static_release_url() { + case "$2" in + 29.4.2) + echo "https://download.docker.com/linux/static/$CHANNEL/$(uname -m)/$1-29.4.2-2.tgz" + ;; + *) + echo "https://download.docker.com/linux/static/$CHANNEL/$(uname -m)/$1-$2.tgz" + ;; + esac +} + case "$CHANNEL" in "stable") echo "# Installing stable version ${STABLE_LATEST}" - STATIC_RELEASE_URL="https://download.docker.com/linux/static/$CHANNEL/$(uname -m)/docker-${STABLE_LATEST}.tgz" - STATIC_RELEASE_ROOTLESS_URL="https://download.docker.com/linux/static/$CHANNEL/$(uname -m)/docker-rootless-extras-${STABLE_LATEST}.tgz" + STATIC_RELEASE_URL=$(static_release_url docker "$STABLE_LATEST") + STATIC_RELEASE_ROOTLESS_URL=$(static_release_url docker-rootless-extras "$STABLE_LATEST") ;; "test") echo "# Installing test version ${TEST_LATEST}" - STATIC_RELEASE_URL="https://download.docker.com/linux/static/$CHANNEL/$(uname -m)/docker-${TEST_LATEST}.tgz" - STATIC_RELEASE_ROOTLESS_URL="https://download.docker.com/linux/static/$CHANNEL/$(uname -m)/docker-rootless-extras-${TEST_LATEST}.tgz" + STATIC_RELEASE_URL=$(static_release_url docker "$TEST_LATEST") + STATIC_RELEASE_ROOTLESS_URL=$(static_release_url docker-rootless-extras "$TEST_LATEST") ;; *) >&2 echo "Aborting because of unknown CHANNEL \"$CHANNEL\". Set \$CHANNEL to either \"stable\" or \"test\"." From e020ecbc6c9b4517bac3dfa32b0df959462162e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Gronowski?= Date: Fri, 1 May 2026 10:49:44 +0200 Subject: [PATCH 2/2] ci: add test cases for version 29.4.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add 29.4.2 to the package install test matrix so it is verified across all tested distributions. Expand test-install-rootless to run both channels (test and stable). The stable entry pins STABLE_LATEST=29.4.2 so the static binary URL workaround (docker-29.4.2-2.tgz) is exercised during CI. Signed-off-by: Paweł Gronowski --- .github/workflows/ci.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8afa816e..6ae499a0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,6 +14,7 @@ jobs: - quay.io/centos/centos:stream9 version: - "27.5" + - "29.4.2" - "" steps: @@ -31,6 +32,14 @@ jobs: test-install-rootless: runs-on: ubuntu-latest timeout-minutes: 5 + strategy: + matrix: + channel: + - test + - stable + include: + - channel: stable + stable_latest: "29.4.2" steps: - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 - name: Install rootless @@ -38,6 +47,6 @@ jobs: GH_TOKEN: ${{ github.token }} run: | sudo sh -c 'echo 0 > /proc/sys/kernel/apparmor_restrict_unprivileged_userns' - make build/test/rootless-install.sh - FORCE_ROOTLESS_INSTALL=1 ./build/test/rootless-install.sh - + make build/${{ matrix.channel }}/rootless-install.sh \ + ${{ matrix.stable_latest && format('STABLE_LATEST={0}', matrix.stable_latest) || '' }} + FORCE_ROOTLESS_INSTALL=1 ./build/${{ matrix.channel }}/rootless-install.sh