Skip to content

Commit 7641aff

Browse files
authored
Merge pull request #1045 from qtumproject/time/core29_evmone
Port Qtum to core 29.1 and evmone 0.16
2 parents a395689 + 23512a2 commit 7641aff

File tree

1,946 files changed

+124242
-86022
lines changed

Some content is hidden

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

1,946 files changed

+124242
-86022
lines changed

.cirrus.yml

Lines changed: 46 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,54 @@
11
env: # Global defaults
22
CIRRUS_CLONE_DEPTH: 1
3-
PACKAGE_MANAGER_INSTALL: "apt-get update && apt-get install -y"
3+
CIRRUS_LOG_TIMESTAMP: true
44
MAKEJOBS: "-j10"
55
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
66
CI_FAILFAST_TEST_LEAVE_DANGLING: "1" # Cirrus CI does not care about dangling processes and setting this variable avoids killing the CI script itself on error
7-
CCACHE_MAXSIZE: "200M"
8-
CCACHE_DIR: "/tmp/ccache_dir"
9-
CCACHE_NOHASHDIR: "1" # Debug info might contain a stale path if the build dir changes, but this is fine
107

8+
# A self-hosted machine(s) can be used via Cirrus CI. It can be configured with
9+
# multiple users to run tasks in parallel. No sudo permission is required.
10+
#
1111
# https://cirrus-ci.org/guide/persistent-workers/
1212
#
13-
# It is possible to select a specific persistent worker by label. Refer to the
13+
# Generally, a persistent worker must run Ubuntu 23.04+ or Debian 12+.
14+
#
15+
# The following specific types should exist, with the following requirements:
16+
# - small: For an x86_64 machine, with at least 2 vCPUs and 8 GB of memory.
17+
# - medium: For an x86_64 machine, with at least 4 vCPUs and 16 GB of memory.
18+
# - arm64: For an aarch64 machine, with at least 2 vCPUs and 8 GB of memory.
19+
#
20+
# CI jobs for the latter configuration can be run on x86_64 hardware
21+
# by installing qemu-user-static, which works out of the box with
22+
# podman or docker. Background: https://stackoverflow.com/a/72890225/313633
23+
#
24+
# The above machine types are matched to each task by their label. Refer to the
1425
# Cirrus CI docs for more details.
1526
#
16-
# Generally, a persistent worker must run Ubuntu 23.04+ or Debian 12+.
17-
# Specifically,
18-
# - apt-get is required due to PACKAGE_MANAGER_INSTALL
19-
# - podman-docker-4.1+ is required due to the use of `podman` when
20-
# RESTART_CI_DOCKER_BEFORE_RUN is set and 4.1+ due to the bugfix in 4.1
27+
# When a contributor maintains a fork of the repo, any pull request they make
28+
# to their own fork, or to the main repository, will trigger two CI runs:
29+
# one for the branch push and one for the pull request.
30+
# This can be avoided by setting SKIP_BRANCH_PUSH=true as a custom env variable
31+
# in Cirrus repository settings, accessible from
32+
# https://cirrus-ci.com/github/my-organization/my-repository
33+
#
34+
# On machines that are persisted between CI jobs, RESTART_CI_DOCKER_BEFORE_RUN=1
35+
# ensures that previous containers and artifacts are cleared before each run.
36+
# This requires installing Podman instead of Docker.
37+
#
38+
# Futhermore:
39+
# - podman-docker-4.1+ is required due to the bugfix in 4.1
2140
# (https://github.com/bitcoin/bitcoin/pull/21652#issuecomment-1657098200)
22-
# - The ./ci/ depedencies (with cirrus-cli) should be installed:
41+
# - The ./ci/ dependencies (with cirrus-cli) should be installed. One-liner example
42+
# for a single user setup with sudo permission:
2343
#
2444
# ```
25-
# apt update && apt install git screen python3 bash podman-docker curl -y && curl -L -o cirrus "https://github.com/cirruslabs/cirrus-cli/releases/latest/download/cirrus-linux-$(dpkg --print-architecture)" && mv cirrus /usr/local/bin/cirrus && chmod +x /usr/local/bin/cirrus
45+
# apt update && apt install git screen python3 bash podman-docker uidmap slirp4netns curl -y && curl -L -o cirrus "https://github.com/cirruslabs/cirrus-cli/releases/latest/download/cirrus-linux-$(dpkg --print-architecture)" && mv cirrus /usr/local/bin/cirrus && chmod +x /usr/local/bin/cirrus
2646
# ```
2747
#
28-
# - There are no strict requirements on the hardware, because having less CPUs
29-
# runs the same CI script (maybe slower). To avoid rare and intermittent OOM
30-
# due to short memory usage spikes, it is recommended to add (and persist)
31-
# swap:
48+
# - There are no strict requirements on the hardware. Having fewer CPU threads
49+
# than recommended merely causes the CI script to run slower.
50+
# To avoid rare and intermittent OOM due to short memory usage spikes,
51+
# it is recommended to add (and persist) swap:
3252
#
3353
# ```
3454
# fallocate -l 16G /swapfile_ci && chmod 600 /swapfile_ci && mkswap /swapfile_ci && swapon /swapfile_ci && ( echo '/swapfile_ci none swap sw 0 0' | tee -a /etc/fstab )
@@ -39,23 +59,20 @@ env: # Global defaults
3959
# ```
4060
# RESTART_CI_DOCKER_BEFORE_RUN=1 screen cirrus worker run --labels type=todo_fill_in_type --token todo_fill_in_token
4161
# ```
42-
#
43-
# The following specific types should exist, with the following requirements:
44-
# - small: For an x86_64 machine, recommended to have 2 CPUs and 8 GB of memory.
45-
# - medium: For an x86_64 machine, recommended to have 4 CPUs and 16 GB of memory.
46-
# - noble: For a machine running the Linux kernel shipped with exaclty Ubuntu Noble 24.04. The machine is recommended to have 4 CPUs and 16 GB of memory.
47-
# - arm64: For an aarch64 machine, recommended to have 2 CPUs and 8 GB of memory.
4862

