parent
98264e2ccb
commit
ae379cf7d1
@ -0,0 +1,144 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Copyright (c) 2018-2019 The Bitcoin Core developers
|
||||||
|
# Distributed under the MIT software license, see the accompanying
|
||||||
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
#
|
||||||
|
# Build previous releases.
|
||||||
|
|
||||||
|
export LC_ALL=C
|
||||||
|
|
||||||
|
CONFIG_FLAGS=""
|
||||||
|
FUNCTIONAL_TESTS=0
|
||||||
|
DELETE_EXISTING=0
|
||||||
|
USE_DEPENDS=0
|
||||||
|
DOWNLOAD_BINARY=0
|
||||||
|
CONFIG_FLAGS=""
|
||||||
|
TARGET="releases"
|
||||||
|
|
||||||
|
while getopts ":hfrdbt:" opt; do
|
||||||
|
case $opt in
|
||||||
|
h)
|
||||||
|
echo "Usage: .previous_release.sh [options] tag1 tag2"
|
||||||
|
echo " options:"
|
||||||
|
echo " -h Print this message"
|
||||||
|
echo " -f Configure for functional tests"
|
||||||
|
echo " -r Remove existing directory"
|
||||||
|
echo " -d Use depends"
|
||||||
|
echo " -b Download release binary"
|
||||||
|
echo " -t Target directory (default: releases)"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
f)
|
||||||
|
FUNCTIONAL_TESTS=1
|
||||||
|
CONFIG_FLAGS="$CONFIG_FLAGS --without-gui --disable-tests --disable-bench"
|
||||||
|
;;
|
||||||
|
r)
|
||||||
|
DELETE_EXISTING=1
|
||||||
|
;;
|
||||||
|
d)
|
||||||
|
USE_DEPENDS=1
|
||||||
|
;;
|
||||||
|
b)
|
||||||
|
DOWNLOAD_BINARY=1
|
||||||
|
;;
|
||||||
|
t)
|
||||||
|
TARGET=$OPTARG
|
||||||
|
;;
|
||||||
|
\?)
|
||||||
|
echo "Invalid option: -$OPTARG" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
shift $((OPTIND-1))
|
||||||
|
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "Specify release tag(s), e.g.: .previous_release v0.15.1"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "$TARGET" ]; then
|
||||||
|
mkdir -p $TARGET
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$DOWNLOAD_BINARY" -eq "1" ]; then
|
||||||
|
HOST="${HOST:-$(./depends/config.guess)}"
|
||||||
|
case "$HOST" in
|
||||||
|
x86_64-*-linux*)
|
||||||
|
PLATFORM=x86_64-linux-gnu
|
||||||
|
;;
|
||||||
|
x86_64-apple-darwin*)
|
||||||
|
PLATFORM=osx64
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Not sure which binary to download for $HOST."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Releases directory: $TARGET"
|
||||||
|
pushd "$TARGET" || exit 1
|
||||||
|
{
|
||||||
|
for tag in "$@"
|
||||||
|
do
|
||||||
|
if [ "$DELETE_EXISTING" -eq "1" ]; then
|
||||||
|
if [ -d "$tag" ]; then
|
||||||
|
rm -r "$tag"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$DOWNLOAD_BINARY" -eq "0" ]; then
|
||||||
|
|
||||||
|
if [ ! -d "$tag" ]; then
|
||||||
|
if [ -z $(git tag -l "$tag") ]; then
|
||||||
|
echo "Tag $tag not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
git clone https://github.com/bitcoin/bitcoin "$tag"
|
||||||
|
pushd "$tag" || exit 1
|
||||||
|
{
|
||||||
|
git checkout "$tag"
|
||||||
|
if [ "$USE_DEPENDS" -eq "1" ]; then
|
||||||
|
pushd depends || exit 1
|
||||||
|
{
|
||||||
|
if [ "$FUNCTIONAL_TESTS" -eq "1" ]; then
|
||||||
|
make NO_QT=1
|
||||||
|
else
|
||||||
|
make
|
||||||
|
fi
|
||||||
|
HOST="${HOST:-$(./config.guess)}"
|
||||||
|
}
|
||||||
|
popd || exit 1
|
||||||
|
CONFIG_FLAGS="--prefix=$PWD/depends/$HOST $CONFIG_FLAGS"
|
||||||
|
fi
|
||||||
|
./autogen.sh
|
||||||
|
./configure $CONFIG_FLAGS
|
||||||
|
make
|
||||||
|
# Move binaries, so they're in the same place as in the release download:
|
||||||
|
mkdir bin
|
||||||
|
mv src/bitcoind src/bitcoin-cli src/bitcoin-tx bin
|
||||||
|
if [ "$FUNCTIONAL_TESTS" -eq "0" ]; then
|
||||||
|
mv src/qt/bitcoin-qt bin
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
popd || exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ -d "$tag" ]; then
|
||||||
|
echo "Using cached $tag"
|
||||||
|
else
|
||||||
|
mkdir "$tag"
|
||||||
|
URL="https://bitcoin.org/bin/bitcoin-core-${tag:1}/bitcoin-${tag:1}-$PLATFORM.tar.gz"
|
||||||
|
echo "Fetching: $URL"
|
||||||
|
curl -O $URL
|
||||||
|
tar -zxf "bitcoin-${tag:1}-$PLATFORM.tar.gz" -C "$tag" --strip-components=1 "bitcoin-${tag:1}"
|
||||||
|
rm "bitcoin-${tag:1}-$PLATFORM.tar.gz"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
popd || exit 1
|
Loading…
Reference in new issue