Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
d8c5a59
Merge #8090: Adding P2SH(p2pkh) script test case
laanwj May 31, 2016
2dc71e8
Revert deadlock fix in ProcessGetData
codablock Sep 15, 2017
bef0361
Merge #7877: Change mapRelay to store CTransactions
laanwj Apr 15, 2016
b2a27c0
Only serve normal transactions from mapRelay
codablock Sep 21, 2017
dfa0bd2
Merge #8080: Do not use mempool for GETDATA for tx accepted after the…
laanwj May 31, 2016
e65bf22
Merge #8121: [Doc] Update implemented BIPs list
sipa Jun 1, 2016
83dc1dc
Directly push messages instead of using CDataStream first
codablock Sep 15, 2017
91752ab
Merge #7689: Replace OpenSSL AES with ctaes-based version
sipa Jun 1, 2016
433a026
Fix OpenSSL build error
codablock Sep 16, 2017
bad08ea
Merge #7960: Only use AddInventoryKnown for transactions
sipa Jun 1, 2016
09eda97
Merge #8112: Include signal.h for sig_atomic_t in WIN32
sipa Jun 1, 2016
bf069fb
Merge #8123: Use std::atomic for fRequestShutdown and fReopenDebugLog
sipa Jun 1, 2016
fefd0ac
Merge #8077: Consensus: Decouple from chainparams.o and timedata.o
sipa Jun 1, 2016
dbf4dc4
Merge #8029: [Doc] Simplify OS X build notes
jonasschnelli Jun 2, 2016
df14a7f
Merge #7825: Prevent multiple calls to ExtractDestination
sipa Jun 2, 2016
fb88e9b
Merge #7997: replace mapNextTx with slimmer setSpends
sipa Jun 2, 2016
af51e59
Merge #8139: Fix interrupted HTTP RPC connection workaround for Pytho…
Jun 3, 2016
c69df9b
Merge #7967: [RPC] add feerate option to fundrawtransaction
laanwj Jun 3, 2016
7538795
Merge #8143: comment nit: miners don't vote
jonasschnelli Jun 4, 2016
d7d5d57
Merge #8137: Improve CWallet API with new AccountMove function.
laanwj Jun 6, 2016
463a68d
Merge #8007: Minor locking improvements
laanwj Jun 6, 2016
b2bd69a
Merge #8142: Improve CWallet API with new GetAccountPubkey function.
laanwj Jun 6, 2016
49c2e97
Merge #8151: [init] Make feefilter option debug option
laanwj Jun 7, 2016
7f0213a
Merge #8118: Reduce unnecessary hashing in signrawtransaction
laanwj Jun 7, 2016
d5d2556
Merge #8136: Log/report in 10% steps during VerifyDB
laanwj Jun 7, 2016
9af87c8
Merge #7957: [RPC][Bitcoin-TX] Add support for sequence number
laanwj Jun 7, 2016
0b8169d
Merge #8164: [Bitcoin-Tx] fix missing test fixtures, fix 32bit atoi i…
laanwj Jun 8, 2016
2ee817f
Merge #8078: Disable the mempool P2P command when bloom filters disabled
laanwj Jun 8, 2016
00c84ca
Merge #8065: Addrman offline attempts
laanwj Jun 8, 2016
881d832
Merge #7703: tor: Change auth order to only use password auth if -tor…
laanwj Jun 8, 2016
51fa05a
Merge #8082: Defer inserting into maprelay until just before relaying.
sipa Jun 1, 2016
ca699ce
Merge #8126: std::shared_ptr based CTransaction storage in mempool
laanwj Jun 8, 2016
05419ab
Merge #8153: [rpc] fundrawtransaction feeRate: Use BTC/kB
laanwj Jun 8, 2016
fc7b577
Merge #7993: [depends] Bump Freetype, ccache, ZeroMQ, miniupnpc, expat
laanwj Jun 8, 2016
361d260
Merge #8173: Use SipHash for node eviction (cont'd)
sipa Jun 8, 2016
b3e26cc
Merge #8083: Add support for dnsseeds with option to filter by servic…
sipa Jun 8, 2016
80d02d8
Use nRelevantServices for requiredServiceBits
codablock Sep 16, 2017
a60d4d6
Remove 'LDFLAGS=-static-libstdc++' from CONFIGFLAGS in gitian-linux.yml
codablock Dec 22, 2017
cfc76ba
Merge #8172: Fix two warnings for comparison between signed and unsigned
laanwj Jun 9, 2016
ca228f0
Merge #8168: util: Add ParseUInt32 and ParseUInt64
laanwj Jun 9, 2016
aa6cb48
Merge #8154: drop vAddrToSend after sending big addr message
laanwj Jun 9, 2016
2e3aacf
Merge #8166: src/test: Do not shadow local variables
laanwj Jun 9, 2016
856e546
Merge #7283: [gitian] Default reference_datetime to commit author date
laanwj Jun 9, 2016
b9a00f6
Merge #7292: [RPC] Expose ancestor/descendant information over RPC
sipa Jun 9, 2016
209a4d6
Merge #8178: Add git and github tips and tricks to developer notes
laanwj Jun 9, 2016
79db88b
Merge #8181: build: Get rid of `CLIENT_DATE`
laanwj Jun 10, 2016
b95a338
Merge #8133: build: Finish up out-of-tree changes
laanwj Jun 10, 2016
acbda5d
Merge #8177: developer notes: updates for C++11
laanwj Jun 10, 2016
06a73ad
Merge #8188: Add armhf/aarch64 gitian builds
laanwj Jun 13, 2016
6ef8aae
Merge #8193: [trivial][doc] Use Debian 8.5 in the gitian-build guide
laanwj Jun 13, 2016
6a69830
Merge #7598: Refactor CreateNewBlock to be a method of the BlockAssem…
laanwj Jun 13, 2016
e7e3a80
Merge #8141: Continuing port of java comparison tool
laanwj Jun 13, 2016
2e51d82
Merge #8201: [qa] fundrawtransaction: Fix race, assert amounts
laanwj Jun 14, 2016
05c8f2e
Dashify new tests in bitcoin-util-test.json
codablock Dec 22, 2017
f00aeb8
Fix failing test in p2p-fullblocktest.py
codablock Dec 22, 2017
49f9d61
Revert to BLOCK_DOWNLOAD_TIMEOUT_BASE = 1000000
codablock Dec 22, 2017
e3ca41b
Dashify build-osx.md
codablock Dec 27, 2017
c7937c2
Remove unnecessary call to AddInventoryKnown in INV message handling
codablock Dec 27, 2017
0c61226
Also revert BLOCK_DOWNLOAD_TIMEOUT_PER_PEER to 500000
codablock Dec 27, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,8 @@ script:
- BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$TRAVIS_BUILD_DIR/depends/$HOST --bindir=$OUTDIR/bin --libdir=$OUTDIR/lib"
- depends/$HOST/native/bin/ccache --max-size=$CCACHE_SIZE
- test -n "$USE_SHELL" && eval '"$USE_SHELL" -c "./autogen.sh"' || ./autogen.sh
- ./configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
- make distdir PACKAGE=dash VERSION=$HOST
- cd dash-$HOST
- ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
- mkdir build && cd build
- ../configure $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
- make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && make $GOAL V=1 ; false )
- export LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib
- if [ "$RUN_TESTS" = "true" -a "$WINE" != "true" ]; then travis_wait 30 make $MAKEJOBS check VERBOSE=1; fi
Expand Down
16 changes: 5 additions & 11 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ OSX_DSSTORE_GEN=$(top_srcdir)/contrib/macdeploy/custom_dsstore.py
OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus
OSX_FANCY_PLIST=$(top_srcdir)/contrib/macdeploy/fancy.plist
OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/bitcoin.icns
OSX_PLIST=$(top_srcdir)/share/qt/Info.plist #not installed
OSX_PLIST=$(top_builddir)/share/qt/Info.plist #not installed
OSX_QT_TRANSLATIONS = da,de,es,hu,ru,uk,zh_CN,zh_TW