4963
# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
5064
filter_template: &FILTER_TEMPLATE
51-
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
65+
# Allow forks to specify SKIP_BRANCH_PUSH=true and skip CI runs when a branch is pushed,
66+
# but still run CI when a PR is created.
67+
# https://cirrus-ci.org/guide/writing-tasks/#conditional-task-execution
68+
skip: $SKIP_BRANCH_PUSH == "true" && $CIRRUS_PR == ""
5269
stateful: false # https://cirrus-ci.org/guide/writing-tasks/#stateful-tasks
5370

5471
base_template: &BASE_TEMPLATE
5572
<< : *FILTER_TEMPLATE
5673
merge_base_script:
57-
# Unconditionally install git (used in fingerprint_script).
58-
- git --version || bash -c "$PACKAGE_MANAGER_INSTALL git"
74+
# Require git (used in fingerprint_script).
75+
- git --version || ( apt-get update && apt-get install -y git )
5976
- if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
6077
- git fetch --depth=1 $CIRRUS_REPO_CLONE_URL "pull/${CIRRUS_PR}/merge"
6178
- git checkout FETCH_HEAD # Use merged changes to detect silent merge conflicts
@@ -114,7 +131,7 @@ task:
114131
FILE_ENV: "./ci/test/00_setup_env_arm.sh"
115132

116133
task:
117-
name: 'Win64, unit tests, no gui tests, no functional tests'
134+
name: 'Win64-cross'
118135
<< : *GLOBAL_TASK_TEMPLATE
119136
persistent_worker:
120137
labels:
@@ -123,13 +140,13 @@ task:
123140
FILE_ENV: "./ci/test/00_setup_env_win64.sh"
124141

125142
task:
126-
name: '32-bit CentOS, dash, gui'
143+
name: 'CentOS, depends, gui'
127144
<< : *GLOBAL_TASK_TEMPLATE
128145
persistent_worker:
129146
labels:
130147
type: small
131148
env:
132-
FILE_ENV: "./ci/test/00_setup_env_i686_centos.sh"
149+
FILE_ENV: "./ci/test/00_setup_env_native_centos.sh"
133150

134151
task:
135152
name: 'previous releases, depends DEBUG'
@@ -159,25 +176,13 @@ task:
159176
env:
160177
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"
161178

162-
task:
163-
name: 'ASan + LSan + UBSan + integer, no depends, USDT'
164-
enable_bpfcc_script:
165-
# In the image build step, no external environment variables are available,
166-
# so any settings will need to be written to the settings env file:
167-
- sed -i "s|\${CIRRUS_CI}|true|g" ./ci/test/00_setup_env_native_asan.sh
168-
<< : *GLOBAL_TASK_TEMPLATE
169-
persistent_worker:
170-
labels:
171-
type: noble # Must use this specific worker (needed for USDT functional tests)
172-
env:
173-
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"
174-
175179
task:
176180
name: 'fuzzer,address,undefined,integer, no depends'
177181
<< : *GLOBAL_TASK_TEMPLATE
178182
persistent_worker:
179183
labels:
180184
type: medium
185+
timeout_in: 240m # larger timeout, due to the high CPU demand
181186
env:
182187
FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh"
183188

.editorconfig

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,17 @@ insert_final_newline = true
1010
trim_trailing_whitespace = true
1111

1212
# Source code files
13-
[*.{h,cpp,py,sh}]
13+
[*.{h,cpp,rs,py,sh}]
1414
indent_size = 4
1515

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

20-
# Makefiles
21-
[{*.am,Makefile.*.include}]
20+
# Makefiles (only relevant for depends build)
21+
[Makefile]
2222
indent_style = tab
2323

24-
# Autoconf scripts
25-
[configure.ac]
24+
# CMake files
25+
[{CMakeLists.txt,*.cmake,*.cmake.in}]
2626
indent_size = 2

