aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Clemons <andrew.clemons@gmail.com>2017-04-06 20:00:26 +0700
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2017-04-06 21:03:35 +0700
commita938357494514ff1507a915c9e67a6e02bb9b45b (patch)
tree60f0012518054e1d4da67c4b97894eba84e1e354
parent69d62faa221332af8bf7ebef73e48f956292556a (diff)
development/cargo-vendor: Support vendored crate dependencies.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
-rw-r--r--development/cargo-vendor/README8
-rw-r--r--development/cargo-vendor/cargo-vendor-mkvendortarball.sh34
-rw-r--r--development/cargo-vendor/cargo-vendor.SlackBuild163
3 files changed, 127 insertions, 78 deletions
diff --git a/development/cargo-vendor/README b/development/cargo-vendor/README
index 51b8ca81eee30..16f506e503b22 100644
--- a/development/cargo-vendor/README
+++ b/development/cargo-vendor/README
@@ -4,3 +4,11 @@ This is a Cargo subcommand which vendors all crates.io dependencies into a
local directory using Cargo's support for source replacement.
cargo-vendor is helpful for packaging applications which use cargo (rust).
+
+By default, the slackbuild requires all crate dependencies to be downloaded
+individually. Optionally, if you already have cargo-vendor installed, you can
+create a "vendored" tarball which contains all the crate dependencies exploded
+into a single directory and then compressed together as a tarball.
+
+The script cargo-vendor-mkvendortarball.sh will generate this for you. The slackbuild
+will automatically use this tarball if found in the current directory.
diff --git a/development/cargo-vendor/cargo-vendor-mkvendortarball.sh b/development/cargo-vendor/cargo-vendor-mkvendortarball.sh
new file mode 100644
index 0000000000000..6a2fec8553f34
--- /dev/null
+++ b/development/cargo-vendor/cargo-vendor-mkvendortarball.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+# Script to build a vendored tarball for cargo-vendor
+
+# Copyright 2017 Andrew Clemons, Wellington New Zealand
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+set -e
+
+PRGNAM=cargo-vendor
+VERSION=${VERSION:-0.1.5}
+
+rm -rf "$PRGNAM-$VERSION" "$PRGNAM-$VERSION-vendor.tar.gz"
+tar xvf "$PRGNAM-$VERSION.tar.gz"
+cd "$PRGNAM-$VERSION"
+cargo vendor
+tar cvfz ../"$PRGNAM-$VERSION-vendor.tar.gz" vendor
diff --git a/development/cargo-vendor/cargo-vendor.SlackBuild b/development/cargo-vendor/cargo-vendor.SlackBuild
index 99acaa49b9d22..07901836f8ab0 100644
--- a/development/cargo-vendor/cargo-vendor.SlackBuild
+++ b/development/cargo-vendor/cargo-vendor.SlackBuild
@@ -82,84 +82,91 @@ replace-with = 'vendored-sources'
directory = '$(pwd)/vendor'
EOF
-mkdir vendor
-(
- cd vendor
-
- for dependency in advapi32-sys=0.2.0 \
- aho-corasick=0.5.3 \
- bitflags=0.7.0 \
- cargo=0.16.0 \
- cfg-if=0.1.0 \
- cmake=0.1.20 \
- crates-io=0.5.0 \
- crossbeam=0.2.10 \
- curl=0.4.4 \
- curl-sys=0.3.7 \
- docopt=0.6.86 \
- env_logger=0.3.5 \
- error-chain=0.7.2 \
- filetime=0.1.10 \
- flate2=0.2.17 \
- fs2=0.3.0 \
- gcc=0.3.43 \
- gdi32-sys=0.2.0 \
- git2=0.6.4 \
- git2-curl=0.7.0 \
- glob=0.2.11 \
- idna=0.1.0 \
- kernel32-sys=0.2.2 \
- lazy_static=0.2.2 \
- libc=0.2.20 \
- libgit2-sys=0.6.6 \
- libssh2-sys=0.2.5 \
- libz-sys=1.0.12 \
- log=0.3.6 \
- matches=0.1.4 \
- memchr=0.1.11 \
- metadeps=1.1.1 \
- miniz-sys=0.1.9 \
- miow=0.1.5 \
- net2=0.2.26 \
- num_cpus=1.2.1 \
- openssl=0.9.6 \
- openssl-probe=0.1.0 \
- openssl-sys=0.9.6 \
- pkg-config=0.3.9 \
- psapi-sys=0.1.0 \
- rand=0.3.15 \
- regex=0.1.80 \
- regex-syntax=0.3.9 \
- rustc-serialize=0.3.22 \
- semver=0.5.1 \
- semver-parser=0.6.2 \
- strsim=0.5.2 \
- tar=0.4.10 \
- tempdir=0.3.5 \
- term=0.4.4 \
- thread-id=2.0.0 \
- thread_local=0.2.7 \
- toml=0.2.1 \
- unicode-bidi=0.2.4 \
- unicode-normalization=0.1.3 \
- url=1.4.0 \
- user32-sys=0.2.0 \
- utf8-ranges=0.1.3 \
- winapi=0.2.8 \
- winapi-build=0.1.1 \
- ws2_32-sys=0.2.1 ; do
-
- dep="$(echo "$dependency" | cut -d= -f1)"
- ver="$(echo "$dependency" | cut -d= -f2)"
-
- tar xvf $CWD/$dep-$ver.crate
-
- mv $dep-$ver $dep
-
- touch $dep/.cargo-ok
- zcat $CWD/checksums/$dep-cargo-checksum.json.gz > $dep/.cargo-checksum.json
- done
-)
+
+if [ -e $CWD/$PRGNAM-$VERSION-vendor.tar.gz ] ; then
+ tar xvf $CWD/$PRGNAM-$VERSION-vendor.tar.gz
+else
+ # deps and versions come from Cargo.lock
+ # cargo vender can be used to generate the checksums
+ mkdir vendor
+ (
+ cd vendor
+
+ for dependency in advapi32-sys=0.2.0 \
+ aho-corasick=0.5.3 \
+ bitflags=0.7.0 \
+ cargo=0.16.0 \
+ cfg-if=0.1.0 \
+ cmake=0.1.20 \
+ crates-io=0.5.0 \
+ crossbeam=0.2.10 \
+ curl=0.4.4 \
+ curl-sys=0.3.7 \
+ docopt=0.6.86 \
+ env_logger=0.3.5 \
+ error-chain=0.7.2 \
+ filetime=0.1.10 \
+ flate2=0.2.17 \
+ fs2=0.3.0 \
+ gcc=0.3.43 \
+ gdi32-sys=0.2.0 \
+ git2=0.6.4 \
+ git2-curl=0.7.0 \
+ glob=0.2.11 \
+ idna=0.1.0 \
+ kernel32-sys=0.2.2 \
+ lazy_static=0.2.2 \
+ libc=0.2.20 \
+ libgit2-sys=0.6.6 \
+ libssh2-sys=0.2.5 \
+ libz-sys=1.0.12 \
+ log=0.3.6 \
+ matches=0.1.4 \
+ memchr=0.1.11 \
+ metadeps=1.1.1 \
+ miniz-sys=0.1.9 \
+ miow=0.1.5 \
+ net2=0.2.26 \
+ num_cpus=1.2.1 \
+ openssl=0.9.6 \
+ openssl-probe=0.1.0 \
+ openssl-sys=0.9.6 \
+ pkg-config=0.3.9 \
+ psapi-sys=0.1.0 \
+ rand=0.3.15 \
+ regex=0.1.80 \
+ regex-syntax=0.3.9 \
+ rustc-serialize=0.3.22 \
+ semver=0.5.1 \
+ semver-parser=0.6.2 \
+ strsim=0.5.2 \
+ tar=0.4.10 \
+ tempdir=0.3.5 \
+ term=0.4.4 \
+ thread-id=2.0.0 \
+ thread_local=0.2.7 \
+ toml=0.2.1 \
+ unicode-bidi=0.2.4 \
+ unicode-normalization=0.1.3 \
+ url=1.4.0 \
+ user32-sys=0.2.0 \
+ utf8-ranges=0.1.3 \
+ winapi=0.2.8 \
+ winapi-build=0.1.1 \
+ ws2_32-sys=0.2.1 ; do
+
+ dep="$(echo "$dependency" | cut -d= -f1)"
+ ver="$(echo "$dependency" | cut -d= -f2)"
+
+ tar xvf $CWD/$dep-$ver.crate
+
+ mv $dep-$ver $dep
+
+ touch $dep/.cargo-ok
+ zcat $CWD/checksums/$dep-cargo-checksum.json.gz > $dep/.cargo-checksum.json
+ done
+ )
+fi
cargo build --release