From 8564e27fc7d3eca369d7c7359b63962c83972e96 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Mon, 13 Jul 2026 12:14:40 +0200 Subject: [PATCH 1/4] fix indentation Signed-off-by: Sebastiaan van Stijn --- install.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/install.sh b/install.sh index 765d6f6b..e2b75356 100755 --- a/install.sh +++ b/install.sh @@ -604,9 +604,9 @@ do_install() { exit 1 fi if version_gte "18.09"; then - search_command="apt-cache madison docker-ce-cli | grep '$pkg_pattern' | head -1 | awk '{\$1=\$1};1' | cut -d' ' -f 3" - echo "INFO: $search_command" - cli_pkg_version="=$($sh_c "$search_command")" + search_command="apt-cache madison docker-ce-cli | grep '$pkg_pattern' | head -1 | awk '{\$1=\$1};1' | cut -d' ' -f 3" + echo "INFO: $search_command" + cli_pkg_version="=$($sh_c "$search_command")" fi pkg_version="=$pkg_version" fi @@ -614,17 +614,17 @@ do_install() { ( pkgs="docker-ce${pkg_version%=}" if version_gte "18.09"; then - # older versions didn't ship the cli and containerd as separate packages - pkgs="$pkgs docker-ce-cli${cli_pkg_version%=} containerd.io" + # older versions didn't ship the cli and containerd as separate packages + pkgs="$pkgs docker-ce-cli${cli_pkg_version%=} containerd.io" fi if version_gte "20.10"; then - pkgs="$pkgs docker-compose-plugin docker-ce-rootless-extras$pkg_version" + pkgs="$pkgs docker-compose-plugin docker-ce-rootless-extras$pkg_version" fi if version_gte "23.0"; then - pkgs="$pkgs docker-buildx-plugin" + pkgs="$pkgs docker-buildx-plugin" fi if version_gte "28.2"; then - pkgs="$pkgs docker-model-plugin" + pkgs="$pkgs docker-model-plugin" fi if ! is_dry_run; then set -x From 032958bf84cfe4c7650c4866a5f0b4b1767a43f8 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Mon, 13 Jul 2026 12:25:53 +0200 Subject: [PATCH 2/4] always declare cli_pkg_version No real impact, but `$cli_pkg_version` was used unconditionally, but was set conditionally. Signed-off-by: Sebastiaan van Stijn --- install.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install.sh b/install.sh index e2b75356..eb71e46a 100755 --- a/install.sh +++ b/install.sh @@ -587,6 +587,7 @@ do_install() { fi pkg_version="" + cli_pkg_version="" if [ -n "$VERSION" ]; then if is_dry_run; then echo "# WARNING: VERSION pinning is not supported in DRY_RUN" @@ -680,6 +681,7 @@ do_install() { fi pkg_version="" + cli_pkg_version="" if command_exists dnf; then pkg_manager="dnf" pkg_manager_flags="-y -q --best" From 59f81eb7e46e82317e6d76df0eab3c51c5507bd9 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Mon, 13 Jul 2026 12:28:55 +0200 Subject: [PATCH 3/4] move vars closer to where used Signed-off-by: Sebastiaan van Stijn --- install.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index eb71e46a..d8e05f4e 100755 --- a/install.sh +++ b/install.sh @@ -595,21 +595,22 @@ do_install() { # Will work for incomplete versions IE (17.12), but may not actually grab the "latest" if in the test channel pkg_pattern="$(echo "$VERSION" | sed 's/-ce-/~ce~.*/g' | sed 's/-/.*/g')" search_command="apt-cache madison docker-ce | grep '$pkg_pattern' | head -1 | awk '{\$1=\$1};1' | cut -d' ' -f 3" - pkg_version="$($sh_c "$search_command")" echo "INFO: Searching repository for VERSION '$VERSION'" echo "INFO: $search_command" + pkg_version="$($sh_c "$search_command")" if [ -z "$pkg_version" ]; then echo echo "ERROR: '$VERSION' not found amongst apt-cache madison results" echo exit 1 fi + pkg_version="=$pkg_version" + if version_gte "18.09"; then search_command="apt-cache madison docker-ce-cli | grep '$pkg_pattern' | head -1 | awk '{\$1=\$1};1' | cut -d' ' -f 3" echo "INFO: $search_command" cli_pkg_version="=$($sh_c "$search_command")" fi - pkg_version="=$pkg_version" fi fi ( @@ -700,22 +701,23 @@ do_install() { fi pkg_pattern="$(echo "$VERSION" | sed 's/-ce-/\\\\.ce.*/g' | sed 's/-/.*/g').*$pkg_suffix" search_command="$pkg_manager list --showduplicates docker-ce | grep '$pkg_pattern' | tail -1 | awk '{print \$2}'" - pkg_version="$($sh_c "$search_command")" echo "INFO: Searching repository for VERSION '$VERSION'" echo "INFO: $search_command" + pkg_version="$($sh_c "$search_command")" if [ -z "$pkg_version" ]; then echo echo "ERROR: '$VERSION' not found amongst $pkg_manager list results" echo exit 1 fi + # Cut out the epoch and prefix with a '-' + pkg_version="-$(echo "$pkg_version" | cut -d':' -f 2)" + if version_gte "18.09"; then # older versions don't support a cli package search_command="$pkg_manager list --showduplicates docker-ce-cli | grep '$pkg_pattern' | tail -1 | awk '{print \$2}'" cli_pkg_version="$($sh_c "$search_command" | cut -d':' -f 2)" fi - # Cut out the epoch and prefix with a '-' - pkg_version="-$(echo "$pkg_version" | cut -d':' -f 2)" fi fi ( From ae0db934a1291ae77106930a4658bfca72475feb Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Mon, 13 Jul 2026 12:30:59 +0200 Subject: [PATCH 4/4] prevent bare "=" as version Make sure both pkg_version and cli_pkg_version are only set on success to prevent them containing a bare "=", which we were stripping later on. Signed-off-by: Sebastiaan van Stijn --- install.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index d8e05f4e..be1ada45 100755 --- a/install.sh +++ b/install.sh @@ -609,15 +609,18 @@ do_install() { if version_gte "18.09"; then search_command="apt-cache madison docker-ce-cli | grep '$pkg_pattern' | head -1 | awk '{\$1=\$1};1' | cut -d' ' -f 3" echo "INFO: $search_command" - cli_pkg_version="=$($sh_c "$search_command")" + cli_pkg_version="$($sh_c "$search_command")" + if [ -n "$cli_pkg_version" ]; then + cli_pkg_version="=$cli_pkg_version" + fi fi fi fi ( - pkgs="docker-ce${pkg_version%=}" + pkgs="docker-ce${pkg_version}" if version_gte "18.09"; then # older versions didn't ship the cli and containerd as separate packages - pkgs="$pkgs docker-ce-cli${cli_pkg_version%=} containerd.io" + pkgs="$pkgs docker-ce-cli${cli_pkg_version} containerd.io" fi if version_gte "20.10"; then pkgs="$pkgs docker-compose-plugin docker-ce-rootless-extras$pkg_version"