This commit is contained in:
fanquake 2025-10-08 10:49:23 +02:00 committed by GitHub
commit 1fe780a982
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 78 additions and 26 deletions

View File

@ -1,10 +1,10 @@
AC_PREREQ([2.69]) AC_PREREQ([2.69])
define(_CLIENT_VERSION_MAJOR, 27) define(_CLIENT_VERSION_MAJOR, 27)
define(_CLIENT_VERSION_MINOR, 2) define(_CLIENT_VERSION_MINOR, 3)
define(_CLIENT_VERSION_BUILD, 0) define(_CLIENT_VERSION_BUILD, 0)
define(_CLIENT_VERSION_RC, 0) define(_CLIENT_VERSION_RC, 1)
define(_CLIENT_VERSION_IS_RELEASE, true) define(_CLIENT_VERSION_IS_RELEASE, true)
define(_COPYRIGHT_YEAR, 2024) define(_COPYRIGHT_YEAR, 2025)
define(_COPYRIGHT_HOLDERS,[The %s developers]) define(_COPYRIGHT_HOLDERS,[The %s developers])
define(_COPYRIGHT_HOLDERS_SUBSTITUTION,[[Bitcoin Core]]) 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/]) 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/])

View File

@ -22,6 +22,7 @@ $(package)_patches += fast_fixed_dtoa_no_optimize.patch
$(package)_patches += guix_cross_lib_path.patch $(package)_patches += guix_cross_lib_path.patch
$(package)_patches += fix-macos-linker.patch $(package)_patches += fix-macos-linker.patch
$(package)_patches += memory_resource.patch $(package)_patches += memory_resource.patch
$(package)_patches += clang_18_libpng.patch
$(package)_patches += utc_from_string_no_optimize.patch $(package)_patches += utc_from_string_no_optimize.patch
$(package)_patches += windows_lto.patch $(package)_patches += windows_lto.patch
$(package)_patches += zlib-timebits64.patch $(package)_patches += zlib-timebits64.patch
@ -250,6 +251,7 @@ define $(package)_preprocess_cmds
patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \ patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \
patch -p1 -i $($(package)_patch_dir)/use_android_ndk23.patch && \ patch -p1 -i $($(package)_patch_dir)/use_android_ndk23.patch && \
patch -p1 -i $($(package)_patch_dir)/memory_resource.patch && \ patch -p1 -i $($(package)_patch_dir)/memory_resource.patch && \
patch -p1 -i $($(package)_patch_dir)/clang_18_libpng.patch && \
patch -p1 -i $($(package)_patch_dir)/rcc_hardcode_timestamp.patch && \ patch -p1 -i $($(package)_patch_dir)/rcc_hardcode_timestamp.patch && \
patch -p1 -i $($(package)_patch_dir)/duplicate_lcqpafonts.patch && \ patch -p1 -i $($(package)_patch_dir)/duplicate_lcqpafonts.patch && \
patch -p1 -i $($(package)_patch_dir)/utc_from_string_no_optimize.patch && \ patch -p1 -i $($(package)_patch_dir)/utc_from_string_no_optimize.patch && \

View File

