From 4d77aed77b371f8bbc0281e04d2b7f93bc8d9e94 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Sun, 30 Mar 2025 16:16:56 +0900 Subject: [PATCH 01/13] Install binaries under `$SWIFT_PREFIX/usr/bin` instead of `/usr/bin` This prevents some binaries from being unintentionally overwritten by the system package manager. Symbolic links are also placed in the old directory (`/usr/bin`) for compatibility. --- 6.0/amazonlinux/2/Dockerfile | 14 +++++++++++--- 6.0/debian/12/Dockerfile | 14 +++++++++++--- 6.0/fedora/39/Dockerfile | 14 +++++++++++--- 6.0/rhel-ubi/9/Dockerfile | 14 +++++++++++--- 6.0/ubuntu/20.04/Dockerfile | 14 +++++++++++--- 6.0/ubuntu/22.04/Dockerfile | 14 +++++++++++--- 6.0/ubuntu/24.04/Dockerfile | 14 +++++++++++--- nightly-6.1/amazonlinux/2/Dockerfile | 15 ++++++++++++--- nightly-6.1/amazonlinux/2/buildx/Dockerfile | 13 +++++++++++-- nightly-6.1/rhel-ubi/9/Dockerfile | 15 ++++++++++++--- nightly-6.1/rhel-ubi/9/buildx/Dockerfile | 13 +++++++++++-- nightly-6.1/ubuntu/20.04/Dockerfile | 15 ++++++++++++--- nightly-6.1/ubuntu/20.04/buildx/Dockerfile | 13 +++++++++++-- nightly-6.1/ubuntu/22.04/Dockerfile | 15 ++++++++++++--- nightly-6.1/ubuntu/22.04/buildx/Dockerfile | 13 +++++++++++-- nightly-6.1/ubuntu/24.04/Dockerfile | 15 ++++++++++++--- nightly-6.1/ubuntu/24.04/buildx/Dockerfile | 13 +++++++++++-- nightly-main/amazonlinux/2/Dockerfile | 15 ++++++++++++--- nightly-main/amazonlinux/2/buildx/Dockerfile | 13 +++++++++++-- nightly-main/rhel-ubi/9/Dockerfile | 15 ++++++++++++--- nightly-main/rhel-ubi/9/buildx/Dockerfile | 13 +++++++++++-- nightly-main/ubuntu/20.04/Dockerfile | 15 ++++++++++++--- nightly-main/ubuntu/20.04/buildx/Dockerfile | 13 +++++++++++-- nightly-main/ubuntu/22.04/Dockerfile | 15 ++++++++++++--- nightly-main/ubuntu/22.04/buildx/Dockerfile | 13 +++++++++++-- nightly-main/ubuntu/24.04/Dockerfile | 15 ++++++++++++--- nightly-main/ubuntu/24.04/buildx/Dockerfile | 13 +++++++++++-- 27 files changed, 307 insertions(+), 71 deletions(-) diff --git a/6.0/amazonlinux/2/Dockerfile b/6.0/amazonlinux/2/Dockerfile index c0db3b109..9ddd5da9b 100644 --- a/6.0/amazonlinux/2/Dockerfile +++ b/6.0/amazonlinux/2/Dockerfile @@ -32,12 +32,14 @@ ARG SWIFT_PLATFORM=amazonlinux2 ARG SWIFT_BRANCH=swift-6.0.3-release ARG SWIFT_VERSION=swift-6.0.3-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.0.3 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -61,9 +63,15 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.0/debian/12/Dockerfile b/6.0/debian/12/Dockerfile index 794037c1a..d676a7bb9 100644 --- a/6.0/debian/12/Dockerfile +++ b/6.0/debian/12/Dockerfile @@ -31,12 +31,14 @@ ARG SWIFT_PLATFORM=debian12 ARG SWIFT_BRANCH=swift-6.0.3-release ARG SWIFT_VERSION=swift-6.0.3-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.0.3 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(dpkg --print-architecture)"; \ @@ -62,10 +64,16 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \ && apt-get purge --auto-remove -y curl gpg +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.0/fedora/39/Dockerfile b/6.0/fedora/39/Dockerfile index 5006ea5bc..6af8c5dfd 100644 --- a/6.0/fedora/39/Dockerfile +++ b/6.0/fedora/39/Dockerfile @@ -28,12 +28,14 @@ ARG SWIFT_PLATFORM=fedora39 ARG SWIFT_BRANCH=swift-6.0.3-release ARG SWIFT_VERSION=swift-6.0.3-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.0.3 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -57,9 +59,15 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.0/rhel-ubi/9/Dockerfile b/6.0/rhel-ubi/9/Dockerfile index cb2ba5587..b672f9f8b 100644 --- a/6.0/rhel-ubi/9/Dockerfile +++ b/6.0/rhel-ubi/9/Dockerfile @@ -26,12 +26,14 @@ ARG SWIFT_PLATFORM=ubi9 ARG SWIFT_BRANCH=swift-6.0.3-release ARG SWIFT_VERSION=swift-6.0.3-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.0.3 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -55,9 +57,15 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.0/ubuntu/20.04/Dockerfile b/6.0/ubuntu/20.04/Dockerfile index 978907a69..508a6d085 100644 --- a/6.0/ubuntu/20.04/Dockerfile +++ b/6.0/ubuntu/20.04/Dockerfile @@ -32,12 +32,14 @@ ARG SWIFT_PLATFORM=ubuntu20.04 ARG SWIFT_BRANCH=swift-6.0.3-release ARG SWIFT_VERSION=swift-6.0.3-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.0.3 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(dpkg --print-architecture)"; \ @@ -63,10 +65,16 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.0/ubuntu/22.04/Dockerfile b/6.0/ubuntu/22.04/Dockerfile index 6f246953f..c48949ed3 100644 --- a/6.0/ubuntu/22.04/Dockerfile +++ b/6.0/ubuntu/22.04/Dockerfile @@ -33,12 +33,14 @@ ARG SWIFT_PLATFORM=ubuntu22.04 ARG SWIFT_BRANCH=swift-6.0.3-release ARG SWIFT_VERSION=swift-6.0.3-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.0.3 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(dpkg --print-architecture)"; \ @@ -64,10 +66,16 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.0/ubuntu/24.04/Dockerfile b/6.0/ubuntu/24.04/Dockerfile index 487f46aa5..7468f4df2 100644 --- a/6.0/ubuntu/24.04/Dockerfile +++ b/6.0/ubuntu/24.04/Dockerfile @@ -33,12 +33,14 @@ ARG SWIFT_PLATFORM=ubuntu24.04 ARG SWIFT_BRANCH=swift-6.0.3-release ARG SWIFT_VERSION=swift-6.0.3-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.0.3 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(dpkg --print-architecture)"; \ @@ -64,10 +66,16 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.1/amazonlinux/2/Dockerfile b/nightly-6.1/amazonlinux/2/Dockerfile index 7e12833a2..962299f8d 100644 --- a/nightly-6.1/amazonlinux/2/Dockerfile +++ b/nightly-6.1/amazonlinux/2/Dockerfile @@ -33,13 +33,16 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=amazonlinux ARG OS_MAJOR_VER=2 +ARG SWIFT_VERSION=6.1 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.1-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -56,10 +59,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.1/amazonlinux/2/buildx/Dockerfile b/nightly-6.1/amazonlinux/2/buildx/Dockerfile index 5aa8ff074..a0e8f335b 100644 --- a/nightly-6.1/amazonlinux/2/buildx/Dockerfile +++ b/nightly-6.1/amazonlinux/2/buildx/Dockerfile @@ -32,7 +32,9 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=amazonlinux ARG OS_MAJOR_VER=2 +ARG SWIFT_VERSION=6.1 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.1-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -46,6 +48,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -62,10 +65,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.1/rhel-ubi/9/Dockerfile b/nightly-6.1/rhel-ubi/9/Dockerfile index 85889f166..bbf0daf58 100644 --- a/nightly-6.1/rhel-ubi/9/Dockerfile +++ b/nightly-6.1/rhel-ubi/9/Dockerfile @@ -26,13 +26,16 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=9 +ARG SWIFT_VERSION=6.1 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.1-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -49,10 +52,16 @@ RUN set -e; \ && curl -fL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.1/rhel-ubi/9/buildx/Dockerfile b/nightly-6.1/rhel-ubi/9/buildx/Dockerfile index b8d9df30a..613230c3d 100644 --- a/nightly-6.1/rhel-ubi/9/buildx/Dockerfile +++ b/nightly-6.1/rhel-ubi/9/buildx/Dockerfile @@ -25,7 +25,9 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=9 +ARG SWIFT_VERSION=6.1 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.1-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -39,6 +41,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -55,10 +58,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.1/ubuntu/20.04/Dockerfile b/nightly-6.1/ubuntu/20.04/Dockerfile index c597ff17a..e82ac2ecb 100644 --- a/nightly-6.1/ubuntu/20.04/Dockerfile +++ b/nightly-6.1/ubuntu/20.04/Dockerfile @@ -32,14 +32,17 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=20 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.1 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.1-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -59,11 +62,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.1/ubuntu/20.04/buildx/Dockerfile b/nightly-6.1/ubuntu/20.04/buildx/Dockerfile index 9ec56662e..939058a0d 100644 --- a/nightly-6.1/ubuntu/20.04/buildx/Dockerfile +++ b/nightly-6.1/ubuntu/20.04/buildx/Dockerfile @@ -32,7 +32,9 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=20 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.1 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.1-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -46,6 +48,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -65,11 +68,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.1/ubuntu/22.04/Dockerfile b/nightly-6.1/ubuntu/22.04/Dockerfile index f08c736e6..ac4b1b403 100644 --- a/nightly-6.1/ubuntu/22.04/Dockerfile +++ b/nightly-6.1/ubuntu/22.04/Dockerfile @@ -32,14 +32,17 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=22 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.1 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.1-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -59,11 +62,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.1/ubuntu/22.04/buildx/Dockerfile b/nightly-6.1/ubuntu/22.04/buildx/Dockerfile index a32051448..8d013cc9e 100644 --- a/nightly-6.1/ubuntu/22.04/buildx/Dockerfile +++ b/nightly-6.1/ubuntu/22.04/buildx/Dockerfile @@ -32,7 +32,9 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=22 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.1 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.1-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -46,6 +48,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -65,11 +68,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.1/ubuntu/24.04/Dockerfile b/nightly-6.1/ubuntu/24.04/Dockerfile index c81cfa187..f320b90eb 100644 --- a/nightly-6.1/ubuntu/24.04/Dockerfile +++ b/nightly-6.1/ubuntu/24.04/Dockerfile @@ -33,14 +33,17 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=24 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.1 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.1-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -56,11 +59,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.1/ubuntu/24.04/buildx/Dockerfile b/nightly-6.1/ubuntu/24.04/buildx/Dockerfile index f874ef90e..4f252fdb7 100644 --- a/nightly-6.1/ubuntu/24.04/buildx/Dockerfile +++ b/nightly-6.1/ubuntu/24.04/buildx/Dockerfile @@ -33,7 +33,9 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=24 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.1 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.1-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -47,6 +49,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -62,11 +65,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/amazonlinux/2/Dockerfile b/nightly-main/amazonlinux/2/Dockerfile index 5d90bfee9..5cd669e2c 100644 --- a/nightly-main/amazonlinux/2/Dockerfile +++ b/nightly-main/amazonlinux/2/Dockerfile @@ -32,13 +32,16 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=amazonlinux ARG OS_MAJOR_VER=2 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -55,10 +58,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/amazonlinux/2/buildx/Dockerfile b/nightly-main/amazonlinux/2/buildx/Dockerfile index 3e560b448..370dd46fc 100644 --- a/nightly-main/amazonlinux/2/buildx/Dockerfile +++ b/nightly-main/amazonlinux/2/buildx/Dockerfile @@ -32,7 +32,9 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=amazonlinux ARG OS_MAJOR_VER=2 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -46,6 +48,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -62,10 +65,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/rhel-ubi/9/Dockerfile b/nightly-main/rhel-ubi/9/Dockerfile index 200d741ac..b86f828ea 100644 --- a/nightly-main/rhel-ubi/9/Dockerfile +++ b/nightly-main/rhel-ubi/9/Dockerfile @@ -26,13 +26,16 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=9 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -49,10 +52,16 @@ RUN set -e; \ && curl -fL https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/rhel-ubi/9/buildx/Dockerfile b/nightly-main/rhel-ubi/9/buildx/Dockerfile index 35286366d..6591eb53d 100644 --- a/nightly-main/rhel-ubi/9/buildx/Dockerfile +++ b/nightly-main/rhel-ubi/9/buildx/Dockerfile @@ -25,7 +25,9 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=9 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -39,6 +41,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -55,10 +58,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/ubuntu/20.04/Dockerfile b/nightly-main/ubuntu/20.04/Dockerfile index 47638c5b1..b39c38255 100644 --- a/nightly-main/ubuntu/20.04/Dockerfile +++ b/nightly-main/ubuntu/20.04/Dockerfile @@ -32,14 +32,17 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=20 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -59,11 +62,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/ubuntu/20.04/buildx/Dockerfile b/nightly-main/ubuntu/20.04/buildx/Dockerfile index 53dada94e..c0126cc94 100644 --- a/nightly-main/ubuntu/20.04/buildx/Dockerfile +++ b/nightly-main/ubuntu/20.04/buildx/Dockerfile @@ -33,7 +33,9 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=20 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -47,6 +49,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -66,11 +69,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/ubuntu/22.04/Dockerfile b/nightly-main/ubuntu/22.04/Dockerfile index baec13c54..e643cc707 100644 --- a/nightly-main/ubuntu/22.04/Dockerfile +++ b/nightly-main/ubuntu/22.04/Dockerfile @@ -32,14 +32,17 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=22 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -59,11 +62,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/ubuntu/22.04/buildx/Dockerfile b/nightly-main/ubuntu/22.04/buildx/Dockerfile index 21b50e10f..76f185a0f 100644 --- a/nightly-main/ubuntu/22.04/buildx/Dockerfile +++ b/nightly-main/ubuntu/22.04/buildx/Dockerfile @@ -32,7 +32,9 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=22 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -46,6 +48,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -65,11 +68,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/ubuntu/24.04/Dockerfile b/nightly-main/ubuntu/24.04/Dockerfile index c1453d9cc..0ccd9ea75 100644 --- a/nightly-main/ubuntu/24.04/Dockerfile +++ b/nightly-main/ubuntu/24.04/Dockerfile @@ -35,14 +35,17 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=24 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -58,11 +61,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/ubuntu/24.04/buildx/Dockerfile b/nightly-main/ubuntu/24.04/buildx/Dockerfile index 630dd19a3..eb01d7dc4 100644 --- a/nightly-main/ubuntu/24.04/buildx/Dockerfile +++ b/nightly-main/ubuntu/24.04/buildx/Dockerfile @@ -33,7 +33,9 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=24 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -47,6 +49,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -62,11 +65,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version From ff4f22e2244ce39b699ba4362dcaa8a6b8235b28 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Tue, 1 Apr 2025 23:18:11 +0900 Subject: [PATCH 02/13] [6.1] Install binaries under `$SWIFT_PREFIX/usr/bin` instead of `/usr/bin` This prevents some binaries from being unintentionally overwritten by the system package manager. Symbolic links are also placed in the old directory (`/usr/bin`) for compatibility. --- 6.1/amazonlinux/2/Dockerfile | 14 +++++++++++--- 6.1/debian/12/Dockerfile | 14 +++++++++++--- 6.1/fedora/39/Dockerfile | 14 +++++++++++--- 6.1/rhel-ubi/9/Dockerfile | 14 +++++++++++--- 6.1/ubuntu/20.04/Dockerfile | 14 +++++++++++--- 6.1/ubuntu/22.04/Dockerfile | 14 +++++++++++--- 6.1/ubuntu/24.04/Dockerfile | 14 +++++++++++--- 7 files changed, 77 insertions(+), 21 deletions(-) diff --git a/6.1/amazonlinux/2/Dockerfile b/6.1/amazonlinux/2/Dockerfile index 9cc35251c..50fba7e23 100644 --- a/6.1/amazonlinux/2/Dockerfile +++ b/6.1/amazonlinux/2/Dockerfile @@ -32,12 +32,14 @@ ARG SWIFT_PLATFORM=amazonlinux2 ARG SWIFT_BRANCH=swift-6.1.3-release ARG SWIFT_VERSION=swift-6.1.3-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.1 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -61,9 +63,15 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.1/debian/12/Dockerfile b/6.1/debian/12/Dockerfile index 8044d40c8..479b6e35d 100644 --- a/6.1/debian/12/Dockerfile +++ b/6.1/debian/12/Dockerfile @@ -31,12 +31,14 @@ ARG SWIFT_PLATFORM=debian12 ARG SWIFT_BRANCH=swift-6.1.3-release ARG SWIFT_VERSION=swift-6.1.3-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.1 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(dpkg --print-architecture)"; \ @@ -62,10 +64,16 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \ && apt-get purge --auto-remove -y curl gpg +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.1/fedora/39/Dockerfile b/6.1/fedora/39/Dockerfile index 4d90bb433..28ae1df20 100644 --- a/6.1/fedora/39/Dockerfile +++ b/6.1/fedora/39/Dockerfile @@ -28,12 +28,14 @@ ARG SWIFT_PLATFORM=fedora39 ARG SWIFT_BRANCH=swift-6.1.3-release ARG SWIFT_VERSION=swift-6.1.3-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.1 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -57,9 +59,15 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.1/rhel-ubi/9/Dockerfile b/6.1/rhel-ubi/9/Dockerfile index 12fa0a20f..f88eb39ba 100644 --- a/6.1/rhel-ubi/9/Dockerfile +++ b/6.1/rhel-ubi/9/Dockerfile @@ -26,12 +26,14 @@ ARG SWIFT_PLATFORM=ubi9 ARG SWIFT_BRANCH=swift-6.1.3-release ARG SWIFT_VERSION=swift-6.1.3-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.1 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -55,9 +57,15 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.1/ubuntu/20.04/Dockerfile b/6.1/ubuntu/20.04/Dockerfile index 3e6d00167..ee60f6d5e 100644 --- a/6.1/ubuntu/20.04/Dockerfile +++ b/6.1/ubuntu/20.04/Dockerfile @@ -32,12 +32,14 @@ ARG SWIFT_PLATFORM=ubuntu20.04 ARG SWIFT_BRANCH=swift-6.1.3-release ARG SWIFT_VERSION=swift-6.1.3-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.1 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(dpkg --print-architecture)"; \ @@ -63,10 +65,16 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.1/ubuntu/22.04/Dockerfile b/6.1/ubuntu/22.04/Dockerfile index b07e3a57d..12f5f62c9 100644 --- a/6.1/ubuntu/22.04/Dockerfile +++ b/6.1/ubuntu/22.04/Dockerfile @@ -33,12 +33,14 @@ ARG SWIFT_PLATFORM=ubuntu22.04 ARG SWIFT_BRANCH=swift-6.1.3-release ARG SWIFT_VERSION=swift-6.1.3-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.1 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(dpkg --print-architecture)"; \ @@ -64,10 +66,16 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.1/ubuntu/24.04/Dockerfile b/6.1/ubuntu/24.04/Dockerfile index 37ba8218f..38de438aa 100644 --- a/6.1/ubuntu/24.04/Dockerfile +++ b/6.1/ubuntu/24.04/Dockerfile @@ -33,12 +33,14 @@ ARG SWIFT_PLATFORM=ubuntu24.04 ARG SWIFT_BRANCH=swift-6.1.3-release ARG SWIFT_VERSION=swift-6.1.3-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.1 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(dpkg --print-architecture)"; \ @@ -64,10 +66,16 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version From 2f5030da38305674561783dff58e109ad1f0ed97 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Wed, 16 Jul 2025 02:50:07 +0900 Subject: [PATCH 03/13] [nightly-6.2] Install binaries under `$SWIFT_PREFIX/usr/bin` instead of `/usr/bin` This prevents some binaries from being unintentionally overwritten by the system package manager. Symbolic links are also placed in the old directory (`/usr/bin`) for compatibility. --- nightly-6.2/amazonlinux/2/Dockerfile | 15 ++++++++++++--- nightly-6.2/amazonlinux/2/buildx/Dockerfile | 13 +++++++++++-- nightly-6.2/rhel-ubi/9/Dockerfile | 15 ++++++++++++--- nightly-6.2/rhel-ubi/9/buildx/Dockerfile | 13 +++++++++++-- nightly-6.2/ubuntu/20.04/Dockerfile | 15 ++++++++++++--- nightly-6.2/ubuntu/20.04/buildx/Dockerfile | 13 +++++++++++-- nightly-6.2/ubuntu/22.04/Dockerfile | 15 ++++++++++++--- nightly-6.2/ubuntu/22.04/buildx/Dockerfile | 13 +++++++++++-- nightly-6.2/ubuntu/24.04/Dockerfile | 15 ++++++++++++--- nightly-6.2/ubuntu/24.04/buildx/Dockerfile | 13 +++++++++++-- 10 files changed, 115 insertions(+), 25 deletions(-) diff --git a/nightly-6.2/amazonlinux/2/Dockerfile b/nightly-6.2/amazonlinux/2/Dockerfile index 6f7da03f4..021b0939b 100644 --- a/nightly-6.2/amazonlinux/2/Dockerfile +++ b/nightly-6.2/amazonlinux/2/Dockerfile @@ -33,13 +33,16 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=amazonlinux ARG OS_MAJOR_VER=2 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.2-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -56,10 +59,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.2/amazonlinux/2/buildx/Dockerfile b/nightly-6.2/amazonlinux/2/buildx/Dockerfile index 6be7d1842..6f9e4306e 100644 --- a/nightly-6.2/amazonlinux/2/buildx/Dockerfile +++ b/nightly-6.2/amazonlinux/2/buildx/Dockerfile @@ -32,7 +32,9 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=amazonlinux ARG OS_MAJOR_VER=2 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.2-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -46,6 +48,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -62,10 +65,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.2/rhel-ubi/9/Dockerfile b/nightly-6.2/rhel-ubi/9/Dockerfile index 7d8ce2e08..adf23cc8e 100644 --- a/nightly-6.2/rhel-ubi/9/Dockerfile +++ b/nightly-6.2/rhel-ubi/9/Dockerfile @@ -26,13 +26,16 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=9 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.2-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -49,10 +52,16 @@ RUN set -e; \ && curl -fL https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.2/rhel-ubi/9/buildx/Dockerfile b/nightly-6.2/rhel-ubi/9/buildx/Dockerfile index e3d3047a0..8b7b4b07e 100644 --- a/nightly-6.2/rhel-ubi/9/buildx/Dockerfile +++ b/nightly-6.2/rhel-ubi/9/buildx/Dockerfile @@ -25,7 +25,9 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=9 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.2-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -39,6 +41,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -55,10 +58,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.2/ubuntu/20.04/Dockerfile b/nightly-6.2/ubuntu/20.04/Dockerfile index 32da0cea3..05525f549 100644 --- a/nightly-6.2/ubuntu/20.04/Dockerfile +++ b/nightly-6.2/ubuntu/20.04/Dockerfile @@ -32,14 +32,17 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=20 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.2-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -59,11 +62,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.2/ubuntu/20.04/buildx/Dockerfile b/nightly-6.2/ubuntu/20.04/buildx/Dockerfile index 6ad4dd5bf..0231fa577 100644 --- a/nightly-6.2/ubuntu/20.04/buildx/Dockerfile +++ b/nightly-6.2/ubuntu/20.04/buildx/Dockerfile @@ -33,7 +33,9 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=20 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.2-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -47,6 +49,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -66,11 +69,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.2/ubuntu/22.04/Dockerfile b/nightly-6.2/ubuntu/22.04/Dockerfile index 0ccec6dc9..56986ad05 100644 --- a/nightly-6.2/ubuntu/22.04/Dockerfile +++ b/nightly-6.2/ubuntu/22.04/Dockerfile @@ -32,14 +32,17 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=22 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.2-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -59,11 +62,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.2/ubuntu/22.04/buildx/Dockerfile b/nightly-6.2/ubuntu/22.04/buildx/Dockerfile index a30b5e213..200544df9 100644 --- a/nightly-6.2/ubuntu/22.04/buildx/Dockerfile +++ b/nightly-6.2/ubuntu/22.04/buildx/Dockerfile @@ -32,7 +32,9 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=22 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.2-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -46,6 +48,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -65,11 +68,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.2/ubuntu/24.04/Dockerfile b/nightly-6.2/ubuntu/24.04/Dockerfile index 2d82d6416..32782cdd9 100644 --- a/nightly-6.2/ubuntu/24.04/Dockerfile +++ b/nightly-6.2/ubuntu/24.04/Dockerfile @@ -33,14 +33,17 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=24 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.2-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -56,11 +59,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.2/ubuntu/24.04/buildx/Dockerfile b/nightly-6.2/ubuntu/24.04/buildx/Dockerfile index 97c65fecb..69f215f0b 100644 --- a/nightly-6.2/ubuntu/24.04/buildx/Dockerfile +++ b/nightly-6.2/ubuntu/24.04/buildx/Dockerfile @@ -33,7 +33,9 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=24 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.2 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.2-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -47,6 +49,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -62,11 +65,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version From b3f837860375d479671cbd2c8ee9de5759d29b00 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Mon, 15 Dec 2025 02:35:41 +0900 Subject: [PATCH 04/13] [6.2] Install binaries under `$SWIFT_PREFIX/usr/bin` instead of `/usr/bin` This prevents some binaries from being unintentionally overwritten by the system package manager. Symbolic links are also placed in the old directory (`/usr/bin`) for compatibility. --- 6.2/amazonlinux/2/Dockerfile | 14 +++++++++++--- 6.2/debian/12/Dockerfile | 14 +++++++++++--- 6.2/fedora/39/Dockerfile | 14 +++++++++++--- 6.2/rhel-ubi/9/Dockerfile | 14 +++++++++++--- 6.2/ubuntu/22.04/Dockerfile | 14 +++++++++++--- 6.2/ubuntu/24.04/Dockerfile | 14 +++++++++++--- 6 files changed, 66 insertions(+), 18 deletions(-) diff --git a/6.2/amazonlinux/2/Dockerfile b/6.2/amazonlinux/2/Dockerfile index ba0e6f116..8f7f53135 100644 --- a/6.2/amazonlinux/2/Dockerfile +++ b/6.2/amazonlinux/2/Dockerfile @@ -32,12 +32,14 @@ ARG SWIFT_PLATFORM=amazonlinux2 ARG SWIFT_BRANCH=swift-6.2.4-release ARG SWIFT_VERSION=swift-6.2.4-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.2 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -61,9 +63,15 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.2/debian/12/Dockerfile b/6.2/debian/12/Dockerfile index ff0aeb6c4..3c6612d90 100644 --- a/6.2/debian/12/Dockerfile +++ b/6.2/debian/12/Dockerfile @@ -31,12 +31,14 @@ ARG SWIFT_PLATFORM=debian12 ARG SWIFT_BRANCH=swift-6.2.4-release ARG SWIFT_VERSION=swift-6.2.4-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.2 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(dpkg --print-architecture)"; \ @@ -62,10 +64,16 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \ && apt-get purge --auto-remove -y curl gpg +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.2/fedora/39/Dockerfile b/6.2/fedora/39/Dockerfile index 390b5b7ef..eb92b72fe 100644 --- a/6.2/fedora/39/Dockerfile +++ b/6.2/fedora/39/Dockerfile @@ -28,12 +28,14 @@ ARG SWIFT_PLATFORM=fedora39 ARG SWIFT_BRANCH=swift-6.2.4-release ARG SWIFT_VERSION=swift-6.2.4-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.2 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -57,9 +59,15 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.2/rhel-ubi/9/Dockerfile b/6.2/rhel-ubi/9/Dockerfile index 779ec29aa..1ca549ee0 100644 --- a/6.2/rhel-ubi/9/Dockerfile +++ b/6.2/rhel-ubi/9/Dockerfile @@ -26,12 +26,14 @@ ARG SWIFT_PLATFORM=ubi9 ARG SWIFT_BRANCH=swift-6.2.4-release ARG SWIFT_VERSION=swift-6.2.4-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.2 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -55,9 +57,15 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.2/ubuntu/22.04/Dockerfile b/6.2/ubuntu/22.04/Dockerfile index b7790be56..48399a67f 100644 --- a/6.2/ubuntu/22.04/Dockerfile +++ b/6.2/ubuntu/22.04/Dockerfile @@ -33,12 +33,14 @@ ARG SWIFT_PLATFORM=ubuntu22.04 ARG SWIFT_BRANCH=swift-6.2.4-release ARG SWIFT_VERSION=swift-6.2.4-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.2 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(dpkg --print-architecture)"; \ @@ -64,10 +66,16 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.2/ubuntu/24.04/Dockerfile b/6.2/ubuntu/24.04/Dockerfile index 4f035db7a..338970f64 100644 --- a/6.2/ubuntu/24.04/Dockerfile +++ b/6.2/ubuntu/24.04/Dockerfile @@ -33,12 +33,14 @@ ARG SWIFT_PLATFORM=ubuntu24.04 ARG SWIFT_BRANCH=swift-6.2.4-release ARG SWIFT_VERSION=swift-6.2.4-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.2 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(dpkg --print-architecture)"; \ @@ -64,10 +66,16 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version From ea694e2de55ed60de2a7e1f1e3d271978c60447f Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Mon, 15 Dec 2025 02:51:02 +0900 Subject: [PATCH 05/13] [nightly-6.3] Install binaries under `$SWIFT_PREFIX/usr/bin` instead of `/usr/bin` This prevents some binaries from being unintentionally overwritten by the system package manager. Symbolic links are also placed in the old directory (`/usr/bin`) for compatibility. --- nightly-6.3/amazonlinux/2/Dockerfile | 15 ++++++++++++--- nightly-6.3/amazonlinux/2/buildx/Dockerfile | 13 +++++++++++-- nightly-6.3/rhel-ubi/9/Dockerfile | 15 ++++++++++++--- nightly-6.3/rhel-ubi/9/buildx/Dockerfile | 13 +++++++++++-- nightly-6.3/ubuntu/22.04/Dockerfile | 15 ++++++++++++--- nightly-6.3/ubuntu/22.04/buildx/Dockerfile | 13 +++++++++++-- nightly-6.3/ubuntu/24.04/Dockerfile | 15 ++++++++++++--- nightly-6.3/ubuntu/24.04/buildx/Dockerfile | 13 +++++++++++-- 8 files changed, 92 insertions(+), 20 deletions(-) diff --git a/nightly-6.3/amazonlinux/2/Dockerfile b/nightly-6.3/amazonlinux/2/Dockerfile index fd3bff6ce..fbf77543e 100644 --- a/nightly-6.3/amazonlinux/2/Dockerfile +++ b/nightly-6.3/amazonlinux/2/Dockerfile @@ -33,13 +33,16 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=amazonlinux ARG OS_MAJOR_VER=2 +ARG SWIFT_VERSION=6.3 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.3-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -56,10 +59,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.3/amazonlinux/2/buildx/Dockerfile b/nightly-6.3/amazonlinux/2/buildx/Dockerfile index 9fb68b337..161b02097 100644 --- a/nightly-6.3/amazonlinux/2/buildx/Dockerfile +++ b/nightly-6.3/amazonlinux/2/buildx/Dockerfile @@ -32,7 +32,9 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=amazonlinux ARG OS_MAJOR_VER=2 +ARG SWIFT_VERSION=6.3 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.3-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -46,6 +48,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -62,10 +65,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.3/rhel-ubi/9/Dockerfile b/nightly-6.3/rhel-ubi/9/Dockerfile index fa97f0a76..7687267b0 100644 --- a/nightly-6.3/rhel-ubi/9/Dockerfile +++ b/nightly-6.3/rhel-ubi/9/Dockerfile @@ -26,13 +26,16 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=9 +ARG SWIFT_VERSION=6.3 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.3-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -49,10 +52,16 @@ RUN set -e; \ && curl -fL https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.3/rhel-ubi/9/buildx/Dockerfile b/nightly-6.3/rhel-ubi/9/buildx/Dockerfile index 0628c6edb..27fe77464 100644 --- a/nightly-6.3/rhel-ubi/9/buildx/Dockerfile +++ b/nightly-6.3/rhel-ubi/9/buildx/Dockerfile @@ -25,7 +25,9 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=9 +ARG SWIFT_VERSION=6.3 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.3-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -39,6 +41,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -55,10 +58,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.3/ubuntu/22.04/Dockerfile b/nightly-6.3/ubuntu/22.04/Dockerfile index 7672b37f1..5728982e6 100644 --- a/nightly-6.3/ubuntu/22.04/Dockerfile +++ b/nightly-6.3/ubuntu/22.04/Dockerfile @@ -32,14 +32,17 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=22 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.3 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.3-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -59,11 +62,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.3/ubuntu/22.04/buildx/Dockerfile b/nightly-6.3/ubuntu/22.04/buildx/Dockerfile index 3c917ae03..151d80bda 100644 --- a/nightly-6.3/ubuntu/22.04/buildx/Dockerfile +++ b/nightly-6.3/ubuntu/22.04/buildx/Dockerfile @@ -32,7 +32,9 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=22 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.3 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.3-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -46,6 +48,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -65,11 +68,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.3/ubuntu/24.04/Dockerfile b/nightly-6.3/ubuntu/24.04/Dockerfile index b782d3360..bb10380d6 100644 --- a/nightly-6.3/ubuntu/24.04/Dockerfile +++ b/nightly-6.3/ubuntu/24.04/Dockerfile @@ -34,14 +34,17 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=24 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.3 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.3-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -57,11 +60,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.3/ubuntu/24.04/buildx/Dockerfile b/nightly-6.3/ubuntu/24.04/buildx/Dockerfile index da74c641b..9f3fb85a7 100644 --- a/nightly-6.3/ubuntu/24.04/buildx/Dockerfile +++ b/nightly-6.3/ubuntu/24.04/buildx/Dockerfile @@ -34,7 +34,9 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=24 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.3 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.3-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -48,6 +50,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -63,11 +66,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version From 720c4f51233bb8f0acbdd16f307b31140a413289 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Sun, 3 May 2026 11:20:40 +0900 Subject: [PATCH 06/13] [6.3] Install binaries under `$SWIFT_PREFIX/usr/bin` instead of `/usr/bin` This prevents some binaries from being unintentionally overwritten by the system package manager. Symbolic links are also placed in the old directory (`/usr/bin`) for compatibility. --- 6.3/amazonlinux/2/Dockerfile | 14 +++++++++++--- 6.3/amazonlinux/2023/Dockerfile | 14 +++++++++++--- 6.3/debian/12/Dockerfile | 14 +++++++++++--- 6.3/fedora/39/Dockerfile | 14 +++++++++++--- 6.3/rhel-ubi/9/Dockerfile | 14 +++++++++++--- 6.3/ubuntu/22.04/Dockerfile | 14 +++++++++++--- 6.3/ubuntu/24.04/Dockerfile | 14 +++++++++++--- 7 files changed, 77 insertions(+), 21 deletions(-) diff --git a/6.3/amazonlinux/2/Dockerfile b/6.3/amazonlinux/2/Dockerfile index d5c46470a..7ad9eefb1 100644 --- a/6.3/amazonlinux/2/Dockerfile +++ b/6.3/amazonlinux/2/Dockerfile @@ -32,12 +32,14 @@ ARG SWIFT_PLATFORM=amazonlinux2 ARG SWIFT_BRANCH=swift-6.3.2-release ARG SWIFT_VERSION=swift-6.3.2-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.3 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -61,9 +63,15 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.3/amazonlinux/2023/Dockerfile b/6.3/amazonlinux/2023/Dockerfile index e2157341b..0bb48afa0 100644 --- a/6.3/amazonlinux/2023/Dockerfile +++ b/6.3/amazonlinux/2023/Dockerfile @@ -33,12 +33,14 @@ ARG SWIFT_PLATFORM=amazonlinux2023 ARG SWIFT_BRANCH=swift-6.3.2-release ARG SWIFT_VERSION=swift-6.3.2-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.3 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -62,9 +64,15 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.3/debian/12/Dockerfile b/6.3/debian/12/Dockerfile index f7376aa39..35d6f4147 100644 --- a/6.3/debian/12/Dockerfile +++ b/6.3/debian/12/Dockerfile @@ -31,12 +31,14 @@ ARG SWIFT_PLATFORM=debian12 ARG SWIFT_BRANCH=swift-6.3.2-release ARG SWIFT_VERSION=swift-6.3.2-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.3 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(dpkg --print-architecture)"; \ @@ -62,10 +64,16 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \ && apt-get purge --auto-remove -y curl gpg +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.3/fedora/39/Dockerfile b/6.3/fedora/39/Dockerfile index ab97b9576..410af7d65 100644 --- a/6.3/fedora/39/Dockerfile +++ b/6.3/fedora/39/Dockerfile @@ -28,12 +28,14 @@ ARG SWIFT_PLATFORM=fedora39 ARG SWIFT_BRANCH=swift-6.3.2-release ARG SWIFT_VERSION=swift-6.3.2-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.3 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -57,9 +59,15 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.3/rhel-ubi/9/Dockerfile b/6.3/rhel-ubi/9/Dockerfile index 013c0eb25..b0863ece5 100644 --- a/6.3/rhel-ubi/9/Dockerfile +++ b/6.3/rhel-ubi/9/Dockerfile @@ -26,12 +26,14 @@ ARG SWIFT_PLATFORM=ubi9 ARG SWIFT_BRANCH=swift-6.3.2-release ARG SWIFT_VERSION=swift-6.3.2-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.3 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(rpm --eval '%{_arch}')"; \ @@ -55,9 +57,15 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.3/ubuntu/22.04/Dockerfile b/6.3/ubuntu/22.04/Dockerfile index 9266dcb58..27b3afd0a 100644 --- a/6.3/ubuntu/22.04/Dockerfile +++ b/6.3/ubuntu/22.04/Dockerfile @@ -33,12 +33,14 @@ ARG SWIFT_PLATFORM=ubuntu22.04 ARG SWIFT_BRANCH=swift-6.3.2-release ARG SWIFT_VERSION=swift-6.3.2-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.3 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(dpkg --print-architecture)"; \ @@ -64,10 +66,16 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/6.3/ubuntu/24.04/Dockerfile b/6.3/ubuntu/24.04/Dockerfile index 96db37fb5..f2de1128f 100644 --- a/6.3/ubuntu/24.04/Dockerfile +++ b/6.3/ubuntu/24.04/Dockerfile @@ -33,12 +33,14 @@ ARG SWIFT_PLATFORM=ubuntu24.04 ARG SWIFT_BRANCH=swift-6.3.2-release ARG SWIFT_VERSION=swift-6.3.2-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org +ARG SWIFT_PREFIX=/opt/swift/6.3 ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ SWIFT_BRANCH=$SWIFT_BRANCH \ SWIFT_VERSION=$SWIFT_VERSION \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN set -e; \ ARCH_NAME="$(dpkg --print-architecture)"; \ @@ -64,10 +66,16 @@ RUN set -e; \ && gpg --batch --quiet --keyserver keyserver.ubuntu.com --recv-keys "$SWIFT_SIGNING_KEY" \ && gpg --batch --verify swift.tar.gz.sig swift.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf swift.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf swift.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" swift.tar.gz.sig swift.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version From e36a40df9892cdea9f5bf55d0842f97bfba41cb6 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Sun, 3 May 2026 11:39:19 +0900 Subject: [PATCH 07/13] [nightly-main] Install binaries under `$SWIFT_PREFIX/usr/bin` instead of `/usr/bin` This prevents some binaries from being unintentionally overwritten by the system package manager. Symbolic links are also placed in the old directory (`/usr/bin`) for compatibility. --- nightly-main/amazonlinux/2023/Dockerfile | 15 ++++++++++++--- nightly-main/amazonlinux/2023/buildx/Dockerfile | 15 ++++++++++++--- nightly-main/rhel-ubi/10/Dockerfile | 15 ++++++++++++--- nightly-main/rhel-ubi/10/buildx/Dockerfile | 13 +++++++++++-- nightly-main/ubuntu/26.04/Dockerfile | 14 +++++++++++--- nightly-main/ubuntu/26.04/buildx/Dockerfile | 13 +++++++++++-- 6 files changed, 69 insertions(+), 16 deletions(-) diff --git a/nightly-main/amazonlinux/2023/Dockerfile b/nightly-main/amazonlinux/2023/Dockerfile index 4d27b2a6c..d17455d8d 100644 --- a/nightly-main/amazonlinux/2023/Dockerfile +++ b/nightly-main/amazonlinux/2023/Dockerfile @@ -27,12 +27,15 @@ RUN dnf -y swap gnupg2-minimal gnupg2-full ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=amazonlinux2023 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM" +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -58,10 +61,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/amazonlinux/2023/buildx/Dockerfile b/nightly-main/amazonlinux/2023/buildx/Dockerfile index f858a575d..bdca312ac 100644 --- a/nightly-main/amazonlinux/2023/buildx/Dockerfile +++ b/nightly-main/amazonlinux/2023/buildx/Dockerfile @@ -27,8 +27,10 @@ RUN dnf -y swap gnupg2-minimal gnupg2-full ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=amazonlinux2023 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM" +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -44,7 +46,8 @@ ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT$OS_ARCH_SUFFIX" ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -60,10 +63,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/rhel-ubi/10/Dockerfile b/nightly-main/rhel-ubi/10/Dockerfile index 4e1010e1e..7388fe627 100644 --- a/nightly-main/rhel-ubi/10/Dockerfile +++ b/nightly-main/rhel-ubi/10/Dockerfile @@ -27,13 +27,16 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=10 +ARG SWIFT_VERSION=6.3 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -50,10 +53,16 @@ RUN set -e; \ && curl -fL https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/rhel-ubi/10/buildx/Dockerfile b/nightly-main/rhel-ubi/10/buildx/Dockerfile index a2e06bd15..4fc7f577c 100644 --- a/nightly-main/rhel-ubi/10/buildx/Dockerfile +++ b/nightly-main/rhel-ubi/10/buildx/Dockerfile @@ -26,7 +26,9 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=10 +ARG SWIFT_VERSION=6.3 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -40,6 +42,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -56,10 +59,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/ubuntu/26.04/Dockerfile b/nightly-main/ubuntu/26.04/Dockerfile index 59b9ffa8e..1b4adee01 100644 --- a/nightly-main/ubuntu/26.04/Dockerfile +++ b/nightly-main/ubuntu/26.04/Dockerfile @@ -35,6 +35,7 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=26 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.3 ARG SWIFT_WEBROOT=https://download.swift.org/development ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ @@ -42,7 +43,8 @@ ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -58,11 +60,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/ubuntu/26.04/buildx/Dockerfile b/nightly-main/ubuntu/26.04/buildx/Dockerfile index 06123664d..b2943faf8 100644 --- a/nightly-main/ubuntu/26.04/buildx/Dockerfile +++ b/nightly-main/ubuntu/26.04/buildx/Dockerfile @@ -33,7 +33,9 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=26 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.3 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -47,6 +49,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -62,11 +65,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version From 244f90ad535c325ed9bc6a834e89199cd0365a0b Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Wed, 3 Jun 2026 00:46:52 +0900 Subject: [PATCH 08/13] [nightly-main] Update `SWIFT_VERSION` to 6.5 --- nightly-main/amazonlinux/2/Dockerfile | 2 +- nightly-main/amazonlinux/2/buildx/Dockerfile | 2 +- nightly-main/amazonlinux/2023/Dockerfile | 2 +- nightly-main/amazonlinux/2023/buildx/Dockerfile | 2 +- nightly-main/debian/12/Dockerfile | 2 +- nightly-main/debian/12/buildx/Dockerfile | 2 +- nightly-main/debian/13/Dockerfile | 2 +- nightly-main/debian/13/buildx/Dockerfile | 2 +- nightly-main/fedora/39/Dockerfile | 4 ++-- nightly-main/fedora/39/buildx/Dockerfile | 4 ++-- nightly-main/rhel-ubi/10/Dockerfile | 2 +- nightly-main/rhel-ubi/10/buildx/Dockerfile | 2 +- nightly-main/rhel-ubi/9/Dockerfile | 2 +- nightly-main/rhel-ubi/9/buildx/Dockerfile | 2 +- nightly-main/ubuntu/20.04/Dockerfile | 2 +- nightly-main/ubuntu/20.04/buildx/Dockerfile | 2 +- nightly-main/ubuntu/22.04/Dockerfile | 2 +- nightly-main/ubuntu/22.04/buildx/Dockerfile | 2 +- nightly-main/ubuntu/24.04/Dockerfile | 2 +- nightly-main/ubuntu/24.04/buildx/Dockerfile | 2 +- nightly-main/ubuntu/26.04/Dockerfile | 2 +- nightly-main/ubuntu/26.04/buildx/Dockerfile | 2 +- 22 files changed, 24 insertions(+), 24 deletions(-) diff --git a/nightly-main/amazonlinux/2/Dockerfile b/nightly-main/amazonlinux/2/Dockerfile index 5cd669e2c..acf43bdd0 100644 --- a/nightly-main/amazonlinux/2/Dockerfile +++ b/nightly-main/amazonlinux/2/Dockerfile @@ -32,7 +32,7 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=amazonlinux ARG OS_MAJOR_VER=2 -ARG SWIFT_VERSION=6.2 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/amazonlinux/2/buildx/Dockerfile b/nightly-main/amazonlinux/2/buildx/Dockerfile index 370dd46fc..b2a4e6e81 100644 --- a/nightly-main/amazonlinux/2/buildx/Dockerfile +++ b/nightly-main/amazonlinux/2/buildx/Dockerfile @@ -32,7 +32,7 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=amazonlinux ARG OS_MAJOR_VER=2 -ARG SWIFT_VERSION=6.2 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/amazonlinux/2023/Dockerfile b/nightly-main/amazonlinux/2023/Dockerfile index d17455d8d..659c6a50e 100644 --- a/nightly-main/amazonlinux/2023/Dockerfile +++ b/nightly-main/amazonlinux/2023/Dockerfile @@ -27,7 +27,7 @@ RUN dnf -y swap gnupg2-minimal gnupg2-full ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=amazonlinux2023 -ARG SWIFT_VERSION=6.4 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM" ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/amazonlinux/2023/buildx/Dockerfile b/nightly-main/amazonlinux/2023/buildx/Dockerfile index bdca312ac..262f750bc 100644 --- a/nightly-main/amazonlinux/2023/buildx/Dockerfile +++ b/nightly-main/amazonlinux/2023/buildx/Dockerfile @@ -27,7 +27,7 @@ RUN dnf -y swap gnupg2-minimal gnupg2-full ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=amazonlinux2023 -ARG SWIFT_VERSION=6.4 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM" ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/debian/12/Dockerfile b/nightly-main/debian/12/Dockerfile index d8ef580b2..505cb288a 100644 --- a/nightly-main/debian/12/Dockerfile +++ b/nightly-main/debian/12/Dockerfile @@ -23,7 +23,7 @@ RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true && ap ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=debian12 -ARG SWIFT_VERSION=6.2 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM" ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/debian/12/buildx/Dockerfile b/nightly-main/debian/12/buildx/Dockerfile index 080c6a36b..522826f9c 100644 --- a/nightly-main/debian/12/buildx/Dockerfile +++ b/nightly-main/debian/12/buildx/Dockerfile @@ -25,7 +25,7 @@ RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true && ap ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=debian12 -ARG SWIFT_VERSION=6.2 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM" ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/debian/13/Dockerfile b/nightly-main/debian/13/Dockerfile index d7137c12d..2985e85cd 100644 --- a/nightly-main/debian/13/Dockerfile +++ b/nightly-main/debian/13/Dockerfile @@ -23,7 +23,7 @@ RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true && ap ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=debian13 -ARG SWIFT_VERSION=6.4 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM" ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/debian/13/buildx/Dockerfile b/nightly-main/debian/13/buildx/Dockerfile index 379a0a899..161e14377 100644 --- a/nightly-main/debian/13/buildx/Dockerfile +++ b/nightly-main/debian/13/buildx/Dockerfile @@ -25,7 +25,7 @@ RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true && ap ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=debian13 -ARG SWIFT_VERSION=6.4 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM" ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/fedora/39/Dockerfile b/nightly-main/fedora/39/Dockerfile index 68bb73ded..a9813dcbb 100644 --- a/nightly-main/fedora/39/Dockerfile +++ b/nightly-main/fedora/39/Dockerfile @@ -21,7 +21,7 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=fedora39 -ARG SWIFT_VERSION=6.2 +ARG SWIFT_VERSION=6.5 ARG SWIFT_BRANCH=swift-${SWIFT_VERSION}-release ARG SWIFT_TAG=swift-${SWIFT_VERSION}-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org/development @@ -66,4 +66,4 @@ RUN set -e; \ ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" # Print Installed Swift Version -RUN swift --version \ No newline at end of file +RUN swift --version diff --git a/nightly-main/fedora/39/buildx/Dockerfile b/nightly-main/fedora/39/buildx/Dockerfile index e7d8208b7..549fe85c5 100644 --- a/nightly-main/fedora/39/buildx/Dockerfile +++ b/nightly-main/fedora/39/buildx/Dockerfile @@ -21,7 +21,7 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=fedora39 -ARG SWIFT_VERSION=6.2 +ARG SWIFT_VERSION=6.5 ARG SWIFT_BRANCH=swift-${SWIFT_VERSION}-release ARG SWIFT_TAG=swift-${SWIFT_VERSION}-RELEASE ARG SWIFT_WEBROOT=https://download.swift.org/development @@ -76,4 +76,4 @@ RUN set -e; \ ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" # Print Installed Swift Version -RUN swift --version \ No newline at end of file +RUN swift --version diff --git a/nightly-main/rhel-ubi/10/Dockerfile b/nightly-main/rhel-ubi/10/Dockerfile index 7388fe627..df8e6763a 100644 --- a/nightly-main/rhel-ubi/10/Dockerfile +++ b/nightly-main/rhel-ubi/10/Dockerfile @@ -27,7 +27,7 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=10 -ARG SWIFT_VERSION=6.3 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/rhel-ubi/10/buildx/Dockerfile b/nightly-main/rhel-ubi/10/buildx/Dockerfile index 4fc7f577c..e995f4fcc 100644 --- a/nightly-main/rhel-ubi/10/buildx/Dockerfile +++ b/nightly-main/rhel-ubi/10/buildx/Dockerfile @@ -26,7 +26,7 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=10 -ARG SWIFT_VERSION=6.3 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/rhel-ubi/9/Dockerfile b/nightly-main/rhel-ubi/9/Dockerfile index b86f828ea..0cb5aca72 100644 --- a/nightly-main/rhel-ubi/9/Dockerfile +++ b/nightly-main/rhel-ubi/9/Dockerfile @@ -26,7 +26,7 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=9 -ARG SWIFT_VERSION=6.2 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/rhel-ubi/9/buildx/Dockerfile b/nightly-main/rhel-ubi/9/buildx/Dockerfile index 6591eb53d..e77e503ea 100644 --- a/nightly-main/rhel-ubi/9/buildx/Dockerfile +++ b/nightly-main/rhel-ubi/9/buildx/Dockerfile @@ -25,7 +25,7 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=9 -ARG SWIFT_VERSION=6.2 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/ubuntu/20.04/Dockerfile b/nightly-main/ubuntu/20.04/Dockerfile index b39c38255..a30c561f5 100644 --- a/nightly-main/ubuntu/20.04/Dockerfile +++ b/nightly-main/ubuntu/20.04/Dockerfile @@ -32,7 +32,7 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=20 ARG OS_MIN_VER=04 -ARG SWIFT_VERSION=6.2 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/ubuntu/20.04/buildx/Dockerfile b/nightly-main/ubuntu/20.04/buildx/Dockerfile index c0126cc94..7865dbb13 100644 --- a/nightly-main/ubuntu/20.04/buildx/Dockerfile +++ b/nightly-main/ubuntu/20.04/buildx/Dockerfile @@ -33,7 +33,7 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=20 ARG OS_MIN_VER=04 -ARG SWIFT_VERSION=6.2 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/ubuntu/22.04/Dockerfile b/nightly-main/ubuntu/22.04/Dockerfile index e643cc707..4d7f2d846 100644 --- a/nightly-main/ubuntu/22.04/Dockerfile +++ b/nightly-main/ubuntu/22.04/Dockerfile @@ -32,7 +32,7 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=22 ARG OS_MIN_VER=04 -ARG SWIFT_VERSION=6.2 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/ubuntu/22.04/buildx/Dockerfile b/nightly-main/ubuntu/22.04/buildx/Dockerfile index 76f185a0f..e1fcdae37 100644 --- a/nightly-main/ubuntu/22.04/buildx/Dockerfile +++ b/nightly-main/ubuntu/22.04/buildx/Dockerfile @@ -32,7 +32,7 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=22 ARG OS_MIN_VER=04 -ARG SWIFT_VERSION=6.2 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/ubuntu/24.04/Dockerfile b/nightly-main/ubuntu/24.04/Dockerfile index 0ccd9ea75..ab866ec33 100644 --- a/nightly-main/ubuntu/24.04/Dockerfile +++ b/nightly-main/ubuntu/24.04/Dockerfile @@ -35,7 +35,7 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=24 ARG OS_MIN_VER=04 -ARG SWIFT_VERSION=6.2 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/ubuntu/24.04/buildx/Dockerfile b/nightly-main/ubuntu/24.04/buildx/Dockerfile index eb01d7dc4..034d2357f 100644 --- a/nightly-main/ubuntu/24.04/buildx/Dockerfile +++ b/nightly-main/ubuntu/24.04/buildx/Dockerfile @@ -33,7 +33,7 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=24 ARG OS_MIN_VER=04 -ARG SWIFT_VERSION=6.2 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} diff --git a/nightly-main/ubuntu/26.04/Dockerfile b/nightly-main/ubuntu/26.04/Dockerfile index 1b4adee01..91dcb68f8 100644 --- a/nightly-main/ubuntu/26.04/Dockerfile +++ b/nightly-main/ubuntu/26.04/Dockerfile @@ -35,7 +35,7 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=26 ARG OS_MIN_VER=04 -ARG SWIFT_VERSION=6.3 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ diff --git a/nightly-main/ubuntu/26.04/buildx/Dockerfile b/nightly-main/ubuntu/26.04/buildx/Dockerfile index b2943faf8..9317ac50d 100644 --- a/nightly-main/ubuntu/26.04/buildx/Dockerfile +++ b/nightly-main/ubuntu/26.04/buildx/Dockerfile @@ -33,7 +33,7 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=26 ARG OS_MIN_VER=04 -ARG SWIFT_VERSION=6.3 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} From 9cd3abea7cfcfdb1c995c031ef40e7a953d7fbe5 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Mon, 15 Dec 2025 03:06:06 +0900 Subject: [PATCH 09/13] Fix broken Amazon Linux Dockerfiles All nightly Amazon Linux Dockerfiles have unintended dangling backslashes. --- nightly-5.10/amazonlinux/2/Dockerfile | 2 +- nightly-5.10/amazonlinux/2/buildx/Dockerfile | 2 +- nightly-5.5/amazonlinux/2/Dockerfile | 2 +- nightly-5.6/amazonlinux/2/Dockerfile | 2 +- nightly-5.6/amazonlinux/2/buildx/Dockerfile | 2 +- nightly-5.7/amazonlinux/2/Dockerfile | 2 +- nightly-5.7/amazonlinux/2/buildx/Dockerfile | 2 +- nightly-5.8/amazonlinux/2/Dockerfile | 2 +- nightly-5.8/amazonlinux/2/buildx/Dockerfile | 2 +- nightly-5.9/amazonlinux/2/Dockerfile | 2 +- nightly-5.9/amazonlinux/2/buildx/Dockerfile | 2 +- nightly-6.0/amazonlinux/2/Dockerfile | 2 +- nightly-6.0/amazonlinux/2/buildx/Dockerfile | 2 +- nightly-6.1/amazonlinux/2/Dockerfile | 2 +- nightly-6.1/amazonlinux/2/buildx/Dockerfile | 2 +- nightly-6.2/amazonlinux/2/Dockerfile | 2 +- nightly-6.2/amazonlinux/2/buildx/Dockerfile | 2 +- nightly-6.3/amazonlinux/2/Dockerfile | 2 +- nightly-6.3/amazonlinux/2/buildx/Dockerfile | 2 +- nightly-main/amazonlinux/2/Dockerfile | 2 +- nightly-main/amazonlinux/2/buildx/Dockerfile | 2 +- 21 files changed, 21 insertions(+), 21 deletions(-) diff --git a/nightly-5.10/amazonlinux/2/Dockerfile b/nightly-5.10/amazonlinux/2/Dockerfile index d0603747a..760fbfd8d 100644 --- a/nightly-5.10/amazonlinux/2/Dockerfile +++ b/nightly-5.10/amazonlinux/2/Dockerfile @@ -57,7 +57,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-5.10/amazonlinux/2/buildx/Dockerfile b/nightly-5.10/amazonlinux/2/buildx/Dockerfile index 26ff4ab21..8e57fceb2 100644 --- a/nightly-5.10/amazonlinux/2/buildx/Dockerfile +++ b/nightly-5.10/amazonlinux/2/buildx/Dockerfile @@ -64,7 +64,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-5.5/amazonlinux/2/Dockerfile b/nightly-5.5/amazonlinux/2/Dockerfile index c458d56e5..9f366fbb0 100644 --- a/nightly-5.5/amazonlinux/2/Dockerfile +++ b/nightly-5.5/amazonlinux/2/Dockerfile @@ -54,7 +54,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-5.6/amazonlinux/2/Dockerfile b/nightly-5.6/amazonlinux/2/Dockerfile index 844026825..1f24fa8bd 100644 --- a/nightly-5.6/amazonlinux/2/Dockerfile +++ b/nightly-5.6/amazonlinux/2/Dockerfile @@ -54,7 +54,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-5.6/amazonlinux/2/buildx/Dockerfile b/nightly-5.6/amazonlinux/2/buildx/Dockerfile index a46d69577..fc659f4b2 100644 --- a/nightly-5.6/amazonlinux/2/buildx/Dockerfile +++ b/nightly-5.6/amazonlinux/2/buildx/Dockerfile @@ -63,7 +63,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / ${ADDITIONAL_TAR_OPTIONS} \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-5.7/amazonlinux/2/Dockerfile b/nightly-5.7/amazonlinux/2/Dockerfile index 1a365417a..7c7b2031d 100644 --- a/nightly-5.7/amazonlinux/2/Dockerfile +++ b/nightly-5.7/amazonlinux/2/Dockerfile @@ -55,7 +55,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-5.7/amazonlinux/2/buildx/Dockerfile b/nightly-5.7/amazonlinux/2/buildx/Dockerfile index bb5db66df..a5556d668 100644 --- a/nightly-5.7/amazonlinux/2/buildx/Dockerfile +++ b/nightly-5.7/amazonlinux/2/buildx/Dockerfile @@ -62,7 +62,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-5.8/amazonlinux/2/Dockerfile b/nightly-5.8/amazonlinux/2/Dockerfile index a3111a2cf..ca8fe83e8 100644 --- a/nightly-5.8/amazonlinux/2/Dockerfile +++ b/nightly-5.8/amazonlinux/2/Dockerfile @@ -56,7 +56,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-5.8/amazonlinux/2/buildx/Dockerfile b/nightly-5.8/amazonlinux/2/buildx/Dockerfile index 1e87fcb97..e21595357 100644 --- a/nightly-5.8/amazonlinux/2/buildx/Dockerfile +++ b/nightly-5.8/amazonlinux/2/buildx/Dockerfile @@ -63,7 +63,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-5.9/amazonlinux/2/Dockerfile b/nightly-5.9/amazonlinux/2/Dockerfile index a00bd7d5c..b77da9587 100644 --- a/nightly-5.9/amazonlinux/2/Dockerfile +++ b/nightly-5.9/amazonlinux/2/Dockerfile @@ -57,7 +57,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-5.9/amazonlinux/2/buildx/Dockerfile b/nightly-5.9/amazonlinux/2/buildx/Dockerfile index 5566d9062..ff41f0a63 100644 --- a/nightly-5.9/amazonlinux/2/buildx/Dockerfile +++ b/nightly-5.9/amazonlinux/2/buildx/Dockerfile @@ -64,7 +64,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.0/amazonlinux/2/Dockerfile b/nightly-6.0/amazonlinux/2/Dockerfile index 193233e44..881d0a19b 100644 --- a/nightly-6.0/amazonlinux/2/Dockerfile +++ b/nightly-6.0/amazonlinux/2/Dockerfile @@ -58,7 +58,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.0/amazonlinux/2/buildx/Dockerfile b/nightly-6.0/amazonlinux/2/buildx/Dockerfile index 26862b443..52b888c24 100644 --- a/nightly-6.0/amazonlinux/2/buildx/Dockerfile +++ b/nightly-6.0/amazonlinux/2/buildx/Dockerfile @@ -64,7 +64,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.1/amazonlinux/2/Dockerfile b/nightly-6.1/amazonlinux/2/Dockerfile index 962299f8d..edf3d71bb 100644 --- a/nightly-6.1/amazonlinux/2/Dockerfile +++ b/nightly-6.1/amazonlinux/2/Dockerfile @@ -64,7 +64,7 @@ RUN set -e; \ && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" diff --git a/nightly-6.1/amazonlinux/2/buildx/Dockerfile b/nightly-6.1/amazonlinux/2/buildx/Dockerfile index a0e8f335b..11d21d08b 100644 --- a/nightly-6.1/amazonlinux/2/buildx/Dockerfile +++ b/nightly-6.1/amazonlinux/2/buildx/Dockerfile @@ -70,7 +70,7 @@ RUN set -e; \ && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" diff --git a/nightly-6.2/amazonlinux/2/Dockerfile b/nightly-6.2/amazonlinux/2/Dockerfile index 021b0939b..ccfa83bc2 100644 --- a/nightly-6.2/amazonlinux/2/Dockerfile +++ b/nightly-6.2/amazonlinux/2/Dockerfile @@ -64,7 +64,7 @@ RUN set -e; \ && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" diff --git a/nightly-6.2/amazonlinux/2/buildx/Dockerfile b/nightly-6.2/amazonlinux/2/buildx/Dockerfile index 6f9e4306e..427b2bb7c 100644 --- a/nightly-6.2/amazonlinux/2/buildx/Dockerfile +++ b/nightly-6.2/amazonlinux/2/buildx/Dockerfile @@ -70,7 +70,7 @@ RUN set -e; \ && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" diff --git a/nightly-6.3/amazonlinux/2/Dockerfile b/nightly-6.3/amazonlinux/2/Dockerfile index fbf77543e..f3a1c9e5f 100644 --- a/nightly-6.3/amazonlinux/2/Dockerfile +++ b/nightly-6.3/amazonlinux/2/Dockerfile @@ -64,7 +64,7 @@ RUN set -e; \ && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" diff --git a/nightly-6.3/amazonlinux/2/buildx/Dockerfile b/nightly-6.3/amazonlinux/2/buildx/Dockerfile index 161b02097..a4faad599 100644 --- a/nightly-6.3/amazonlinux/2/buildx/Dockerfile +++ b/nightly-6.3/amazonlinux/2/buildx/Dockerfile @@ -70,7 +70,7 @@ RUN set -e; \ && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" diff --git a/nightly-main/amazonlinux/2/Dockerfile b/nightly-main/amazonlinux/2/Dockerfile index acf43bdd0..f8c38d192 100644 --- a/nightly-main/amazonlinux/2/Dockerfile +++ b/nightly-main/amazonlinux/2/Dockerfile @@ -63,7 +63,7 @@ RUN set -e; \ && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" diff --git a/nightly-main/amazonlinux/2/buildx/Dockerfile b/nightly-main/amazonlinux/2/buildx/Dockerfile index b2a4e6e81..4ecc06194 100644 --- a/nightly-main/amazonlinux/2/buildx/Dockerfile +++ b/nightly-main/amazonlinux/2/buildx/Dockerfile @@ -70,7 +70,7 @@ RUN set -e; \ && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" From 84fe00b3246daaa15bedf9566e321f2837e95108 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Sun, 3 May 2026 11:47:18 +0900 Subject: [PATCH 10/13] Fix broken UBI Dockerfiles Some nightly UBI Dockerfiles have unintended dangling backslashes. --- nightly-5.10/rhel-ubi/9/buildx/Dockerfile | 2 +- nightly-5.8/rhel-ubi/9/buildx/Dockerfile | 2 +- nightly-5.9/rhel-ubi/9/buildx/Dockerfile | 2 +- nightly-6.0/rhel-ubi/9/buildx/Dockerfile | 2 +- nightly-6.1/rhel-ubi/9/buildx/Dockerfile | 2 +- nightly-6.2/rhel-ubi/9/buildx/Dockerfile | 2 +- nightly-6.3/rhel-ubi/9/buildx/Dockerfile | 2 +- nightly-main/rhel-ubi/10/buildx/Dockerfile | 2 +- nightly-main/rhel-ubi/9/buildx/Dockerfile | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/nightly-5.10/rhel-ubi/9/buildx/Dockerfile b/nightly-5.10/rhel-ubi/9/buildx/Dockerfile index bb788332b..efe018330 100644 --- a/nightly-5.10/rhel-ubi/9/buildx/Dockerfile +++ b/nightly-5.10/rhel-ubi/9/buildx/Dockerfile @@ -57,7 +57,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-5.8/rhel-ubi/9/buildx/Dockerfile b/nightly-5.8/rhel-ubi/9/buildx/Dockerfile index e27167051..61b04128e 100644 --- a/nightly-5.8/rhel-ubi/9/buildx/Dockerfile +++ b/nightly-5.8/rhel-ubi/9/buildx/Dockerfile @@ -57,7 +57,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-5.9/rhel-ubi/9/buildx/Dockerfile b/nightly-5.9/rhel-ubi/9/buildx/Dockerfile index 3c6761cf3..1f6996469 100644 --- a/nightly-5.9/rhel-ubi/9/buildx/Dockerfile +++ b/nightly-5.9/rhel-ubi/9/buildx/Dockerfile @@ -57,7 +57,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.0/rhel-ubi/9/buildx/Dockerfile b/nightly-6.0/rhel-ubi/9/buildx/Dockerfile index 840d843b8..500ceb69a 100644 --- a/nightly-6.0/rhel-ubi/9/buildx/Dockerfile +++ b/nightly-6.0/rhel-ubi/9/buildx/Dockerfile @@ -57,7 +57,7 @@ RUN set -e; \ # - Unpack the toolchain, set libs permissions, and clean up. && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.1/rhel-ubi/9/buildx/Dockerfile b/nightly-6.1/rhel-ubi/9/buildx/Dockerfile index 613230c3d..d97925383 100644 --- a/nightly-6.1/rhel-ubi/9/buildx/Dockerfile +++ b/nightly-6.1/rhel-ubi/9/buildx/Dockerfile @@ -63,7 +63,7 @@ RUN set -e; \ && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" diff --git a/nightly-6.2/rhel-ubi/9/buildx/Dockerfile b/nightly-6.2/rhel-ubi/9/buildx/Dockerfile index 8b7b4b07e..bfa1d8a24 100644 --- a/nightly-6.2/rhel-ubi/9/buildx/Dockerfile +++ b/nightly-6.2/rhel-ubi/9/buildx/Dockerfile @@ -63,7 +63,7 @@ RUN set -e; \ && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" diff --git a/nightly-6.3/rhel-ubi/9/buildx/Dockerfile b/nightly-6.3/rhel-ubi/9/buildx/Dockerfile index 27fe77464..529a0a0f7 100644 --- a/nightly-6.3/rhel-ubi/9/buildx/Dockerfile +++ b/nightly-6.3/rhel-ubi/9/buildx/Dockerfile @@ -63,7 +63,7 @@ RUN set -e; \ && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" diff --git a/nightly-main/rhel-ubi/10/buildx/Dockerfile b/nightly-main/rhel-ubi/10/buildx/Dockerfile index e995f4fcc..c11b00f6f 100644 --- a/nightly-main/rhel-ubi/10/buildx/Dockerfile +++ b/nightly-main/rhel-ubi/10/buildx/Dockerfile @@ -64,7 +64,7 @@ RUN set -e; \ && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" diff --git a/nightly-main/rhel-ubi/9/buildx/Dockerfile b/nightly-main/rhel-ubi/9/buildx/Dockerfile index e77e503ea..be4559886 100644 --- a/nightly-main/rhel-ubi/9/buildx/Dockerfile +++ b/nightly-main/rhel-ubi/9/buildx/Dockerfile @@ -63,7 +63,7 @@ RUN set -e; \ && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" From 6eab59273a706fee3b2029ed32d351d4f15a9de6 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Wed, 3 Jun 2026 01:50:56 +0900 Subject: [PATCH 11/13] [nightly-6.4.x] Install binaries under `$SWIFT_PREFIX/usr/bin` instead of `/usr/bin` This prevents some binaries from being unintentionally overwritten by the system package manager. Symbolic links are also placed in the old directory (`/usr/bin`) for compatibility. --- nightly-6.4.x/amazonlinux/2/Dockerfile | 17 +++++++++++++---- nightly-6.4.x/amazonlinux/2/buildx/Dockerfile | 15 ++++++++++++--- nightly-6.4.x/amazonlinux/2023/Dockerfile | 15 ++++++++++++--- .../amazonlinux/2023/buildx/Dockerfile | 15 ++++++++++++--- nightly-6.4.x/rhel-ubi/10/Dockerfile | 15 ++++++++++++--- nightly-6.4.x/rhel-ubi/10/buildx/Dockerfile | 15 ++++++++++++--- nightly-6.4.x/rhel-ubi/9/Dockerfile | 15 ++++++++++++--- nightly-6.4.x/rhel-ubi/9/buildx/Dockerfile | 15 ++++++++++++--- nightly-6.4.x/ubuntu/22.04/Dockerfile | 15 ++++++++++++--- nightly-6.4.x/ubuntu/22.04/buildx/Dockerfile | 13 +++++++++++-- nightly-6.4.x/ubuntu/24.04/Dockerfile | 15 ++++++++++++--- nightly-6.4.x/ubuntu/24.04/buildx/Dockerfile | 13 +++++++++++-- nightly-6.4.x/ubuntu/26.04/Dockerfile | 15 ++++++++++++--- nightly-6.4.x/ubuntu/26.04/buildx/Dockerfile | 13 +++++++++++-- 14 files changed, 166 insertions(+), 40 deletions(-) diff --git a/nightly-6.4.x/amazonlinux/2/Dockerfile b/nightly-6.4.x/amazonlinux/2/Dockerfile index f7fcc4f1e..7b5498e2e 100644 --- a/nightly-6.4.x/amazonlinux/2/Dockerfile +++ b/nightly-6.4.x/amazonlinux/2/Dockerfile @@ -32,13 +32,16 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=amazonlinux ARG OS_MAJOR_VER=2 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.4.x-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -55,9 +58,15 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz + +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.4.x/amazonlinux/2/buildx/Dockerfile b/nightly-6.4.x/amazonlinux/2/buildx/Dockerfile index 3a6472755..e3337d243 100644 --- a/nightly-6.4.x/amazonlinux/2/buildx/Dockerfile +++ b/nightly-6.4.x/amazonlinux/2/buildx/Dockerfile @@ -32,7 +32,9 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=amazonlinux ARG OS_MAJOR_VER=2 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.4.x-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -46,6 +48,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -62,9 +65,15 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz + +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.4.x/amazonlinux/2023/Dockerfile b/nightly-6.4.x/amazonlinux/2023/Dockerfile index 4ecaafb0b..1d94460ef 100644 --- a/nightly-6.4.x/amazonlinux/2023/Dockerfile +++ b/nightly-6.4.x/amazonlinux/2023/Dockerfile @@ -27,12 +27,15 @@ RUN dnf -y swap gnupg2-minimal gnupg2-full ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=amazonlinux2023 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.4.x-branch ARG SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM" +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -58,10 +61,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.4.x/amazonlinux/2023/buildx/Dockerfile b/nightly-6.4.x/amazonlinux/2023/buildx/Dockerfile index edacd617e..ebd8f952c 100644 --- a/nightly-6.4.x/amazonlinux/2023/buildx/Dockerfile +++ b/nightly-6.4.x/amazonlinux/2023/buildx/Dockerfile @@ -27,8 +27,10 @@ RUN dnf -y swap gnupg2-minimal gnupg2-full ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=amazonlinux2023 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.4.x-branch ARG SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM" +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -44,7 +46,8 @@ ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT$OS_ARCH_SUFFIX" ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -60,10 +63,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.4.x/rhel-ubi/10/Dockerfile b/nightly-6.4.x/rhel-ubi/10/Dockerfile index 035cf7611..c0be6ca6f 100644 --- a/nightly-6.4.x/rhel-ubi/10/Dockerfile +++ b/nightly-6.4.x/rhel-ubi/10/Dockerfile @@ -27,13 +27,16 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=10 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.4.x-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -50,10 +53,16 @@ RUN set -e; \ && curl -fL https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.4.x/rhel-ubi/10/buildx/Dockerfile b/nightly-6.4.x/rhel-ubi/10/buildx/Dockerfile index 87a16ee35..a583a3db1 100644 --- a/nightly-6.4.x/rhel-ubi/10/buildx/Dockerfile +++ b/nightly-6.4.x/rhel-ubi/10/buildx/Dockerfile @@ -26,7 +26,9 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=10 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.4.x-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -40,6 +42,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -56,9 +59,15 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz + +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.4.x/rhel-ubi/9/Dockerfile b/nightly-6.4.x/rhel-ubi/9/Dockerfile index a52707f18..0e19121e2 100644 --- a/nightly-6.4.x/rhel-ubi/9/Dockerfile +++ b/nightly-6.4.x/rhel-ubi/9/Dockerfile @@ -26,13 +26,16 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=9 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.4.x-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -49,10 +52,16 @@ RUN set -e; \ && curl -fL https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.4.x/rhel-ubi/9/buildx/Dockerfile b/nightly-6.4.x/rhel-ubi/9/buildx/Dockerfile index aedc31443..3d442134c 100644 --- a/nightly-6.4.x/rhel-ubi/9/buildx/Dockerfile +++ b/nightly-6.4.x/rhel-ubi/9/buildx/Dockerfile @@ -25,7 +25,9 @@ RUN yum install -y \ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubi ARG OS_MAJOR_VER=9 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.4.x-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -39,6 +41,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -55,9 +58,15 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ - && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ + && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz + +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.4.x/ubuntu/22.04/Dockerfile b/nightly-6.4.x/ubuntu/22.04/Dockerfile index 9f1814289..9ad01d9a7 100644 --- a/nightly-6.4.x/ubuntu/22.04/Dockerfile +++ b/nightly-6.4.x/ubuntu/22.04/Dockerfile @@ -32,14 +32,17 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=22 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.4.x-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -59,11 +62,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.4.x/ubuntu/22.04/buildx/Dockerfile b/nightly-6.4.x/ubuntu/22.04/buildx/Dockerfile index 97d404b03..4b34a7a70 100644 --- a/nightly-6.4.x/ubuntu/22.04/buildx/Dockerfile +++ b/nightly-6.4.x/ubuntu/22.04/buildx/Dockerfile @@ -32,7 +32,9 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=22 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.4.x-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -46,6 +48,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -65,11 +68,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.4.x/ubuntu/24.04/Dockerfile b/nightly-6.4.x/ubuntu/24.04/Dockerfile index e107997d8..ebdfdee89 100644 --- a/nightly-6.4.x/ubuntu/24.04/Dockerfile +++ b/nightly-6.4.x/ubuntu/24.04/Dockerfile @@ -35,14 +35,17 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=24 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.4.x-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -58,11 +61,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.4.x/ubuntu/24.04/buildx/Dockerfile b/nightly-6.4.x/ubuntu/24.04/buildx/Dockerfile index 632c7d87e..e3d681be5 100644 --- a/nightly-6.4.x/ubuntu/24.04/buildx/Dockerfile +++ b/nightly-6.4.x/ubuntu/24.04/buildx/Dockerfile @@ -33,7 +33,9 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=24 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.4.x-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -47,6 +49,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -62,11 +65,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.4.x/ubuntu/26.04/Dockerfile b/nightly-6.4.x/ubuntu/26.04/Dockerfile index 36563b164..4f2db24a9 100644 --- a/nightly-6.4.x/ubuntu/26.04/Dockerfile +++ b/nightly-6.4.x/ubuntu/26.04/Dockerfile @@ -35,14 +35,17 @@ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=26 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.4.x-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ OS_MAJOR_VER=$OS_MAJOR_VER \ OS_MIN_VER=$OS_MIN_VER \ OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER \ - SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" + SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER" \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -58,11 +61,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-6.4.x/ubuntu/26.04/buildx/Dockerfile b/nightly-6.4.x/ubuntu/26.04/buildx/Dockerfile index 5b868d730..2a8dabbe7 100644 --- a/nightly-6.4.x/ubuntu/26.04/buildx/Dockerfile +++ b/nightly-6.4.x/ubuntu/26.04/buildx/Dockerfile @@ -33,7 +33,9 @@ ARG SWIFT_SIGNING_KEY=8A7495662C3CD4AE18D95637FAF6989E1BC16FEA ARG SWIFT_PLATFORM=ubuntu ARG OS_MAJOR_VER=26 ARG OS_MIN_VER=04 +ARG SWIFT_VERSION=6.4 ARG SWIFT_WEBROOT=https://download.swift.org/swift-6.4.x-branch +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -47,6 +49,7 @@ FROM base-$TARGETARCH AS final ARG OS_VER=$SWIFT_PLATFORM$OS_MAJOR_VER.$OS_MIN_VER$OS_ARCH_SUFFIX ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_MAJOR_VER$OS_MIN_VER$OS_ARCH_SUFFIX" +ENV SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -62,11 +65,17 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ && apt-get purge --auto-remove -y curl +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version From 32c9fdbdc4f71422a568ffa6f66e0b07a4452645 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Wed, 3 Jun 2026 20:20:38 +0900 Subject: [PATCH 12/13] [nightly-main][Fedora 41] Install binaries under `$SWIFT_PREFIX/usr/bin` instead of `/usr/bin` This prevents some binaries from being unintentionally overwritten by the system package manager. Symbolic links are also placed in the old directory (`/usr/bin`) for compatibility. --- nightly-main/fedora/41/Dockerfile | 15 ++++++++++++--- nightly-main/fedora/41/buildx/Dockerfile | 15 ++++++++++++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/nightly-main/fedora/41/Dockerfile b/nightly-main/fedora/41/Dockerfile index 7df85b13b..2fbf9df9b 100644 --- a/nightly-main/fedora/41/Dockerfile +++ b/nightly-main/fedora/41/Dockerfile @@ -22,12 +22,15 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=fedora41 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development ARG SWIFT_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM" +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${SWIFT_WEBROOT}/latest-build.yml" @@ -53,10 +56,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version diff --git a/nightly-main/fedora/41/buildx/Dockerfile b/nightly-main/fedora/41/buildx/Dockerfile index e9395c366..021d939d1 100644 --- a/nightly-main/fedora/41/buildx/Dockerfile +++ b/nightly-main/fedora/41/buildx/Dockerfile @@ -22,7 +22,9 @@ RUN yum -y install \ ARG SWIFT_SIGNING_KEY=E813C892820A6FA13755B268F167DF1ACF9CE069 ARG SWIFT_PLATFORM=fedora41 +ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} # This is a small trick to enable if/else for arm64 and amd64. # Because of https://bugs.swift.org/browse/SR-14872 we need adjust tar options. @@ -38,7 +40,8 @@ ARG PLATFORM_WEBROOT="$SWIFT_WEBROOT/$SWIFT_PLATFORM$OS_ARCH_SUFFIX" ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \ - SWIFT_WEBROOT=$SWIFT_WEBROOT + SWIFT_WEBROOT=$SWIFT_WEBROOT \ + SWIFT_PREFIX=$SWIFT_PREFIX RUN echo "${PLATFORM_WEBROOT}/latest-build.yml" @@ -54,10 +57,16 @@ RUN set -e; \ && curl -fSsL --compressed https://swift.org/keys/all-keys.asc | gpg --import - \ && gpg --batch --verify latest_toolchain.tar.gz.sig latest_toolchain.tar.gz \ # - Unpack the toolchain, set libs permissions, and clean up. - && tar -xzf latest_toolchain.tar.gz --directory / --strip-components=1 \ - && chmod -R o+r /usr/lib/swift \ + && mkdir -p $SWIFT_PREFIX \ + && tar -xzf latest_toolchain.tar.gz --directory $SWIFT_PREFIX --strip-components=1 \ + && chmod -R o+r $SWIFT_PREFIX/usr/lib/swift \ + # This is a compatibility workaround for those who expect `swift` to be in `/usr/bin/`. + && ln -sf $SWIFT_PREFIX/usr/bin/* /usr/bin/ \ && rm -rf "$GNUPGHOME" latest_toolchain.tar.gz.sig latest_toolchain.tar.gz +ENV PATH="${SWIFT_PREFIX}/usr/bin:${PATH}" +ENV LD_LIBRARY_PATH="${SWIFT_PREFIX}/usr/lib/swift/linux" + # Print Installed Swift Version RUN swift --version From c138b0f50ec5ad0a57fe845f82a71515ca33ae90 Mon Sep 17 00:00:00 2001 From: Kenta Kubo <601636+kkebo@users.noreply.github.com> Date: Wed, 3 Jun 2026 20:26:46 +0900 Subject: [PATCH 13/13] Fix missing `SWIFT_PREFIX` in nightly-main/ubuntu/26.04/Dockerfile --- nightly-main/ubuntu/26.04/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/nightly-main/ubuntu/26.04/Dockerfile b/nightly-main/ubuntu/26.04/Dockerfile index 91dcb68f8..41d9001a1 100644 --- a/nightly-main/ubuntu/26.04/Dockerfile +++ b/nightly-main/ubuntu/26.04/Dockerfile @@ -37,6 +37,7 @@ ARG OS_MAJOR_VER=26 ARG OS_MIN_VER=04 ARG SWIFT_VERSION=6.5 ARG SWIFT_WEBROOT=https://download.swift.org/development +ARG SWIFT_PREFIX=/opt/swift/${SWIFT_VERSION} ENV SWIFT_SIGNING_KEY=$SWIFT_SIGNING_KEY \ SWIFT_PLATFORM=$SWIFT_PLATFORM \