aboutsummaryrefslogtreecommitdiffstats
path: root/community/rust/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/rust/APKBUILD')
-rw-r--r--community/rust/APKBUILD361
1 files changed, 0 insertions, 361 deletions
diff --git a/community/rust/APKBUILD b/community/rust/APKBUILD
deleted file mode 100644
index 4d0c70792c5..00000000000
--- a/community/rust/APKBUILD
+++ /dev/null
@@ -1,361 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Contributor: Shiz <hi@shiz.me>
-# Contributor: Jeizsm <jeizsm@gmail.com>
-# Contributor: Ariadne Conill <ariadne@dereferenced.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=rust
-pkgver=1.55.0
-_llvmver=11
-_bootver=1.54.0
-pkgrel=1
-pkgdesc="The Rust Programming Language"
-url="https://www.rust-lang.org/"
-arch="x86_64 armv7 armhf aarch64 x86 ppc64le"
-license="Apache-2.0 AND MIT"
-
-# gcc is needed at runtime just for linking. Someday rustc might invoke
-# the linker directly, and then we'll only need binutils.
-# See: https://github.com/rust-lang/rust/issues/11937
-depends="$pkgname-stdlib=$pkgver-r$pkgrel gcc musl-dev"
-
-_python=python3
-# * Rust is self-hosted, so you need rustc (and cargo) to build rustc...
-# The last revision of this abuild that does not depend on itself (uses
-# prebuilt rustc and cargo) is 2e6769eb39eaff3029d8298fc02856623c563cd8.
-makedepends_build="
- $_python
- file
- tar
- coreutils
- llvm$_llvmver-dev
- llvm$_llvmver-test-utils
- rust-bootstrap=>$_bootver
- cargo-bootstrap=>$_bootver
- curl-dev
- libgit2-dev
- openssl1.1-compat-dev
- zlib-dev
-"
-makedepends_host="
- curl-dev
- libgit2-dev
- openssl1.1-compat-dev
- llvm$_llvmver-dev
- zlib-dev
-"
-
-# XXX: This is a hack to allow this abuild to depend on itself. Adding "rust"
-# to makedepends would not work, because abuild implicitly removes $pkgname
-# and $subpackages from the abuild's dependencies.
-provides="rust-bootstrap=$pkgver-r$pkgrel"
-# This is needed for -src that contains some testing binaries.
-# Disable tests for now, while we use foreign triplets
-options="!archcheck !check"
-
-subpackages="
- $pkgname-dbg
- $pkgname-stdlib
- $pkgname-analysis
- $pkgname-gdb::noarch
- $pkgname-lldb::noarch
- $pkgname-doc
- $pkgname-src::noarch
- cargo
- cargo-bash-completions:_cargo_bashcomp:noarch
- cargo-zsh-completion:_cargo_zshcomp:noarch
- cargo-doc:_cargo_doc:noarch
- "
-source="https://static.rust-lang.org/dist/rustc-$pkgver-src.tar.xz
- musl-fix-linux_musl_base.patch
- need-rpath.patch
- need-ssp_nonshared.patch
- alpine-move-py-scripts-to-share.patch
- alpine-target.patch
- install-template-shebang.patch
- check-rustc
- link-musl-dynamically.patch
- 0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch
- 0007-do-not-install-libunwind-source.patch
- mips-softfloat.patch
- "
-builddir="$srcdir/rustc-$pkgver-src"
-
-# secfixes:
-# 1.52.1-r1:
-# - CVE-2021-29922
-# 1.51.0-r2:
-# - CVE-2020-36323
-# - CVE-2021-31162
-# 1.34.2-r0:
-# - CVE-2019-12083
-# 1.26.0-r0:
-# - CVE-2019-16760
-
-# We have to add new arches in multiple steps:
-# 1. Compile with the upstream triplets, compiling alpine's triplets in
-# 2. Compile again, now with our triplets selected as build/target, now that
-# rustc knows about them
-_build="$CBUILD"
-_target="$CTARGET"
-
-_rlibdir="usr/lib/rustlib/$_target/lib"
-_sharedir="usr/share/rust"
-
-ldpath="/$_rlibdir"
-
-export RUST_BACKTRACE=1
-# Don't use system libgit2 for now...
-# https://github.com/rust-lang/rust/issues/63476
-# Convince libgit2-sys to use the distro libgit2.
-#export LIBGIT2_SYS_USE_PKG_CONFIG=1
-
-# rust checksums files in vendor/, but we have to patch a few files...
-_clear_vendor_checksums() {
- sed -i 's/\("files":{\)[^}]*/\1/' vendor/$1/.cargo-checksum.json
-}
-
-prepare() {
- default_prepare
-
- sed -i /LD_LIBRARY_PATH/d src/bootstrap/bootstrap.py
-
- # to dynamically link against musl
- _clear_vendor_checksums libc
-
- # Remove bundled dependencies.
- #rm -Rf src/llvm-project/
- local file; for file in $(ls -1 "$builddir/src/llvm-project"); do [[ $file != 'compiler-rt' ]] && rm -fr $file; done
-}
-
-build() {
- # Fails to compile libbacktrace-sys otherwise
- case "$CARCH" in
- x86)
- export CFLAGS="$CFLAGS -fno-stack-protector"
- ;;
- esac
- if [ "$_build" != "$_target" ]; then
- export PKG_CONFIG_ALLOW_CROSS=1
- fi
-
- ./configure \
- --build="$_build" \
- --host="$_target" \
- --target="$_target" \
- --prefix="/usr" \
- --release-channel="stable" \
- --enable-local-rust \
- --local-rust-root="/usr" \
- --llvm-root="/usr/lib/llvm$_llvmver" \
- --disable-docs \
- --enable-extended \
- --tools="analysis,cargo,src" \
- --enable-llvm-link-shared \
- --enable-option-checking \
- --enable-locked-deps \
- --enable-vendor \
- --python="$_python" \
- --set="rust.musl-root=/usr" \
- --set="rust.codegen-units=1" \
- --set="rust.codegen-units-std=1" \
- --set="rust.parallel-compiler=false" \
- --set="target.$_target.llvm-config=/usr/lib/llvm$_llvmver/bin/llvm-config" \
- --set="target.$_target.musl-root=/usr" \
- --set="target.$_target.crt-static=false" \
- --set="target.$_target.cc=${CROSS_COMPILE}gcc" \
- --set="target.$_target.cxx=${CROSS_COMPILE}c++" \
- --set="target.$_target.ar=${CROSS_COMPILE}ar" \
- --set="target.$_target.linker=${CROSS_COMPILE}gcc" \
- --set="target.$_build.musl-root=/usr" \
- --set="target.$_build.crt-static=false" \
- --set="target.$_build.cc=gcc" \
- --set="target.$_build.cxx=c++" \
- --set="target.$_build.ar=ar" \
- --set="target.$_build.linker=gcc"
-
- # Allow warnings instead of just aborting the build
- sed 's/#deny-warnings = .*/deny-warnings = false/' -i config.toml
- sed 's|deny(warnings,|deny(|' -i src/bootstrap/lib.rs
-
- $_python ./x.py dist -v --jobs ${JOBS:-2}
-}
-
-check() {
- # At this moment lib/rustlib/$CTARGET/lib does not contain a complete
- # copy of the .so libs from lib (they will be copied there during
- # 'x.py install'). Thus we must set LD_LIBRARY_PATH for tests to work.
- # This is related to change-rpath-to-rustlib.patch.
- export LD_LIBRARY_PATH="$builddir/build/$CTARGET/stage2/lib"
-
- "$srcdir"/check-rustc "$builddir"/build/$CTARGET/stage2/bin/rustc
-
-# XXX: There's some problem with these tests, we will figure it out later.
-# make check \
-# LD_LIBRARY_PATH="$_stage0dir/lib" \
-# VERBOSE=1
-
- msg "Running tests for cargo..."
- CFG_DISABLE_CROSS_TESTS=1 $_python ./x.py test --no-fail-fast src/tools/cargo
-
- unset LD_LIBRARY_PATH
-}
-
-package() {
- mkdir -p "$pkgdir/usr"
-
- cd "$pkgdir"
-
- tar xf "$builddir"/build/dist/rustc-${pkgver}-${_target}.tar.gz \
- -C "$pkgdir/usr" --strip-components=2 --exclude=manifest.in --no-same-owner
- tar xf "$builddir"/build/dist/rust-std-${pkgver}-${_target}.tar.gz \
- -C "$pkgdir/usr" --strip-components=2 --exclude=manifest.in --no-same-owner
- tar xf "$builddir"/build/dist/rustc-dev-${pkgver}-${_target}.tar.gz \
- -C "$pkgdir/usr" --strip-components=2 --exclude=manifest.in --no-same-owner
- tar xf "$builddir"/build/dist/rust-analysis-${pkgver}-${_target}.tar.gz \
- -C "$pkgdir/usr" --strip-components=2 --exclude=manifest.in --no-same-owner
-# tar xf "$builddir"/build/dist/rust-analyzer-${pkgver}-${_target}.tar.gz \
-# -C "$pkgdir/usr" --strip-components=2 --exclude=manifest.in --no-same-owner
- tar xf "$builddir"/build/dist/rust-src-${pkgver}.tar.gz \
- -C "$pkgdir/usr" --strip-components=2 --exclude=manifest.in --no-same-owner
- tar xf "$builddir"/build/dist/cargo-${pkgver}-${_target}.tar.gz \
- -C "$pkgdir/usr" --strip-components=2 --exclude=manifest.in --no-same-owner
- tar xf "$builddir"/build/dist/clippy-${pkgver}-${_target}.tar.gz \
- -C "$pkgdir/usr" --strip-components=2 --exclude=manifest.in --no-same-owner
-# tar xf "$builddir"/build/dist/miri-${pkgver}-${_target}.tar.gz \
-# -C "$pkgdir/usr" --strip-components=2 --exclude=manifest.in --no-same-owner
- tar xf "$builddir"/build/dist/rls-${pkgver}-${_target}.tar.gz \
- -C "$pkgdir/usr" --strip-components=2 --exclude=manifest.in --no-same-owner
- tar xf "$builddir"/build/dist/rustfmt-${pkgver}-${_target}.tar.gz \
- -C "$pkgdir/usr" --strip-components=2 --exclude=manifest.in --no-same-owner
-
- # We don't want to include stuff like rust-llvm-* tools, as we will use the
- # system tools.
- rm -f usr/lib/rustlib/"$_target"/bin/rust-llvm-*
-
- # Python scripts are noarch, so move them to /usr/share.
- # Requires move-py-scripts-to-share.patch to be applied.
- _mv usr/lib/rustlib/etc/*.py $_sharedir/etc/
- rmdir -p usr/lib/rustlib/etc 2>/dev/null || true
-
- # Remove some clutter.
- cd "$pkgdir"/usr/lib/rustlib
- rm -f components install.log manifest-* rust-installer-version uninstall.sh
- if [ "$_build" != "$_target" ]; then
- rm -rf "$pkgdir"/usr/lib/rustlib/$_build
- fi
-}
-
-stdlib() {
- pkgdesc="Standard library for Rust (static rlibs)"
- depends=
-
- _mv "$pkgdir"/$_rlibdir/*.rlib "$subpkgdir"/$_rlibdir/
-}
-
-analysis() {
- pkgdesc="Compiler analysis data for the Rust standard library"
- depends="$pkgname-stdlib=$pkgver-r$pkgrel"
-
- _mv "$pkgdir"/$_rlibdir/../analysis "$subpkgdir"/${_rlibdir%/*}/
-}
-
-gdb() {
- pkgdesc="GDB pretty printers for Rust"
- depends="$pkgname=$pkgver-r$pkgrel gdb"
-
- mkdir -p "$subpkgdir"
- cd "$subpkgdir"
-
- _mv "$pkgdir"/usr/bin/rust-gdb usr/bin/
- _mv "$pkgdir"/$_sharedir/etc/gdb_*.py $_sharedir/etc/
-}
-
-lldb() {
- local _pyver=${_python#python}
- pkgdesc="LLDB pretty printers for Rust"
- depends="$pkgname=$pkgver-r$pkgrel lldb py$_pyver-lldb"
-
- mkdir -p "$subpkgdir"
- cd "$subpkgdir"
-
- _mv "$pkgdir"/usr/bin/rust-lldb usr/bin/
- _mv "$pkgdir"/$_sharedir/etc/lldb_*.py $_sharedir/etc/
-}
-
-src() {
- pkgdesc="$pkgdesc (source code)"
- depends="$pkgname=$pkgver-r$pkgrel"
- license="$license OFL-1.1 GPL-3.0-or-later GPL-3.0-with-GCC-exception CC-BY-SA-3.0 LGPL-3.0"
-
- _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"
- license="Apache-2.0 MIT UNLICENSE"
- depends="$pkgname=$pkgver-r$pkgrel"
- # XXX: See comment on top-level provides=.
- provides="cargo-bootstrap=$pkgver-r$pkgrel"
-
- _mv "$pkgdir"/usr/bin/cargo "$subpkgdir"/usr/bin/
-}
-
-_cargo_bashcomp() {
- pkgdesc="Bash completions for cargo"
- license="Apache-2.0 MIT"
- depends=""
- install_if="cargo=$pkgver-r$pkgrel bash-completion"
-
- cd "$pkgdir"
- _mv usr/etc/bash_completion.d/cargo \
- "$subpkgdir"/usr/share/bash-completion/completions/
- rmdir -p etc/bash_completion.d 2>/dev/null || true
-}
-
-_cargo_zshcomp() {
- pkgdesc="ZSH completions for cargo"
- license="Apache-2.0 MIT"
- depends=""
- install_if="cargo=$pkgver-r$pkgrel zsh"
-
- cd "$pkgdir"
- _mv usr/share/zsh/site-functions/_cargo \
- "$subpkgdir"/usr/share/zsh/site-functions/
- rmdir -p usr/share/zsh/site-functions 2>/dev/null || true
-}
-
-_cargo_doc() {
- pkgdesc="The Rust package manager (documentation)"
- license="Apache-2.0 MIT"
- install_if="docs cargo=$pkgver-r$pkgrel"
-
- # XXX: This is hackish!
- cd "$pkgdir"/../$pkgname-doc
- _mv usr/share/man/man1/cargo* "$subpkgdir"/usr/share/man/man1/
-}
-
-_mv() {
- local dest; for dest; do true; done # get last argument
- mkdir -p "$dest"
- mv "$@"
-}
-
-sha512sums="
-7522f2fa95d5af92472404ecc97d7d9e745e88c933196a83fa373ce1efff6db3c295e0e2afdbfa1ff00644554efa0c3c7f6c11f9119ecf9010cb440b3f27c2da rustc-1.55.0-src.tar.xz
-4accbdf546e9f82f38d56169f65fcfb53839e1df89978b9a434a59a1dcb80b4d57c0272c0ece65530ce09ad0f7a7e880b4b97e2b8dd8f2bccace02a5874e6733 musl-fix-linux_musl_base.patch
-2d401a01d2c2db92624d672018342907a41aa4a3842708c0a2ab694af0396d568aca4835d1075f244d77c0a4c45e67f893fd175fd97cd7f758090eba9972eba6 need-rpath.patch
-bc28e1edae88f48eb0368cd0905280c323d521c7e13b6fc2bb1fb6e57274fa418afdc9cb3342f4928842e309d0573b98e82976159541c88b35694dceaf7a82e4 need-ssp_nonshared.patch
-03a179e31c95f88a98fb1ba6b2fd0baaf9fe1a74ade76d3096fe45ddc5e453c25109355e667783d9be1bcc585445d07b7270cb3e6e403de971049714f2c6f91a alpine-move-py-scripts-to-share.patch
-063469591de555f133339c8c9a3cf45bfc059a9b6bd57268068166bc065ef99fa1fb958a1bc42df4097eb59122d49d32e45bc31a44dc030ca3578d99fd39ff9e alpine-target.patch
-7d59258d4462eba0207739a5c0c8baf1f19d9a396e5547bb4d59d700eb94d50ba6add2e523f3e94e29e993821018594625ea4ac86304fb58f7f8c82622a26ab0 install-template-shebang.patch
-c31fdfe8a9b3411576c75da46645cf0465b9053000a2ab49cf9b2f2733f679d6d33acbf236d67a20e14935d094a685453b7f1840180249f39d610fd0902c3125 check-rustc
-d5d3ccc5c3a73bf1816106ba00805346ea28f2e6337d960e9e9f776ba59d22abd8864382f163d32dd9a278df38c080949dafc70169728f44080ddc04f1e7f125 link-musl-dynamically.patch
-b17e9b1f1d2f9ab8aea7dc5f4a1adfde844ac1570d935804f293376a9b568e3760906192d1ea82f093736a28d157ad3f501932f9daae3be3954de2c3458a626d 0006-Prefer-libgcc_eh-over-libunwind-for-musl.patch
-7af23c34096f7a03c5a1b40aa07e00dd6193743c872881018a9baa900f240c6e44918e481ab5ed7787a70ef361e4aeec2a7719bcd695f52988262e23271b44e5 0007-do-not-install-libunwind-source.patch
-4cb2592d30cd1a776375522631aa284dd077eaa39b109921d6ee5906fd0130b048e07d3adef1d7221f5c001d1df5187feb3e3687e0aa5d19279099065a7d4cb7 mips-softfloat.patch
-"