@ -0,0 +1,40 @@
fix Qt macOS build with Clang 18
See:
https://github.com/pnggroup/libpng/commit/893b8113f04d408cc6177c6de19c9889a48faa24.
In a similar manner as zlib (madler/zlib#895),
libpng contains a header configuration that's no longer valid and
hasn't been exercised for the macOS target.
- The target OS conditional macros are misused. Specifically
`TARGET_OS_MAC` covers all Apple targets, including iOS, and it
should not be checked with `#if defined` as they would always be
defined (to either 1 or 0) on Apple platforms.
- `#include <fp.h>` no longer works for the macOS target and results
in a compilation failure. macOS ships all required functions in
`math.h`, and clients should use `math.h` instead.
--- a/qtbase/src/3rdparty/libpng/pngpriv.h
+++ b/qtbase/src/3rdparty/libpng/pngpriv.h
@@ -514,18 +514,8 @@
*/
# include <float.h>
-# if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \
- defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC)
- /* We need to check that <math.h> hasn't already been included earlier
- * as it seems it doesn't agree with <fp.h>, yet we should really use
- * <fp.h> if possible.
- */
-# if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__)
-# include <fp.h>
-# endif
-# else
-# include <math.h>
-# endif
+# include <math.h>
+
# if defined(_AMIGA) && defined(__SASC) && defined(_M68881)
/* Amiga SAS/C: We must include builtin FPU functions when compiling using
* MATH=68881

View File

@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIN-CLI "1" "October 2024" "bitcoin-cli v27.2.0" "User Commands" .TH BITCOIN-CLI "1" "September 2025" "bitcoin-cli v27.3.0rc1" "User Commands"
.SH NAME .SH NAME
bitcoin-cli \- manual page for bitcoin-cli v27.2.0 bitcoin-cli \- manual page for bitcoin-cli v27.3.0rc1
.SH SYNOPSIS .SH SYNOPSIS
.B bitcoin-cli .B bitcoin-cli
[\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR] \fI\,Send command to Bitcoin Core\/\fR [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR] \fI\,Send command to Bitcoin Core\/\fR
@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v27.2.0
.B bitcoin-cli .B bitcoin-cli
[\fI\,options\/\fR] \fI\,help <command> Get help for a command\/\fR [\fI\,options\/\fR] \fI\,help <command> Get help for a command\/\fR
.SH DESCRIPTION .SH DESCRIPTION
Bitcoin Core RPC client version v27.2.0 Bitcoin Core RPC client version v27.3.0rc1
.SH OPTIONS .SH OPTIONS
.HP .HP
\-? \-?

View File

@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIN-QT "1" "October 2024" "bitcoin-qt v27.2.0" "User Commands" .TH BITCOIN-QT "1" "September 2025" "bitcoin-qt v27.3.0rc1" "User Commands"
.SH NAME .SH NAME
bitcoin-qt \- manual page for bitcoin-qt v27.2.0 bitcoin-qt \- manual page for bitcoin-qt v27.3.0rc1
.SH SYNOPSIS .SH SYNOPSIS
.B bitcoin-qt .B bitcoin-qt
[\fI\,command-line options\/\fR] [\fI\,URI\/\fR] [\fI\,command-line options\/\fR] [\fI\,URI\/\fR]
.SH DESCRIPTION .SH DESCRIPTION
Bitcoin Core version v27.2.0 Bitcoin Core version v27.3.0rc1
.PP .PP
Optional URI is a Bitcoin address in BIP21 URI format. Optional URI is a Bitcoin address in BIP21 URI format.
.SH OPTIONS .SH OPTIONS

View File

@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIN-TX "1" "October 2024" "bitcoin-tx v27.2.0" "User Commands" .TH BITCOIN-TX "1" "September 2025" "bitcoin-tx v27.3.0rc1" "User Commands"
.SH NAME .SH NAME
bitcoin-tx \- manual page for bitcoin-tx v27.2.0 bitcoin-tx \- manual page for bitcoin-tx v27.3.0rc1
.SH SYNOPSIS .SH SYNOPSIS
.B bitcoin-tx .B bitcoin-tx
[\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded bitcoin transaction\/\fR [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded bitcoin transaction\/\fR
@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v27.2.0
.B bitcoin-tx .B bitcoin-tx
[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded bitcoin transaction\/\fR [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded bitcoin transaction\/\fR
.SH DESCRIPTION .SH DESCRIPTION
Bitcoin Core bitcoin\-tx utility version v27.2.0 Bitcoin Core bitcoin\-tx utility version v27.3.0rc1
.SH OPTIONS .SH OPTIONS
.HP .HP
\-? \-?

View File

@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIN-UTIL "1" "October 2024" "bitcoin-util v27.2.0" "User Commands" .TH BITCOIN-UTIL "1" "September 2025" "bitcoin-util v27.3.0rc1" "User Commands"
.SH NAME .SH NAME
bitcoin-util \- manual page for bitcoin-util v27.2.0 bitcoin-util \- manual page for bitcoin-util v27.3.0rc1
.SH SYNOPSIS .SH SYNOPSIS
.B bitcoin-util .B bitcoin-util
[\fI\,options\/\fR] [\fI\,commands\/\fR] \fI\,Do stuff\/\fR [\fI\,options\/\fR] [\fI\,commands\/\fR] \fI\,Do stuff\/\fR
.SH DESCRIPTION .SH DESCRIPTION
Bitcoin Core bitcoin\-util utility version v27.2.0 Bitcoin Core bitcoin\-util utility version v27.3.0rc1
.SH OPTIONS .SH OPTIONS
.HP .HP
\-? \-?

View File

@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIN-WALLET "1" "October 2024" "bitcoin-wallet v27.2.0" "User Commands" .TH BITCOIN-WALLET "1" "September 2025" "bitcoin-wallet v27.3.0rc1" "User Commands"
.SH NAME .SH NAME
bitcoin-wallet \- manual page for bitcoin-wallet v27.2.0 bitcoin-wallet \- manual page for bitcoin-wallet v27.3.0rc1
.SH DESCRIPTION .SH DESCRIPTION
Bitcoin Core bitcoin\-wallet version v27.2.0 Bitcoin Core bitcoin\-wallet version v27.3.0rc1
.PP .PP
bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files. bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir. By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.

View File

@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIND "1" "October 2024" "bitcoind v27.2.0" "User Commands" .TH BITCOIND "1" "September 2025" "bitcoind v27.3.0rc1" "User Commands"
.SH NAME .SH NAME
bitcoind \- manual page for bitcoind v27.2.0 bitcoind \- manual page for bitcoind v27.3.0rc1
.SH SYNOPSIS .SH SYNOPSIS
.B bitcoind .B bitcoind
[\fI\,options\/\fR] \fI\,Start Bitcoin Core\/\fR [\fI\,options\/\fR] \fI\,Start Bitcoin Core\/\fR
.SH DESCRIPTION .SH DESCRIPTION
Bitcoin Core version v27.2.0 Bitcoin Core version v27.3.0rc1
.SH OPTIONS .SH OPTIONS
.HP .HP
\-? \-?

View File

@ -42,6 +42,10 @@ Notable changes
External signing is not currently supported when compiling with Boost version 1.88.0 or later. External signing is not currently supported when compiling with Boost version 1.88.0 or later.
### P2P
- #33395 net: Do not apply whitelist permission to onion inbounds
### Test ### Test
- #31419 test: fix MIN macro redefinition - #31419 test: fix MIN macro redefinition
@ -50,6 +54,7 @@ External signing is not currently supported when compiling with Boost version 1.
### Build ### Build
- #30198 depends: fix Qt macOS build with Clang 18
- #31502 depends: Fix CXXFLAGS on NetBSD - #31502 depends: Fix CXXFLAGS on NetBSD
- #31627 depends: Fix spacing issue - #31627 depends: Fix spacing issue
- #32070 build: use make < 3.82 syntax for define directive - #32070 build: use make < 3.82 syntax for define directive
@ -74,7 +79,9 @@ Thanks to everyone who directly contributed to this release:
- fanquake - fanquake
- Hennadii Stepanov - Hennadii Stepanov
- MarcoFalke - MarcoFalke
- Martin Zumsande
- Sjors Provoost - Sjors Provoost
- Vasil Dimov
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/).

View File

@ -558,9 +558,9 @@ void CNode::CloseSocketDisconnect()
m_i2p_sam_session.reset(); m_i2p_sam_session.reset();
} }
void CConnman::AddWhitelistPermissionFlags(NetPermissionFlags& flags, const CNetAddr &addr) const { void CConnman::AddWhitelistPermissionFlags(NetPermissionFlags& flags, std::optional<CNetAddr> addr) const {
for (const auto& subnet : vWhitelistedRange) { for (const auto& subnet : vWhitelistedRange) {
if (subnet.m_subnet.Match(addr)) NetPermissions::AddFlag(flags, subnet.m_flags); if (addr.has_value() && subnet.m_subnet.Match(addr.value())) NetPermissions::AddFlag(flags, subnet.m_flags);
} }
} }
@ -1726,7 +1726,11 @@ void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
{ {
int nInbound = 0; int nInbound = 0;
AddWhitelistPermissionFlags(permission_flags, addr); const bool inbound_onion = std::find(m_onion_binds.begin(), m_onion_binds.end(), addr_bind) != m_onion_binds.end();
// Tor inbound connections do not reveal the peer's actual network address.
// Therefore do not apply address-based whitelist permissions to them.
AddWhitelistPermissionFlags(permission_flags, inbound_onion ? std::optional<CNetAddr>{} : addr);
if (NetPermissions::HasFlag(permission_flags, NetPermissionFlags::Implicit)) { if (NetPermissions::HasFlag(permission_flags, NetPermissionFlags::Implicit)) {
NetPermissions::ClearFlag(permission_flags, NetPermissionFlags::Implicit); NetPermissions::ClearFlag(permission_flags, NetPermissionFlags::Implicit);
if (gArgs.GetBoolArg("-whitelistforcerelay", DEFAULT_WHITELISTFORCERELAY)) NetPermissions::AddFlag(permission_flags, NetPermissionFlags::ForceRelay); if (gArgs.GetBoolArg("-whitelistforcerelay", DEFAULT_WHITELISTFORCERELAY)) NetPermissions::AddFlag(permission_flags, NetPermissionFlags::ForceRelay);
@ -1793,7 +1797,6 @@ void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
nodeServices = static_cast<ServiceFlags>(nodeServices | NODE_BLOOM); nodeServices = static_cast<ServiceFlags>(nodeServices | NODE_BLOOM);
} }
const bool inbound_onion = std::find(m_onion_binds.begin(), m_onion_binds.end(), addr_bind) != m_onion_binds.end();
// The V2Transport transparently falls back to V1 behavior when an incoming V1 connection is // The V2Transport transparently falls back to V1 behavior when an incoming V1 connection is
// detected, so use it whenever we signal NODE_P2P_V2. // detected, so use it whenever we signal NODE_P2P_V2.
const bool use_v2transport(nodeServices & NODE_P2P_V2); const bool use_v2transport(nodeServices & NODE_P2P_V2);

View File

@ -1339,7 +1339,7 @@ private:
bool AttemptToEvictConnection(); bool AttemptToEvictConnection();
CNode* ConnectNode(CAddress addrConnect, const char *pszDest, bool fCountFailure, ConnectionType conn_type, bool use_v2transport) EXCLUSIVE_LOCKS_REQUIRED(!m_unused_i2p_sessions_mutex); CNode* ConnectNode(CAddress addrConnect, const char *pszDest, bool fCountFailure, ConnectionType conn_type, bool use_v2transport) EXCLUSIVE_LOCKS_REQUIRED(!m_unused_i2p_sessions_mutex);
void AddWhitelistPermissionFlags(NetPermissionFlags& flags, const CNetAddr &addr) const; void AddWhitelistPermissionFlags(NetPermissionFlags& flags, std::optional<CNetAddr> addr) const;
void DeleteNode(CNode* pnode); void DeleteNode(CNode* pnode);