mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-18 22:06:04 +01:00
development/cargo: Optionally support vendored crate dependencies.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
921c445b01
commit
69d62faa22
3 changed files with 131 additions and 85 deletions
|
@ -4,10 +4,18 @@ This will build cargo from source, which like rust, requires itself to
|
|||
bootstrap. This will build cargo using the installed rust and previously stable
|
||||
version of cargo.
|
||||
|
||||
If you already have rust and cargo installed, this slackbuild will use these to
|
||||
If you already have cargo installed, this slackbuild will use it to
|
||||
bootstrap this version of cargo instead of a downloaded one.
|
||||
|
||||
You can also force either behaviour through the LOCAL_BOOTSTRAP=yes|no
|
||||
parameter.
|
||||
|
||||
LOCAL_BOOTSTRAP=no ./cargo.SlackBuild
|
||||
LOCAL_BOOTSTRAP=no ./cargo.SlackBuild
|
||||
|
||||
By default, the slackbuild requires all crate dependencies to be downloaded
|
||||
individually. Optionally, if you 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-mkvendortarball.sh will generate this for you. The slackbuild
|
||||
will automatically use this tarball if found in the current directory.
|
||||
|
|
34
development/cargo/cargo-mkvendortarball.sh
Normal file
34
development/cargo/cargo-mkvendortarball.sh
Normal file
|
@ -0,0 +1,34 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Script to build a vendored tarball for cargo
|
||||
|
||||
# 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
|
||||
VERSION=${VERSION:-0.17.0}
|
||||
|
||||
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
|
|
@ -121,94 +121,98 @@ replace-with = 'vendored-sources'
|
|||
directory = '$(pwd)/vendor'
|
||||
EOF
|
||||
|
||||
# deps and versions come from Cargo.lock
|
||||
# cargo vender can be used to generate the checksums
|
||||
mkdir vendor
|
||||
(
|
||||
cd vendor
|
||||
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 \
|
||||
bufstream=0.1.2 \
|
||||
cfg-if=0.1.0 \
|
||||
cmake=0.1.19 \
|
||||
crossbeam=0.2.10 \
|
||||
curl=0.4.1 \
|
||||
curl-sys=0.3.6 \
|
||||
docopt=0.6.86 \
|
||||
env_logger=0.3.5 \
|
||||
error-chain=0.7.2 \
|
||||
filetime=0.1.10 \
|
||||
flate2=0.2.14 \
|
||||
fs2=0.3.0 \
|
||||
gcc=0.3.39 \
|
||||
gdi32-sys=0.2.0 \
|
||||
git2=0.6.3 \
|
||||
git2-curl=0.7.0 \
|
||||
glob=0.2.11 \
|
||||
hamcrest=0.1.1 \
|
||||
idna=0.1.0 \
|
||||
kernel32-sys=0.2.2 \
|
||||
lazy_static=0.2.2 \
|
||||
libc=0.2.18 \
|
||||
libgit2-sys=0.6.6 \
|
||||
libssh2-sys=0.2.5 \
|
||||
libz-sys=1.0.13 \
|
||||
log=0.3.6 \
|
||||
matches=0.1.4 \
|
||||
memchr=0.1.11 \
|
||||
metadeps=1.1.1 \
|
||||
miniz-sys=0.1.7 \
|
||||
miow=0.1.3 \
|
||||
net2=0.2.26 \
|
||||
num=0.1.36 \
|
||||
num-bigint=0.1.35 \
|
||||
num-complex=0.1.35 \
|
||||
num-integer=0.1.32 \
|
||||
num-iter=0.1.32 \
|
||||
num-rational=0.1.35 \
|
||||
num-traits=0.1.36 \
|
||||
num_cpus=1.1.0 \
|
||||
openssl=0.9.6 \
|
||||
openssl-probe=0.1.0 \
|
||||
openssl-sys=0.9.6 \
|
||||
pkg-config=0.3.8 \
|
||||
psapi-sys=0.1.0 \
|
||||
rand=0.3.14 \
|
||||
regex=0.1.80 \
|
||||
regex-syntax=0.3.9 \
|
||||
rustc-serialize=0.3.21 \
|
||||
semver=0.5.1 \
|
||||
semver-parser=0.6.1 \
|
||||
shell-escape=0.1.3 \
|
||||
strsim=0.5.1 \
|
||||
tar=0.4.9 \
|
||||
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.3 \
|
||||
unicode-normalization=0.1.2 \
|
||||
url=1.2.3 \
|
||||
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
|
||||
for dependency in advapi32-sys=0.2.0 \
|
||||
aho-corasick=0.5.3 \
|
||||
bitflags=0.7.0 \
|
||||
bufstream=0.1.2 \
|
||||
cfg-if=0.1.0 \
|
||||
cmake=0.1.19 \
|
||||
crossbeam=0.2.10 \
|
||||
curl=0.4.1 \
|
||||
curl-sys=0.3.6 \
|
||||
docopt=0.6.86 \
|
||||
env_logger=0.3.5 \
|
||||
error-chain=0.7.2 \
|
||||
filetime=0.1.10 \
|
||||
flate2=0.2.14 \
|
||||
fs2=0.3.0 \
|
||||
gcc=0.3.39 \
|
||||
gdi32-sys=0.2.0 \
|
||||
git2=0.6.3 \
|
||||
git2-curl=0.7.0 \
|
||||
glob=0.2.11 \
|
||||
hamcrest=0.1.1 \
|
||||
idna=0.1.0 \
|
||||
kernel32-sys=0.2.2 \
|
||||
lazy_static=0.2.2 \
|
||||
libc=0.2.18 \
|
||||
libgit2-sys=0.6.6 \
|
||||
libssh2-sys=0.2.5 \
|
||||
libz-sys=1.0.13 \
|
||||
log=0.3.6 \
|
||||
matches=0.1.4 \
|
||||
memchr=0.1.11 \
|
||||
metadeps=1.1.1 \
|
||||
miniz-sys=0.1.7 \
|
||||
miow=0.1.3 \
|
||||
net2=0.2.26 \
|
||||
num=0.1.36 \
|
||||
num-bigint=0.1.35 \
|
||||
num-complex=0.1.35 \
|
||||
num-integer=0.1.32 \
|
||||
num-iter=0.1.32 \
|
||||
num-rational=0.1.35 \
|
||||
num-traits=0.1.36 \
|
||||
num_cpus=1.1.0 \
|
||||
openssl=0.9.6 \
|
||||
openssl-probe=0.1.0 \
|
||||
openssl-sys=0.9.6 \
|
||||
pkg-config=0.3.8 \
|
||||
psapi-sys=0.1.0 \
|
||||
rand=0.3.14 \
|
||||
regex=0.1.80 \
|
||||
regex-syntax=0.3.9 \
|
||||
rustc-serialize=0.3.21 \
|
||||
semver=0.5.1 \
|
||||
semver-parser=0.6.1 \
|
||||
shell-escape=0.1.3 \
|
||||
strsim=0.5.1 \
|
||||
tar=0.4.9 \
|
||||
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.3 \
|
||||
unicode-normalization=0.1.2 \
|
||||
url=1.2.3 \
|
||||
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)"
|
||||
dep="$(echo "$dependency" | cut -d= -f1)"
|
||||
ver="$(echo "$dependency" | cut -d= -f2)"
|
||||
|
||||
tar xvf $CWD/$dep-$ver.crate
|
||||
tar xvf $CWD/$dep-$ver.crate
|
||||
|
||||
mv $dep-$ver $dep
|
||||
mv $dep-$ver $dep
|
||||
|
||||
touch $dep/.cargo-ok
|
||||
zcat $CWD/checksums/$dep-cargo-checksum.json.gz > $dep/.cargo-checksum.json
|
||||
done
|
||||
)
|
||||
touch $dep/.cargo-ok
|
||||
zcat $CWD/checksums/$dep-cargo-checksum.json.gz > $dep/.cargo-checksum.json
|
||||
done
|
||||
)
|
||||
fi
|
||||
|
||||
make
|
||||
make install DESTDIR=$PKG
|
||||
|
|
Loading…
Reference in a new issue