diff options
author | Jakub Jirutka <jakub@jirutka.cz> | 2016-08-06 13:07:04 +0200 |
---|---|---|
committer | Jakub Jirutka <jakub@jirutka.cz> | 2016-08-06 13:08:02 +0200 |
commit | 576198df8191a552a6e7adf0be75a6d6166a067b (patch) | |
tree | f86a04c8bae95f5743d67b4e654896212dab1c5a /testing/cargo | |
parent | 9eec4cc2bc06cbffadb1e3c60fdbc41f9b419965 (diff) | |
download | aports-576198df8191a552a6e7adf0be75a6d6166a067b.tar.bz2 aports-576198df8191a552a6e7adf0be75a6d6166a067b.tar.xz |
testing/cargo: new aport
https://crates.io
The Rust package manager
Diffstat (limited to 'testing/cargo')
-rw-r--r-- | testing/cargo/APKBUILD | 87 | ||||
-rw-r--r-- | testing/cargo/musl-NFS_SUPER_MAGICK.patch | 21 |
2 files changed, 108 insertions, 0 deletions
diff --git a/testing/cargo/APKBUILD b/testing/cargo/APKBUILD new file mode 100644 index 0000000000..d55d461e83 --- /dev/null +++ b/testing/cargo/APKBUILD @@ -0,0 +1,87 @@ +# Contributor: Jakub Jirutka <jakub@jirutka.cz> +# Maintainer: Jakub Jirutka <jakub@jirutka.cz> +pkgname=cargo +pkgver=0.11.0 +pkgrel=0 +pkgdesc="The Rust package manager" +url="https://crates.io" +arch="x86_64" +license="MIT ASL-2.0" +depends="rust" +makedepends="cmake curl-dev libssh2-dev openssl-dev python2 zlib-dev" +subpackages="$pkgname-doc + $pkgname-bash-completion:bashcomp + $pkgname-zsh-completion:zshcomp" + +# XXX: Cargo is self-hosted, so you need cargo to build cargo (ugh). +# The problem is that Rust doesn't provide prebuilt cargo for musl yet. Thus +# I bootstrapped cargo using cargo-bootstrap and uploaded the built tarball +# to my server. We're gonna replace it once Rust start providing prebuilt +# binary for musl. +# TODO: Implement some support for verifying crates fetched by cargo! +source="$pkgname-$pkgver.tar.gz::https://github.com/rust-lang/cargo/archive/$pkgver.tar.gz + https://alpine.geeknet.cz/distfiles/cargo-0.11.0-nightly-x86_64-alpine-linux-musl.tar.gz + musl-NFS_SUPER_MAGICK.patch + " +builddir="$srcdir/$pkgname-$pkgver" + +_CTARGET="$CARCH-unknown-linux-musl" + +prepare() { + default_prepare || return 1 + + cd "$builddir" + _mv "$srcdir"/cargo-*-$_CTARGET/cargo/* target/snapshot +} + +build() { + export CARGO_HOME="$builddir/.cargo" + + cd "$builddir" + ./configure && make VERBOSE=1 +} + +package() { + cd "$builddir" + + make prepare-image-$_CTARGET IMGDIR_$_CTARGET="$pkgdir/usr" +} + +bashcomp() { + pkgdesc="Bash completions for $pkgname" + depends="" + arch="noarch" + install_if="$pkgname=$pkgver-r$pkgrel bash" + + _mv "$pkgdir"/usr/etc/bash_completion.d/* \ + "$subpkgdir"/usr/share/bash-completion/completions/ || return 1 + + # Clean directories which are supposed to be empty. + rmdir "$pkgdir"/usr/etc/bash_completion.d && rmdir "$pkgdir"/usr/etc +} + +zshcomp() { + pkgdesc="ZSH completions for $pkgname" + depends="" + arch="noarch" + install_if="$pkgname=$pkgver-r$pkgrel zsh" + + _mv "$pkgdir"/usr/share/zsh "$subpkgdir"/usr/share/ || return 1 + rmdir "$pkgdir"/usr/share +} + +_mv() { + local dest; for dest; do true; done # get last argument + mkdir -p "$dest" + mv $@ +} + +md5sums="39b2ef9d3f4ca9febf309f751806a357 cargo-0.11.0.tar.gz +79f81ecfa861f4d97a3b9235e66ba594 cargo-0.11.0-nightly-x86_64-alpine-linux-musl.tar.gz +284d4477b72157e5edb3b27f7045ab5e musl-NFS_SUPER_MAGICK.patch" +sha256sums="4f390d7ea3352a1ecafb53d1a2b98c2e195b81a5c652342a8b91672d9f1dde0a cargo-0.11.0.tar.gz +587172026c0565e839d96b0c1d4c68c000927817398241f96682dca47fa8c3b9 cargo-0.11.0-nightly-x86_64-alpine-linux-musl.tar.gz +43a348ad5ef2830d109ac4a1c759b03f009281b58b4b8c1f3f6c463316c69fc8 musl-NFS_SUPER_MAGICK.patch" +sha512sums="deb7254541182b0035cda2d4aecc30c55555ddcfebd660004de9b45d5c799619cbf4e79142dddca9e0a8469558d8f0d5268ea53221e62ef13a26a717731e6553 cargo-0.11.0.tar.gz +17838355ff6d87165aa0f61bd01f48c58a426c069bba7c3852d016e1836666bfafe2609c323a0409fc8530ad27fb3ad5989d8cee033633e38b07fefa670597d5 cargo-0.11.0-nightly-x86_64-alpine-linux-musl.tar.gz +ab70985df7d32b6e82af806986ecf6ba22939d27b9d7abdd31e5c35d2ead668c8f56f2c53c59d86843c762fd43856cc22c57e3373cb746519dc68937bcdb86dd musl-NFS_SUPER_MAGICK.patch" diff --git a/testing/cargo/musl-NFS_SUPER_MAGICK.patch b/testing/cargo/musl-NFS_SUPER_MAGICK.patch new file mode 100644 index 0000000000..415766ad91 --- /dev/null +++ b/testing/cargo/musl-NFS_SUPER_MAGICK.patch @@ -0,0 +1,21 @@ +https://github.com/rust-lang/cargo/issues/2937 +--- a/src/cargo/util/flock.rs ++++ b/src/cargo/util/flock.rs +@@ -282,7 +282,7 @@ + human(format!("failed to lock file: {}", path.display())) + }); + +- #[cfg(target_os = "linux")] ++ #[cfg(all(target_os = "linux", not(target_env = "musl")))] + fn is_on_nfs_mount(path: &Path) -> bool { + use std::ffi::CString; + use std::mem; +@@ -302,7 +302,7 @@ + } + } + +- #[cfg(not(target_os = "linux"))] ++ #[cfg(any(not(target_os = "linux"), target_env = "musl"))] + fn is_on_nfs_mount(_path: &Path) -> bool { + false + } |