aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2017-10-30 03:06:30 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2017-10-30 03:06:30 +0000
commitcedebe77358c26c7c10604d0471797b793b806e6 (patch)
tree606202d7b29e86e613e07b13fa3b5affa405e41c
parent7e133c449cf05ee4f88e003de33b9fa20e2152c5 (diff)
downloadaports-cedebe77358c26c7c10604d0471797b793b806e6.tar.bz2
aports-cedebe77358c26c7c10604d0471797b793b806e6.tar.xz
Revert "community/cargo: upgrade to 0.22.0"
This change causes the package to be unbuildable without manual intervention, which violates policy. Reverting the change is theoretically harmless, as the old cargo has not been removed from the archive. This reverts commit c6e8dbdbd42fc99d297045cf6bd0e3d9474e53ad.
-rw-r--r--community/cargo/APKBUILD87
-rw-r--r--community/cargo/fix-test-build-auth.patch (renamed from community/cargo/tests-fix-build-auth-http_auth_offered.patch)5
-rw-r--r--community/cargo/tests-ignore-ssh_something_happens.patch13
3 files changed, 58 insertions, 47 deletions
diff --git a/community/cargo/APKBUILD b/community/cargo/APKBUILD
index f461b332a8..3089fecd36 100644
--- a/community/cargo/APKBUILD
+++ b/community/cargo/APKBUILD
@@ -1,21 +1,22 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=cargo
-pkgver=0.22.0
+pkgver=0.18.0
+# Git revision of prebuilt Cargo to use for bootstrapping.
+_bootstrap_gitrev=6e0c18cccc8b0c06fba8a8d76486f81a792fb420 # 0.16.0
+# Git revision of rust-installer (submodule in cargo repo).
+_installer_gitrev=4f994850808a572e2cc8d43f968893c8e942e9bf
pkgrel=0
pkgdesc="The Rust package manager"
url="https://crates.io"
arch="x86_64" # limited by rust pkg
license="MIT ASL-2.0"
depends="rust"
-# Note: Cargo is self-hosted, so you need cargo to build cargo (ugh).
-# The last revision of this abuild that does not depend on itself (uses
-# prebuilt cargo) is 2282bb03f12bd9c0175feb9972cab2292df46f1e.
-makedepends="cargo cmake curl-dev libgit2-dev libssh2-dev libressl-dev
- python2 zlib-dev"
+makedepends="cmake curl-dev libgit2-dev libssh2-dev libressl-dev python2 zlib-dev"
subpackages="$pkgname-doc
$pkgname-bash-completion:bashcomp:noarch
$pkgname-zsh-completion:zshcomp:noarch"
+# Note: Cargo is self-hosted, so you need cargo to build cargo (ugh).
# XXX: Cargo depends on many crates (Rust packages) and currently downloads
# them itself in the build phase. This quite violates our policy. However,
# unlike some other package managers, Cargo does not download arbitrary
@@ -25,44 +26,60 @@ subpackages="$pkgname-doc
# adhere to this file and verify checksums. So it provides the same
# guarantees as abuild. That said, for now it's exception only for cargo
# package and should not be applied to other rust packages!
+_cbuild="$CARCH-unknown-linux-musl"
source="$pkgname-$pkgver.tar.gz::https://github.com/rust-lang/$pkgname/archive/$pkgver.tar.gz
- tests-fix-build-auth-http_auth_offered.patch
- tests-ignore-ssh_something_happens.patch"
+ https://github.com/rust-lang/rust-installer/archive/$_installer_gitrev/rust-installer-$_installer_gitrev.tar.gz
+ cargo-$_bootstrap_gitrev-$_cbuild.tar.gz::https://s3.amazonaws.com/rust-lang-ci/cargo-builds/$_bootstrap_gitrev/cargo-nightly-$_cbuild.tar.gz
+ fix-test-build-auth.patch"
builddir="$srcdir/$pkgname-$pkgver"
+_bootstrap_cargo="$srcdir/cargo-nightly-$_cbuild/cargo/bin/cargo"
+
+export CARGOFLAGS="--locked"
export CARGO_HOME="$srcdir/.cargo"
-_cargo_opts="--release --locked --verbose ${JOBS:+--jobs $JOBS}"
+prepare() {
+ default_prepare
+ cd "$builddir"
+
+ rmdir src/rust-installer
+ ln -s "$srcdir"/rust-installer-$_installer_gitrev src/rust-installer
+}
build() {
cd "$builddir"
- # Convince libgit2-sys to use the distro libgit2.
- export LIBGIT2_SYS_USE_PKG_CONFIG=1
+ ./configure \
+ --prefix=/usr \
+ --release-channel=stable \
+ --cargo="$_bootstrap_cargo"
- cargo build $_cargo_opts
- cargo test $_cargo_opts --no-run
+ # LIBGIT2... Convince libgit2-sys to use the distro libgit2.
+ make LIBGIT2_SYS_USE_PKG_CONFIG=1 \
+ VERBOSE=1
}
check() {
cd "$builddir"
- ./target/release/cargo --version
+ ./target/$CTARGET/release/cargo --version
- CFG_DISABLE_CROSS_TESTS=1 RUST_BACKTRACE=1 \
- cargo test $_cargo_opts --no-fail-fast
+ # XXX: ignore test failures for now
+ CFG_DISABLE_CROSS_TESTS=1 \
+ "$_bootstrap_cargo" test \
+ --release \
+ --target "$CTARGET" \
+ --no-fail-fast \
+ --verbose || true
}
package() {
cd "$builddir"
- install -D -m 755 target/release/cargo "$pkgdir"/usr/bin/cargo
+ make install DESTDIR="$pkgdir"
- mkdir -p "$pkgdir"/usr/share/man/man1
- install -m 644 -t "$pkgdir"/usr/share/man/man1/ src/etc/man/*.1
-
- mkdir -p "$pkgdir"/usr/share/licenses/$pkgname
- install -m 644 -t "$pkgdir"/usr/share/licenses/$pkgname/ LICENSE*
+ # Remove installer artifacts (manifests, uninstall scripts, etc.)
+ rm -rv "$pkgdir"/usr/lib
}
bashcomp() {
@@ -70,9 +87,11 @@ bashcomp() {
depends=""
install_if="$pkgname=$pkgver-r$pkgrel bash"
- cd "$builddir"
- install -D -m 644 -D src/etc/cargo.bashcomp.sh \
- "$subpkgdir"/usr/share/bash-completion/completions/cargo
+ _mv "$pkgdir"/usr/etc/bash_completion.d/* \
+ "$subpkgdir"/usr/share/bash-completion/completions/
+
+ # Clean directories which are supposed to be empty.
+ rmdir -p "$pkgdir"/usr/etc/bash_completion.d 2>/dev/null || true
}
zshcomp() {
@@ -80,11 +99,17 @@ zshcomp() {
depends=""
install_if="$pkgname=$pkgver-r$pkgrel zsh"
- cd "$builddir"
- install -D -m 644 src/etc/_cargo \
- "$subpkgdir"/usr/share/zsh/site-functions/_cargo
+ _mv "$pkgdir"/usr/share/zsh "$subpkgdir"/usr/share/
+ rmdir "$pkgdir"/usr/share
+}
+
+_mv() {
+ local dest; for dest; do true; done # get last argument
+ mkdir -p "$dest"
+ mv $@
}
-sha512sums="31764df0462fcd0e7ddd29aee63ed0916b0d05e44d72aa815b3b823256e90f85e582c468a517d048e4451dfc1a3b22434abf25d825d3d926ab7a95f7bb44ad40 cargo-0.22.0.tar.gz
-4e9a0d409951a72b5c1d3578cb310c0efc5d98a5b963432ec4f485f1d58d2354f0050c31574d6bd9090b7247468ef1a13b04b133deabe6daed91032764468f97 tests-fix-build-auth-http_auth_offered.patch
-17c669a71443e21cc5e5cc6eb99933c20562b7df9d859c493ff25252167eb1aea6dd7322a06207776eab1c769464f95a432d1520a949512a52592b1eb115a4be tests-ignore-ssh_something_happens.patch"
+sha512sums="561d6817555da802e99964daa74550cc47a285903301da12a245bb62e5857c18069d87a520c5cefb62aecfe5561666352d57dca8f75758f81ea82709565577d2 cargo-0.18.0.tar.gz
+9ceb4755890ad3ae68ce141231c5114077261e0279d3a9a6208053f8d3386c9198e6b94d6321b456648dd5baa86dfc3ae81df44b67d41b428d11afd6763f0cff rust-installer-4f994850808a572e2cc8d43f968893c8e942e9bf.tar.gz
+4df33353b6be1af822220ca03f9ec5a3b6421c9b10ec17b864be586ba495c6210bac70d904b0e0b35eff62ef2c9a681ded526e5cbd37e326dc3146742aa659de cargo-6e0c18cccc8b0c06fba8a8d76486f81a792fb420-x86_64-unknown-linux-musl.tar.gz
+6a789fc1bf0eb19dde9267a10f7506787d6a4bb8316b09f4dee5da083c0fb0bad87630b238d92ef3aaf114d9a337a87797c8ac427f71c53ac06106925d459ee0 fix-test-build-auth.patch"
diff --git a/community/cargo/tests-fix-build-auth-http_auth_offered.patch b/community/cargo/fix-test-build-auth.patch
index 8543c2897e..2fdb50c1c6 100644
--- a/community/cargo/tests-fix-build-auth-http_auth_offered.patch
+++ b/community/cargo/fix-test-build-auth.patch
@@ -1,6 +1,5 @@
From: Jakub Jirutka <jakub@jirutka.cz>
Date: Thu, 13 Aug 2016 14:47:00 +0200
-Last-Updated: Sat, 28 Oct 2017 14:59:00 +0200
Subject: [PATCH] Fix test build-auth:http_auth_offered
The test fails because of hard-coded libgit2 version, that may not be
@@ -22,9 +21,9 @@ the same as actually used libgit2...
let mut conn = BufStream::new(server.accept().unwrap().0);
let req = headers(&mut conn);
- let user_agent = if cfg!(windows) {
-- "User-Agent: git/1.0 (libgit2 0.25.0)"
+- "User-Agent: git/1.0 (libgit2 0.25.1)"
- } else {
-- "User-Agent: git/2.0 (libgit2 0.25.0)"
+- "User-Agent: git/2.0 (libgit2 0.25.1)"
- };
conn.write_all(b"\
HTTP/1.1 401 Unauthorized\r\n\
diff --git a/community/cargo/tests-ignore-ssh_something_happens.patch b/community/cargo/tests-ignore-ssh_something_happens.patch
deleted file mode 100644
index 80cf1f28bd..0000000000
--- a/community/cargo/tests-ignore-ssh_something_happens.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-This test fails when building cargo with system-provided libgit2,
-but I don't have a clue why.
-
---- a/tests/build-auth.rs
-+++ b/tests/build-auth.rs
-@@ -171,6 +171,7 @@
-
- // Boy, sure would be nice to have an SSH implementation in rust!
- #[test]
-+#[ignore]
- fn ssh_something_happens() {
- let server = TcpListener::bind("127.0.0.1:0").unwrap();
- let addr = server.local_addr().unwrap();