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/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 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 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 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.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.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.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/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-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/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.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/amazonlinux/2/Dockerfile b/nightly-6.1/amazonlinux/2/Dockerfile index 7e12833a2..edf3d71bb 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,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.1/amazonlinux/2/buildx/Dockerfile b/nightly-6.1/amazonlinux/2/buildx/Dockerfile index 5aa8ff074..11d21d08b 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,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.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..d97925383 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,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.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-6.2/amazonlinux/2/Dockerfile b/nightly-6.2/amazonlinux/2/Dockerfile index 6f7da03f4..ccfa83bc2 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,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.2/amazonlinux/2/buildx/Dockerfile b/nightly-6.2/amazonlinux/2/buildx/Dockerfile index 6be7d1842..427b2bb7c 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,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.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..bfa1d8a24 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,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.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 diff --git a/nightly-6.3/amazonlinux/2/Dockerfile b/nightly-6.3/amazonlinux/2/Dockerfile index fd3bff6ce..f3a1c9e5f 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,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.3/amazonlinux/2/buildx/Dockerfile b/nightly-6.3/amazonlinux/2/buildx/Dockerfile index 9fb68b337..a4faad599 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,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.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..529a0a0f7 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,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.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 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 diff --git a/nightly-main/amazonlinux/2/Dockerfile b/nightly-main/amazonlinux/2/Dockerfile index 5d90bfee9..f8c38d192 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.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 \ 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-main/amazonlinux/2/buildx/Dockerfile b/nightly-main/amazonlinux/2/buildx/Dockerfile index 3e560b448..4ecc06194 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.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. @@ -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-main/amazonlinux/2023/Dockerfile b/nightly-main/amazonlinux/2023/Dockerfile index 4d27b2a6c..659c6a50e 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.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" @@ -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..262f750bc 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.5 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/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/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 diff --git a/nightly-main/rhel-ubi/10/Dockerfile b/nightly-main/rhel-ubi/10/Dockerfile index 4e1010e1e..df8e6763a 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.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 \ 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..c11b00f6f 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.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. @@ -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-main/rhel-ubi/9/Dockerfile b/nightly-main/rhel-ubi/9/Dockerfile index 200d741ac..0cb5aca72 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.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 \ 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..be4559886 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.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. @@ -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-main/ubuntu/20.04/Dockerfile b/nightly-main/ubuntu/20.04/Dockerfile index 47638c5b1..a30c561f5 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.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 \ 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..7865dbb13 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.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. @@ -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..4d7f2d846 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.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 \ 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..e1fcdae37 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.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. @@ -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..ab866ec33 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.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 \ 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..034d2357f 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.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. @@ -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/ubuntu/26.04/Dockerfile b/nightly-main/ubuntu/26.04/Dockerfile index 59b9ffa8e..41d9001a1 100644 --- a/nightly-main/ubuntu/26.04/Dockerfile +++ b/nightly-main/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.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 \ 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/26.04/buildx/Dockerfile b/nightly-main/ubuntu/26.04/buildx/Dockerfile index 06123664d..9317ac50d 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.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. @@ -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