Merge bitcoin/bitcoin#35214: [28.x] Backports

c1c2184f45 doc: update release notes for v28.x (fanquake)
2c5242d24f multi_index: fix compilation failure with boost >= 1.91 (Cory Fields)
2d3edd9640 ci: unconfine seccomp for i686 no IPC (Lőrinc)

Pull request description:

  Backports:
  * #35202
  * #35175

ACKs for top commit:
  achow101:
    ACK c1c2184f45

Tree-SHA512: ca7624f2eca1a40f3da41a1dfd8b3cb89b6029eb75b6a076b815438f1f8381c7c48c337768e08e2e18052de93d1ab6ae93a1e8a6a2804e61420cf7f17dad9f74
This commit is contained in:
Ava Chow
2026-05-06 02:20:06 -07:00
7 changed files with 22 additions and 50 deletions

View File

@@ -9,6 +9,7 @@ export LC_ALL=C.UTF-8
export HOST=i686-pc-linux-gnu
export CONTAINER_NAME=ci_i686_centos
export CI_IMAGE_NAME_TAG="quay.io/centos/amd64:stream9"
export CI_CONTAINER_CAP="--security-opt seccomp=unconfined"
export CI_BASE_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python3-pip which patch lbzip2 xz procps-ng dash rsync coreutils bison util-linux e2fsprogs cmake"
export PIP_PACKAGES="pyzmq"
export GOAL="install"

View File

@@ -9,6 +9,7 @@ export LC_ALL=C.UTF-8
export HOST=i686-pc-linux-gnu
export CONTAINER_NAME=ci_i686_multiprocess
export CI_IMAGE_NAME_TAG="docker.io/amd64/ubuntu:24.04"
export CI_CONTAINER_CAP="--security-opt seccomp=unconfined"
export PACKAGES="llvm clang g++-multilib"
export DEP_OPTS="DEBUG=1 MULTIPROCESS=1"
export GOAL="install"

View File

@@ -8,6 +8,7 @@ export LC_ALL=C.UTF-8
export CONTAINER_NAME=ci_win64
export CI_IMAGE_NAME_TAG="docker.io/amd64/debian:bookworm" # Check that https://packages.debian.org/bookworm/g++-mingw-w64-x86-64-posix (version 12.2, similar to guix) can cross-compile
export CI_CONTAINER_CAP="--security-opt seccomp=unconfined"
export HOST=x86_64-w64-mingw32
export DPKG_ADD_ARCH="i386"
export PACKAGES="nsis g++-mingw-w64-x86-64-posix wine-binfmt wine64 wine32 file"

View File

@@ -1,6 +1,6 @@
Bitcoin Core version 28.4 is now available from:
Bitcoin Core version 28.x is now available from:
<https://bitcoincore.org/bin/bitcoin-core-28.4/>
<https://bitcoincore.org/bin/bitcoin-core-28.x/>
This release includes various bug fixes and performance
improvements, as well as updated translations.
@@ -37,45 +37,21 @@ unsupported systems.
Notable changes
===============
### Wallet
- #34156 wallet: fix unnamed legacy wallet migration failure
- #34215 wallettool: fix unnamed createfromdump failure walletsdir deletion
- #34226 wallet: test: Relative wallet failed migration cleanup
- #34370 Fix #34222 backport bugs
### P2P
- #33723 chainparams: remove dnsseed.bitcoin.dashjr-list-of-p2p-nodes.us
### Build
- #34227 guix: Fix `osslsigncode` tests
### CI
- #32513 ci: remove 3rd party js from windows dll gha job
- #34344 ci: update GitHub Actions versions
- #34463 ci: use macos-14 image
- #35202 ci: restore sockets in i686, no IPC job
### Misc
- #34174 doc: update copyright year to 2026
- #35175 multi_index: fix compilation failure with boost >= 1.91
Credits
=======
Thanks to everyone who directly contributed to this release:
- achow101
- davidgumberg
- fanquake
- furszy
- Hennadii Stepanov
- Luke Dashjr
- m3dwards
- Padraic Slattery
- SatsAndSports
- Cory Fields
- Lőrinc
As well as to everyone that helped with translations on
[Transifex](https://explore.transifex.com/bitcoin/bitcoin/).

View File

@@ -98,7 +98,9 @@ struct CompareTxIterByAncestorCount {
};
struct CTxMemPoolModifiedEntry_Indices final : boost::multi_index::indexed_by<
using indexed_modified_transaction_set = boost::multi_index_container<
CTxMemPoolModifiedEntry,
boost::multi_index::indexed_by<
boost::multi_index::ordered_unique<
modifiedentry_iter,
CompareCTxMemPoolIter
@@ -111,12 +113,7 @@ struct CTxMemPoolModifiedEntry_Indices final : boost::multi_index::indexed_by<
CompareTxMemPoolEntryByAncestorFee
>
>
{};
typedef boost::multi_index_container<
CTxMemPoolModifiedEntry,
CTxMemPoolModifiedEntry_Indices
> indexed_modified_transaction_set;
>;
typedef indexed_modified_transaction_set::nth_index<0>::type::iterator modtxiter;
typedef indexed_modified_transaction_set::index<ancestor_score>::type::iterator modtxscoreiter;

View File

@@ -329,7 +329,9 @@ public:
static const int ROLLING_FEE_HALFLIFE = 60 * 60 * 12; // public only for testing
struct CTxMemPoolEntry_Indices final : boost::multi_index::indexed_by<
using indexed_transaction_set = boost::multi_index_container<
CTxMemPoolEntry,
boost::multi_index::indexed_by<
// sorted by txid
boost::multi_index::hashed_unique<mempoolentry_txid, SaltedTxidHasher>,
// sorted by wtxid
@@ -357,11 +359,7 @@ public:
CompareTxMemPoolEntryByAncestorFee
>
>
{};
typedef boost::multi_index_container<
CTxMemPoolEntry,
CTxMemPoolEntry_Indices
> indexed_transaction_set;
>;
/**
* This mutex needs to be locked when accessing `mapTx` or other members

View File

@@ -212,17 +212,15 @@ struct ByTimeViewExtractor
}
};
struct Announcement_Indices final : boost::multi_index::indexed_by<
boost::multi_index::ordered_unique<boost::multi_index::tag<ByPeer>, ByPeerViewExtractor>,
boost::multi_index::ordered_non_unique<boost::multi_index::tag<ByTxHash>, ByTxHashViewExtractor>,
boost::multi_index::ordered_non_unique<boost::multi_index::tag<ByTime>, ByTimeViewExtractor>
>
{};
/** Data type for the main data structure (Announcement objects with ByPeer/ByTxHash/ByTime indexes). */
using Index = boost::multi_index_container<
Announcement,
Announcement_Indices
boost::multi_index::indexed_by<
boost::multi_index::ordered_unique<boost::multi_index::tag<ByPeer>, ByPeerViewExtractor>,
boost::multi_index::ordered_non_unique<boost::multi_index::tag<ByTxHash>, ByTxHashViewExtractor>,
boost::multi_index::ordered_non_unique<boost::multi_index::tag<ByTime>, ByTimeViewExtractor>
>
>;
/** Helper type to simplify syntax of iterator types. */