wasteland-club-toolchain (latest)
Published 2026-08-21 12:03:06 +00:00 by zaroz-admin
Installation
docker pull git.zaroz.cloud/stay/wasteland-club-toolchain:latestsha256:2d866398b12cc7c8e9d126560c2b5b77bc6f77e3d02c79a0a9afb21f4daea0c7Image layers
| # debian.sh --arch 'amd64' out/ 'trixie' '@1771804800' |
| RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl gnupg netbase sq wget ; apt-get dist-clean # buildkit |
| RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends git mercurial openssh-client subversion procps ; apt-get dist-clean # buildkit |
| RUN /bin/sh -c set -ex; apt-get update; apt-get install -y --no-install-recommends autoconf automake bzip2 default-libmysqlclient-dev dpkg-dev file g++ gcc imagemagick libbz2-dev libc6-dev libcurl4-openssl-dev libdb-dev libevent-dev libffi-dev libgdbm-dev libglib2.0-dev libgmp-dev libjpeg-dev libkrb5-dev liblzma-dev libmagickcore-dev libmagickwand-dev libmaxminddb-dev libncurses5-dev libncursesw5-dev libpng-dev libpq-dev libreadline-dev libsqlite3-dev libssl-dev libtool libwebp-dev libxml2-dev libxslt-dev libyaml-dev make patch unzip xz-utils zlib1g-dev ; apt-get dist-clean # buildkit |
| LABEL org.opencontainers.image.source=https://github.com/rust-lang/docker-rust |
| ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo PATH=/usr/local/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin RUST_VERSION=1.93.1 |
| RUN /bin/sh -c set -eux; arch="$(dpkg --print-architecture)"; case "$arch" in 'amd64') rustArch='x86_64-unknown-linux-gnu'; rustupSha256='20a06e644b0d9bd2fbdbfd52d42540bdde820ea7df86e92e533c073da0cdd43c'; ;; 'armhf') rustArch='armv7-unknown-linux-gnueabihf'; rustupSha256='3b8daab6cc3135f2cd4b12919559e6adaee73a2fbefb830fadf0405c20231d61'; ;; 'arm64') rustArch='aarch64-unknown-linux-gnu'; rustupSha256='e3853c5a252fca15252d07cb23a1bdd9377a8c6f3efa01531109281ae47f841c'; ;; 'i386') rustArch='i686-unknown-linux-gnu'; rustupSha256='a5db2c4b29d23e9b318b955dd0337d6b52e93933608469085c924e0d05b1df1f'; ;; 'ppc64el') rustArch='powerpc64le-unknown-linux-gnu'; rustupSha256='acd89c42b47c93bd4266163a7b05d3f26287d5148413c0d47b2e8a7aa67c9dc0'; ;; 's390x') rustArch='s390x-unknown-linux-gnu'; rustupSha256='726b7fd5d8805e73eab4a024a2889f8859d5a44e36041abac0a2436a52d42572'; ;; 'riscv64') rustArch='riscv64gc-unknown-linux-gnu'; rustupSha256='09e64cc1b7a3e99adaa15dd2d46a3aad9d44d71041e2a96100d165c98a8fd7a7'; ;; *) echo >&2 "unsupported architecture: $arch"; exit 1; ;; esac; url="https://static.rust-lang.org/rustup/archive/1.28.2/${rustArch}/rustup-init"; wget --progress=dot:giga "$url"; echo "${rustupSha256} *rustup-init" | sha256sum -c -; chmod +x rustup-init; ./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; rm rustup-init; chmod -R a+w $RUSTUP_HOME $CARGO_HOME; rustup --version; cargo --version; rustc --version; # buildkit |
| ARG LLVM_VERSION=20 |
| ARG RUST_WINDOWS_TARGET=x86_64-pc-windows-gnu |
| ENV DEBIAN_FRONTEND=noninteractive |
| RUN |2 LLVM_VERSION=20 RUST_WINDOWS_TARGET=x86_64-pc-windows-gnu /bin/sh -c apt-get update && apt-get install -y --no-install-recommends ca-certificates curl git gnupg cmake ninja-build make pkg-config python3 zip unzip 7zip mingw-w64 mingw-w64-tools && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN |2 LLVM_VERSION=20 RUST_WINDOWS_TARGET=x86_64-pc-windows-gnu /bin/sh -c set -eu; . /etc/os-release; curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key -o /usr/share/keyrings/llvm.asc; echo "deb [signed-by=/usr/share/keyrings/llvm.asc] http://apt.llvm.org/${VERSION_CODENAME}/ llvm-toolchain-${VERSION_CODENAME}-${LLVM_VERSION} main" > /etc/apt/sources.list.d/llvm.list; apt-get update; apt-get install -y --no-install-recommends "clang-${LLVM_VERSION}" "lld-${LLVM_VERSION}" "llvm-${LLVM_VERSION}"; rm -rf /var/lib/apt/lists/* # buildkit |
| RUN |2 LLVM_VERSION=20 RUST_WINDOWS_TARGET=x86_64-pc-windows-gnu /bin/sh -c set -eu; llvmbin="/usr/lib/llvm-${LLVM_VERSION}/bin"; for tool in lld-link llvm-rc llvm-mt llvm-lib clang clang++; do [ -x "${llvmbin}/${tool}" ] || { echo "toolchain image: ${tool} missing from llvm-${LLVM_VERSION}"; exit 1; }; ln -sf "${llvmbin}/${tool}" "/usr/local/bin/${tool}"; done; ln -sf "${llvmbin}/clang" /usr/local/bin/clang-cl; clang-cl --version | grep -q 'windows-msvc' || { echo "toolchain image: clang-cl is not in MSVC driver mode"; exit 1; } # buildkit |
| ENV PATH=/usr/lib/llvm-20/bin:/usr/local/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| ENV CMAKE_GENERATOR=Ninja |
| RUN |2 LLVM_VERSION=20 RUST_WINDOWS_TARGET=x86_64-pc-windows-gnu /bin/sh -c rustup target add "${RUST_WINDOWS_TARGET}" # buildkit |
| RUN |2 LLVM_VERSION=20 RUST_WINDOWS_TARGET=x86_64-pc-windows-gnu /bin/sh -c cargo install xwin --locked --version 0.9.0 # buildkit |
| RUN |2 LLVM_VERSION=20 RUST_WINDOWS_TARGET=x86_64-pc-windows-gnu /bin/sh -c xwin --accept-license --arch x86_64 --cache-dir /tmp/xwin-cache splat --output /opt/fop/msvc-sdk && rm -rf /tmp/xwin-cache # buildkit |
| ENV FOP_MSVC_SDK=/opt/fop/msvc-sdk |
| RUN |2 LLVM_VERSION=20 RUST_WINDOWS_TARGET=x86_64-pc-windows-gnu /bin/sh -c set -eu; mkdir -p /opt/fop/mingw-runtime; for dll in libgcc_s_seh-1.dll libstdc++-6.dll libwinpthread-1.dll; do path="$(x86_64-w64-mingw32-g++ -print-file-name="$dll")"; [ -f "$path" ] || { echo "toolchain image: MinGW runtime $dll not found"; exit 1; }; cp "$path" "/opt/fop/mingw-runtime/$dll"; done # buildkit |
| ENV MINGW_RUNTIME_DIR=/opt/fop/mingw-runtime |
| ARG F4SE_SDK_URL=https://git.zaroz.cloud/api/packages/stay/generic/f4se-sdk/0.7.9/f4se_0_07_09.tar.gz |
| RUN |3 LLVM_VERSION=20 RUST_WINDOWS_TARGET=x86_64-pc-windows-gnu F4SE_SDK_URL=https://git.zaroz.cloud/api/packages/stay/generic/f4se-sdk/0.7.9/f4se_0_07_09.tar.gz /bin/sh -c set -eu; [ -n "${F4SE_SDK_URL:-}" ] || { echo "toolchain image: F4SE_SDK_URL build argument is required"; exit 1; }; mkdir -p /opt/fop/f4se-sdk /tmp/f4se; if [ -s /run/secrets/f4se_token ]; then token="$(cat /run/secrets/f4se_token)"; curl -fsSL --header "JOB-TOKEN: ${token}" "$F4SE_SDK_URL" -o /tmp/f4se/sdk.archive || curl -fsSL --header "PRIVATE-TOKEN: ${token}" "$F4SE_SDK_URL" -o /tmp/f4se/sdk.archive || curl -fsSL -u "${token}" "$F4SE_SDK_URL" -o /tmp/f4se/sdk.archive; else curl -fsSL "$F4SE_SDK_URL" -o /tmp/f4se/sdk.archive; fi; archive=/tmp/f4se/sdk.archive; if tar -tzf "$archive" >/dev/null 2>&1; then tar -xzf "$archive" -C /opt/fop/f4se-sdk; elif unzip -tqq "$archive" >/dev/null 2>&1; then unzip -q "$archive" -d /opt/fop/f4se-sdk; elif 7za t "$archive" >/dev/null 2>&1; then 7za x -o/opt/fop/f4se-sdk "$archive" >/dev/null; else echo "toolchain image: $F4SE_SDK_URL is not a readable tar.gz, zip or 7z archive"; exit 1; fi; rm -rf /tmp/f4se; root="$(dirname "$(find /opt/fop/f4se-sdk -type d -name f4se_common -print -quit)")"; [ -n "$root" ] && [ -d "$root/f4se" ] || { echo "toolchain image: no F4SE SDK source tree inside the archive"; exit 1; }; ln -sfn "$root" /opt/fop/f4se-sdk/current # buildkit |
| ENV F4SE_SDK=/opt/fop/f4se-sdk/current |
| COPY tools/fetch-commonlibf4.sh tools/fetch-rmlui.sh tools/fetch-freetype.sh tools/fetch-lunasvg.sh /tmp/fetch/ # buildkit |
| COPY clients/fop-f4se/patches /tmp/fetch-patches/patches # buildkit |
| COPY clients/fop-f4se/vendor/patches /tmp/fetch-patches/vendor-patches # buildkit |
| RUN |3 LLVM_VERSION=20 RUST_WINDOWS_TARGET=x86_64-pc-windows-gnu F4SE_SDK_URL=https://git.zaroz.cloud/api/packages/stay/generic/f4se-sdk/0.7.9/f4se_0_07_09.tar.gz /bin/sh -c set -eu; mkdir -p /opt/fop/vendor; mkdir -p /tmp/fake-repo/tools /tmp/fake-repo/clients/fop-f4se/vendor; cp /tmp/fetch/*.sh /tmp/fake-repo/tools/; cp -r /tmp/fetch-patches/patches /tmp/fake-repo/clients/fop-f4se/patches; cp -r /tmp/fetch-patches/vendor-patches /tmp/fake-repo/clients/fop-f4se/vendor/patches; VENDOR=/opt/fop/vendor/commonlibf4 /tmp/fake-repo/tools/fetch-commonlibf4.sh; VENDOR=/opt/fop/vendor/rmlui /tmp/fake-repo/tools/fetch-rmlui.sh; VENDOR=/opt/fop/vendor/freetype /tmp/fake-repo/tools/fetch-freetype.sh; VENDOR=/opt/fop/vendor/lunasvg /tmp/fake-repo/tools/fetch-lunasvg.sh; rm -rf /tmp/fake-repo /tmp/fetch /tmp/fetch-patches # buildkit |
| RUN |3 LLVM_VERSION=20 RUST_WINDOWS_TARGET=x86_64-pc-windows-gnu F4SE_SDK_URL=https://git.zaroz.cloud/api/packages/stay/generic/f4se-sdk/0.7.9/f4se_0_07_09.tar.gz /bin/sh -c git config --system --add safe.directory '*' # buildkit |
| WORKDIR /build |
Labels
| Key | Value |
|---|---|
| org.opencontainers.image.source | https://github.com/rust-lang/docker-rust |
Details
Versions (3)
View all