mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 03:47:29 -03:00
Merge bitcoin/bitcoin#30305: [27.x] More backports
b3093eb755
doc: Update rel notes for 27.x (fanquake)6338f92260
upnp: add compatibility for miniupnpc 2.2.8 (Cory Fields)f34e44616d
ci: remove unused bcc variable from workflow (Max Edwards)0d524b1484
ci: move Asan / LSan / USDT job to Github Actions (Max Edwards)43c40dd808
ci: add IPV6 network to ci container (Max Edwards) Pull request description: Backports: * https://github.com/bitcoin/bitcoin/pull/30193 * https://github.com/bitcoin/bitcoin/pull/30283 * https://github.com/bitcoin/bitcoin/pull/30299 ACKs for top commit: willcl-ark: ACKb3093eb755
stickies-v: ACKb3093eb755
Tree-SHA512: 325149f2b388072276e10fae2ebb7d8f3f5138d75f237c0182a09c631334fc2af9c2fe500db31bf41e94d4f154771e3cd386f8eb0d09d7a1ad656f637b71e735
This commit is contained in:
commit
b6440f20f2
6 changed files with 60 additions and 78 deletions
14
.cirrus.yml
14
.cirrus.yml
|
@ -43,7 +43,6 @@ env: # Global defaults
|
||||||
# The following specific types should exist, with the following requirements:
|
# The following specific types should exist, with the following requirements:
|
||||||
# - small: For an x86_64 machine, recommended to have 2 CPUs and 8 GB of memory.
|
# - small: For an x86_64 machine, recommended to have 2 CPUs and 8 GB of memory.
|
||||||
# - medium: For an x86_64 machine, recommended to have 4 CPUs and 16 GB of memory.
|
# - medium: For an x86_64 machine, recommended to have 4 CPUs and 16 GB of memory.
|
||||||
# - 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.
|
|
||||||
# - arm64: For an aarch64 machine, recommended to have 2 CPUs and 8 GB of memory.
|
# - arm64: For an aarch64 machine, recommended to have 2 CPUs and 8 GB of memory.
|
||||||
|
|
||||||
# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
|
# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
|
||||||
|
@ -159,19 +158,6 @@ task:
|
||||||
env:
|
env:
|
||||||
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"
|
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"
|
||||||
|
|
||||||
task:
|
|
||||||
name: 'ASan + LSan + UBSan + integer, no depends, USDT'
|
|
||||||
enable_bpfcc_script:
|
|
||||||
# In the image build step, no external environment variables are available,
|
|
||||||
# so any settings will need to be written to the settings env file:
|
|
||||||
- sed -i "s|\${CIRRUS_CI}|true|g" ./ci/test/00_setup_env_native_asan.sh
|
|
||||||
<< : *GLOBAL_TASK_TEMPLATE
|
|
||||||
persistent_worker:
|
|
||||||
labels:
|
|
||||||
type: noble # Must use this specific worker (needed for USDT functional tests)
|
|
||||||
env:
|
|
||||||
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"
|
|
||||||
|
|
||||||
task:
|
task:
|
||||||
name: 'fuzzer,address,undefined,integer, no depends'
|
name: 'fuzzer,address,undefined,integer, no depends'
|
||||||
<< : *GLOBAL_TASK_TEMPLATE
|
<< : *GLOBAL_TASK_TEMPLATE
|
||||||
|
|
41
.github/workflows/ci.yml
vendored
41
.github/workflows/ci.yml
vendored
|
@ -18,7 +18,6 @@ concurrency:
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
env:
|
env:
|
||||||
DANGER_RUN_CI_ON_HOST: 1
|
|
||||||
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
|
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
|
||||||
MAKEJOBS: '-j10'
|
MAKEJOBS: '-j10'
|
||||||
|
|
||||||
|
@ -81,6 +80,7 @@ jobs:
|
||||||
timeout-minutes: 120
|
timeout-minutes: 120
|
||||||
|
|
||||||
env:
|
env:
|
||||||
|
DANGER_RUN_CI_ON_HOST: 1
|
||||||
FILE_ENV: './ci/test/00_setup_env_mac_native.sh'
|
FILE_ENV: './ci/test/00_setup_env_mac_native.sh'
|
||||||
BASE_ROOT_DIR: ${{ github.workspace }}
|
BASE_ROOT_DIR: ${{ github.workspace }}
|
||||||
|
|
||||||
|
@ -294,3 +294,42 @@ jobs:
|
||||||
TEST_RUNNER_EXTRA: ${{ github.event_name != 'pull_request' && '--extended' || '' }}
|
TEST_RUNNER_EXTRA: ${{ github.event_name != 'pull_request' && '--extended' || '' }}
|
||||||
shell: cmd
|
shell: cmd
|
||||||
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%
|
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%
|
||||||
|
|
||||||
|
asan-lsan-ubsan-integer-no-depends-usdt:
|
||||||
|
name: 'ASan + LSan + UBSan + integer, no depends, USDT'
|
||||||
|
runs-on: ubuntu-24.04 # has to match container in ci/test/00_setup_env_native_asan.sh for tracing tools
|
||||||
|
# No need to run on the read-only mirror, unless it is a PR.
|
||||||
|
if: github.repository != 'bitcoin-core/gui' || github.event_name == 'pull_request'
|
||||||
|
timeout-minutes: 120
|
||||||
|
env:
|
||||||
|
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set Ccache directory
|
||||||
|
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
- name: Restore Ccache cache
|
||||||
|
id: ccache-cache
|
||||||
|
uses: actions/cache/restore@v4
|
||||||
|
with:
|
||||||
|
path: ${{ env.CCACHE_DIR }}
|
||||||
|
key: ${{ github.job }}-ccache-${{ github.run_id }}
|
||||||
|
restore-keys: ${{ github.job }}-ccache-
|
||||||
|
|
||||||
|
- name: Enable bpfcc script
|
||||||
|
# In the image build step, no external environment variables are available,
|
||||||
|
# so any settings will need to be written to the settings env file:
|
||||||
|
run: sed -i "s|\${INSTALL_BCC_TRACING_TOOLS}|true|g" ./ci/test/00_setup_env_native_asan.sh
|
||||||
|
|
||||||
|
- name: CI script
|
||||||
|
run: ./ci/test_run_all.sh
|
||||||
|
|
||||||
|
- name: Save Ccache cache
|
||||||
|
uses: actions/cache/save@v4
|
||||||
|
if: github.event_name != 'pull_request' && steps.ccache-cache.outputs.cache-hit != 'true'
|
||||||
|
with:
|
||||||
|
path: ${{ env.CCACHE_DIR }}
|
||||||
|
# https://github.com/actions/cache/blob/main/tips-and-workarounds.md#update-a-cache
|
||||||
|
key: ${{ github.job }}-ccache-${{ github.run_id }}
|
||||||
|
|
|
@ -7,8 +7,10 @@
|
||||||
export LC_ALL=C.UTF-8
|
export LC_ALL=C.UTF-8
|
||||||
|
|
||||||
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:24.04"
|
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:24.04"
|
||||||
# Only install BCC tracing packages in Cirrus CI.
|
|
||||||
if [[ "${CIRRUS_CI}" == "true" ]]; then
|
# Only install BCC tracing packages in CI. Container has to match the host for BCC to work.
|
||||||
|
if [[ "${INSTALL_BCC_TRACING_TOOLS}" == "true" ]]; then
|
||||||
|
# Required for USDT functional tests to run
|
||||||
BPFCC_PACKAGE="bpfcc-tools linux-headers-$(uname --kernel-release)"
|
BPFCC_PACKAGE="bpfcc-tools linux-headers-$(uname --kernel-release)"
|
||||||
export CI_CONTAINER_CAP="--privileged -v /sys/kernel:/sys/kernel:rw"
|
export CI_CONTAINER_CAP="--privileged -v /sys/kernel:/sys/kernel:rw"
|
||||||
else
|
else
|
||||||
|
|
|
@ -16,6 +16,7 @@ if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then
|
||||||
# System-dependent env vars must be kept as is. So read them from the container.
|
# System-dependent env vars must be kept as is. So read them from the container.
|
||||||
docker run --rm "${CI_IMAGE_NAME_TAG}" bash -c "env | grep --extended-regexp '^(HOME|PATH|USER)='" | tee --append "/tmp/env-$USER-$CONTAINER_NAME"
|
docker run --rm "${CI_IMAGE_NAME_TAG}" bash -c "env | grep --extended-regexp '^(HOME|PATH|USER)='" | tee --append "/tmp/env-$USER-$CONTAINER_NAME"
|
||||||
echo "Creating $CI_IMAGE_NAME_TAG container to run in"
|
echo "Creating $CI_IMAGE_NAME_TAG container to run in"
|
||||||
|
|
||||||
DOCKER_BUILDKIT=1 docker build \
|
DOCKER_BUILDKIT=1 docker build \
|
||||||
--file "${BASE_READ_ONLY_DIR}/ci/test_imagefile" \
|
--file "${BASE_READ_ONLY_DIR}/ci/test_imagefile" \
|
||||||
--build-arg "CI_IMAGE_NAME_TAG=${CI_IMAGE_NAME_TAG}" \
|
--build-arg "CI_IMAGE_NAME_TAG=${CI_IMAGE_NAME_TAG}" \
|
||||||
|
@ -23,12 +24,15 @@ if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then
|
||||||
--label="${CI_IMAGE_LABEL}" \
|
--label="${CI_IMAGE_LABEL}" \
|
||||||
--tag="${CONTAINER_NAME}" \
|
--tag="${CONTAINER_NAME}" \
|
||||||
"${BASE_READ_ONLY_DIR}"
|
"${BASE_READ_ONLY_DIR}"
|
||||||
|
|
||||||
docker volume create "${CONTAINER_NAME}_ccache" || true
|
docker volume create "${CONTAINER_NAME}_ccache" || true
|
||||||
docker volume create "${CONTAINER_NAME}_depends" || true
|
docker volume create "${CONTAINER_NAME}_depends" || true
|
||||||
docker volume create "${CONTAINER_NAME}_depends_sources" || true
|
docker volume create "${CONTAINER_NAME}_depends_sources" || true
|
||||||
docker volume create "${CONTAINER_NAME}_depends_SDKs_android" || true
|
docker volume create "${CONTAINER_NAME}_depends_SDKs_android" || true
|
||||||
docker volume create "${CONTAINER_NAME}_previous_releases" || true
|
docker volume create "${CONTAINER_NAME}_previous_releases" || true
|
||||||
|
|
||||||
|
docker network create --ipv6 --subnet 1111:1111::/112 ci-ip6net || true
|
||||||
|
|
||||||
if [ -n "${RESTART_CI_DOCKER_BEFORE_RUN}" ] ; then
|
if [ -n "${RESTART_CI_DOCKER_BEFORE_RUN}" ] ; then
|
||||||
echo "Restart docker before run to stop and clear all containers started with --rm"
|
echo "Restart docker before run to stop and clear all containers started with --rm"
|
||||||
podman container rm --force --all # Similar to "systemctl restart docker"
|
podman container rm --force --all # Similar to "systemctl restart docker"
|
||||||
|
@ -56,6 +60,7 @@ if [ -z "$DANGER_RUN_CI_ON_HOST" ]; then
|
||||||
--mount "type=volume,src=${CONTAINER_NAME}_previous_releases,dst=$PREVIOUS_RELEASES_DIR" \
|
--mount "type=volume,src=${CONTAINER_NAME}_previous_releases,dst=$PREVIOUS_RELEASES_DIR" \
|
||||||
--env-file /tmp/env-$USER-$CONTAINER_NAME \
|
--env-file /tmp/env-$USER-$CONTAINER_NAME \
|
||||||
--name "$CONTAINER_NAME" \
|
--name "$CONTAINER_NAME" \
|
||||||
|
--network ci-ip6net \
|
||||||
"$CONTAINER_NAME")
|
"$CONTAINER_NAME")
|
||||||
export CI_CONTAINER_ID
|
export CI_CONTAINER_ID
|
||||||
export CI_EXEC_CMD_PREFIX="docker exec ${CI_CONTAINER_ID}"
|
export CI_EXEC_CMD_PREFIX="docker exec ${CI_CONTAINER_ID}"
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
27.1 Release Notes
|
27.x Release Notes
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
Bitcoin Core version 27.1 is now available from:
|
Bitcoin Core version 27.x is now available from:
|
||||||
|
|
||||||
<https://bitcoincore.org/bin/bitcoin-core-27.1/>
|
<https://bitcoincore.org/bin/bitcoin-core-27.x/>
|
||||||
|
|
||||||
This release includes various bug fixes and performance
|
This release includes various bug fixes and performance
|
||||||
improvements, as well as updated translations.
|
improvements, as well as updated translations.
|
||||||
|
@ -40,75 +40,22 @@ unsupported systems.
|
||||||
Notable changes
|
Notable changes
|
||||||
===============
|
===============
|
||||||
|
|
||||||
### Miniscript
|
|
||||||
|
|
||||||
- #29853 sign: don't assume we are parsing a sane TapMiniscript
|
|
||||||
|
|
||||||
### RPC
|
|
||||||
|
|
||||||
- #29869 rpc, bugfix: Enforce maximum value for setmocktime
|
|
||||||
- #29870 rpc: Reword SighashFromStr error message
|
|
||||||
- #30094 rpc: move UniValue in blockToJSON
|
|
||||||
|
|
||||||
### Index
|
|
||||||
|
|
||||||
- #29776 Fix #29767, set m_synced = true after Commit()
|
|
||||||
|
|
||||||
### Gui
|
|
||||||
|
|
||||||
- #gui812 Fix create unsigned transaction fee bump
|
|
||||||
- #gui813 Don't permit port in proxy IP option
|
|
||||||
|
|
||||||
### Test
|
|
||||||
|
|
||||||
- #29892 test: Fix failing univalue float test
|
|
||||||
|
|
||||||
### P2P
|
|
||||||
|
|
||||||
- #30085 p2p: detect addnode cjdns peers in GetAddedNodeInfo()
|
|
||||||
|
|
||||||
### Build
|
### Build
|
||||||
|
|
||||||
- #29747 depends: fix mingw-w64 Qt DEBUG=1 build
|
- #30283 upnp: fix build with miniupnpc 2.2.8
|
||||||
- #29859 build: Fix false positive CHECK_ATOMIC test
|
|
||||||
- #29985 depends: Fix build of Qt for 32-bit platforms with recent glibc
|
|
||||||
- #30097 crypto: disable asan for sha256_sse4 with clang and -O0
|
|
||||||
- #30151 depends: Fetch miniupnpc sources from an alternative website
|
|
||||||
- #30216 build: Fix building fuzz binary on on SunOS / illumos
|
|
||||||
- #30217 depends: Update Boost download link
|
|
||||||
|
|
||||||
### Doc
|
|
||||||
|
|
||||||
- #29934 doc: add LLVM instruction for macOS < 13
|
|
||||||
|
|
||||||
### CI
|
### CI
|
||||||
|
|
||||||
- #29856 ci: Bump s390x to ubuntu:24.04
|
- #30193 ci: move ASan job to GitHub Actions from Cirrus CI
|
||||||
|
- #30299 ci: remove unused bcc variable from workflow
|
||||||
### Misc
|
|
||||||
|
|
||||||
- #29691 Change Luke Dashjr seed to dashjr-list-of-p2p-nodes.us
|
|
||||||
- #30149 contrib: Renew Windows code signing certificate
|
|
||||||
|
|
||||||
Credits
|
Credits
|
||||||
=======
|
=======
|
||||||
|
|
||||||
Thanks to everyone who directly contributed to this release:
|
Thanks to everyone who directly contributed to this release:
|
||||||
|
|
||||||
- Antoine Poinsot
|
|
||||||
- Ava Chow
|
|
||||||
- Cory Fields
|
- Cory Fields
|
||||||
- dergoegge
|
- Max Edwards
|
||||||
- fanquake
|
|
||||||
- furszy
|
|
||||||
- Hennadii Stepanov
|
|
||||||
- Jon Atack
|
|
||||||
- laanwj
|
|
||||||
- Luke Dashjr
|
|
||||||
- MarcoFalke
|
|
||||||
- nanlour
|
|
||||||
- Sjors Provoost
|
|
||||||
- willcl-ark
|
|
||||||
|
|
||||||
As well as to everyone that helped with translations on
|
As well as to everyone that helped with translations on
|
||||||
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).
|
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).
|
||||||
|
|
|
@ -163,8 +163,11 @@ static bool ProcessUpnp()
|
||||||
struct UPNPUrls urls;
|
struct UPNPUrls urls;
|
||||||
struct IGDdatas data;
|
struct IGDdatas data;
|
||||||
int r;
|
int r;
|
||||||
|
#if MINIUPNPC_API_VERSION <= 17
|
||||||
r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr));
|
r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr));
|
||||||
|
#else
|
||||||
|
r = UPNP_GetValidIGD(devlist, &urls, &data, lanaddr, sizeof(lanaddr), nullptr, 0);
|
||||||
|
#endif
|
||||||
if (r == 1)
|
if (r == 1)
|
||||||
{
|
{
|
||||||
if (fDiscover) {
|
if (fDiscover) {
|
||||||
|
|
Loading…
Reference in a new issue