From 4e7dd0ac2079dc04005c2d226eab9566807f146d Mon Sep 17 00:00:00 2001 From: Kay Date: Mon, 6 Jan 2025 12:23:11 +0000 Subject: [PATCH 1/5] doc: upgrade license to 2025. Github-Pull: #31611 Rebased-From: b537a2c02a9921235d1ecf8c3c7dc1836ec68131 --- COPYING | 4 ++-- configure.ac | 2 +- contrib/debian/copyright | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/COPYING b/COPYING index e6d6e9fe570..23dc5e905b6 100644 --- a/COPYING +++ b/COPYING @@ -1,7 +1,7 @@ The MIT License (MIT) -Copyright (c) 2009-2024 The Bitcoin Core developers -Copyright (c) 2009-2024 Bitcoin Developers +Copyright (c) 2009-2025 The Bitcoin Core developers +Copyright (c) 2009-2025 Bitcoin Developers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/configure.ac b/configure.ac index 86d5e5e2148..c3d13b76f3b 100644 --- a/configure.ac +++ b/configure.ac @@ -4,7 +4,7 @@ define(_CLIENT_VERSION_MINOR, 1) define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_RC, 0) define(_CLIENT_VERSION_IS_RELEASE, true) -define(_COPYRIGHT_YEAR, 2024) +define(_COPYRIGHT_YEAR, 2025) define(_COPYRIGHT_HOLDERS,[The %s developers]) define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]]) AC_INIT([Bitcoin Core],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_BUILD)m4_if(_CLIENT_VERSION_RC, [0], [], [rc]_CLIENT_VERSION_RC),[https://github.com/bitcoin/bitcoin/issues],[bitcoin],[https://bitcoincore.org/]) diff --git a/contrib/debian/copyright b/contrib/debian/copyright index dafc92f8ad7..af8a1bc0c14 100644 --- a/contrib/debian/copyright +++ b/contrib/debian/copyright @@ -5,7 +5,7 @@ Upstream-Contact: Satoshi Nakamoto Source: https://github.com/bitcoin/bitcoin Files: * -Copyright: 2009-2024, Bitcoin Core Developers +Copyright: 2009-2025, Bitcoin Core Developers License: Expat Comment: The Bitcoin Core Developers encompasses all contributors to the project, listed in the release notes or the git log. From f676da82fa595e83fd3f92061da4b6d59b7a0cf0 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Thu, 9 Jan 2025 13:36:19 +0000 Subject: [PATCH 2/5] depends: Fix spacing issue This change resolves an issue where a missing space caused the value of the `build_AR` variable to be concatenated with the "NM=" string. This resulted in subsequent calls to `${AR}` and `${NM}` failing. Github-Pull: #31627 Rebased-From: 8a46286da667d19414c30350df48ebf245589e32 --- depends/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/depends/Makefile b/depends/Makefile index 52a9a14e56a..91982f2ea9f 100644 --- a/depends/Makefile +++ b/depends/Makefile @@ -143,7 +143,7 @@ include packages/packages.mk # 2. Before including packages/*.mk (excluding packages/packages.mk), since # they rely on the build_id variables # -build_id:=$(shell env CC='$(build_CC)' C_STANDARD='$(C_STANDARD)' CXX='$(build_CXX)' CXX_STANDARD='$(CXX_STANDARD)' AR='$(build_AR) 'NM='$(build_NM)' RANLIB='$(build_RANLIB)' STRIP='$(build_STRIP)' SHA256SUM='$(build_SHA256SUM)' DEBUG='$(DEBUG)' LTO='$(LTO)' NO_HARDEN='$(NO_HARDEN)' ./gen_id '$(BUILD_ID_SALT)' 'GUIX_ENVIRONMENT=$(realpath $(GUIX_ENVIRONMENT))') +build_id:=$(shell env CC='$(build_CC)' C_STANDARD='$(C_STANDARD)' CXX='$(build_CXX)' CXX_STANDARD='$(CXX_STANDARD)' AR='$(build_AR)' NM='$(build_NM)' RANLIB='$(build_RANLIB)' STRIP='$(build_STRIP)' SHA256SUM='$(build_SHA256SUM)' DEBUG='$(DEBUG)' LTO='$(LTO)' NO_HARDEN='$(NO_HARDEN)' ./gen_id '$(BUILD_ID_SALT)' 'GUIX_ENVIRONMENT=$(realpath $(GUIX_ENVIRONMENT))') $(host_arch)_$(host_os)_id:=$(shell env CC='$(host_CC)' C_STANDARD='$(C_STANDARD)' CXX='$(host_CXX)' CXX_STANDARD='$(CXX_STANDARD)' AR='$(host_AR)' NM='$(host_NM)' RANLIB='$(host_RANLIB)' STRIP='$(host_STRIP)' SHA256SUM='$(build_SHA256SUM)' DEBUG='$(DEBUG)' LTO='$(LTO)' NO_HARDEN='$(NO_HARDEN)' ./gen_id '$(HOST_ID_SALT)' 'GUIX_ENVIRONMENT=$(realpath $(GUIX_ENVIRONMENT))') boost_packages_$(NO_BOOST) = $(boost_packages) From 2829588882781f4b920a692f04c4b0c38c5594f0 Mon Sep 17 00:00:00 2001 From: 0xb10c Date: Thu, 9 Jan 2025 06:42:05 +0000 Subject: [PATCH 3/5] tracing: Rename the `MIN` macro to `_TRACEPOINT_TEST_MIN` in log_raw_p2p_msgs Inspired by: 00c1dbd26ddb816e5541c5724397015a92a3d06b (#31419) Github-Pull: #31623 Rebased-From: f93f0c93961bbce413101c2a92300a7a29277506 --- contrib/tracing/log_raw_p2p_msgs.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/contrib/tracing/log_raw_p2p_msgs.py b/contrib/tracing/log_raw_p2p_msgs.py index c0ab7041062..67b92ce7b87 100755 --- a/contrib/tracing/log_raw_p2p_msgs.py +++ b/contrib/tracing/log_raw_p2p_msgs.py @@ -41,7 +41,8 @@ from bcc import BPF, USDT program = """ #include -#define MIN(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a < _b ? _a : _b; }) +// A min() macro. Prefixed with _TRACEPOINT_TEST to avoid collision with other MIN macros. +#define _TRACEPOINT_TEST_MIN(a,b) ({ __typeof__ (a) _a = (a); __typeof__ (b) _b = (b); _a < _b ? _a : _b; }) // Maximum possible allocation size // from include/linux/percpu.h in the Linux kernel @@ -88,7 +89,7 @@ int trace_inbound_message(struct pt_regs *ctx) { bpf_usdt_readarg_p(3, ctx, &msg->peer_conn_type, MAX_PEER_CONN_TYPE_LENGTH); bpf_usdt_readarg_p(4, ctx, &msg->msg_type, MAX_MSG_TYPE_LENGTH); bpf_usdt_readarg(5, ctx, &msg->msg_size); - bpf_usdt_readarg_p(6, ctx, &msg->msg, MIN(msg->msg_size, MAX_MSG_DATA_LENGTH)); + bpf_usdt_readarg_p(6, ctx, &msg->msg, _TRACEPOINT_TEST_MIN(msg->msg_size, MAX_MSG_DATA_LENGTH)); inbound_messages.perf_submit(ctx, msg, sizeof(*msg)); return 0; @@ -108,7 +109,7 @@ int trace_outbound_message(struct pt_regs *ctx) { bpf_usdt_readarg_p(3, ctx, &msg->peer_conn_type, MAX_PEER_CONN_TYPE_LENGTH); bpf_usdt_readarg_p(4, ctx, &msg->msg_type, MAX_MSG_TYPE_LENGTH); bpf_usdt_readarg(5, ctx, &msg->msg_size); - bpf_usdt_readarg_p(6, ctx, &msg->msg, MIN(msg->msg_size, MAX_MSG_DATA_LENGTH)); + bpf_usdt_readarg_p(6, ctx, &msg->msg, _TRACEPOINT_TEST_MIN(msg->msg_size, MAX_MSG_DATA_LENGTH)); outbound_messages.perf_submit(ctx, msg, sizeof(*msg)); return 0; From 51fbcba6823f3ec0f6ca75fc4573f817f7f2eecc Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Mon, 3 Feb 2025 09:20:43 +0000 Subject: [PATCH 4/5] depends: Fix compiling `libevent` package on NetBSD Github-Pull: #31500 Rebased-From: f89f16846ec02942e7b81d24a85e3f40941e5426 --- depends/packages/libevent.mk | 4 +++- depends/patches/libevent/netbsd_fixup.patch | 23 +++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 depends/patches/libevent/netbsd_fixup.patch diff --git a/depends/packages/libevent.mk b/depends/packages/libevent.mk index 4c05e8a0a74..3ccedc19cd7 100644 --- a/depends/packages/libevent.mk +++ b/depends/packages/libevent.mk @@ -5,6 +5,7 @@ $(package)_file_name=$(package)-$($(package)_version).tar.gz $(package)_sha256_hash=92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb $(package)_patches=cmake_fixups.patch $(package)_patches+=fix_mingw_link.patch +$(package)_patches += netbsd_fixup.patch $(package)_build_subdir=build # When building for Windows, we set _WIN32_WINNT to target the same Windows @@ -24,7 +25,8 @@ endef define $(package)_preprocess_cmds patch -p1 < $($(package)_patch_dir)/cmake_fixups.patch && \ - patch -p1 < $($(package)_patch_dir)/fix_mingw_link.patch + patch -p1 < $($(package)_patch_dir)/fix_mingw_link.patch && \ + patch -p1 < $($(package)_patch_dir)/netbsd_fixup.patch endef define $(package)_config_cmds diff --git a/depends/patches/libevent/netbsd_fixup.patch b/depends/patches/libevent/netbsd_fixup.patch new file mode 100644 index 00000000000..21d96aaf452 --- /dev/null +++ b/depends/patches/libevent/netbsd_fixup.patch @@ -0,0 +1,23 @@ +Improve portability on NetBSD + +According to GCC documentation, "the various `-std` options disable +certain keywords". +This change adheres to GCC's recommendation by replacing the `typeof` +keyword with its alternative, `__typeof__`. + +See https://github.com/libevent/libevent/commit/1759485e9a59147a47a674f5132fcfe764e7748c. + + +--- a/kqueue.c ++++ b/kqueue.c +@@ -52,8 +52,8 @@ + * intptr_t, whereas others define it as void*. There doesn't seem to be an + * easy way to tell them apart via autoconf, so we need to use OS macros. */ + #if defined(__NetBSD__) +-#define PTR_TO_UDATA(x) ((typeof(((struct kevent *)0)->udata))(x)) +-#define INT_TO_UDATA(x) ((typeof(((struct kevent *)0)->udata))(intptr_t)(x)) ++#define PTR_TO_UDATA(x) ((__typeof__(((struct kevent *)0)->udata))(x)) ++#define INT_TO_UDATA(x) ((__typeof__(((struct kevent *)0)->udata))(intptr_t)(x)) + #elif defined(EVENT__HAVE_INTTYPES_H) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__darwin__) && !defined(__APPLE__) && !defined(__CloudABI__) + #define PTR_TO_UDATA(x) ((intptr_t)(x)) + #define INT_TO_UDATA(x) ((intptr_t)(x)) From e57359c7dd75283363b5f82675531af167742da5 Mon Sep 17 00:00:00 2001 From: fanquake Date: Mon, 13 Jan 2025 15:07:03 +0000 Subject: [PATCH 5/5] doc: Update release notes --- doc/release-notes.md | 55 ++++++++------------------------------------ 1 file changed, 9 insertions(+), 46 deletions(-) diff --git a/doc/release-notes.md b/doc/release-notes.md index e134dcce439..ab7b7257e54 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,6 +1,6 @@ -Bitcoin Core version 28.1 is now available from: +Bitcoin Core version 28.x is now available from: - + This release includes new features, various bug fixes and performance improvements, as well as updated translations. @@ -44,62 +44,25 @@ unsupported systems. Notable changes =============== -### P2P - -- When the `-port` configuration option is used, the default onion listening port will now - be derived to be that port + 1 instead of being set to a fixed value (8334 on mainnet). - This re-allows setups with multiple local nodes using different `-port` and not using `-bind`, - which would lead to a startup failure in v28.0 due to a port collision. - - Note that a `HiddenServicePort` manually configured in `torrc` may need adjustment if used in - connection with the `-port` option. - For example, if you are using `-port=5555` with a non-standard value and not using `-bind=...=onion`, - previously Bitcoin Core would listen for incoming Tor connections on `127.0.0.1:8334`. - Now it would listen on `127.0.0.1:5556` (`-port` plus one). If you configured the hidden service manually - in torrc now you have to change it from `HiddenServicePort 8333 127.0.0.1:8334` to `HiddenServicePort 8333 - 127.0.0.1:5556`, or configure bitcoind with `-bind=127.0.0.1:8334=onion` to get the previous behavior. - (#31223) -- #30568 addrman: change internal id counting to int64_t - -### Key - -- #31166 key: clear out secret data in DecodeExtKey - ### Build -- #31013 depends: For mingw cross compile use `-gcc-posix` to prevent library conflict -- #31502 depends: Fix CXXFLAGS on NetBSD +- #31627 depends: Fix spacing issue +- #31500 depends: Fix compiling libevent package on NetBSD -### Test +### Tracing -- #31016 test: add missing sync to feature_fee_estimation.py -- #31448 fuzz: add cstdlib to FuzzedDataProvider -- #31419 test: fix MIN macro redefinition -- #31563 rpc: Extend scope of validation mutex in generateblock - -### Doc - -- #31007 doc: add testnet4 section header for config file - -### CI - -- #30961 ci: add LLVM_SYMBOLIZER_PATH to Valgrind fuzz job +- #31623 tracing: Rename the MIN macro to TRACEPOINT_TEST_MIN in log_raw_p2p_msgs ### Misc -- #31267 refactor: Drop deprecated space in `operator""_mst` -- #31431 util: use explicit cast in MultiIntBitSet::Fill() +- #31611 doc: upgrade license to 2025 Credits ======= -- fanquake +- 0xB10C - Hennadii Stepanov -- laanwj -- MarcoFalke -- Martin Zumsande -- Marnix -- Sebastian Falbesoner +- kehiy Thanks to everyone who directly contributed to this release: