Skip to content

Commit e847337

Browse files
committed
Merge remote-tracking branch 'upstream/master' into segwit-master
2 parents fb348c6 + 66db2d6 commit e847337

File tree

287 files changed

+11628
-4303
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

287 files changed

+11628
-4303
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,3 +114,4 @@ share/BitcoindComparisonTool.jar
114114
/doc/doxygen/
115115

116116
libbitcoinconsensus.pc
117+
contrib/devtools/split-debug.sh

.travis.yml

Lines changed: 33 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
1-
# errata:
2-
# - A travis bug causes caches to trample eachother when using the same
3-
# compiler key (which we don't use anyway). This is worked around for now by
4-
# replacing the "compilers" with a build name prefixed by the no-op ":"
5-
# command. See: https://github.com/travis-ci/travis-ci/issues/4393
6-
# - sudo/dist/group are set so as to get Blue Box VMs, necessary for [loopback]
7-
# IPv6 support
8-
91
sudo: required
10-
dist: precise
11-
group: legacy
2+
dist: trusty
3+
4+
#workaround for https://github.com/travis-ci/travis-ci/issues/5227
5+
addons:
6+
hostname: bitcoin-tester
127

138
os: linux
14-
language: cpp
15-
compiler: gcc
9+
language: generic
10+
cache:
11+
directories:
12+
- depends/built
13+
- depends/sdk-sources
14+
- $HOME/.ccache
1615
env:
1716
global:
1817
- MAKEJOBS=-j3
@@ -26,34 +25,27 @@ env:
2625
- SDK_URL=https://bitcoincore.org/depends-sources/sdks
2726
- PYTHON_DEBUG=1
2827
- WINEDEBUG=fixme-all
29-
cache:
30-
apt: true
31-
directories:
32-
- depends/built
33-
- depends/sdk-sources
34-
- $HOME/.ccache
35-
matrix:
36-
fast_finish: true
37-
include:
38-
- compiler: ": ARM"
39-
env: HOST=arm-linux-gnueabihf PACKAGES="g++-arm-linux-gnueabihf" DEP_OPTS="NO_QT=1" CHECK_DOC=1 GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
40-
- compiler: ": Win32"
41-
env: HOST=i686-w64-mingw32 PPA="ppa:ubuntu-wine/ppa" PACKAGES="nsis gcc-mingw-w64-i686 g++-mingw-w64-i686 binutils-mingw-w64-i686 mingw-w64-dev wine1.7 bc" RUN_TESTS=true GOAL="deploy" BITCOIN_CONFIG="--enable-gui --enable-reduce-exports" MAKEJOBS="-j2"
42-
- compiler: ": 32-bit + dash"
43-
env: HOST=i686-pc-linux-gnu PACKAGES="g++-multilib bc python-zmq" PPA="ppa:chris-lea/zeromq" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++" USE_SHELL="/bin/dash"
44-
- compiler: ": Win64"
45-
env: HOST=x86_64-w64-mingw32 PPA="ppa:ubuntu-wine/ppa" PACKAGES="nsis gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 binutils-mingw-w64-x86-64 mingw-w64-dev wine1.7 bc" RUN_TESTS=true GOAL="deploy" BITCOIN_CONFIG="--enable-gui --enable-reduce-exports" MAKEJOBS="-j2"
46-
- compiler: ": bitcoind"
47-
env: HOST=x86_64-unknown-linux-gnu PACKAGES="bc python-zmq" PPA="ppa:chris-lea/zeromq" DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports CPPFLAGS=-DDEBUG_LOCKORDER"
48-
- compiler: ": No wallet"
49-
env: HOST=x86_64-unknown-linux-gnu DEP_OPTS="NO_WALLET=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
50-
- compiler: ": Cross-Mac"
51-
env: HOST=x86_64-apple-darwin11 PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev" BITCOIN_CONFIG="--enable-reduce-exports" OSX_SDK=10.9 GOAL="deploy"
52-
exclude:
53-
- compiler: gcc
28+
matrix:
29+
# ARM
30+
- HOST=arm-linux-gnueabihf PACKAGES="g++-arm-linux-gnueabihf" DEP_OPTS="NO_QT=1" CHECK_DOC=1 GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
31+
# Win32
32+
- HOST=i686-w64-mingw32 DPKG_ADD_ARCH="i386" DEP_OPTS="NO_QT=1" PACKAGES="python3 nsis g++-mingw-w64-i686 wine1.6 bc openjdk-7-jre-headless" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-reduce-exports"
33+
# 32-bit + dash
34+
- HOST=i686-pc-linux-gnu PACKAGES="g++-multilib bc python3-zmq openjdk-7-jre-headless" DEP_OPTS="NO_QT=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports LDFLAGS=-static-libstdc++" USE_SHELL="/bin/dash"
35+
# Win64
36+
- HOST=x86_64-w64-mingw32 DPKG_ADD_ARCH="i386" DEP_OPTS="NO_QT=1" PACKAGES="python3 nsis g++-mingw-w64-x86-64 wine1.6 bc openjdk-7-jre-headless" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-reduce-exports"
37+
# bitcoind
38+
- HOST=x86_64-unknown-linux-gnu PACKAGES="bc python3-zmq openjdk-7-jre-headless" DEP_OPTS="NO_QT=1 NO_UPNP=1 DEBUG=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-zmq --enable-glibc-back-compat --enable-reduce-exports CPPFLAGS=-DDEBUG_LOCKORDER"
39+
# No wallet
40+
- HOST=x86_64-unknown-linux-gnu PACKAGES=" openjdk-7-jre-headless python3" DEP_OPTS="NO_WALLET=1" RUN_TESTS=true GOAL="install" BITCOIN_CONFIG="--enable-glibc-back-compat --enable-reduce-exports"
41+
# Cross-Mac
42+
- HOST=x86_64-apple-darwin11 PACKAGES="cmake imagemagick libcap-dev librsvg2-bin libz-dev libbz2-dev libtiff-tools python-dev" BITCOIN_CONFIG="--enable-reduce-exports" OSX_SDK=10.9 GOAL="deploy"
43+
44+
before_install:
45+
- export PATH=$(echo $PATH | tr ':' "\n" | sed '/\/opt\/python/d' | tr "\n" ":" | sed "s|::|:|g")
5446
install:
55-
- if [ -n "$PACKAGES" ]; then sudo rm -f /etc/apt/sources.list.d/travis_ci_zeromq3-source.list; fi
5647
- if [ -n "$PPA" ]; then travis_retry sudo add-apt-repository "$PPA" -y; fi
48+
- if [ -n "$DPKG_ADD_ARCH" ]; then sudo dpkg --add-architecture "$DPKG_ADD_ARCH" ; fi
5749
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get update; fi
5850
- if [ -n "$PACKAGES" ]; then travis_retry sudo apt-get install --no-install-recommends --no-upgrade -qq $PACKAGES; fi
5951
before_script:
@@ -69,17 +61,13 @@ script:
6961
- OUTDIR=$BASE_OUTDIR/$TRAVIS_PULL_REQUEST/$TRAVIS_JOB_NUMBER-$HOST
7062
- BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$TRAVIS_BUILD_DIR/depends/$HOST --bindir=$OUTDIR/bin --libdir=$OUTDIR/lib"
7163
- depends/$HOST/native/bin/ccache --max-size=$CCACHE_SIZE
72-
- if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then export CCACHE_READONLY=1; fi
7364
- test -n "$USE_SHELL" && eval '"$USE_SHELL" -c "./autogen.sh"' || ./autogen.sh
74-
- ./configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
75-
- make distdir PACKAGE=bitcoin VERSION=$HOST
76-
- cd bitcoin-$HOST
77-
- ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
65+
- mkdir build && cd build
66+
- ../configure $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false)
7867
- make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && make $GOAL V=1 ; false )
7968
- export LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib
80-
- if [ "$RUN_TESTS" = "true" ]; then make check; fi
69+
- if [ "$RUN_TESTS" = "true" ]; then make $MAKEJOBS check VERBOSE=1; fi
8170
- if [ "$RUN_TESTS" = "true" ]; then qa/pull-tester/rpc-tests.py --coverage; fi
8271
after_script:
8372
- echo $TRAVIS_COMMIT_RANGE
8473
- echo $TRAVIS_COMMIT_LOG
85-
- if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then (echo "Upload goes here. Something like: scp -r $BASE_OUTDIR server" || echo "upload failed"); fi

