summaryrefslogblamecommitdiffstats
path: root/rust/MAKEPKG
blob: 7fbb4033898569086402bc3801b842f7d4938b2a (plain) (tree)




























































































                                                                                                        
#!/bin/mkpkg
# description: Rust programming language
# url: https://www.rust-lang.org/

name=rust
version=1.94.1
_bootstrap=1.93.0
_date=2026-01-22
release=1
depends=(llvm)
makedeps=(cmake ninja python3 gcc-compat)
source=(
    https://static.rust-lang.org/dist/rustc-$version-src.tar.xz
    https://static.rust-lang.org/dist/$_date/rust-std-$_bootstrap-x86_64-unknown-linux-musl.tar.xz
    https://static.rust-lang.org/dist/$_date/rustc-$_bootstrap-x86_64-unknown-linux-musl.tar.xz
    https://static.rust-lang.org/dist/$_date/cargo-$_bootstrap-x86_64-unknown-linux-musl.tar.xz
    system.diff
    musl-no-crt-static.patch
)
sha256sums=(
    "174fce10ce012317ca995810296d8af199318838180b03d68a853e0f02d4b571"
    "874658d2ced1ed2b9bf66c148b78a2e10cad475d0a4db32e68a08900905b89b8"
    "24a59e5c6807b07202d4c8021f505d46aa6504897d0c8e7ecba2b5f0f221afd8"
    "1eee0f6752a31430dc7cf16718de55ef7ad45882cc4c05fa97f1ef280af61135"
    "fdfd2b449aacd417921359db8bb3eb66944313485c72fde0a942230f2b19f55e"
    "8b7d3beb08cc22a4477b238eff22d91b249ea4c5344911f6fc3c279342538e35"
)
extract() {
    cp system.diff $SRC/ 
    cp musl-no-crt-static.patch $SRC/ 
    tar -xf $PKGMK_SOURCE_DIR/rustc-$version-src.tar.xz -C $SRC

    mkdir -p $SRC/rustc-$version-src/build/cache/$_date
    cp rust-std-$_bootstrap-x86_64-unknown-linux-musl.tar.xz $SRC/rustc-$version-src/build/cache/$_date/
    cp rustc-$_bootstrap-x86_64-unknown-linux-musl.tar.xz $SRC/rustc-$version-src/build/cache/$_date/
    cp cargo-$_bootstrap-x86_64-unknown-linux-musl.tar.xz $SRC/rustc-$version-src/build/cache/$_date/
}
build() {
    cd rustc-$version-src

    # Remove musl self-contained CRT handling and musl-root requirement
    # (adapted from arachsys: use system CRT objects directly)
    patch -p1 -i $SRC/system.diff
    patch -p1 -i $SRC/musl-no-crt-static.patch

    cat > bootstrap.toml <<EOF
change-id = 148795
[llvm]
link-shared = true
use-libcxx = true
static-libstdcpp = false
[build]
build = "x86_64-unknown-linux-musl"
host = ["x86_64-unknown-linux-musl"]
target = ["x86_64-unknown-linux-musl"]
docs = false
extended = true
tools = ["cargo", "rustfmt", "clippy", "rust-analyzer"]
vendor = true
[install]
prefix = "/usr"
[rust]
channel = "stable"
codegen-units = 1
lto = "thin"
llvm-libunwind = "system"
[target.x86_64-unknown-linux-musl]
llvm-config = "/usr/bin/llvm-config"
crt-static = false
cc = "clang"
cxx = "clang++"
ar = "llvm-ar"
ranlib = "llvm-ranlib"
linker = "clang"
rustflags = ["-C", "link-arg=-lunwind"]
EOF
    python3 x.py build
    DESTDIR=$PKG python3 x.py install

    rm -rf $PKG/usr/share/doc
    rm -f $PKG/usr/lib/rustlib/install.log
    rm -f $PKG/usr/lib/rustlib/uninstall.sh
    rm -f $PKG/usr/lib/rustlib/manifest-*
    rm -f $PKG/usr/lib/rustlib/components
    rm -f $PKG/usr/lib/rustlib/rust-installer-version
}

signify() {
    untrusted comment: public key
    RWTZ9IduCSQ/mL8337TEUinPwT92xFEUpD92hkS7IxcOnzTt9QdpohT3
}

# vim: filetype=sh