DIST_DOCS = $(wildcard doc/*.md) $(wildcard doc/release-notes/*.md)
Expand All @@ -53,18 +53,8 @@ COVERAGE_INFO = baseline_filtered_combined.info baseline.info block_test.info \
leveldb_baseline_filtered.info test_dash_coverage.info test_dash.info

dist-hook:
-$(MAKE) -C $(top_distdir)/src/leveldb clean
-$(MAKE) -C $(top_distdir)/src/secp256k1 distclean
-$(GIT) archive --format=tar HEAD -- src/clientversion.cpp | $(AMTAR) -C $(top_distdir) -xf -

distcheck-hook:
$(MKDIR_P) $(top_distdir)/_build/src/leveldb
cp -rf $(top_srcdir)/src/leveldb/* $(top_distdir)/_build/src/leveldb/
-$(MAKE) -C $(top_distdir)/_build/src/leveldb clean

distcleancheck:
@:

$(BITCOIN_WIN_INSTALLER): all-recursive
$(MKDIR_P) $(top_builddir)/release
STRIPPROG="$(STRIP)" $(INSTALL_STRIP_PROGRAM) $(BITCOIND_BIN) $(top_builddir)/release
Expand Down Expand Up @@ -236,7 +226,11 @@ EXTRA_DIST = $(top_srcdir)/share/genbuild.sh qa/pull-tester/rpc-tests.py qa/rpc-

CLEANFILES = $(OSX_DMG) $(BITCOIN_WIN_INSTALLER)

# This file is problematic for out-of-tree builds if it exists.
DISTCLEANFILES = qa/pull-tester/tests_config.pyc

.INTERMEDIATE: $(COVERAGE_INFO)

clean-local:
rm -rf coverage_percent.txt test_dash.coverage/ total.coverage/ qa/tmp/ cache/ $(OSX_APP)
rm -rf qa/pull-tester/__pycache__
3 changes: 3 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ AC_PATH_PROG(XGETTEXT,xgettext)
AC_PATH_PROG(HEXDUMP,hexdump)
AC_PATH_TOOL(READELF, readelf)
AC_PATH_TOOL(CPPFILT, c++filt)
AC_PATH_TOOL(OBJCOPY, objcopy)

AC_ARG_VAR(PYTHONPATH, Augments the default search path for python module files)

Expand Down Expand Up @@ -1070,6 +1071,8 @@ AC_SUBST(MINIUPNPC_LIBS)
AC_CONFIG_FILES([Makefile src/Makefile share/setup.nsi share/qt/Info.plist src/test/buildenv.py])
AC_CONFIG_FILES([qa/pull-tester/run-bitcoind-for-test.sh],[chmod +x qa/pull-tester/run-bitcoind-for-test.sh])
AC_CONFIG_FILES([qa/pull-tester/tests_config.py],[chmod +x qa/pull-tester/tests_config.py])
AC_CONFIG_FILES([contrib/devtools/split-debug.sh],[chmod +x contrib/devtools/split-debug.sh])
AC_CONFIG_LINKS([qa/pull-tester/rpc-tests.py:qa/pull-tester/rpc-tests.py])

dnl boost's m4 checks do something really nasty: they export these vars. As a
dnl result, they leak into secp256k1's configure and crazy things happen.
Expand Down
10 changes: 10 additions & 0 deletions contrib/devtools/split-debug.sh.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/sh

if [ $# -ne 3 ];
then echo "usage: $0 <input> <stripped-binary> <debug-binary>"
fi

@OBJCOPY@ --enable-deterministic-archives -p --only-keep-debug $1 $3
@OBJCOPY@ --enable-deterministic-archives -p --strip-debug $1 $2
@STRIP@ --enable-deterministic-archives -p -s $2
@OBJCOPY@ --enable-deterministic-archives -p --add-gnu-debuglink=$3 $2
67 changes: 49 additions & 18 deletions contrib/gitian-descriptors/gitian-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,43 @@ architectures:
- "amd64"
packages:
- "curl"
- "g++-multilib"
- "g++-aarch64-linux-gnu"
- "g++-4.8-aarch64-linux-gnu"
- "gcc-4.8-aarch64-linux-gnu"
- "binutils-aarch64-linux-gnu"
- "g++-arm-linux-gnueabihf"
- "g++-4.8-arm-linux-gnueabihf"
- "gcc-4.8-arm-linux-gnueabihf"
- "binutils-arm-linux-gnueabihf"
- "g++-4.8-multilib"
- "gcc-4.8-multilib"
- "binutils-gold"
- "git-core"
- "pkg-config"
- "autoconf"
- "libtool"
- "automake"
- "faketime"
- "bsdmainutils"
- "binutils-gold"
- "ca-certificates"
- "python"
reference_datetime: "2017-01-01 00:00:00"
remotes:
- "url": "https://github.com/dashpay/dash.git"
"dir": "dash"
files: []
script: |

#unlock sudo
echo "ubuntu" | sudo -S true

sudo mkdir -p /usr/include/i386-linux-gnu/
sudo ln -s /usr/include/x86_64-linux-gnu/asm /usr/include/i386-linux-gnu/asm

WRAP_DIR=$HOME/wrapped
HOSTS="i686-pc-linux-gnu x86_64-unknown-linux-gnu"
CONFIGFLAGS="--enable-glibc-back-compat --enable-reduce-exports --disable-bench --disable-gui-tests LDFLAGS=-static-libstdc++"
HOSTS="i686-pc-linux-gnu x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu"
CONFIGFLAGS="--enable-glibc-back-compat --enable-reduce-exports --disable-bench --disable-gui-tests"
FAKETIME_HOST_PROGS=""
FAKETIME_PROGS="date ar ranlib nm strip objcopy"
FAKETIME_PROGS="date ar ranlib nm"
HOST_CFLAGS="-O2 -g"
HOST_CXXFLAGS="-O2 -g"
HOST_LDFLAGS=-static-libstdc++
Expand All @@ -45,36 +60,47 @@ script: |
mkdir -p ${BASE_CACHE} ${SOURCES_PATH}
fi

# Create global faketime wrappers
function create_global_faketime_wrappers {
for prog in ${FAKETIME_PROGS}; do
echo '#!/bin/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/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${prog}
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${WRAP_DIR}/${prog}
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${prog}
echo "\$REAL \$@" >> $WRAP_DIR/${prog}
chmod +x ${WRAP_DIR}/${prog}
done
}

# Create per-host faketime wrappers
function create_per-host_faketime_wrappers {
for i in $HOSTS; do
for prog in ${FAKETIME_HOST_PROGS}; do
echo '#!/bin/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/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog}
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${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
}

export PATH=${WRAP_DIR}:${PATH}

# Faketime for depends so intermediate results are comparable
create_global_faketime_wrappers "2000-01-01 12:00:00"
create_per-host_faketime_wrappers "2000-01-01 12:00:00"

cd dash
BASEPREFIX=`pwd`/depends
# Build dependencies for each host
for i in $HOSTS; do
make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}"
done

# Faketime for binaries
create_global_faketime_wrappers "${REFERENCE_DATETIME}"
create_per-host_faketime_wrappers "${REFERENCE_DATETIME}"

# Create the release tarball using (arbitrarily) the first host
./autogen.sh
CONFIG_SITE=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`/share/config.site ./configure --prefix=/
Expand All @@ -101,23 +127,28 @@ script: |
CONFIG_SITE=${BASEPREFIX}/${i}/share/config.site ./configure --prefix=/ --disable-ccache --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS} CFLAGS="${HOST_CFLAGS}" CXXFLAGS="${HOST_CXXFLAGS}" LDFLAGS="${HOST_LDFLAGS}"
make ${MAKEOPTS}
make ${MAKEOPTS} -C src check-security
make ${MAKEOPTS} -C src check-symbols

#TODO: This is a quick hack that disables symbol checking for arm.
# Instead, we should investigate why these are popping up.
# For aarch64, we'll need to bump up the min GLIBC version, as the abi
# support wasn't introduced until 2.17.
case $i in
aarch64-*) : ;;
arm-*) : ;;
*) make ${MAKEOPTS} -C src check-symbols ;;
esac

make install DESTDIR=${INSTALLPATH}
cd installed
find . -name "lib*.la" -delete
find . -name "lib*.a" -delete
rm -rf ${DISTNAME}/lib/pkgconfig
find ${DISTNAME}/bin -type f -executable -exec objcopy --only-keep-debug {} {}.dbg \; -exec strip -s {} \; -exec objcopy --add-gnu-debuglink={}.dbg {} \;
find ${DISTNAME}/lib -type f -exec objcopy --only-keep-debug {} {}.dbg \; -exec strip -s {} \; -exec objcopy --add-gnu-debuglink={}.dbg {} \;
find ${DISTNAME}/bin -type f -executable -exec ../contrib/devtools/split-debug.sh {} {} {}.dbg \;
find ${DISTNAME}/lib -type f -exec ../contrib/devtools/split-debug.sh {} {} {}.dbg \;
find ${DISTNAME} -not -name "*.dbg" | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}.tar.gz
find ${DISTNAME} -name "*.dbg" | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTNAME}-${i}-debug.tar.gz
cd ../../
rm -rf distsrc-${i}
done
mkdir -p $OUTDIR/src
mv $SOURCEDIST $OUTDIR/src
mv ${OUTDIR}/${DISTNAME}-x86_64-*-debug.tar.gz ${OUTDIR}/${DISTNAME}-linux64-debug.tar.gz
mv ${OUTDIR}/${DISTNAME}-i686-*-debug.tar.gz ${OUTDIR}/${DISTNAME}-linux32-debug.tar.gz
mv ${OUTDIR}/${DISTNAME}-x86_64-*.tar.gz ${OUTDIR}/${DISTNAME}-linux64.tar.gz
mv ${OUTDIR}/${DISTNAME}-i686-*.tar.gz ${OUTDIR}/${DISTNAME}-linux32.tar.gz

1 change: 0 additions & 1 deletion contrib/gitian-descriptors/gitian-osx-signer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ architectures:
- "amd64"
packages:
- "faketime"
reference_datetime: "2017-01-01 00:00:00"
remotes:
- "url": "https://github.com/dashpay/dash-detached-sigs.git"
"dir": "signature"
Expand Down
22 changes: 16 additions & 6 deletions contrib/gitian-descriptors/gitian-osx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ suites:
- "trusty"
architectures:
- "amd64"
packages:
packages:
- "ca-certificates"
- "curl"
- "g++"
Expand All @@ -27,7 +27,6 @@ packages:
- "python-dev"
- "python-setuptools"
- "fonts-tuffy"
reference_datetime: "2017-01-01 00:00:00"
remotes:
- "url": "https://github.com/dashpay/dash.git"
"dir": "dash"
Expand All @@ -54,29 +53,36 @@ script: |

export ZERO_AR_DATE=1

# Create global faketime wrappers
function create_global_faketime_wrappers {
for prog in ${FAKETIME_PROGS}; do
echo '#!/bin/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/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${prog}
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${WRAP_DIR}/${prog}
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${prog}
echo "\$REAL \$@" >> $WRAP_DIR/${prog}
chmod +x ${WRAP_DIR}/${prog}
done
}

# Create per-host faketime wrappers
function create_per-host_faketime_wrappers {
for i in $HOSTS; do
for prog in ${FAKETIME_HOST_PROGS}; do
echo '#!/bin/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/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog}
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${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
}

export PATH=${WRAP_DIR}:${PATH}

# Faketime for depends so intermediate results are comparable
create_global_faketime_wrappers "2000-01-01 12:00:00"
create_per-host_faketime_wrappers "2000-01-01 12:00:00"

cd dash
BASEPREFIX=`pwd`/depends

Expand All @@ -88,6 +94,10 @@ script: |
make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}"
done

# Faketime for binaries
create_global_faketime_wrappers "${REFERENCE_DATETIME}"
create_per-host_faketime_wrappers "${REFERENCE_DATETIME}"

# Create the release tarball using (arbitrarily) the first host
./autogen.sh
CONFIG_SITE=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`/share/config.site ./configure --prefix=/
Expand Down
1 change: 0 additions & 1 deletion contrib/gitian-descriptors/gitian-win-signer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ architectures:
packages:
- "libssl-dev"
- "autoconf"
reference_datetime: "2017-01-01 00:00:00"
remotes:
- "url": "https://github.com/dashpay/dash-detached-sigs.git"
"dir": "signature"
Expand Down
28 changes: 20 additions & 8 deletions contrib/gitian-descriptors/gitian-win.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ suites:
- "trusty"
architectures:
- "amd64"
packages:
packages:
- "curl"
- "g++"
- "git-core"
Expand All @@ -21,7 +21,6 @@ packages:
- "zip"
- "ca-certificates"
- "python"
reference_datetime: "2017-01-01 00:00:00"
remotes:
- "url": "https://github.com/dashpay/dash.git"
"dir": "dash"
Expand All @@ -47,29 +46,31 @@ script: |
mkdir -p ${BASE_CACHE} ${SOURCES_PATH}
fi

# Create global faketime wrappers
function create_global_faketime_wrappers {
for prog in ${FAKETIME_PROGS}; do
echo '#!/bin/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/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${prog}
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${WRAP_DIR}/${prog}
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${prog}
echo "\$REAL \$@" >> $WRAP_DIR/${prog}
chmod +x ${WRAP_DIR}/${prog}
done
}

# Create per-host faketime wrappers
function create_per-host_faketime_wrappers {
for i in $HOSTS; do
for prog in ${FAKETIME_HOST_PROGS}; do
echo '#!/bin/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/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog}
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${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
}

# Create per-host linker wrapper
function create_per-host_linker_wrapper {
# This is only needed for trusty, as the mingw linker leaks a few bytes of
# heap, causing non-determinism. See discussion in https://github.com/bitcoin/bitcoin/pull/6900
for i in $HOSTS; do
Expand All @@ -85,22 +86,33 @@ script: |
echo '#!/bin/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/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog}
echo "export FAKETIME=\"${REFERENCE_DATETIME}\"" >> ${WRAP_DIR}/${i}-${prog}
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog}
echo "export COMPILER_PATH=${WRAP_DIR}/${i}" >> ${WRAP_DIR}/${i}-${prog}
echo "\$REAL \$@" >> $WRAP_DIR/${i}-${prog}
chmod +x ${WRAP_DIR}/${i}-${prog}
done
done
}

export PATH=${WRAP_DIR}:${PATH}

# Faketime for depends so intermediate results are comparable
create_global_faketime_wrappers "2000-01-01 12:00:00"
create_per-host_faketime_wrappers "2000-01-01 12:00:00"
create_per-host_linker_wrapper "2000-01-01 12:00:00"

cd dash
BASEPREFIX=`pwd`/depends
# Build dependencies for each host
for i in $HOSTS; do
make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}"
done

# Faketime for binaries
create_global_faketime_wrappers "${REFERENCE_DATETIME}"
create_per-host_faketime_wrappers "${REFERENCE_DATETIME}"
create_per-host_linker_wrapper "${REFERENCE_DATETIME}"

# Create the release tarball using (arbitrarily) the first host
./autogen.sh
CONFIG_SITE=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`/share/config.site ./configure --prefix=/
Expand Down
Loading