Skip to content

Commit 5e3bd1a

Browse files
Merge branch 'master' of github.com:bitcoin/bitcoin
2 parents 55c0056 + d809d8b commit 5e3bd1a

File tree

357 files changed

+5307
-4681
lines changed

Some content is hidden

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

357 files changed

+5307
-4681
lines changed

.appveyor.yml

-63
This file was deleted.

.cirrus.yml

+90-27
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
### Global defaults
2-
3-
env:
1+
env: # Global defaults
42
PACKAGE_MANAGER_INSTALL: "apt-get update && apt-get install -y"
53
MAKEJOBS: "-j4"
64
TEST_RUNNER_PORT_MIN: "14000" # Must be larger than 12321, which is used for the http cache. See https://cirrus-ci.org/guide/writing-tasks/#http-cache
@@ -18,16 +16,21 @@ persistent_worker_template: &PERSISTENT_WORKER_TEMPLATE
1816
persistent_worker: {} # https://cirrus-ci.org/guide/persistent-workers/
1917

2018
# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
21-
base_template: &BASE_TEMPLATE
19+
filter_template: &FILTER_TEMPLATE
2220
skip: $CIRRUS_REPO_FULL_NAME == "bitcoin-core/gui" && $CIRRUS_PR == "" # No need to run on the read-only mirror, unless it is a PR. https://cirrus-ci.org/guide/writing-tasks/#conditional-task-execution
21+
stateful: false # https://cirrus-ci.org/guide/writing-tasks/#stateful-tasks
22+
23+
base_template: &BASE_TEMPLATE
24+
<< : *FILTER_TEMPLATE
2325
merge_base_script:
26+
# Unconditionally install git (used in fingerprint_script) and set the
27+
# default git author name (used in verify-commits.py)
2428
- bash -c "$PACKAGE_MANAGER_INSTALL git"
25-
- if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
26-
- git fetch $CIRRUS_REPO_CLONE_URL $CIRRUS_BASE_BRANCH
2729
- git config --global user.email "[email protected]"
2830
- git config --global user.name "ci"
31+
- if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
32+
- git fetch $CIRRUS_REPO_CLONE_URL $CIRRUS_BASE_BRANCH
2933
- git merge FETCH_HEAD # Merge base to detect silent merge conflicts
30-
stateful: false # https://cirrus-ci.org/guide/writing-tasks/#stateful-tasks
3134

3235
main_template: &MAIN_TEMPLATE
3336
timeout_in: 120m # https://cirrus-ci.org/faq/#instance-timed-out
@@ -57,22 +60,6 @@ compute_credits_template: &CREDITS_TEMPLATE
5760
# Only use credits for pull requests to the main repo
5861
use_compute_credits: $CIRRUS_REPO_FULL_NAME == 'bitcoin/bitcoin' && $CIRRUS_PR != ""
5962

60-
#task:
61-
# name: "Windows"
62-
# windows_container:
63-
# image: cirrusci/windowsservercore:2019
64-
# env:
65-
# CIRRUS_SHELL: powershell
66-
# PATH: 'C:\Python37;C:\Python37\Scripts;%PATH%'
67-
# PYTHONUTF8: 1
68-
# QT_DOWNLOAD_URL: 'https://github.com/sipsorcery/qt_win_binary/releases/download/v1.6/Qt5.9.8_x64_static_vs2019.zip'
69-
# QT_DOWNLOAD_HASH: '9a8c6eb20967873785057fdcd329a657c7f922b0af08c5fde105cc597dd37e21'
70-
# QT_LOCAL_PATH: 'C:\Qt5.9.8_x64_static_vs2019'
71-
# VCPKG_INSTALL_PATH: 'C:\tools\vcpkg\installed'
72-
# VCPKG_COMMIT_ID: 'ed0df8ecc4ed7e755ea03e18aaf285fd9b4b4a74'
73-
# install_script:
74-
# - choco install python --version=3.7.7 -y
75-
7663
task:
7764
name: 'lint [bionic]'
7865
<< : *BASE_TEMPLATE
@@ -88,10 +75,86 @@ task:
8875
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
8976

