Changeset View
Changeset View
Standalone View
Standalone View
contrib/gitian-descriptors/gitian-linux.yml
--- | --- | ||||
name: "bitcoin-abc-linux" | name: "bitcoin-abc-linux" | ||||
enable_cache: true | enable_cache: true | ||||
distro: "debian" | distro: "debian" | ||||
suites: | suites: | ||||
- "buster" | - "bullseye" | ||||
architectures: | architectures: | ||||
- "amd64" | - "amd64" | ||||
packages: | packages: | ||||
- "autoconf" | - "autoconf" | ||||
- "automake" | - "automake" | ||||
- "binutils-aarch64-linux-gnu" | - "binutils-aarch64-linux-gnu" | ||||
- "binutils-arm-linux-gnueabihf" | - "binutils-arm-linux-gnueabihf" | ||||
- "binutils-gold" | - "binutils-gold" | ||||
- "bsdmainutils" | - "bsdmainutils" | ||||
- "build-essential" | |||||
- "ca-certificates" | - "ca-certificates" | ||||
- "cmake" | |||||
- "curl" | - "curl" | ||||
- "faketime" | - "faketime" | ||||
- "g++-aarch64-linux-gnu" | # Use gcc/g++ 9 to avoid introducing the new pthread_cond_clockwait from glibc | ||||
- "g++-arm-linux-gnueabihf" | # 2.30, which would make our release binary incompatible with systems using an | ||||
- "gcc-aarch64-linux-gnu" | # older glibc version. | ||||
- "gcc-arm-linux-gnueabihf" | - "g++-9" | ||||
- "g++-9-aarch64-linux-gnu" | |||||
- "g++-9-arm-linux-gnueabihf" | |||||
- "gcc-9" | |||||
- "gcc-9-aarch64-linux-gnu" | |||||
- "gcc-9-arm-linux-gnueabihf" | |||||
- "git" | - "git" | ||||
- "gperf" | - "gperf" | ||||
- "libtool" | - "libtool" | ||||
- "ninja-build" | - "ninja-build" | ||||
- "pkg-config" | - "pkg-config" | ||||
- "python3" | - "python3" | ||||
repositories: | |||||
- "distribution": "buster-backports" | |||||
"source": "deb http://deb.debian.org/debian/ buster-backports main" | |||||
packages: | |||||
- "cmake" | |||||
remotes: | remotes: | ||||
- "url": "https://github.com/Bitcoin-ABC/bitcoin-abc.git" | - "url": "https://github.com/Bitcoin-ABC/bitcoin-abc.git" | ||||
"dir": "bitcoin" | "dir": "bitcoin" | ||||
files: [] | files: [] | ||||
script: | | script: | | ||||
WRAP_DIR=$HOME/wrapped | WRAP_DIR=$HOME/wrapped | ||||
HOSTS=( | HOSTS=( | ||||
▲ Show 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | for prog in ${FAKETIME_HOST_PROGS}; do | ||||
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog} | echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog} | ||||
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog} | echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog} | ||||
echo "\$REAL \"\$@\"" >> $WRAP_DIR/${i}-${prog} | echo "\$REAL \"\$@\"" >> $WRAP_DIR/${i}-${prog} | ||||
chmod +x ${WRAP_DIR}/${i}-${prog} | chmod +x ${WRAP_DIR}/${i}-${prog} | ||||
done | done | ||||
done | done | ||||
} | } | ||||
function create_per-host_compiler_wrapper { | |||||
for i in ${HOSTS[@]}; do | |||||
for prog in gcc g++; do | |||||
echo '#!/usr/bin/env bash' > ${WRAP_DIR}/${i}-${prog} | |||||
echo "REAL=\`which -a ${i}-${prog}-9 | head -1\`" >> ${WRAP_DIR}/${i}-${prog} | |||||
echo "\$REAL \"\$@\"" >> $WRAP_DIR/${i}-${prog} | |||||
chmod +x ${WRAP_DIR}/${i}-${prog} | |||||
done | |||||
done | |||||
} | |||||
function create_native_compiler_wrapper { | |||||
for prog in gcc g++; do | |||||
echo '#!/usr/bin/env bash' > ${WRAP_DIR}/${prog} | |||||
echo "REAL=\`which -a x86_64-linux-gnu-${prog}-9 | head -1\`" >> ${WRAP_DIR}/${prog} | |||||
echo "\$REAL \"\$@\"" >> $WRAP_DIR/${prog} | |||||
chmod +x ${WRAP_DIR}/${prog} | |||||
done | |||||
} | |||||
# Faketime for depends so intermediate results are comparable | # Faketime for depends so intermediate results are comparable | ||||
export PATH_orig=${PATH} | export PATH_orig=${PATH} | ||||
create_global_faketime_wrappers "2000-01-01 12:00:00" | create_global_faketime_wrappers "2000-01-01 12:00:00" | ||||
create_per-host_faketime_wrappers "2000-01-01 12:00:00" | create_per-host_faketime_wrappers "2000-01-01 12:00:00" | ||||
# Wrap the compiler <host>-gcc-9 and <host>-g++-9 into <host>-gcc and | |||||
# <host>-g++ | |||||
create_per-host_compiler_wrapper | |||||
# For the current host platform also wrap into regular gcc and g++, assume | |||||
# x86_64 | |||||
create_native_compiler_wrapper | |||||
export PATH=${WRAP_DIR}:${PATH} | export PATH=${WRAP_DIR}:${PATH} | ||||
cd bitcoin | cd bitcoin | ||||
SOURCEDIR=`pwd` | SOURCEDIR=`pwd` | ||||
BASEPREFIX=`pwd`/depends | BASEPREFIX=`pwd`/depends | ||||
# Build dependencies for each host | # Build dependencies for each host | ||||
for i in ${HOSTS[@]}; do | for i in ${HOSTS[@]}; do | ||||
make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}" | make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}" | ||||
▲ Show 20 Lines • Show All 63 Lines • Show Last 20 Lines |