From faf258bbdadbfd1091144984954fc2e62a5adcf4 Mon Sep 17 00:00:00 2001 From: Simon Gellis Date: Fri, 20 Feb 2026 01:37:56 -0500 Subject: [PATCH] Fix broken LLVM install --- build.Dockerfile | 8 ++++++-- install-llvm.sh | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100755 install-llvm.sh diff --git a/build.Dockerfile b/build.Dockerfile index 722e770..1850317 100644 --- a/build.Dockerfile +++ b/build.Dockerfile @@ -9,8 +9,10 @@ ADD "https://github.com/joseluisq/macosx-sdks/releases/download/14.5/MacOSX14.5. RUN apt-get update && \ apt-get install -y ca-certificates COPY llvm.sources /etc/apt/sources.list.d/llvm.sources +COPY install-llvm.sh . RUN apt-get update && \ - apt-get install -y bash bzip2 clang-21 git lld-21 llvm-21 make patch xz-utils && \ + ./install-llvm.sh && \ + apt-get install -y bash bzip2 git make patch xz-utils && \ ln -s $(which clang-21) /usr/bin/clang && \ ln -s $(which clang++-21) /usr/bin/clang++ && \ ln -s $(which ld64.lld-21) /usr/bin/ld64.lld && \ @@ -19,11 +21,13 @@ RUN apt-get update && \ FROM rust:1.93-bookworm ADD --chmod=644 "https://apt.llvm.org/llvm-snapshot.gpg.key" /etc/apt/trusted.gpg.d/apt.llvm.org.asc COPY llvm.sources /etc/apt/sources.list.d/llvm.sources +COPY install-llvm.sh . RUN rustup target add x86_64-pc-windows-msvc && \ rustup target add x86_64-apple-darwin && \ rustup target add aarch64-apple-darwin && \ apt-get update && \ - apt-get install -y clang-21 lld-21 libc6-dev libasound2-dev libudev-dev genisoimage mingw-w64 && \ + ./install-llvm.sh && \ + apt-get install -y libc6-dev libasound2-dev libudev-dev genisoimage mingw-w64 && \ cargo install cargo-bundle xwin && \ xwin --accept-license splat --output xwin && \ rm -rf .xwin-cache && \ diff --git a/install-llvm.sh b/install-llvm.sh new file mode 100755 index 0000000..e96effb --- /dev/null +++ b/install-llvm.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +# Hopefully temporary script to manually install working llvm packages. +# The apt index for these is broken in bookworm, and upgrading to trixie +# would make them depend on too new of a libc version. + +# https://apt.llvm.org/bookworm/pool/main/l/llvm-toolchain-21/clang-21_21.1.5~%2B%2B20251023083151%2B45afac62e373-1~exp1~20251023083333.51_amd64.deb +PACKAGES=('clang-21' 'clang-tools-21' 'libclang-common-21-dev' 'libclang-cpp21' 'libclang-rt-21-dev' 'libclang1-21' 'libllvm21' 'lld-21' 'llvm-21' 'llvm-21-dev' 'llvm-21-linker-tools' 'llvm-21-runtime' 'llvm-21-tools') +FILES=() +URL='https://apt.llvm.org/bookworm/pool/main/l/llvm-toolchain-21' +VERSION='21.1.5~%2B%2B20251023083151%2B45afac62e373-1~exp1~20251023083333.51_amd64.deb' + +apt-get install -y curl python3 +for package in "${PACKAGES[@]}"; do + curl -O -L "$URL/${package}_$VERSION" + FILES+=("./${package}_$VERSION") +done + +apt-get install -y "${FILES[@]}" \ No newline at end of file