aboutsummaryrefslogtreecommitdiffstats
path: root/testing/cargo
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2016-08-06 13:07:04 +0200
committerJakub Jirutka <jakub@jirutka.cz>2016-08-06 13:08:02 +0200
commit576198df8191a552a6e7adf0be75a6d6166a067b (patch)
treef86a04c8bae95f5743d67b4e654896212dab1c5a /testing/cargo
parent9eec4cc2bc06cbffadb1e3c60fdbc41f9b419965 (diff)
downloadaports-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/APKBUILD87
-rw-r--r--testing/cargo/musl-NFS_SUPER_MAGICK.patch21
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
+ }