9077
task:
91-
name: 'ARM [unit tests, no functional tests] [buster]'
78+
name: "Win64 native [msvc]"
79+
<< : *FILTER_TEMPLATE
80+
windows_container:
81+
cpu: 4
82+
memory: 16G
83+
image: cirrusci/windowsservercore:visualstudio2019
84+
timeout_in: 120m
85+
env:
86+
PATH: 'C:\jom;C:\Python39;C:\Python39\Scripts;C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin;%PATH%'
87+
PYTHONUTF8: 1
88+
VCPKG_TAG: '75522bb1f2e7d863078bcd06322348f053a9e33f'
89+
VCPKG_FEATURE_FLAGS: 'manifests'
90+
QT_DOWNLOAD_URL: 'https://download.qt.io/official_releases/qt/5.12/5.12.11/single/qt-everywhere-src-5.12.11.zip'
91+
QT_LOCAL_PATH: 'C:\qt-everywhere-src-5.12.11.zip'
92+
QT_SOURCE_DIR: 'C:\qt-everywhere-src-5.12.11'
93+
QTBASEDIR: 'C:\Qt5.12.11_x64_static_vs2019_160900'
94+
x64_NATIVE_TOOLS: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat"'
95+
IgnoreWarnIntDirInTempDetected: 'true'
96+
EXCLUDE_TESTS: 'feature_addrman.py,feature_bip68_sequence.py,feature_fee_estimation.py,mining_prioritisetransaction.py,p2p_getaddr_caching.py,p2p_invalid_locator.py,p2p_invalid_tx.py,rpc_misc.py,rpc_net.py,wallet_avoidreuse.py,wallet_descriptor.py,wallet_groups.py,wallet_keypool.py'
97+
merge_script:
98+
- git config --global user.email "[email protected]"
99+
- git config --global user.name "ci"
100+
# Windows filesystem loses the executable bit, and all of the executable
101+
# files are considered "modified" now. It will break the following `git merge`
102+
# command. The next two commands make git ignore this issue.
103+
- git config core.filemode false
104+
- git reset --hard
105+
- PowerShell -NoLogo -Command if ($env:CIRRUS_PR -ne $null) { git fetch $env:CIRRUS_REPO_CLONE_URL $env:CIRRUS_BASE_BRANCH; git merge FETCH_HEAD; }
106+
msvc_qt_built_cache:
107+
folder: "%QTBASEDIR%"
108+
reupload_on_changes: false
109+
fingerprint_script:
110+
- echo %QT_DOWNLOAD_URL%
111+
- msbuild -version
112+
populate_script:
113+
- curl -L -o C:\jom.zip http://download.qt.io/official_releases/jom/jom.zip
114+
- mkdir C:\jom
115+
- tar -xf C:\jom.zip -C C:\jom
116+
- curl -L -o %QT_LOCAL_PATH% %QT_DOWNLOAD_URL%
117+
- tar -xf %QT_LOCAL_PATH% -C C:\
118+
- '%x64_NATIVE_TOOLS%'
119+
- cd %QT_SOURCE_DIR%
120+
- mkdir build
121+
- cd build
122+
- ..\configure -release -silent -opensource -confirm-license -opengl desktop -no-shared -static -static-runtime -mp -qt-zlib -qt-pcre -qt-libpng -no-libjpeg -nomake examples -nomake tests -nomake tools -no-dbus -no-libudev -no-icu -no-gtk -no-opengles3 -no-angle -no-sql-sqlite -no-sql-odbc -no-sqlite -no-libudev -no-vulkan -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdeclarative -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip qtmacextras -skip qtmultimedia -skip qtnetworkauth -skip qtpurchasing -skip qtquickcontrols -skip qtquickcontrols2 -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtvirtualkeyboard -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtx11extras -skip qtxmlpatterns -no-openssl -no-feature-sql -no-feature-sqlmodel -prefix %QTBASEDIR%
123+
- jom
124+
- jom install
125+
vcpkg_cache:
126+
folder: 'C:\Users\ContainerAdministrator\AppData\Local\vcpkg\archives'
127+
install_python_script:
128+
- choco install --yes --no-progress python3 --version=3.9.6
129+
- pip install zmq
130+
- python -VV
131+
install_vcpkg_script:
132+
- cd ..
133+
- git clone --quiet https://github.com/microsoft/vcpkg.git
134+
- cd vcpkg
135+
- git -c advice.detachedHead=false checkout %VCPKG_TAG%
136+
- .\bootstrap-vcpkg -disableMetrics
137+
- echo set(VCPKG_BUILD_TYPE release) >> triplets\x64-windows-static.cmake
138+
- .\vcpkg integrate install
139+
- .\vcpkg version
140+
build_script:
141+
- cd %CIRRUS_WORKING_DIR%
142+
- python build_msvc\msvc-autogen.py
143+
- msbuild build_msvc\bitcoin.sln -property:Configuration=Release -maxCpuCount -verbosity:minimal -noLogo
144+
unit_tests_script:
145+
- src\test_bitcoin.exe -l test_suite
146+
- src\bench_bitcoin.exe > NUL
147+
- python test\util\test_runner.py
148+
- python test\util\rpcauth-test.py
149+
functional_tests_script:
150+
# TODO enable '--extended' and drop '--exclude'.
151+
- python test\functional\test_runner.py --ci --quiet --combinedlogslen=4000 --jobs=4 --timeout-factor=8 --exclude %EXCLUDE_TESTS% --failfast
152+
153+
task:
154+
name: 'ARM [unit tests, no functional tests] [bullseye]'
92155
<< : *GLOBAL_TASK_TEMPLATE
93156
arm_container:
94-
image: debian:buster
157+
image: debian:bullseye
95158
cpu: 2
96159
memory: 8G
97160
env:
@@ -172,7 +235,7 @@ task:
172235
FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh"
173236

