Skip to content

Commit

Permalink
Auto merge of #2939 - plutoforever:master, r=str4d
Browse files Browse the repository at this point in the history
removed bashisms from build scripts

Closes #2677
  • Loading branch information
zkbot committed Apr 1, 2021
2 parents 057fa9a + fb38cf0 commit 51ca3b9
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 52 deletions.
28 changes: 14 additions & 14 deletions zcutil/build.sh
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
#!/usr/bin/env bash
#!/bin/sh

export LC_ALL=C
set -eu -o pipefail
set -eu
set +x

function cmd_pref() {
if type -p "$2" > /dev/null; then
cmd_pref() {
if command -v "$2" >/dev/null; then
eval "$1=$2"
else
eval "$1=$3"
fi
}

# If a g-prefixed version of the command exists, use it preferentially.
function gprefix() {
gprefix() {
cmd_pref "$1" "g$2" "$2"
}

Expand All @@ -22,21 +22,21 @@ cd "$(dirname "$("$READLINK" -f "$0")")/.."

# Allow user overrides to $MAKE. Typical usage for users who need it:
# MAKE=gmake ./zcutil/build.sh -j$(nproc)
if [[ -z "${MAKE-}" ]]; then
if [ -z "${MAKE-}" ]; then
MAKE=make
fi

# Allow overrides to $BUILD and $HOST for porters. Most users will not need it.
# BUILD=i686-pc-linux-gnu ./zcutil/build.sh
if [[ -z "${BUILD-}" ]]; then
if [ -z "${BUILD-}" ]; then
BUILD="$(./depends/config.guess)"
fi
if [[ -z "${HOST-}" ]]; then
if [ -z "${HOST-}" ]; then
HOST="$BUILD"
fi

# Allow users to set arbitrary compile flags. Most users will not need this.
if [[ -z "${CONFIGURE_FLAGS-}" ]]; then
if [ -z "${CONFIGURE_FLAGS-}" ]; then
CONFIGURE_FLAGS=""
fi

Expand Down Expand Up @@ -69,13 +69,13 @@ set -x
eval "$MAKE" --version
as --version

ENABLE_DEBUG_REGEX='^(.*\s)?--enable-debug(\s.*)?$'
if [[ "$CONFIGURE_FLAGS" =~ $ENABLE_DEBUG_REGEX ]]
then
case "$CONFIGURE_FLAGS" in
(*"--enable-debug"*)
DEBUG=1
else
;;
(*)
DEBUG=
fi
;;esac

HOST="$HOST" BUILD="$BUILD" "$MAKE" "$@" -C ./depends/ DEBUG="$DEBUG"

Expand Down
77 changes: 39 additions & 38 deletions zcutil/fetch-params.sh
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
#!/usr/bin/env bash
#!/bin/sh

export LC_ALL=C
set -eu

if [[ "$OSTYPE" == "darwin"* ]]; then
uname_S=$(uname -s 2>/dev/null || echo not)

if [ "$uname_S" = "Darwin" ]; then
PARAMS_DIR="$HOME/Library/Application Support/ZcashParams"
else
PARAMS_DIR="$HOME/.zcash-params"
Expand All @@ -19,7 +21,7 @@ DOWNLOAD_URL="https://download.z.cash/downloads"
IPFS_HASH="/ipfs/QmXRHVGLQBiKwvNq7c2vPxAKz1zRVmMYbmt7G5TQss7tY7"

SHA256CMD="$(command -v sha256sum || echo shasum)"
SHA256ARGS="$(command -v sha256sum >/dev/null || echo '-a 256')"
SHA256ARGS="$(command -v sha256sum >/dev/null || echo \"-a 256\")"

WGETCMD="$(command -v wget || echo '')"
IPFSCMD="$(command -v ipfs || echo '')"
Expand All @@ -30,64 +32,57 @@ ZC_DISABLE_WGET="${ZC_DISABLE_WGET:-}"
ZC_DISABLE_IPFS="${ZC_DISABLE_IPFS:-}"
ZC_DISABLE_CURL="${ZC_DISABLE_CURL:-}"

function fetch_wget {
LOCKFILE=/tmp/fetch_params.lock

fetch_wget() {
if [ -z "$WGETCMD" ] || ! [ -z "$ZC_DISABLE_WGET" ]; then
return 1
fi

local filename="$1"
local dlname="$2"

cat <<EOF
Retrieving (wget): $DOWNLOAD_URL/$filename
Retrieving (wget): $DOWNLOAD_URL/$1
EOF

wget \
--progress=dot:giga \
--output-document="$dlname" \
--output-document="$2" \
--continue \
--retry-connrefused --waitretry=3 --timeout=30 \
"$DOWNLOAD_URL/$filename"
"$DOWNLOAD_URL/$1"
}

function fetch_ipfs {
fetch_ipfs() {
if [ -z "$IPFSCMD" ] || ! [ -z "$ZC_DISABLE_IPFS" ]; then
return 1
fi

local filename="$1"
local dlname="$2"

cat <<EOF
Retrieving (ipfs): $IPFS_HASH/$filename
Retrieving (ipfs): $IPFS_HASH/$1
EOF

ipfs get --output "$dlname" "$IPFS_HASH/$filename"
ipfs get --output "$2" "$IPFS_HASH/$1"
}

function fetch_curl {
fetch_curl() {
if [ -z "$CURLCMD" ] || ! [ -z "$ZC_DISABLE_CURL" ]; then
return 1
fi

local filename="$1"
local dlname="$2"

cat <<EOF
Retrieving (curl): $DOWNLOAD_URL/$filename
Retrieving (curl): $DOWNLOAD_URL/$1
EOF

curl \
--output "$dlname" \
--output "$2" \
-# -L -C - \
"$DOWNLOAD_URL/$filename"
"$DOWNLOAD_URL/$1"

}

function fetch_failure {
fetch_failure() {
cat >&2 <<EOF
Failed to fetch the Zcash zkSNARK parameters!
Expand All @@ -101,11 +96,13 @@ EOF
exit 1
}

function fetch_params {
local filename="$1"
local output="$2"
local dlname="${output}.dl"
local expectedhash="$3"
fetch_params() {
# We only set these variables inside this function,
# and unset them at the end of the function.
filename="$1"
output="$2"
dlname="${output}.dl"
expectedhash="$3"

if ! [ -f "$output" ]
then
Expand Down Expand Up @@ -143,33 +140,37 @@ EOF
exit 1
fi
fi

unset -v filename
unset -v output
unset -v dlname
unset -v expectedhash
}

# Use flock to prevent parallel execution.
function lock() {
local lockfile=/tmp/fetch_params.lock
if [[ "$OSTYPE" == "darwin"* ]]; then
if shlock -f ${lockfile} -p $$; then
lock() {
if [ "$uname_S" = "Darwin" ]; then
if shlock -f ${LOCKFILE} -p $$; then
return 0
else
return 1
fi
else
# create lock file
eval "exec 200>$lockfile"
eval "exec 9>$LOCKFILE"
# acquire the lock
flock -n 200 \
flock -n 9 \
&& return 0 \
|| return 1
fi
}

function exit_locked_error {
exit_locked_error() {
echo "Only one instance of fetch-params.sh can be run at a time." >&2
exit 1
}

function main() {
main() {

lock fetch-params.sh \
|| exit_locked_error
Expand Down Expand Up @@ -232,5 +233,5 @@ then
fi

main
rm -f /tmp/fetch_params.lock
rm -f $LOCKFILE
exit 0

0 comments on commit 51ca3b9

Please sign in to comment.