.gitignore

Lines changed: 7 additions & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -1,161 +1,23 @@
1-
*.tar.gz
1+
# Build subdirectories.
2+
/*build*
3+
!/build-aux
4+
!/build_msvc
25

3-
*.exe
4-
*.pdb
5-
src/qtum
6-
src/qtumd
7-
src/qtum-cli
8-
src/qtum-gui
9-
src/qtum-node
10-
src/qtum-tx
11-
src/qtum-util
12-
src/qtum-chainstate
13-
src/qtum-wallet
14-
src/test/fuzz/fuzz
15-
src/test/test_qtum
16-
src/qt/test/test_qtum-qt
17-
src/bench/bench_qtum
18-
19-
# autoreconf
20-
Makefile.in
21-
aclocal.m4
22-
autom4te.cache/
23-
build-aux/config.guess
24-
build-aux/config.sub
25-
build-aux/depcomp
26-
build-aux/install-sh
27-
build-aux/ltmain.sh
28-
build-aux/m4/libtool.m4
29-
build-aux/m4/lt~obsolete.m4
30-
build-aux/m4/ltoptions.m4
31-
build-aux/m4/ltsugar.m4
32-
build-aux/m4/ltversion.m4
33-
build-aux/missing
34-
build-aux/compile
35-
build-aux/test-driver
36-
config.cache
37-
config.log
38-
config.status
39-
configure
40-
libtool
41-
src/config/bitcoin-config.h
42-
src/config/bitcoin-config.h.in
43-
src/config/stamp-h1
44-
src/obj
45-
share/setup.nsi
46-
share/qt/Info.plist
47-
48-
src/qt/*.moc
49-
src/qt/moc_*.cpp
50-
src/qt/forms/ui_*.h
51-
52-
src/qt/test/moc*.cpp
53-
54-
src/qt/qtum-qt.config
55-
src/qt/qtum-qt.creator
56-
src/qt/qtum-qt.creator.user
57-
src/qt/qtum-qt.files
58-
src/qt/qtum-qt.includes
59-
60-
.deps
61-
.dirstamp
62-
.libs
63-
.*.swp
64-
*~
65-
*.bak
66-
*.rej
67-
*.orig
686
*.pyc
69-
*.o
70-
*.o-*
71-
*.a
72-
*.pb.cc
73-
*.pb.h
74-
*.dat
75-
76-
*.log
77-
*.trs
78-
*.zip
79-
80-
*.json.h
81-
*.raw.h
827

838
# Only ignore unexpected patches
849
*.patch
8510
!contrib/guix/patches/*.patch
8611
!depends/patches/**/*.patch
8712

88-
#libtool object files
89-
*.lo
90-
*.la
91-
92-
# Compilation and Qt preprocessor part
93-
*.qm
94-
Makefile
95-
!depends/Makefile
96-
src/qt/qtum-qt
97-
Qtum-Qt.app
98-
99-
# Qt Creator
100-
Makefile.am.user
101-
102-
# Unit-tests
103-
Makefile.test
104-
qtum-qt_test
105-
106-
# Resources cpp
107-
qrc_*.cpp
108-
109-
# Mac specific
110-
.DS_Store
111-
build
13+
/CMakeUserPresets.json
11214

11315
# Previous releases
114-
releases
115-
116-
#lcov
117-
*.gcno
118-
*.gcda
119-
/*.info
120-
test_qtum.coverage/
121-
total.coverage/
122-
fuzz.coverage/
123-
coverage_percent.txt
124-
/cov_tool_wrapper.sh
125-
qa-assets/
16+
/releases
12617

12718
#build tests
128-
linux-coverage-build
129-
linux-build
130-
win32-build
131-
test/config.ini
132-
test/cache/*
133-
test/.mypy_cache/
134-
135-
!src/leveldb*/Makefile
136-
137-
/doc/doxygen/
138-
139-
libbitcoinconsensus.pc
140-
contrib/devtools/split-debug.sh
141-
142-
# Output from running db4 installation
143-
db4/
144-
145-
# clang-check
146-
*.plist
147-
148-
osx_volname
149-
dist/
19+
test/lint/test_runner/target/
15020

15121
/guix-build-*
15222

15323
/ci/scratch/
154-
155-
.cproject
156-
.project
157-
.settings/language.settings.xml
158-
src/test/buildenv.py
159-
Debug
160-
src/secp256k1/gen_context
161-
src/secp256k1/src/ecmult_static_context.h

.python-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.9.18
1+
3.10.14

.tx/config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[main]
22
host = https://www.transifex.com
33

4-
[o:bitcoin:p:bitcoin:r:qt-translation-027x]
4+
[o:bitcoin:p:bitcoin:r:qt-translation-029x]
55
file_filter = src/qt/locale/bitcoin_<lang>.xlf
66
source_file = src/qt/locale/bitcoin_en.xlf
77
source_lang = en

0 commit comments

Comments
 (0)