174237
task:
175-
name: '[multiprocess, DEBUG] [focal]'
238+
name: '[multiprocess, i686, DEBUG] [focal]'
176239
<< : *GLOBAL_TASK_TEMPLATE
177240
container:
178241
image: ubuntu:focal
@@ -181,7 +244,7 @@ task:
181244
env:
182245
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
183246
MAKEJOBS: "-j8"
184-
FILE_ENV: "./ci/test/00_setup_env_native_multiprocess.sh"
247+
FILE_ENV: "./ci/test/00_setup_env_i686_multiprocess.sh"
185248

186249
task:
187250
name: '[no wallet] [bionic]'

.editorconfig

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ trim_trailing_whitespace = true
1313
[*.{h,cpp,py,sh}]
1414
indent_size = 4
1515

16-
# .cirrus.yml, .appveyor.yml, .fuzzbuzz.yml, etc.
16+
# .cirrus.yml, .fuzzbuzz.yml, etc.
1717
[*.yml]
1818
indent_size = 2
1919

INSTALL.md

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1 @@
1-
Building Bitcoin
2-
================
3-
4-
See doc/build-*.md for instructions on building the various
5-
elements of the Bitcoin Core reference implementation of Bitcoin.
1+
See [doc/build-\*.md](/doc)

Makefile.am

+1-1
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ EXTRA_DIST += \
286286
test/fuzz
287287

288288
EXTRA_DIST += \
289-
test/util/bitcoin-util-test.py \
289+
test/util/test_runner.py \
290290
test/util/data/bitcoin-util-test.json \
291291
test/util/data/blanktxv1.hex \
292292
test/util/data/blanktxv1.json \

REVIEWERS

+1-3
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
/doc/dependencies.md @fanquake
4242
/doc/developer-notes.md @laanwj
4343
/doc/files.md @hebasto
44-
/doc/gitian-building.md @laanwj
4544
/doc/reduce-memory.md @fanquake
4645
/doc/reduce-traffic.md @jonasschnelli
4746
/doc/release-process.md @laanwj
@@ -77,8 +76,7 @@
7776
/contrib/devtools/test-security-check.py @fanquake
7877
/contrib/devtools/symbol-check.py @fanquake
7978

80-
# Gitian/Guix
81-
/contrib/gitian-build.py @hebasto
79+
# Guix
8280
/contrib/guix/ @dongcarl
8381

8482
# Compatibility

build-aux/m4/bitcoin_qt.m4

