mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-20 22:04:19 +02:00
guix: Move DISTSRC determination to guix-build.sh
This commit is contained in:
parent
0b7cd07bb5
commit
2f9d1fdde6
@ -64,6 +64,50 @@ else
|
|||||||
GIT_COMMIT=$(git rev-parse --short=12 HEAD)
|
GIT_COMMIT=$(git rev-parse --short=12 HEAD)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
################
|
||||||
|
# Check 4: Make sure that build directories do no exist
|
||||||
|
################
|
||||||
|
|
||||||
|
# Default to building for all supported HOSTs (overridable by environment)
|
||||||
|
export HOSTS="${HOSTS:-x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu riscv64-linux-gnu
|
||||||
|
x86_64-w64-mingw32}"
|
||||||
|
|
||||||
|
DISTSRC_BASE="${DISTSRC_BASE:-${PWD}}"
|
||||||
|
|
||||||
|
# Usage: distsrc_for_host HOST
|
||||||
|
#
|
||||||
|
# HOST: The current platform triple we're building for
|
||||||
|
#
|
||||||
|
distsrc_for_host() {
|
||||||
|
echo "${DISTSRC_BASE}/distsrc-${GIT_COMMIT}-${1}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Accumulate a list of build directories that already exist...
|
||||||
|
hosts_distsrc_exists=""
|
||||||
|
for host in $HOSTS; do
|
||||||
|
if [ -e "$(distsrc_for_host "$host")" ]; then
|
||||||
|
hosts_distsrc_exists+=" ${host}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$hosts_distsrc_exists" ]; then
|
||||||
|
# ...so that we can print them out nicely in an error message
|
||||||
|
cat << EOF
|
||||||
|
ERR: Build directories for this commit already exist for the following platform
|
||||||
|
triples you're attempting to build, probably because of previous builds.
|
||||||
|
Please remove, or otherwise deal with them prior to starting another build.
|
||||||
|
|
||||||
|
Aborting...
|
||||||
|
|
||||||
|
EOF
|
||||||
|
for host in $hosts_distsrc_exists; do
|
||||||
|
echo " ${host} '$(distsrc_for_host "$host")'"
|
||||||
|
done
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
mkdir -p "$DISTSRC_BASE"
|
||||||
|
fi
|
||||||
|
|
||||||
#########
|
#########
|
||||||
# Setup #
|
# Setup #
|
||||||
#########
|
#########
|
||||||
@ -116,9 +160,9 @@ and untracked files and directories will be wiped, allowing you to start anew.
|
|||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
# Deterministically build Bitcoin Core for HOSTs (overridable by environment)
|
# Deterministically build Bitcoin Core
|
||||||
# shellcheck disable=SC2153
|
# shellcheck disable=SC2153
|
||||||
for host in ${HOSTS=x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu riscv64-linux-gnu x86_64-w64-mingw32}; do
|
for host in $HOSTS; do
|
||||||
|
|
||||||
# Display proper warning when the user interrupts the build
|
# Display proper warning when the user interrupts the build
|
||||||
trap 'int_trap ${host}' INT
|
trap 'int_trap ${host}' INT
|
||||||
@ -187,12 +231,13 @@ for host in ${HOSTS=x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu riscv
|
|||||||
# Please read the README.md in the same directory as this file for
|
# Please read the README.md in the same directory as this file for
|
||||||
# more information.
|
# more information.
|
||||||
#
|
#
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086,SC2031
|
||||||
time-machine environment --manifest="${PWD}/contrib/guix/manifest.scm" \
|
time-machine environment --manifest="${PWD}/contrib/guix/manifest.scm" \
|
||||||
--container \
|
--container \
|
||||||
--pure \
|
--pure \
|
||||||
--no-cwd \
|
--no-cwd \
|
||||||
--share="$PWD"=/bitcoin \
|
--share="$PWD"=/bitcoin \
|
||||||
|
--share="$DISTSRC_BASE"=/distsrc-base \
|
||||||
--share="$OUTDIR"=/outdir \
|
--share="$OUTDIR"=/outdir \
|
||||||
--expose="$(git rev-parse --git-common-dir)" \
|
--expose="$(git rev-parse --git-common-dir)" \
|
||||||
${SOURCES_PATH:+--share="$SOURCES_PATH"} \
|
${SOURCES_PATH:+--share="$SOURCES_PATH"} \
|
||||||
@ -204,6 +249,7 @@ for host in ${HOSTS=x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu riscv
|
|||||||
SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:?unable to determine value}" \
|
SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:?unable to determine value}" \
|
||||||
${V:+V=1} \
|
${V:+V=1} \
|
||||||
${SOURCES_PATH:+SOURCES_PATH="$SOURCES_PATH"} \
|
${SOURCES_PATH:+SOURCES_PATH="$SOURCES_PATH"} \
|
||||||
|
DISTSRC="$(DISTSRC_BASE=/distsrc-base && distsrc_for_host "$HOST")" \
|
||||||
OUTDIR=/outdir \
|
OUTDIR=/outdir \
|
||||||
bash -c "cd /bitcoin && bash contrib/guix/libexec/build.sh"
|
bash -c "cd /bitcoin && bash contrib/guix/libexec/build.sh"
|
||||||
)
|
)
|
||||||
|
@ -23,15 +23,6 @@ echo "At most ${MAX_JOBS:?not set} jobs will run at once..."
|
|||||||
# $HOSTs after successfully building.
|
# $HOSTs after successfully building.
|
||||||
BASEPREFIX="${PWD}/depends"
|
BASEPREFIX="${PWD}/depends"
|
||||||
|
|
||||||
# Setup the directory where our Bitcoin Core build for HOST will occur
|
|
||||||
DISTSRC="${DISTSRC:-${PWD}/distsrc-${HOST}}"
|
|
||||||
if [ -e "$DISTSRC" ]; then
|
|
||||||
echo "DISTSRC directory '${DISTSRC}' exists, probably because of previous builds... Aborting..."
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
mkdir -p "$DISTSRC"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Given a package name and an output name, return the path of that output in our
|
# Given a package name and an output name, return the path of that output in our
|
||||||
# current guix environment
|
# current guix environment
|
||||||
store_path() {
|
store_path() {
|
||||||
@ -185,6 +176,7 @@ esac
|
|||||||
|
|
||||||
# Make $HOST-specific native binaries from depends available in $PATH
|
# Make $HOST-specific native binaries from depends available in $PATH
|
||||||
export PATH="${BASEPREFIX}/${HOST}/native/bin:${PATH}"
|
export PATH="${BASEPREFIX}/${HOST}/native/bin:${PATH}"
|
||||||
|
mkdir -p "$DISTSRC"
|
||||||
(
|
(
|
||||||
cd "$DISTSRC"
|
cd "$DISTSRC"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user