mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-20 02:25:40 +01:00
8f7b930475
Removes the leading 0 from the version number. The minor version, which we had been using as the major version, is now the major version. The revision, which we had been using as the minor version, is now the minor version. The revision number is dropped. The build number is promoted to being part of the version number. This also avoids issues where it was accidentally not included in the version number. The CLIENT_VERSION remains the same format as previous as previously, the Major version was 0 so that was never a factor in CLIENT_VERSION.
157 lines
5.6 KiB
YAML
157 lines
5.6 KiB
YAML
---
|
|
name: "bitcoin-core-win-22"
|
|
enable_cache: true
|
|
distro: "ubuntu"
|
|
suites:
|
|
- "bionic"
|
|
architectures:
|
|
- "amd64"
|
|
packages:
|
|
- "curl"
|
|
- "g++"
|
|
- "git"
|
|
- "pkg-config"
|
|
- "autoconf"
|
|
- "libtool"
|
|
- "automake"
|
|
- "faketime"
|
|
- "bsdmainutils"
|
|
- "mingw-w64"
|
|
- "g++-mingw-w64"
|
|
- "nsis"
|
|
- "zip"
|
|
- "ca-certificates"
|
|
- "python3"
|
|
remotes:
|
|
- "url": "https://github.com/bitcoin/bitcoin.git"
|
|
"dir": "bitcoin"
|
|
files: []
|
|
script: |
|
|
set -e -o pipefail
|
|
|
|
WRAP_DIR=$HOME/wrapped
|
|
HOSTS="x86_64-w64-mingw32"
|
|
CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests"
|
|
FAKETIME_HOST_PROGS="ar ranlib nm windres strip objcopy"
|
|
FAKETIME_PROGS="date makensis zip"
|
|
HOST_CFLAGS="-O2 -g -fno-ident"
|
|
HOST_CXXFLAGS="-O2 -g -fno-ident"
|
|
|
|
export QT_RCC_TEST=1
|
|
export QT_RCC_SOURCE_DATE_OVERRIDE=1
|
|
export TZ="UTC"
|
|
export BUILD_DIR="$PWD"
|
|
mkdir -p ${WRAP_DIR}
|
|
if test -n "$GBUILD_CACHE_ENABLED"; then
|
|
export SOURCES_PATH=${GBUILD_COMMON_CACHE}
|
|
export BASE_CACHE=${GBUILD_PACKAGE_CACHE}
|
|
mkdir -p ${BASE_CACHE} ${SOURCES_PATH}
|
|
fi
|
|
|
|
# Use $LIB in LD_PRELOAD to avoid hardcoding the dir (See `man ld.so`)
|
|
function create_global_faketime_wrappers {
|
|
for prog in ${FAKETIME_PROGS}; do
|
|
echo '#!/usr/bin/env bash' > ${WRAP_DIR}/${prog}
|
|
echo "REAL=\`which -a ${prog} | grep -v ${WRAP_DIR}/${prog} | head -1\`" >> ${WRAP_DIR}/${prog}
|
|
echo "export LD_PRELOAD='/usr/\$LIB/faketime/libfaketime.so.1'" >> ${WRAP_DIR}/${prog}
|
|
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${prog}
|
|
echo "\$REAL \$@" >> $WRAP_DIR/${prog}
|
|
chmod +x ${WRAP_DIR}/${prog}
|
|
done
|
|
}
|
|
|
|
function create_per-host_faketime_wrappers {
|
|
for i in $HOSTS; do
|
|
for prog in ${FAKETIME_HOST_PROGS}; do
|
|
echo '#!/usr/bin/env bash' > ${WRAP_DIR}/${i}-${prog}
|
|
echo "REAL=\`which -a ${i}-${prog} | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog}
|
|
echo "export LD_PRELOAD='/usr/\$LIB/faketime/libfaketime.so.1'" >> ${WRAP_DIR}/${i}-${prog}
|
|
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog}
|
|
echo "\$REAL \$@" >> $WRAP_DIR/${i}-${prog}
|
|
chmod +x ${WRAP_DIR}/${i}-${prog}
|
|
done
|
|
done
|
|
}
|
|
|
|
function create_per-host_compiler_wrapper {
|
|
# -posix variant is required for c++11 threading.
|
|
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}-posix | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog}
|
|
echo "export LD_PRELOAD='/usr/\$LIB/faketime/libfaketime.so.1'" >> ${WRAP_DIR}/${i}-${prog}
|
|
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog}
|
|
echo "\$REAL \"\$@\"" >> $WRAP_DIR/${i}-${prog}
|
|
chmod +x ${WRAP_DIR}/${i}-${prog}
|
|
done
|
|
done
|
|
}
|
|
|
|
# Faketime for depends so intermediate results are comparable
|
|
export PATH_orig=${PATH}
|
|
create_global_faketime_wrappers "2000-01-01 12:00:00"
|
|
create_per-host_faketime_wrappers "2000-01-01 12:00:00"
|
|
create_per-host_compiler_wrapper "2000-01-01 12:00:00"
|
|
export PATH=${WRAP_DIR}:${PATH}
|
|
|
|
cd bitcoin
|
|
BASEPREFIX="${PWD}/depends"
|
|
# Build dependencies for each host
|
|
for i in $HOSTS; do
|
|
make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}"
|
|
done
|
|
|
|
# Faketime for binaries
|
|
export PATH=${PATH_orig}
|
|
create_global_faketime_wrappers "${REFERENCE_DATETIME}"
|
|
create_per-host_faketime_wrappers "${REFERENCE_DATETIME}"
|
|
create_per-host_compiler_wrapper "${REFERENCE_DATETIME}"
|
|
export PATH=${WRAP_DIR}:${PATH}
|
|
|
|
# Define DISTNAME variable.
|
|
# shellcheck source=contrib/gitian-descriptors/assign_DISTNAME
|
|
source contrib/gitian-descriptors/assign_DISTNAME
|
|
|
|
GIT_ARCHIVE="${OUTDIR}/src/${DISTNAME}.tar.gz"
|
|
|
|
# Create the source tarball
|
|
mkdir -p "$(dirname "$GIT_ARCHIVE")"
|
|
git archive --prefix="${DISTNAME}/" --output="$GIT_ARCHIVE" HEAD
|
|
|
|
ORIGPATH="$PATH"
|
|
# Extract the git archive into a dir for each host and build
|
|
for i in ${HOSTS}; do
|
|
export PATH=${BASEPREFIX}/${i}/native/bin:${ORIGPATH}
|
|
mkdir -p distsrc-${i}
|
|
cd distsrc-${i}
|
|
INSTALLPATH="${PWD}/installed/${DISTNAME}"
|
|
mkdir -p ${INSTALLPATH}
|
|
tar --strip-components=1 -xf "${GIT_ARCHIVE}"
|
|
|
|
./autogen.sh
|
|
CONFIG_SITE=${BASEPREFIX}/${i}/share/config.site ./configure --prefix=/ --disable-ccache --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS} CFLAGS="${HOST_CFLAGS}" CXXFLAGS="${HOST_CXXFLAGS}"
|
|
make ${MAKEOPTS}
|
|
make ${MAKEOPTS} -C src check-security
|
|
make ${MAKEOPTS} -C src check-symbols
|
|
make deploy BITCOIN_WIN_INSTALLER="${OUTDIR}/${DISTNAME}-win64-setup-unsigned.exe"
|
|
make install DESTDIR=${INSTALLPATH}
|
|
cd installed
|
|
mv ${DISTNAME}/bin/*.dll ${DISTNAME}/lib/
|
|
find . -name "lib*.la" -delete
|
|
find . -name "lib*.a" -delete
|
|
rm -rf ${DISTNAME}/lib/pkgconfig
|
|
find ${DISTNAME}/bin -type f -executable -print0 | xargs -0 -n1 -I{} ../contrib/devtools/split-debug.sh {} {} {}.dbg
|
|
find ${DISTNAME}/lib -type f -print0 | xargs -0 -n1 -I{} ../contrib/devtools/split-debug.sh {} {} {}.dbg
|
|
cp ../doc/README_windows.txt ${DISTNAME}/readme.txt
|
|
find ${DISTNAME} -not -name "*.dbg" -type f | sort | zip -X@ ${OUTDIR}/${DISTNAME}-${i//x86_64-w64-mingw32/win64}.zip
|
|
find ${DISTNAME} -name "*.dbg" -type f | sort | zip -X@ ${OUTDIR}/${DISTNAME}-${i//x86_64-w64-mingw32/win64}-debug.zip
|
|
cd ../../
|
|
rm -rf distsrc-${i}
|
|
done
|
|
|
|
cp -rf contrib/windeploy $BUILD_DIR
|
|
cd $BUILD_DIR/windeploy
|
|
mkdir unsigned
|
|
cp ${OUTDIR}/${DISTNAME}-win64-setup-unsigned.exe unsigned/
|
|
find . | sort | tar --mtime="$REFERENCE_DATETIME" --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-win-unsigned.tar.gz
|