# Contributor: Jakub Jirutka # Contributor: Shiz # Contributor: Jeizsm # Maintainer: Samuel Holland pkgname=rust pkgver=1.36.0 _bootcargover=0.36.0 _bootver=1.35.0 _llvmver=8 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-test-use-extern-for-plugins-Don-t-assume-multilib.patch 0008-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch 0009-Ignore-broken-and-non-applicable-tests.patch 0010-Link-stage-2-tools-dynamically-to-libstd.patch 0011-Move-debugger-scripts-to-usr-share-rust.patch 0012-Add-foxkit-target-specs.patch 0030-libc-linkage.patch 0031-typenum-pmmx.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 = true debuginfo-tools = true backtrace = true channel = "stable" rpath = false jemalloc = 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 \ python3 x.py build -j ${JOBS:-2} } check() { cd "$builddir" RUST_BACKTRACE=1 \ python3 x.py test -j ${JOBS:-2} --no-doc --no-fail-fast \ src/test/codegen \ src/test/codegen-units \ src/test/compile-fail \ src/test/incremental \ src/test/mir-opt \ src/test/pretty \ src/test/run-fail \ src/test/run-fail/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" python3 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/bin/rust-gdbgui "$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="1adbb3b67d599f926dc19258e2596cb3b990e152e75e71645637098526207aa5632d7915fd5b67c7a045f63860cc7be3d28be014ad6141a342adc16b2fe8a879 rustc-1.36.0-src.tar.xz c42ee71cdfacd27d468a0349c5e5b14c5e9701b3f54f22361ec6d9c5255ed6d0eac49e2d64254e3d62e8eba1292427ed07be3cc22b7b784471d079c37a60f0ca cargo-0.36.0-powerpc64-foxkit-linux-musl.tar.xz 772e58df18018dc32185181ffd4eebd5c83809d28bff849944573dbe05eee77c99d874f0a8d40222e6dc69679e8cb7d50230b81111dea6e05dce7e3ce5c7c8fa rust-std-1.35.0-powerpc64-foxkit-linux-musl.tar.xz ca5430f5c86a1df7f52058dc7ae53e557b0572a88b6288757a2702a979412971da78861c40ab11f4cf0cfa0406a9f19e1329dc2624f47b2b14dadfd094b0a745 rustc-1.35.0-powerpc64-foxkit-linux-musl.tar.xz b9847c12db94e80879c382aa33dd3fc170536c901bac0cdc2ff507e4daa8a89116be9ff67139e130b990e8a46a0aa9db1a90b2aac34e73b7a45845974109cd3c 0001-Don-t-pass-CFLAGS-to-the-C-compiler.patch 2685cb1991de921731f4908265a2de91724ce7811c99ef9d81d018be1b4c320ff181f078b59ed170ab72234463cf3688b06d96ac158f57b4f923ee30255b304d 0002-Fix-LLVM-build.patch d31ae4f2a2fa016907d0c141a14ba2e3e38f87155ad030249b7eec64cd5238784a5321aa0612c54e14ed746607aa6058acc275efddbb750e92008566858b3361 0003-Allow-rustdoc-to-work-when-cross-compiling-on-musl.patch 0836b0332013c2798fb1c4aecea61315dcbd62799ec37343f2b5aa9373347d3c50af83dc2a331ddcf4c2527851ca22cb58da0600fb5c593e02b0de72f05c7e34 0004-Require-static-native-libraries-when-linking-static-.patch bb4180012c1e3156b1ead0fd3bacc1d2cb924eb362e3437b887ec19241e6576274649e218f958d474c132b9ad70567bc3b94d21c12062a6469d1f2236671a885 0005-Remove-nostdlib-and-musl_root-from-musl-targets.patch 712b8e8e0aa640bdf81a3a5f92cf06a7c2cebee472ab9f7da6347c0dc5cc2d7c39e49b5351c436d19371060459080c777ec95edcb4a0d3f7bea85fa2ec700f4b 0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch 009632d5c0e783f58b4fe1f01846cad2a605da47ef29de7d728c6f08280db3532c0b7ac5a9ac0d356c795107638cd8c2c388a87969bab5e77ef7d8d71cd638d0 0007-test-use-extern-for-plugins-Don-t-assume-multilib.patch 1f04218ff5005d7ad35bb507baaf6d01f50941c809c1fbb6716ba2e35370fe9d5f50e56021cfbf036bb4336b0b1f7e98678e60e2f5fefa9d0078d7d9ffab63b8 0008-test-sysroot-crates-are-unstable-Fix-test-when-rpath.patch f67e238168a19564e7002fd24fc22a93a44f6d84d762324bbb9218bcb348d695df58ef6046c2dd7fcee68bf1f36ea2395d216ee73b4218dcdc075b0d815cd095 0009-Ignore-broken-and-non-applicable-tests.patch 90a9f6c25879a297b248ec8ee406382cd55ead4b7695635c3a0f5eb9e1d9145df0d727c4c644ebb053b64fa784e917fa56a9ec4d3c026d1ab3751ed4bed50ec5 0010-Link-stage-2-tools-dynamically-to-libstd.patch 0964cd36a14c252f24c9d896ad88f864394ebeca4cd03138c7ca82978dcbbd707b7306320c68afd799b6db153a0425e4f0d863c17ced482cfccbbaf99c836188 0011-Move-debugger-scripts-to-usr-share-rust.patch 333775512fd401acd27e5efe5e626e93193ef75986e51fca8987b0cc2b10e7ac41634305c7845410f333c93d5ac86af0f2763d221e8b2ab6061db5c792a3aa32 0012-Add-foxkit-target-specs.patch 7642e95d7f5e5d167a2f3e1300fc63f7bf34b6c0667b4e43e7c2378acd8c293f82d7c5651dfb75b03d717c0c5c369911f595dc641a629024e615d443244e6da1 0030-libc-linkage.patch 0cb12e9165d198c1e04b258454dbaf5459e192ad24d64c9fa132ebe0f1bcd5da3550eae8dfdaa792fa809b505af62964ecf0219dc4373420ee8ad3e111539a09 0031-typenum-pmmx.patch ab35bacf45ef5e46be110a8d27867fd4d5deb23cd5cbe8dc7f1da2177469945f9254f2a7915ee4fc430468a4421623429f0a01eb9eba14e047384efe3d3ec152 0040-rls-atomics.patch"