blob: 1921a4306d53db974e3e5d7f23507c7bf738d583 (
plain) (
tree)
|
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Contributor: Shiz <hi@shiz.me>
# Contributor: Jeizsm <jeizsm@gmail.com>
# Maintainer: Samuel Holland <samuel@sholland.org>
pkgname=rust
pkgver=1.31.1
_bootcargover=0.31.0
_bootver=1.30.1
_llvmver=6
pkgrel=0
pkgdesc="The Rust Programming Language"
url="https://www.rust-lang.org"
arch="all"
license="(Apache-2.0 OR MIT) AND (NCSA OR MIT) AND BSD-2-Clause AND BSD-3-Clause"
depends="$pkgname-stdlib=$pkgver-r$pkgrel gcc musl-dev"
makedepends="
curl-dev
libgit2-dev
libssh2-dev
llvm$_llvmver-dev
llvm$_llvmver-test-utils
openssl-dev
python3
zlib-dev
"
subpackages="
$pkgname-dbg
$pkgname-stdlib
$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
rls
rustfmt
"
source="https://static.rust-lang.org/dist/rustc-$pkgver-src.tar.xz
https://distfiles.adelielinux.org/source/rust/cargo-$_bootcargover-$CBUILD.tar.xz
https://distfiles.adelielinux.org/source/rust/rust-std-$_bootver-$CBUILD.tar.xz
https://distfiles.adelielinux.org/source/rust/rustc-$_bootver-$CBUILD.tar.xz
0001-Don-t-pass-CFLAGS-to-the-C-compiler.patch
0002-Fix-LLVM-build.patch
0003-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch
0004-Require-static-native-libraries-when-linking-static-.patch
0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch
0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch
0007-Add-powerpc-unknown-linux-musl-target.patch
0008-Fix-powerpc64-ELFv2-big-endian-struct-passing-ABI.patch
0009-Use-the-ELFv2-ABI-on-powerpc64-musl.patch
0010-Add-powerpc64-unknown-linux-musl-target.patch
0011-rustc_data_structures-use-libc-types-constants-in-fl.patch
0012-runtest-Fix-proc-macro-tests-on-musl-hosts.patch
0013-Fix-double_check-tests-on-big-endian-targets.patch
0014-test-invalid_const_promotion-Accept-SIGTRAP-as-a-val.patch
0015-test-linkage-visibility-Ensure-symbols-are-visible-t.patch
0016-x.py-Use-python3-instead-of-python.patch
0017-test-target-feature-gate-Only-run-on-relevant-target.patch
0018-test-use-extern-for-plugins-Don-t-assume-multilib.patch
0019-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch
0020-Ignore-broken-and-non-applicable-tests.patch
0021-Link-stage-2-tools-dynamically-to-libstd.patch
0022-Move-debugger-scripts-to-usr-share-rust.patch
0023-Add-foxkit-target-specs.patch
0030-liblibc-linkage.patch
0031-liblibc-1b130d4c349d.patch
0040-rls-atomics.patch
"
builddir="$srcdir/rustc-$pkgver-src"
_rlibdir="/usr/lib/rustlib/$CTARGET/lib"
prepare() {
cd "$builddir"
default_prepare
$srcdir/cargo-$_bootcargover-$CBUILD/install.sh \
--destdir=$srcdir/prebuilt \
--prefix=/ \
--disable-ldconfig
$srcdir/rust-std-$_bootver-$CBUILD/install.sh \
--destdir=$srcdir/prebuilt \
--prefix=/ \
--disable-ldconfig
$srcdir/rustc-$_bootver-$CBUILD/install.sh \
--destdir=$srcdir/prebuilt \
--prefix=/ \
--disable-ldconfig
}
build() {
cd "$builddir"
cat > config.toml <<- EOF
[build]
build = "$CBUILD"
host = [ "$CHOST" ]
target = [ "$CTARGET" ]
cargo = "$srcdir/prebuilt/bin/cargo"
rustc = "$srcdir/prebuilt/bin/rustc"
submodules = false
python = "python3"
locked-deps = true
vendor = true
extended = true
tools = [ "analysis", "cargo", "clippy", "rls", "rustfmt", "src" ]
[install]
prefix = "/usr"
[rust]
codegen-units = 1
debuginfo = true
debuginfo-lines = true
debuginfo-only-std = false
debuginfo-tools = true
use-jemalloc = false
backtrace = true
channel = "stable"
rpath = false
[target.$CTARGET]
cc = "$CTARGET-gcc"
cxx = "$CTARGET-g++"
linker = "$CTARGET-gcc"
llvm-config = "/usr/lib/llvm$_llvmver/bin/llvm-config"
crt-static = false
EOF
LIBGIT2_SYS_USE_PKG_CONFIG=1 \
LLVM_LINK_SHARED=1 \
RUST_BACKTRACE=1 \
./x.py build -j ${JOBS:-2}
}
check() {
cd "$builddir"
./x.py test -j ${JOBS:-2} --no-doc --no-fail-fast \
src/test/codegen \
src/test/codegen-units \
src/test/compile-fail \
src/test/compile-fail-fulldeps \
src/test/incremental \
src/test/incremental-fulldeps \
src/test/mir-opt \
src/test/pretty \
src/test/run-fail \
src/test/run-fail/pretty \
src/test/run-fail-fulldeps \
src/test/run-fail-fulldeps/pretty \
src/test/run-make \
src/test/run-make-fulldeps \
src/test/run-pass \
src/test/run-pass/pretty \
src/test/run-pass-fulldeps \
src/test/run-pass-fulldeps/pretty \
src/test/ui \
src/test/ui-fulldeps
}
package() {
cd "$builddir"
DESTDIR="$pkgdir" ./x.py install
rm "$pkgdir"/usr/lib/*.so \
"$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 \
"$pkgdir"/usr/share/doc/rust/*.old
}
stdlib() {
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-stdlib=$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/share/rust/gdb_*.py "$subpkgdir"/usr/share/rust || true
}
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 || true
}
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"
depends="$pkgname-stdlib=$pkgver-r$pkgrel $pkgname"
_mv "$pkgdir"/usr/bin/cargo "$subpkgdir"/usr/bin
}
_cargo_clippy() {
pkgdesc="A collection of Rust lints (cargo plugin)"
depends="$pkgname-stdlib=$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-stdlib=$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
}
rls() {
pkgdesc="The Rust language server"
license="Apache-2.0 OR MIT"
depends="$pkgname-stdlib=$pkgver-r$pkgrel"
_mv "$pkgdir"/usr/bin/rls "$subpkgdir"/usr/bin
}
rustfmt() {
pkgdesc="Format Rust code"
depends="$pkgname-stdlib=$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="d6688711452295c41468af214f036499074d82fbeedc3f03560275219c2fae910e623e38e3210176d86f78ba5533ea098da5ff21532c8ad1a5aac132bb74ee02 rustc-1.31.1-src.tar.xz
c414a250edcf5b9c390137a01dc728f22e3067adab43f91bc06a4bed7580bf0e6171e4a844167b5c4bc13774c9ef9e33e1f5cab018dac8b3df6d630a9a163e2c cargo-0.31.0-powerpc64-foxkit-linux-musl.tar.xz
c6eeb91d7de95401d118d287435ac24e014711f73e86fab7da0a082d7cf03abfe137563cfe6a88b1309cdb0fec11acfceac01cc3bbc2e83650026230ce0cf079 rust-std-1.30.1-powerpc64-foxkit-linux-musl.tar.xz
f6099a632de0b4201c3d4639a9c32244fb2fccee891af13fc7efdbaf546e37a67c80b0bce92a19ad746349c59a3627fded64ebcace34fb33c2773bb4aa799cfb rustc-1.30.1-powerpc64-foxkit-linux-musl.tar.xz
acab7c5ffa73cd83cf3ae23e69d2c05ccc3ca03aa4d5a15179af76f2e75b7c5a1bc8d2969c0a9a4b5ad36a50a8cce283e62db878797be6d0da252b414de004cd 0001-Don-t-pass-CFLAGS-to-the-C-compiler.patch
f9773277e91e91d0bd6749890b8d332a86522927d90548af02892c6d01b8fbb3b234993eec8e5b8d6a3b6f1cec310a112e274f47f70d30829ca61a0da8d45bb5 0002-Fix-LLVM-build.patch
9e87964d41e14f70acc1961a0162bbf3ebca73f1c2b2842c3b1c8b65776466c9299d6974fc6b94a4e06547ae8ce638c28cdedf24eeb2616976f9dd727b989c13 0003-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch
b08e247785b6b94c24e9921665c0a80a21d6802cdcfb67cf381ff8c674388156fc6d88f8206c2d1eed152f4ad3333bf4a16cdd1c3376b97500f96c437e967ecb 0004-Require-static-native-libraries-when-linking-static-.patch
39c2f63aaf567e539ef803afa4e02d9f373df33167306dabb303044854c95bcc52a8b0fe02a2ff186d3d37fb25ac6ceee2bea25beddb0b8d0510b41dcbfb781a 0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch
80a48ba90dce672bd47dba4358e705f0585b17af6a9236887c0bf79d229fe7250b6d5cf54c2630c132721be890cf6098376aac408ac2d3feb5fd8b5ec0678446 0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch
71fc70a70ee42fed66ea7abcccffd46c02b877f716ccb366d68c8b252290366aa3d4819bdf6ce43cf8327088ff9ff0cac9444d9fab8b4d6645dfc1a018bd5285 0007-Add-powerpc-unknown-linux-musl-target.patch
54e7b24d3da6905d02252dbd3011a16c52c1fae6922997dcccf034b5230025e05bb0d029a5fe043c186a39f8908e8e44f9a857db943f1c49d804bcb97cca71b0 0008-Fix-powerpc64-ELFv2-big-endian-struct-passing-ABI.patch
088d509715de07000c815005fd513d4bb43c5a273dab1cec54c3617c1d342d1eff7d4d2edc48f20b80aec8b3e380f7480d7336b9c7dc4b89b78a31a88e04eb09 0009-Use-the-ELFv2-ABI-on-powerpc64-musl.patch
f39578109d1591759aff29cc1a4127f1456c60ed05993704574a9c1e2331243baa85e3f66ba4634f57efd964b1d11a4539a3ab3a1fdab9c3163d91c658e04bf2 0010-Add-powerpc64-unknown-linux-musl-target.patch
11ee5b81d354b36369eb5d7f57bcde04a350f1ca5e6034d04eae6c5064dad37b05a26ca44f99499f3f7664c11beba0aafbc1adb6807a21bcce878717659d04b3 0011-rustc_data_structures-use-libc-types-constants-in-fl.patch
8ff473da3fd668ee36826e206245c7b6d20c671b4016c9a9d5e1d22af05f8d4d724543942a53ab38dd9c7bb6e4c3eff33daec4a84b0ee333b25b007f610b4b49 0012-runtest-Fix-proc-macro-tests-on-musl-hosts.patch
1ce5797d0b9a0eb24d203a437b999ac9691cf741086645864b3a0dcf134f31c31e68e6e1618f44d3bd3c3743c067713c472e93c69f551d14f2e0233b6f10d2cd 0013-Fix-double_check-tests-on-big-endian-targets.patch
f72c803cd531e6c85c37993214a89a8e49d776a6f50405956d6b453cc9036e596eeac4da36c564fc9388908237fe37291dfc6a0d00ed1d5f83186371f8ad6c07 0014-test-invalid_const_promotion-Accept-SIGTRAP-as-a-val.patch
861402c0468438428aefdbcec13c82678ba280816f5482a5707805caa37ddabf8df95d894dd0ab99d3e0b09de3b0a602cb29e62afd479cedf6112950ed174f9a 0015-test-linkage-visibility-Ensure-symbols-are-visible-t.patch
1dec944575e8bb6fc7ad910e2dae4d694a2571b36652a27a9b7ee11c40018d39d41f89bf827d909a67ff4d16d0970d1c753b24dfd5dbd0362028dcf12f60dd61 0016-x.py-Use-python3-instead-of-python.patch
9633256006c28106d9b5e560e4cd4ee72de700a0f54d0c5fd1576760213e674f3c123b83a547bbdf9cdfde92ba6d10edf3cb598f3ad67db6e20b11d24fb49d54 0017-test-target-feature-gate-Only-run-on-relevant-target.patch
3ab705f45cc75507c5a8fbf7c8520c7231d7d1870e5dc5da3d822e50f28a6f242ba31e712f98f72ff96143010812212cdc99f8b1b197a680bbe249dfb9779d74 0018-test-use-extern-for-plugins-Don-t-assume-multilib.patch
572669f940c93b57b1f02161685bd3e35e2757bfd1f1d2e6ca5fd7d6e80c6733917a2c28205c4bc8741eae01bd790fe14996ba857884494a6084f4670819e43d 0019-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch
e1cd1bc3a363ce214e887c4c61e233d388c3b75155ae4a84e8381bdccee5897ddffc992bc22dcdb6316b64516236ae4b07d06ff331e9e031c524196b0e5c40d5 0020-Ignore-broken-and-non-applicable-tests.patch
b05ef2ddd53262e46a4a6148db25b0903347e531f94a1ec194aafd31e49b4559564edbe4842f82b457d9c700723474fa29119f57969c0208199d5f2126ce6509 0021-Link-stage-2-tools-dynamically-to-libstd.patch
34ce4f9227a0e58113e8871db78681d1a0180f4af9de08b17c7ba15d13f47d189e2b0c66cb203ddfee8ac29131b6e5bc7ba8fd699d63847ab2a55973503788bc 0022-Move-debugger-scripts-to-usr-share-rust.patch
6204dfc16ca27bda4c77a5f9a3805af9995e24c8b9cda6d45d0860c3625e937ec6e871a3ccec6357ab4cd52b0e73450897960102bb1e6f1ce80ae95780a8dbea 0023-Add-foxkit-target-specs.patch
f94abe390798b968bccfba1c908ab5895220ed0d167314b790a9c28b10cac81fb2e3b08760b4e8551ad5a5d02cd052d3d0d647ad8f8634e97f4d3b0470a21c42 0030-liblibc-linkage.patch
875f0b676c61c1ec67894fc7866233869ced8fc975960b8b99585bad370066f9a6bf591590a745c73a0bcc93b9f7fda74a703829c50d04b80846aecc92ae725a 0031-liblibc-1b130d4c349d.patch
41ab9d6f361ee2fba267c9836c1a382dc86101d1bfb59cd942be8e8fc526ad65d845c9395cba7f760808d345d107f32e75af9057d67c450b8fbdd8a73636fb2e 0040-rls-atomics.patch"
|