+1-1
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ AC_DEFUN([_BITCOIN_QT_CHECK_STATIC_LIBS], [
350350
PKG_CHECK_MODULES([QT_FONTDATABASE], [${qt_lib_prefix}FontDatabaseSupport${qt_lib_suffix}], [QT_LIBS="$QT_FONTDATABASE_LIBS $QT_LIBS"])
351351
PKG_CHECK_MODULES([QT_THEME], [${qt_lib_prefix}ThemeSupport${qt_lib_suffix}], [QT_LIBS="$QT_THEME_LIBS $QT_LIBS"])
352352
if test "x$TARGET_OS" = xlinux; then
353-
PKG_CHECK_MODULES([QT_INPUT], [${qt_lib_prefix}XcbQpa], [QT_LIBS="$QT_INPUT_LIBS $QT_LIBS"])
353+
PKG_CHECK_MODULES([QT_INPUT], [${qt_lib_prefix}InputSupport], [QT_LIBS="$QT_INPUT_LIBS $QT_LIBS"])
354354
PKG_CHECK_MODULES([QT_SERVICE], [${qt_lib_prefix}ServiceSupport], [QT_LIBS="$QT_SERVICE_LIBS $QT_LIBS"])
355355
PKG_CHECK_MODULES([QT_XCBQPA], [${qt_lib_prefix}XcbQpa], [QT_LIBS="$QT_XCBQPA_LIBS $QT_LIBS"])
356356
elif test "x$TARGET_OS" = xdarwin; then

build_msvc/README.md

+1-12
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ In order to build Bitcoin Core a static build of Qt is required. The runtime lib
3939

4040
Some prebuilt x64 versions of Qt can be downloaded from [here](https://github.com/sipsorcery/qt_win_binary/releases). Please be aware these downloads are NOT officially sanctioned by Bitcoin Core and are provided for developer convenience only. They should NOT be used for builds that will be used in a production environment or with real funds.
4141

42-
To determine which Qt prebuilt version to download open the `.appveyor.yml` file and note the `QT_DOWNLOAD_URL`. When extracting the zip file the destination path must be set to `C:\`. This is due to the way that Qt includes, libraries and tools use internal paths.
42+
To determine which Qt prebuilt version to download open the `.cirrus.yml` file and note the `QT_DOWNLOAD_URL`. When extracting the zip file the destination path must be set to `C:\`. This is due to the way that Qt includes, libraries and tools use internal paths.
4343

4444
To build Bitcoin Core without Qt unload or disable the `bitcoin-qt`, `libbitcoin_qt` and `test_bitcoin-qt` projects.
4545

@@ -65,17 +65,6 @@ msbuild /m bitcoin.sln /p:Platform=x64 /p:Configuration=Release /t:build
6565

6666
- Alternatively, open the `build_msvc/bitcoin.sln` file in Visual Studio 2019.
6767

68-
AppVeyor
69-
---------------------
70-
The .appveyor.yml in the root directory is suitable to perform builds on [AppVeyor](https://www.appveyor.com/) Continuous Integration servers. The simplest way to perform an AppVeyor build is to fork Bitcoin Core and then configure a new AppVeyor Project pointing to the forked repository.
71-
72-
For safety reasons the Bitcoin Core .appveyor.yml file has the artifact options disabled. The build will be performed but no executable files will be available. To enable artifacts on a forked repository uncomment the lines shown below:
73-
74-
```
75-
#- 7z a bitcoin-%APPVEYOR_BUILD_VERSION%.zip %APPVEYOR_BUILD_FOLDER%\build_msvc\%platform%\%configuration%\*.exe
76-
#- path: bitcoin-%APPVEYOR_BUILD_VERSION%.zip
77-
```
78-
7968
Security
8069
---------------------
8170
[Base address randomization](https://docs.microsoft.com/en-us/cpp/build/reference/dynamicbase-use-address-space-layout-randomization?view=msvc-160) is used to make Bitcoin Core more secure. When building Bitcoin using the `build_msvc` process base address randomization can be disabled by editing `common.init.vcproj` to change `RandomizedBaseAddress` from `true` to `false` and then rebuilding the project.

build_msvc/bitcoin-qt/bitcoin-qt.vcxproj

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
</PropertyGroup>
1010
<ItemGroup>
1111
<ClCompile Include="..\..\src\qt\main.cpp" />
12+
<ClCompile Include="..\..\src\init\bitcoind.cpp" />
1213
<ResourceCompile Include="..\..\src\qt\res\bitcoin-qt-res.rc" />
1314
</ItemGroup>
1415
<ItemGroup>

build_msvc/bitcoin-util/bitcoin-util.vcxproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<Import Project="..\common.init.vcxproj" />
44
<PropertyGroup Label="Globals">
5-
<ProjectGuid>{D3022AF6-AD33-4CE3-B358-87CB6A1B29CF}</ProjectGuid>
5+
<ProjectGuid>{57A04EC9-542A-4E40-83D0-AC3BE1F36805}</ProjectGuid>
66
</PropertyGroup>
77
<PropertyGroup Label="Configuration">
88
<ConfigurationType>Application</ConfigurationType>

0 commit comments

Comments
 (0)