summaryrefslogtreecommitdiffstats
path: root/rust/MAKEPKG
blob: 7fbb4033898569086402bc3801b842f7d4938b2a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/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