mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
a0d3f37d3a
2aa48edec0101f8a77a2189244fc62722ff7a123 refactor: Drop unused ${WRAP_DIR}/${HOST} directory (Hennadii Stepanov)
1362be044724bb49d785ca2e296a3b43343c1690 build: Drop make dist in gitian builds (Hennadii Stepanov)
Pull request description:
After the merge of #18331, the packaged source tarball is created by `git archive`, but the binaries are built from another one which is made by `make dist`.
With this PR the only source tarball, created by `git archive`, is used both for binaries building and for packaging to users.
Close #16588.
Close #18547.
As a good side-effect, #18349 becomes redundant.
**Change in behavior**
The following variables 1b151e3ffc/configure.ac (L2-L6)
are no longer used for naming of directories and tarballs.
Instead of them the gitian descriptors use a git tag (if available) or a commit hash.
---
Also a small refactor commit picked from #18404.
ACKs for top commit:
dongcarl:
ACK 2aa48edec0101f8a77a2189244fc62722ff7a123
MarcoFalke:
ACK 2aa48edec0101f8a77a2189244fc62722ff7a123
fanquake:
ACK 2aa48edec0101f8a77a2189244fc62722ff7a123 - I've had a quick look over this, and don't want to block merging if this actually gets as closer to finally having this all sorted out. Obviously we've still got #18741, and after speaking to Carl this morning, there will likely be even more changes after that (not Guix specific).
Tree-SHA512: d3b16f87e48d1790a3264940c28acd5d881bfd10f3ce94fb0c8a6af76d8039289d01e0cd4972adac49ae24362857251f6c1e5e09e3e9fbf636c10708b4015a7c
73 lines
2.4 KiB
Bash
Executable File
73 lines
2.4 KiB
Bash
Executable File
#!/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.
|
|
#
|
|
# Check for shellcheck warnings in shell scripts.
|
|
|
|
export LC_ALL=C
|
|
|
|
# The shellcheck binary segfault/coredumps in Travis with LC_ALL=C
|
|
# It does not do so in Ubuntu 14.04, 16.04, 18.04 in versions 0.3.3, 0.3.7, 0.4.6
|
|
# respectively. So export LC_ALL=C is set as required by lint-shell-locale.sh
|
|
# but unset here in case of running in Travis.
|
|
if [ "$TRAVIS" = "true" ]; then
|
|
unset LC_ALL
|
|
fi
|
|
|
|
# Disabled warnings:
|
|
disabled=(
|
|
SC2046 # Quote this to prevent word splitting.
|
|
SC2086 # Double quote to prevent globbing and word splitting.
|
|
SC2162 # read without -r will mangle backslashes.
|
|
)
|
|
disabled_gitian=(
|
|
SC2094 # Make sure not to read and write the same file in the same pipeline.
|
|
SC2129 # Consider using { cmd1; cmd2; } >> file instead of individual redirects.
|
|
)
|
|
|
|
EXIT_CODE=0
|
|
|
|
if ! command -v shellcheck > /dev/null; then
|
|
echo "Skipping shell linting since shellcheck is not installed."
|
|
exit $EXIT_CODE
|
|
fi
|
|
|
|
if ! command -v gawk > /dev/null; then
|
|
echo "Skipping shell linting since gawk is not installed."
|
|
exit $EXIT_CODE
|
|
fi
|
|
|
|
EXCLUDE="--exclude=$(IFS=','; echo "${disabled[*]}")"
|
|
SOURCED_FILES=$(git ls-files | xargs gawk '/^# shellcheck shell=/ {print FILENAME} {nextfile}') # Check shellcheck directive used for sourced files
|
|
if ! shellcheck "$EXCLUDE" $SOURCED_FILES $(git ls-files -- '*.sh' | grep -vE 'src/(leveldb|secp256k1|univalue)/'); then
|
|
EXIT_CODE=1
|
|
fi
|
|
|
|
if ! command -v yq > /dev/null; then
|
|
echo "Skipping Gitian desriptor scripts checking since yq is not installed."
|
|
exit $EXIT_CODE
|
|
fi
|
|
|
|
if ! command -v jq > /dev/null; then
|
|
echo "Skipping Gitian descriptor scripts checking since jq is not installed."
|
|
exit $EXIT_CODE
|
|
fi
|
|
|
|
EXCLUDE_GITIAN=${EXCLUDE}",$(IFS=','; echo "${disabled_gitian[*]}")"
|
|
SHELLCHECK_CMD="shellcheck --external-sources --check-sourced $EXCLUDE_GITIAN"
|
|
for descriptor in $(git ls-files -- 'contrib/gitian-descriptors/*.yml')
|
|
do
|
|
script=$(basename "$descriptor")
|
|
# Use #!/bin/bash as gitian-builder/bin/gbuild does to complete a script.
|
|
echo "#!/bin/bash" > $script
|
|
yq -r .script "$descriptor" >> $script
|
|
if ! $SHELLCHECK_CMD $script; then
|
|
EXIT_CODE=1
|
|
fi
|
|
rm $script
|
|
done
|
|
|
|
exit $EXIT_CODE
|