blob: 1e9ea02a06e243f5a6e54c8f56edfbe19e28ae1f (
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
|
# Maintainer: Samuel Holland <samuel@sholland.org>
pkgname=rust
pkgver=1.70.0
_bootver=1.69.0-r0
_llvmver=14
pkgrel=0
pkgdesc="The Rust Programming Language"
url="https://www.rust-lang.org"
arch="all"
options="!check" # Failures on aarch64 and ppc64.
license="(Apache-2.0 OR MIT) AND (NCSA OR MIT) AND BSD-2-Clause AND BSD-3-Clause"
depends="$pkgname-std=$pkgver-r$pkgrel gcc musl-dev"
makedepends="
curl-dev
llvm$_llvmver-dev
llvm$_llvmver-test-utils
openssl-dev
python3
cargo-bootstrap=$_bootver
rust-bootstrap=$_bootver
rustfmt-bootstrap=$_bootver
zlib-dev
"
provides="$pkgname-bootstrap=$pkgver-r$pkgrel"
subpackages="
$pkgname-dbg
$pkgname-std
$pkgname-analysis
$pkgname-doc
$pkgname-gdb::noarch
$pkgname-lldb::noarch
$pkgname-src::noarch
cargo
cargo-clippy:_cargo_clippy
cargo-fmt:_cargo_fmt
cargo-doc:_cargo_doc:noarch
cargo-bash-completion:_cargo_bashcomp:noarch
cargo-zsh-completion:_cargo_zshcomp:noarch
rustfmt
"
source="https://static.rust-lang.org/dist/rustc-$pkgver-src.tar.xz
0001-Fix-LLVM-build.patch
0002-Fix-linking-to-zlib-when-cross-compiling.patch
0003-Fix-rustdoc-when-cross-compiling-on-musl.patch
0004-Remove-musl_root-and-CRT-fallback-from-musl-targets.patch
0005-Prefer-libgcc_eh-over-libunwind-for-musl.patch
0006-Link-libssp_nonshared.a-on-all-musl-targets.patch
0007-test-failed-doctest-output-Fix-normalization.patch
0008-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch
0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch
0010-Ignore-broken-and-non-applicable-tests.patch
0011-Link-stage-2-tools-dynamically-to-libstd.patch
0012-Move-debugger-scripts-to-usr-share-rust.patch
0013-Add-foxkit-target-specs.patch
powerpc-atomics.patch
"
builddir="$srcdir/rustc-$pkgver-src"
_rlibdir="/usr/lib/rustlib/$CTARGET/lib"
build() {
cat > config.toml <<- EOF
changelog-seen = 2
[build]
doc-stage = 2
build-stage = 2
test-stage = 2
build = "$CBUILD"
host = [ "$CHOST" ]
target = [ "$CTARGET" ]
cargo = "/usr/bin/cargo"
rustc = "/usr/bin/rustc"
rustfmt = "/usr/bin/rustfmt"
docs = true
compiler-docs = false
submodules = false
python = "python3"
locked-deps = true
vendor = true
extended = true
tools = [ "analysis", "cargo", "clippy", "rustfmt", "src" ]
verbose = 1
sanitizers = false
profiler = false
cargo-native-static = false
[install]
prefix = "/usr"
[rust]
optimize = true
debug = false
codegen-units = 1
debuginfo-level = 2
debuginfo-level-rustc = 0
debuginfo-level-tests = 0
backtrace = true
incremental = false
parallel-compiler = false
channel = "stable"
description = "Adelie ${pkgver}-r${pkgrel}"
rpath = false
verbose-tests = true
optimize-tests = true
codegen-tests = true
dist-src = false
lld = false
use-lld = false
llvm-tools = false
backtrace-on-ice = true
remap-debuginfo = false
jemalloc = false
llvm-libunwind = "no"
new-symbol-mangling = true
[target.$CTARGET]
cc = "$CTARGET-gcc"
cxx = "$CTARGET-g++"
ar = "ar"
ranlib = "ranlib"
linker = "$CTARGET-gcc"
llvm-config = "/usr/lib/llvm$_llvmver/bin/llvm-config"
crt-static = false
[dist]
src-tarball = false
compression-formats = [ "xz" ]
EOF
LLVM_LINK_SHARED=1 \
RUST_BACKTRACE=1 \
python3 x.py dist -j ${JOBS:-2}
}
check() {
LLVM_LINK_SHARED=1 \
python3 x.py test -j ${JOBS:-2} --no-doc --no-fail-fast || true
}
package() {
cd "$builddir"/build/dist
tar xf rust-$pkgver-$CTARGET.tar.xz
rust-$pkgver-$CTARGET/install.sh \
--destdir="$pkgdir" \
--prefix=/usr \
--sysconfdir="$pkgdir"/etc \
--disable-ldconfig
tar xf rust-src-$pkgver.tar.xz
rust-src-$pkgver/install.sh \
--destdir="$pkgdir" \
--prefix=/usr \
--disable-ldconfig
rm "$pkgdir"/usr/lib/rustlib/components \
"$pkgdir"/usr/lib/rustlib/install.log \
"$pkgdir"/usr/lib/rustlib/manifest-* \
"$pkgdir"/usr/lib/rustlib/rust-installer-version \
"$pkgdir"/usr/lib/rustlib/uninstall.sh
}
std() {
pkgdesc="Standard library for Rust"
depends="musl-utils"
_mv "$pkgdir"$_rlibdir/*.so "$subpkgdir"$_rlibdir
mkdir -p "$subpkgdir"/etc/ld.so.conf.d
echo "$_rlibdir" > "$subpkgdir"/etc/ld.so.conf.d/$pkgname.conf
}
analysis() {
pkgdesc="Compiler analysis data for the Rust standard library"
depends="$pkgname=$pkgver-r$pkgrel $pkgname-std=$pkgver-r$pkgrel"
_mv "$pkgdir"${_rlibdir%/*}/analysis "$subpkgdir"${_rlibdir%/*}
}
gdb() {
pkgdesc="GDB pretty printers for Rust"
license="Apache-2.0 OR MIT"
depends="$pkgname gdb"
install_if="$pkgname=$pkgver-r$pkgrel gdb"
_mv "$pkgdir"/usr/bin/rust-gdb "$subpkgdir"/usr/bin
_mv "$pkgdir"/usr/bin/rust-gdbgui "$subpkgdir"/usr/bin
_mv "$pkgdir"/usr/share/rust/gdb_*.py "$subpkgdir"/usr/share/rust
}
lldb() {
pkgdesc="LLDB pretty printers for Rust"
license="Apache-2.0 OR MIT"
depends="$pkgname lldb py3-lldb"
install_if="$pkgname=$pkgver-r$pkgrel lldb"
_mv "$pkgdir"/usr/bin/rust-lldb "$subpkgdir"/usr/bin
_mv "$pkgdir"/usr/share/rust/lldb_*.py "$subpkgdir"/usr/share/rust
}
src() {
pkgdesc="$pkgdesc (source code)"
depends=""
_mv "$pkgdir"/usr/lib/rustlib/src/rust "$subpkgdir"/usr/src
rmdir -p "$pkgdir"/usr/lib/rustlib/src 2>/dev/null || true
mkdir -p "$subpkgdir"/usr/lib/rustlib/src
ln -s ../../../src/rust "$subpkgdir"/usr/lib/rustlib/src/rust
}
cargo() {
pkgdesc="The Rust package manager"
provides="cargo-bootstrap=$pkgver-r$pkgrel"
depends="$pkgname-std=$pkgver-r$pkgrel $pkgname"
_mv "$pkgdir"/usr/bin/cargo "$subpkgdir"/usr/bin
}
_cargo_clippy() {
pkgdesc="A collection of Rust lints (cargo plugin)"
depends="$pkgname-std=$pkgver-r$pkgrel cargo"
_mv "$pkgdir"/usr/bin/cargo-clippy \
"$pkgdir"/usr/bin/clippy-driver \
"$subpkgdir"/usr/bin
}
_cargo_fmt() {
pkgdesc="Format Rust code (cargo plugin)"
depends="$pkgname-std=$pkgver-r$pkgrel cargo rustfmt"
install_if="cargo=$pkgver-r$pkgrel rustfmt=$pkgver-r$pkgrel"
_mv "$pkgdir"/usr/bin/cargo-fmt "$subpkgdir"/usr/bin
}
_cargo_bashcomp() {
pkgdesc="Bash completion for cargo"
license="Apache-2.0 OR MIT"
depends=""
install_if="cargo=$pkgver-r$pkgrel bash-completion"
_mv "$pkgdir"/etc/bash_completion.d/cargo \
"$subpkgdir"/usr/share/bash-completion/completions
rmdir -p "$pkgdir"/etc/bash_completion.d 2>/dev/null || true
}
_cargo_zshcomp() {
pkgdesc="ZSH completion for cargo"
license="Apache-2.0 OR MIT"
depends=""
install_if="cargo=$pkgver-r$pkgrel zsh"
_mv "$pkgdir"/usr/share/zsh/site-functions/_cargo \
"$subpkgdir"/usr/share/zsh/site-functions/_cargo
rmdir -p "$pkgdir"/usr/share/zsh/site-functions 2>/dev/null || true
}
_cargo_doc() {
pkgdesc="The Rust package manager (documentation)"
license="Apache-2.0 OR MIT"
depends=""
install_if="cargo=$pkgver-r$pkgrel docs"
# XXX: This is hackish!
_mv "$pkgdir"/../$pkgname-doc/usr/share/man/man1/cargo* \
"$subpkgdir"/usr/share/man/man1
}
rustfmt() {
pkgdesc="Format Rust code"
provides="rustfmt-bootstrap=$pkgver-r$pkgrel"
depends="$pkgname-std=$pkgver-r$pkgrel"
_mv "$pkgdir"/usr/bin/rustfmt "$subpkgdir"/usr/bin
}
_mv() {
local dest; for dest; do true; done # get last argument
mkdir -p "$dest"
mv "$@"
}
sha512sums="21b35185fdcc35a059ee5ef6dca2b68f5f1d199e97f425a571cfc318a852c36a57bccf68e7673b4cb7cd83128f30d0b3eb93009a978f3ba3909b7eee50d40631 rustc-1.70.0-src.tar.xz
e1f94a95ad931fe490f42aa0569f4c3ec6d8a8240c4748dad6f042ec7b23e8ef8c6292f75ba33e82695512fb72e63b013749c3ea9ca79d13586e28abf46a0ded 0001-Fix-LLVM-build.patch
95d76d4de26cfb49968e50f78d772d5229bab42bb3d5126c844f61d17a5ac5e8bb8f0fbc06c8f45e64eceda760d7654fb8bdf70e88708dad749c5562f3923974 0002-Fix-linking-to-zlib-when-cross-compiling.patch
887babf6ca5cb969fdf91e5930fa966aa7979246a4031c749233997f919df881f198ad8a22e8b260ee841b52ba46de83f080b99bdf2a44ba864854cf3bfdd437 0003-Fix-rustdoc-when-cross-compiling-on-musl.patch
e0e468cece8212fbaad1aebca47245c080278891de52ed550f93584f5d82d5825e4a2315870f05948414ddbcf970dcce8558463e71b937d5cec67d0302d42b76 0004-Remove-musl_root-and-CRT-fallback-from-musl-targets.patch
33c1d5b2f051f4ccfde4cdd9cfed4a97b23ccc50aac2eed300b989fff8e1ad55e0ab140c128d33fca25b5b54cfb33b948bc6a139f93d232661e07bf4eba1dc24 0005-Prefer-libgcc_eh-over-libunwind-for-musl.patch
3cf4663242bfd6c67a644a2c6e9c49d26fb2dc93b8907daa86880adb9f57a3db222121a68004aae3f048da59d123ace301e28c63ea80a80f61f4b63f8089e497 0006-Link-libssp_nonshared.a-on-all-musl-targets.patch
f0886d31ea28f37359ade3a201f56e48d7bd0d12f5d3e0aeac6044acf0d3bf27a18788ddf31c4ac1243acfe2e1f9e964de9a328997449f6f0eb4ac2fd5e4f316 0007-test-failed-doctest-output-Fix-normalization.patch
bd032bda35b5881e04ea3fe335818fee63087ca26f76f2c1e494c135d9186de021e77a8c36d47f60dffe4e85217ab24775601031d6608a08559d4b27f1ca6da8 0008-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch
390e3b3569054ee4719959c0fc9a4aa1b28bae9f4cb54abae28f0313caa7c9ee2393e0877d6ed49ca54673fa162ab8e29113d97ed8f758d0f541cf57aa55e9cb 0009-test-use-extern-for-plugins-Don-t-assume-multilib.patch
faa6f2c3c94140798b476a794d77a304c0f3891a65c1ffe99666606cfe822d5651af6b8c011265a7f1114ade355994761d71aac550b8dd8617f44d500435e8e9 0010-Ignore-broken-and-non-applicable-tests.patch
44839f6215d66050cefe18223917f98ea36691bbf0d2457e4dfee6918f150fff7b1579cc1a32965c9f859d1aee185f9f9807371103c29460d2924881bb87f28a 0011-Link-stage-2-tools-dynamically-to-libstd.patch
fc4b384ccff9d4a2a8e407c9944b16bd6d69a8c69f8cbe9f366793a1d1198bdc2b7c82f58706240bd8c418d4bdc88b73d1656ba2a1f0a7b280e53e3ea40fb3fb 0012-Move-debugger-scripts-to-usr-share-rust.patch
f75b4482f22258db2f4ce8704d2485e7ea8546c5481d2d3683696c223d4f31ecf43303cd9e115a9ef424f82cc67af4eff55888848752c72d631e555f0465f9d9 0013-Add-foxkit-target-specs.patch
92456019da825af8a68f4b37fc458099768d12c399fd33d73a84a043c0b28475022eadaee84ef07fb418d3d93a7dfdbda57c0b10364c96054ee5519abd9e667b powerpc-atomics.patch"
|