Skip to content

Commit b6440f2

Browse files
committed
Merge bitcoin#30305: [27.x] More backports
b3093eb doc: Update rel notes for 27.x (fanquake) 6338f92 upnp: add compatibility for miniupnpc 2.2.8 (Cory Fields) f34e446 ci: remove unused bcc variable from workflow (Max Edwards) 0d524b1 ci: move Asan / LSan / USDT job to Github Actions (Max Edwards) 43c40dd ci: add IPV6 network to ci container (Max Edwards) Pull request description: Backports: * bitcoin#30193 * bitcoin#30283 * bitcoin#30299 ACKs for top commit: willcl-ark: ACK b3093eb stickies-v: ACK b3093eb Tree-SHA512: 325149f2b388072276e10fae2ebb7d8f3f5138d75f237c0182a09c631334fc2af9c2fe500db31bf41e94d4f154771e3cd386f8eb0d09d7a1ad656f637b71e735
2 parents 1088a98 + b3093eb commit b6440f2

File tree

6 files changed

+60
-78
lines changed

6 files changed

+60
-78
lines changed

.cirrus.yml

-14
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ env: # Global defaults
4343
# The following specific types should exist, with the following requirements:
4444
# - small: For an x86_64 machine, recommended to have 2 CPUs and 8 GB of memory.
4545
# - 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.
4746
# - arm64: For an aarch64 machine, recommended to have 2 CPUs and 8 GB of memory.
4847

4948
# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
@@ -159,19 +158,6 @@ task:
159158
env:
160159
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"
161160

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-
175161
task:
176162
name: 'fuzzer,address,undefined,integer, no depends'
177163
<< : *GLOBAL_TASK_TEMPLATE

.github/workflows/ci.yml

+40-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ concurrency:
1818
cancel-in-progress: true
1919

2020
env:
21-
DANGER_RUN_CI_ON_HOST: 1
2221
CI_FAILFAST_TEST_LEAVE_DANGLING: 1 # GHA does not care about dangling processes and setting this variable avoids killing the CI script itself on error
2322
MAKEJOBS: '-j10'
2423

@@ -81,6 +80,7 @@ jobs:
8180
timeout-minutes: 120
8281

8382
env:
83+
DANGER_RUN_CI_ON_HOST: 1
8484
FILE_ENV: './ci/test/00_setup_env_mac_native.sh'
8585
BASE_ROOT_DIR: ${{ github.workspace }}
8686

@@ -294,3 +294,42 @@ jobs:
294294
TEST_RUNNER_EXTRA: ${{ github.event_name != 'pull_request' && '--extended' || '' }}
295295
shell: cmd
296296
run: py -3 test\functional\test_runner.py --jobs %NUMBER_OF_PROCESSORS% --ci --quiet --tmpdirprefix=%RUNNER_TEMP% --combinedlogslen=99999999 --timeout-factor=%TEST_RUNNER_TIMEOUT_FACTOR% %TEST_RUNNER_EXTRA%
297+
298+
asan-lsan-ubsan-integer-no-depends-usdt:
299+
name: 'ASan + LSan + UBSan + integer, no depends, USDT'
300+
runs-on: ubuntu-24.04 # has to match container in ci/test/00_setup_env_native_asan.sh for tracing tools
301+
# No need to run on the read-only mirror, unless it is a PR.
302+
if: github.repository != 'bitcoin-core/gui' || github.event_name == 'pull_request'
303+
timeout-minutes: 120
304+
env:
305+
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"
306+
steps:
307+
- name: Checkout
308+
uses: actions/checkout@v4
309+
310+
- name: Set Ccache directory
311+
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
312+
313+
- name: Restore Ccache cache
314+
id: ccache-cache
315+
uses: actions/cache/restore@v4
316+
with:
317+
path: ${{ env.CCACHE_DIR }}
318+
key: ${{ github.job }}-ccache-${{ github.run_id }}
319+
restore-keys: ${{ github.job }}-ccache-
320+
321+
- name: Enable bpfcc script
322+
# In the image build step, no external environment variables are available,
323+
# so any settings will need to be written to the settings env file:
324+
run: sed -i "s|\${INSTALL_BCC_TRACING_TOOLS}|true|g" ./ci/test/00_setup_env_native_asan.sh
325+
326+
- name: CI script
327+
run: ./ci/test_run_all.sh
328+
329+
- name: Save Ccache cache
330+
uses: actions/cache/save@v4
331+
if: github.event_name != 'pull_request' && steps.ccache-cache.outputs.cache-hit != 'true'
332+
with:
333+
path: ${{ env.CCACHE_DIR }}
334+
# https://github.com/actions/cache/blob/main/tips-and-workarounds.md#update-a-cache
335+
key: ${{ github.job }}-ccache-${{ github.run_id }}

ci/test/00_setup_env_native_asan.sh

+4-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77
export LC_ALL=C.UTF-8
88

99
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:24.04"
10-
# Only install BCC tracing packages in Cirrus CI.
11-
if [[ "${CIRRUS_CI}" == "true" ]]; then
10+
11+
# Only install BCC tracing packages in CI. Container has to match the host for BCC to work.
12+
if [[ "${INSTALL_BCC_TRACING_TOOLS}" == "true" ]]; then
13+
# Required for USDT functional tests to run
1214
BPFCC_PACKAGE="bpfcc-tools linux-headers-$(uname --kernel-release)"
1315
export CI_CONTAINER_CAP="--privileged -v /sys/kernel:/sys/kernel:rw"
1416
else

ci/test/02_run_container.sh