CONTRIBUTING.md

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ To contribute a patch, the workflow is as follows:
1717
- Create topic branch
1818
- Commit patches
1919

20-
The project coding conventions in [doc/developer-notes.md](doc/developer-notes.md) must be adhered to.
20+
The project coding conventions in the [developer notes](doc/developer-notes.md) must be adhered to.
2121

2222
In general [commits should be atomic](https://en.wikipedia.org/wiki/Atomic_commit#Atomic_commit_convention) and diffs should be easy to read. For this reason do not mix any formatting fixes or code moves with actual code changes.
2323

2424
Commit messages should be verbose by default consisting of a short subject line (50 chars max), a blank line and detailed explanatory text as separate paragraph(s); unless the title alone is self-explanatory (like "Corrected typo in main.cpp") then a single title line is sufficient. Commit messages should be helpful to people reading your code in the future, so explain the reasoning for your decisions. Further explanation [here](http://chris.beams.io/posts/git-commit/).
2525

26-
If a particular commit references another issue, please add the reference, for example "refs #1234", or "fixes #4321". Using "fixes or closes" keywords will cause the corresponding issue to be closed when the pull request is merged.
26+
If a particular commit references another issue, please add the reference, for example `refs #1234`, or `fixes #4321`. Using the `fixes` or `closes` keywords will cause the corresponding issue to be closed when the pull request is merged.
2727

2828
Please refer to the [Git manual](https://git-scm.com/doc) for more information about Git.
2929

@@ -35,13 +35,27 @@ The title of the pull request should be prefixed by the component or area that t
3535
Consensus: Add new opcode for BIP-XXXX OP_CHECKAWESOMESIG
3636
Net: Automatically create hidden service, listen on Tor
3737
Qt: Add feed bump button
38-
Trivial: fix typo
38+
Trivial: Fix typo in main.cpp
3939

40-
If a pull request is specifically not to be considered for merging (yet) please prefix the title with [WIP] or use [Tasks Lists](https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments) in the body of the pull request to indicate tasks are pending.
40+
If a pull request is specifically not to be considered for merging (yet) please prefix the title with [WIP] or use [Tasks Lists](https://help.github.com/articles/basic-writing-and-formatting-syntax/#task-lists) in the body of the pull request to indicate tasks are pending.
4141

4242
The body of the pull request should contain enough description about what the patch does together with any justification/reasoning. You should include references to any discussions (for example other tickets or mailing list discussions).
4343

44-
At this stage one should expect comments and review from other contributors. You can add more commits to your pull request by committing them locally and pushing to your fork until you have satisfied all feedback. If your pull request is accepted for merging, you may be asked by a maintainer to squash and or rebase your commits before it will be merged. The length of time required for peer review is unpredictable and will vary from patch to patch.
44+
At this stage one should expect comments and review from other contributors. You can add more commits to your pull request by committing them locally and pushing to your fork until you have satisfied all feedback.
45+
46+
Squashing Commits
47+
---------------------------
48+
If your pull request is accepted for merging, you may be asked by a maintainer to squash and or [rebase](https://git-scm.com/docs/git-rebase) your commits before it will be merged. The basic squashing workflow is shown below.
49+
50+
git checkout your_branch_name
51+
git rebase -i HEAD~n
52+
# n is normally the number of commits in the pull
53+
# set commits from 'pick' to 'squash', save and quit
54+
# on the next screen, edit/refine commit messages
55+
# save and quit
56+
git push -f # (force push to GitHub)
57+
58+
The length of time required for peer review is unpredictable and will vary from pull request to pull request.
4559

4660

4761
Pull Request Philosophy
@@ -61,15 +75,15 @@ Refactoring is a necessary part of any software project's evolution. The followi
6175

6276
There are three categories of refactoring, code only moves, code style fixes, code refactoring. In general refactoring pull requests should not mix these three kinds of activity in order to make refactoring pull requests easy to review and uncontroversial. In all cases, refactoring PRs must not change the behaviour of code within the pull request (bugs must be preserved as is).
6377

64-
Project maintainers aim for a quick turnaround on refactoring pull requests, so where possible keep them short, uncomplex and easy to verify.
78+
Project maintainers aim for a quick turnaround on refactoring pull requests, so where possible keep them short, uncomplex and easy to verify.
6579

6680

6781
"Decision Making" Process
6882
-------------------------
6983

7084
The following applies to code changes to the Bitcoin Core project (and related projects such as libsecp256k1), and is not to be confused with overall Bitcoin Network Protocol consensus changes.
7185

72-
Whether a pull request is merged into Bitcoin Core rests with the project merge maintainers and ultimately the project lead.
86+
Whether a pull request is merged into Bitcoin Core rests with the project merge maintainers and ultimately the project lead.
7387

7488
Maintainers will take into consideration if a patch is in line with the general principles of the project; meets the minimum standards for inclusion; and will judge the general consensus of contributors.
7589

Makefile.am

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ OSX_DSSTORE_GEN=$(top_srcdir)/contrib/macdeploy/custom_dsstore.py
2828
OSX_DEPLOY_SCRIPT=$(top_srcdir)/contrib/macdeploy/macdeployqtplus
2929
OSX_FANCY_PLIST=$(top_srcdir)/contrib/macdeploy/fancy.plist
3030
OSX_INSTALLER_ICONS=$(top_srcdir)/src/qt/res/icons/bitcoin.icns
31-
OSX_PLIST=$(top_srcdir)/share/qt/Info.plist #not installed
31+
OSX_PLIST=$(top_builddir)/share/qt/Info.plist #not installed
3232
OSX_QT_TRANSLATIONS = da,de,es,hu,ru,uk,zh_CN,zh_TW
3333

3434
DIST_DOCS = $(wildcard doc/*.md) $(wildcard doc/release-notes/*.md)
@@ -53,18 +53,8 @@ COVERAGE_INFO = baseline_filtered_combined.info baseline.info block_test.info \
5353
leveldb_baseline_filtered.info test_bitcoin_coverage.info test_bitcoin.info
5454

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

60-
distcheck-hook:
61-
$(MKDIR_P) $(top_distdir)/_build/src/leveldb
62-
cp -rf $(top_srcdir)/src/leveldb/* $(top_distdir)/_build/src/leveldb/
63-
-$(MAKE) -C $(top_distdir)/_build/src/leveldb clean
64-
65-
distcleancheck:
66-
@:
67-
6858
$(BITCOIN_WIN_INSTALLER): all-recursive
6959
$(MKDIR_P) $(top_builddir)/release
7060
STRIPPROG="$(STRIP)" $(INSTALL_STRIP_PROGRAM) $(BITCOIND_BIN) $(top_builddir)/release
@@ -234,7 +224,11 @@ EXTRA_DIST = $(top_srcdir)/share/genbuild.sh qa/pull-tester/rpc-tests.py qa/rpc-
234224

235225
CLEANFILES = $(OSX_DMG) $(BITCOIN_WIN_INSTALLER)
236226

227+
# This file is problematic for out-of-tree builds if it exists.
228+
DISTCLEANFILES = qa/pull-tester/tests_config.pyc
229+
237230
.INTERMEDIATE: $(COVERAGE_INFO)
238231

239232
clean-local:
240233
rm -rf coverage_percent.txt test_bitcoin.coverage/ total.coverage/ qa/tmp/ cache/ $(OSX_APP)
234+
rm -rf qa/pull-tester/__pycache__

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ There are also [regression and integration tests](/qa) of the RPC interface, wri
5757
in Python, that are run automatically on the build server.
5858
These tests can be run (if the [test dependencies](/qa) are installed) with: `qa/pull-tester/rpc-tests.py`
5959

60-
The Travis CI system makes sure that every pull request is built for Windows
61-
and Linux, OS X, and that unit and sanity tests are automatically run.
60+
The Travis CI system makes sure that every pull request is built for Windows, Linux, and OS X, and that unit/sanity tests are run automatically.
6261

6362
### Manual Quality Assurance (QA) Testing
6463

0 commit comments

Comments
 (0)