+5
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,23 @@ if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then
1616
# System-dependent env vars must be kept as is. So read them from the container.
1717
docker run --rm "${CI_IMAGE_NAME_TAG}" bash -c "env | grep --extended-regexp '^(HOME|PATH|USER)='" | tee --append "/tmp/env-$USER-$CONTAINER_NAME"
1818
echo "Creating $CI_IMAGE_NAME_TAG container to run in"
19+
1920
DOCKER_BUILDKIT=1 docker build \
2021
--file "${BASE_READ_ONLY_DIR}/ci/test_imagefile" \
2122
--build-arg "CI_IMAGE_NAME_TAG=${CI_IMAGE_NAME_TAG}" \
2223
--build-arg "FILE_ENV=${FILE_ENV}" \
2324
--label="${CI_IMAGE_LABEL}" \
2425
--tag="${CONTAINER_NAME}" \
2526
"${BASE_READ_ONLY_DIR}"
27+
2628
docker volume create "${CONTAINER_NAME}_ccache" || true
2729
docker volume create "${CONTAINER_NAME}_depends" || true
2830
docker volume create "${CONTAINER_NAME}_depends_sources" || true
2931
docker volume create "${CONTAINER_NAME}_depends_SDKs_android" || true
3032
docker volume create "${CONTAINER_NAME}_previous_releases" || true
3133

34+
docker network create --ipv6 --subnet 1111:1111::/112 ci-ip6net || true
35+
3236
if [ -n "${RESTART_CI_DOCKER_BEFORE_RUN}" ] ; then
3337
echo "Restart docker before run to stop and clear all containers started with --rm"
3438
podman container rm --force --all # Similar to "systemctl restart docker"
@@ -56,6 +60,7 @@ if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then
5660
--mount "type=volume,src=${CONTAINER_NAME}_previous_releases,dst=$PREVIOUS_RELEASES_DIR" \
5761
--env-file /tmp/env-$USER-$CONTAINER_NAME \
5862
--name "$CONTAINER_NAME" \
63+
--network ci-ip6net \
5964
"$CONTAINER_NAME")
6065
export CI_CONTAINER_ID
6166
export CI_EXEC_CMD_PREFIX="docker exec ${CI_CONTAINER_ID}"

doc/release-notes.md

+7-60
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
27.1 Release Notes
1+
27.x Release Notes
22
=====================
33

4-
Bitcoin Core version 27.1 is now available from:
4+
Bitcoin Core version 27.x is now available from:
55

6-
<https://bitcoincore.org/bin/bitcoin-core-27.1/>
6+
<https://bitcoincore.org/bin/bitcoin-core-27.x/>
77

88
This release includes various bug fixes and performance
99
improvements, as well as updated translations.
@@ -40,75 +40,22 @@ unsupported systems.
4040
Notable changes
4141
===============
4242

43-
### Miniscript
44-
45-
- #29853 sign: don't assume we are parsing a sane TapMiniscript
46-
47-
### RPC
48-
49-
- #29869 rpc, bugfix: Enforce maximum value for setmocktime
50-
- #29870 rpc: Reword SighashFromStr error message
51-
- #30094 rpc: move UniValue in blockToJSON
52-
53-
### Index
54-
55-
- #29776 Fix #29767, set m_synced = true after Commit()
56-
57-
### Gui
58-
59-
- #gui812 Fix create unsigned transaction fee bump
60-
- #gui813 Don't permit port in proxy IP option
61-
62-
### Test
63-
64-
- #29892 test: Fix failing univalue float test
65-
66-
### P2P
67-
68-
- #30085 p2p: detect addnode cjdns peers in GetAddedNodeInfo()
69-
7043
### Build
7144

72-
- #29747 depends: fix mingw-w64 Qt DEBUG=1 build
73-
- #29859 build: Fix false positive CHECK_ATOMIC test
74-
- #29985 depends: Fix build of Qt for 32-bit platforms with recent glibc
75-
- #30097 crypto: disable asan for sha256_sse4 with clang and -O0
76-
- #30151 depends: Fetch miniupnpc sources from an alternative website
77-
- #30216 build: Fix building fuzz binary on on SunOS / illumos
78-
- #30217 depends: Update Boost download link
79-
80-
### Doc
81-
82-
- #29934 doc: add LLVM instruction for macOS < 13
45+
- #30283 upnp: fix build with miniupnpc 2.2.8
8346

8447
### CI
8548

86-
- #29856 ci: Bump s390x to ubuntu:24.04
87-
88-
### Misc
89-
90-
- #29691 Change Luke Dashjr seed to dashjr-list-of-p2p-nodes.us
91-
- #30149 contrib: Renew Windows code signing certificate
49+
- #30193 ci: move ASan job to GitHub Actions from Cirrus CI
50+
- #30299 ci: remove unused bcc variable from workflow
9251

9352
Credits
9453
=======
9554

9655
Thanks to everyone who directly contributed to this release:
9756

98-
- Antoine Poinsot
99-
- Ava Chow
10057
- Cory Fields
101-
- dergoegge
102-
- fanquake
103-
- furszy
104-
- Hennadii Stepanov
105-
- Jon Atack
106-
- laanwj
107-
- Luke Dashjr
108-
- MarcoFalke
109-
- nanlour
110-
- Sjors Provoost
111-
- willcl-ark
58+
- Max Edwards
11259

11360
As well as to everyone that helped with translations on
11461
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).

src/mapport.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,11 @@ static bool ProcessUpnp()
163163
struct UPNPUrls urls;
164164
struct IGDdatas data;
165165
int r;
166-
166+
#if MINIUPNPC_API_VERSION <= 17
167167
r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr));
168+
#else
169+
r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr), nullptr, 0);
170+
#endif
168171
if (r == 1)
169172
{
170173
if (fDiscover) {

0 commit comments

Comments
 (0)