These occur when building with GCC 12.1.
It might be the case that these would be suppressed by updating the
package, but that would also require installing new build tools (meson),
as well as potentially more dependencies (wayland).
```bash
In function 'ExprCreateBoolean',
inlined from 'BoolVarCreate' at src/xkbcomp/ast-build.c:316:19:
src/xkbcomp/ast-build.c:119:23: error: array subscript 'ExprDef[0]' is partly outside array bounds of 'unsigned char[32]' [-Werror=array-bounds]
119 | expr->boolean.set = set;
| ~~~~~~~~~~~~~~~~~~^~~~~
In function 'ExprCreate',
inlined from 'ExprCreateBoolean' at src/xkbcomp/ast-build.c:118:5,
inlined from 'BoolVarCreate' at src/xkbcomp/ast-build.c:316:19:
src/xkbcomp/ast-build.c:75:21: note: object of size 32 allocated by 'malloc'
75 | ExprDef *expr = malloc(size);
| ^~~~~~~~~~~~
```
Github-Pull: #25436
Rebased-From: 1bdbbbdc46
The previous logic would call it once for serializing into the filestream,
and then again for serializing into the hasher. If AddrMan was changed
in between these calls by another thread, the resulting peers.dat would
be corrupt with non-matching checksum and data.
Fix this by using HashedSourceWriter, which writes the data
to the underlying stream and keeps track of the hash in one go.
Github-Pull: #26909
Rebased-From: 5eabb61b23
This class is the counterpart to CHashVerifier, in that it
writes data to an underlying source stream,
while keeping a hash of the written data.
Github-Pull: #26909
Rebased-From: da6c7aeca3
a3db8bd7ca ci: Use `macos-ventura-xcode:14.1` image for "macOS native" task (Hennadii Stepanov)
53fd827883 ci: Make `getopt` path architecture agnostic (Hennadii Stepanov)
6a5bb10da9 ci: Improve naming related to "macOS 12 native x86_64" task (Hennadii Stepanov)
192759eb7b ci, refactor: Add `MACOS_NATIVE_TASK_TEMPLATE` (Hennadii Stepanov)
Pull request description:
Intel macOS jobs are no-longer available on Cirrus.
Top commit has no ACKs.
Tree-SHA512: dcd6832724ab4ed65d7b617903307e971fd9e27b40a093ec97efb211d352755d80b143985599ba530ff398e87c5bcd308e99aa248d89ffb5c3d1a02dadccd935
A native macOS task does not aware of Linux container settings, and it
does not use the `depends_built_cache`.
Github-Pull: #25444
Rebased-From: 8e017f3288
8a16391c91 doc: update release notes for 23.1 (fanquake)
58478261de doc: update manual pages for 23.1 (fanquake)
93713654ef build: bump version to 23.1 final (fanquake)
Pull request description:
Bump version to v23.1.
Regenerate manpages.
Finalize release notes.
ACKs for top commit:
hebasto:
ACK 8a16391c91, I have reviewed the changes and they look OK.
Tree-SHA512: d9100f5507f6e8d7b5a1192c981dbc6d97283def895e9181f738321fe9521c398e73686ddc48e27d1c863da19d75339069771f980d38af479eaf56ac3fc0881b
87c2ff80e4 doc: add release notes for 23.1rc2 (fanquake)
5b2c99e24c doc: Update manual pages for 23.1rc2 (fanquake)
a02ae0745b build: Bump version to 23.1rc2 (fanquake)
a1fcd565ff doc: add 23.0 relase notes (fanquake)
Pull request description:
Bump the version to 23.1rc2.
Regenerate the man pages.
Add historical 23.0 release notes.
Add WIP 23.1 release notes.
Changes since rc1:
* https://github.com/bitcoin/bitcoin/pull/26474
* https://github.com/bitcoin/bitcoin/pull/26522
ACKs for top commit:
hebasto:
ACK 87c2ff80e4, I have reviewed the code and it looks OK, I agree it can be merged.
jarolrod:
ACK 87c2ff80e4
Tree-SHA512: f185c33bfe2bf26f9df48f8d1e95ab784fef055bc7465282e2418960d348bd8b35f8fc57808b47250f8536a9def3be2d1dbe8ae309f052a81220925c425108f1
MacOS 13 sends a window focus change notification after the main
window has been destroyed but before the QTApplication has been
destroyed. This results in the menu bar receiving a notification
despite it no longer existing. The solution is to pass the main
window as context when subscribing to the notifications. Qt
automatically unsubscribes to notifications if the sender OR
context is destroyed.
Github-Pull: bitcoin-core/gui#680
Rebased-From: 8a5014cd8a
0f4583e5c1 guix: use --build={arch}-guix-linux-gnu in cross toolchain (fanquake)
Pull request description:
This backports https://github.com/bitcoin/bitcoin/pull/25861 to the 23.x branch, which fixes Guix building for `aarch64-linux-gnu` on aarch64 hardware. Fixing Guix building for this `HOST`, for the current release branch, seems like a worthwhile change, especially given more Guix builders are using aarch64 hardware. I thought I'd already backported this; noticed while building [sigs for 23.1rc1](https://github.com/bitcoin-core/guix.sigs/pull/380), which I started doing on aarch64.
Guix Build (aarch64, no `x86_64-apple-darwin` or `arm64-apple-darwin`):
```bash
9fd4601412738e9135e2732cfc8af911c54af8a1349c2af568b4748dd1907c3d guix-build-0f4583e5c114/output/aarch64-linux-gnu/SHA256SUMS.part
36df2797cd7845ccb4f416b52f9dbd4cc7dd0242782c3143206d0c15239e8b02 guix-build-0f4583e5c114/output/aarch64-linux-gnu/bitcoin-0f4583e5c114-aarch64-linux-gnu-debug.tar.gz
6aa022173b23827ec2690823178b9d2d06108e159a9074e1a54a7d1a74b6c5db guix-build-0f4583e5c114/output/aarch64-linux-gnu/bitcoin-0f4583e5c114-aarch64-linux-gnu.tar.gz
1e98b6b5e2b58387106eb8f46367c4a42d03d6a881307ed115e7b6bfa1b2785a guix-build-0f4583e5c114/output/arm-linux-gnueabihf/SHA256SUMS.part
b9ecbfbec1ee941acb7f19fb2ba02bfa24ef5feb0e072a9a8c39263f2cdfb172 guix-build-0f4583e5c114/output/arm-linux-gnueabihf/bitcoin-0f4583e5c114-arm-linux-gnueabihf-debug.tar.gz
2834aa08f19c03e88e22009e3f860b470fe5942c42ae08041b8e79e28673154b guix-build-0f4583e5c114/output/arm-linux-gnueabihf/bitcoin-0f4583e5c114-arm-linux-gnueabihf.tar.gz
9c787047070b1fe8c2beead22093dc73481e7c921993d95fb0e4ce8739f8e515 guix-build-0f4583e5c114/output/dist-archive/bitcoin-0f4583e5c114.tar.gz
1a82b19a5d07bccdead69b5d9fe9559e01a263b458ea48ff0a701ee9adf55a3c guix-build-0f4583e5c114/output/powerpc64-linux-gnu/SHA256SUMS.part
3482de0ff01839aa98ca61b3c8a18de4773dd70e2b306f094b210a6c83839289 guix-build-0f4583e5c114/output/powerpc64-linux-gnu/bitcoin-0f4583e5c114-powerpc64-linux-gnu-debug.tar.gz
5bb8b7ab8740d6c4a49e8fe700f0305bcc7318eaffc0e3c967492f218774f371 guix-build-0f4583e5c114/output/powerpc64-linux-gnu/bitcoin-0f4583e5c114-powerpc64-linux-gnu.tar.gz
5442e495049b386b8ec5bc50c06feb401fb263e25f0807aa58e7e8c091c42be7 guix-build-0f4583e5c114/output/powerpc64le-linux-gnu/SHA256SUMS.part
d685b1449379a3a1be139f243917d9987169cbc9901c7658a12044d27ce2762d guix-build-0f4583e5c114/output/powerpc64le-linux-gnu/bitcoin-0f4583e5c114-powerpc64le-linux-gnu-debug.tar.gz
14edbaf4c93346460ecff72ca22285c433c7dea5f9ccaccb4b49730f95d2d264 guix-build-0f4583e5c114/output/powerpc64le-linux-gnu/bitcoin-0f4583e5c114-powerpc64le-linux-gnu.tar.gz
dec22e0f59513c3697de3c6906deb355010af36836285ab306de1ea8e4b88ff3 guix-build-0f4583e5c114/output/riscv64-linux-gnu/SHA256SUMS.part
d70b6b6d1a2950292e820898af8a79d850b415829bbb94db97b742f3ab7cc7d3 guix-build-0f4583e5c114/output/riscv64-linux-gnu/bitcoin-0f4583e5c114-riscv64-linux-gnu-debug.tar.gz
b5fd33257a81efacc61946b544e5af1582c9729fa57641ff3625d34f0e785cfd guix-build-0f4583e5c114/output/riscv64-linux-gnu/bitcoin-0f4583e5c114-riscv64-linux-gnu.tar.gz
30b6668d9e84503d2e2113a87051d3c5baeae8ad6b3fa3df7509d447c8d5f341 guix-build-0f4583e5c114/output/x86_64-linux-gnu/SHA256SUMS.part
33a6c5072328281872678fc0d709629f934fac05bdfb2e41cccf2ddd5724925b guix-build-0f4583e5c114/output/x86_64-linux-gnu/bitcoin-0f4583e5c114-x86_64-linux-gnu-debug.tar.gz
c1c2ec074a88c6f0202ab067bd126c217573d028b3b1eb538db100eb0e316b53 guix-build-0f4583e5c114/output/x86_64-linux-gnu/bitcoin-0f4583e5c114-x86_64-linux-gnu.tar.gz
2689a7cce5d1fc6decbb5dfd1361db21adc1c485ee4c644cdebf403b1d533be6 guix-build-0f4583e5c114/output/x86_64-w64-mingw32/SHA256SUMS.part
9d6259432febdc1be728db0088a0464fa844dc4ad20e7b752be6de312588a695 guix-build-0f4583e5c114/output/x86_64-w64-mingw32/bitcoin-0f4583e5c114-win64-debug.zip
e3e7cd45b6ed6e8a589efe2436e151120af0c1146772ce295c06300289e0b758 guix-build-0f4583e5c114/output/x86_64-w64-mingw32/bitcoin-0f4583e5c114-win64-setup-unsigned.exe
1da1569b0140ad917b938ce8b087d3d8990331df3042d62a36d1366d9e5f0f42 guix-build-0f4583e5c114/output/x86_64-w64-mingw32/bitcoin-0f4583e5c114-win64-unsigned.tar.gz
cbd74726e5704f6007e2344422197a25b9872a3a5f525a1a0b5774c833fc7e78 guix-build-0f4583e5c114/output/x86_64-w64-mingw32/bitcoin-0f4583e5c114-win64.zip
```
ACKs for top commit:
hebasto:
ACK 0f4583e5c1, tested on `arm64`:
jarolrod:
ACK 0f4583e5c1
Tree-SHA512: 2ddb1ebaa75c26cc0bd8abd81e565a7ffa99bd9af08ad329f1141c35c784fb7cb4ccf0777096410929cb3e0bc72acaf3dbe0684bbe57b6d6a7070bff1fa51a0e
888480bd88 doc: update version number in bips.md to v23.1 (fanquake)
f89a2ea3b7 doc: Update manual pages for 23.1rc1 (fanquake)
a43e380a1f build: Bump version to 23.1rc1 (fanquake)
5a57b656d3 doc: mention BIP86 in doc/bips.md (Sebastian Falbesoner)
Pull request description:
Bump the version to 23.1rc1.
Generate the man pages.
Update the version number in bips.md.
Also backports https://github.com/bitcoin/bitcoin/pull/26443.
ACKs for top commit:
MarcoFalke:
Concept ACK 888480bd88
Tree-SHA512: e2c937fe7b18423e1450889f61f2f8bd0b50fb525ab839978fe0a58707176416412c69983f973e5fc9b512356c5bc873d9458470b55c87067ff6789ba347beec
f8ed34d1a9 rpc: add non-regression test about deriveaddresses crash when index is 2147483647 (muxator)
d9f1c89e49 rpc: fix crash in deriveaddresses when derivation index is 2147483647 (muxator)
bbea830a96 Adjust `.tx/config` for new Transifex CLI (Hennadii Stepanov)
Pull request description:
Backports:
* https://github.com/bitcoin/bitcoin/pull/26275
* https://github.com/bitcoin/bitcoin/pull/26321
Will leave open to collect remaining backports before a 23.1.
ACKs for top commit:
MarcoFalke:
cherry-pick ACK f8ed34d1a9🚝
Tree-SHA512: 2a96f66b0d81457a7017b0f4b041a7742008374d00a22d828502bfe170bfebb413e4e63382b10b9e2e250cb9e1be1a41030b8b6c5be42ffb23964808b12ee343
This test would cause a crash in bitcoind (see #26274) if the fix given in the
previous commit was not applied.
Github-Pull: #26275
Rebased-From: 9153ff3e27
2147483647 is the maximum positive value of a signed int32, and - currently -
the maximum value that the deriveaddresses bitcoin RPC call accepts as
derivation index due to its input validation routines.
Before this change, when the derivation index (and thus range_end) reached
std::numeric_limits<int_32_t>::max(), the "i" variable in the for cycle (which
is declared as int, and as such 32 bits in size on most platforms) would be
incremented at the end of the first iteration and then warp back to
-2147483648. This caused SIGABRT in bitcoind and a core dump.
This change assigns "i" an explicit size of 64 bits on every platform,
sidestepping the problem.
Fixes#26274.
Github-Pull: #26275
Rebased-From: addf9d6502
38d4601fe8 Prevent data race for `pathHandlers` (Hennadii Stepanov)
Pull request description:
Backport of https://github.com/bitcoin/bitcoin/pull/25983 to the 23.x branch.
ACKs for top commit:
dergoegge:
ACK 38d4601fe8
Tree-SHA512: b235d6d2cb374baf1b54c09f4cd2feca7b6c1588d081532e987fd5def8ed0dee4b8255112b130a77aca633ec6a63cfd81f215b2e7a403c213eb6048a54774d26
7698366132 doc: remove brew install sqlite from macOS docs (fanquake)
419bdc534f Revert "build: Use Homebrew's sqlite package if it is available" (fanquake)
Pull request description:
Backport of https://github.com/bitcoin/bitcoin/pull/25985 to the 23.x branch.
ACKs for top commit:
hebasto:
ACK 7698366132, I have reviewed the code and it looks OK, I agree it can be merged.
stickies-v:
re-ACK 7698366132
Tree-SHA512: 539f218b2895188111876b6a2035082ac642c89ef2e5055031bdc4563f690055012fcede396a5c87cf66e80ced796d62dd8d4394676fa6d22e01a581b29bb10b
This reverts ee7b84e63c from #20527.
This change was made without any rationale, maybe other than a brew
installed version might be newer, and that's "better". However when
building from source on macOS, it just results in drastically worse
perofrmance, and results in issues / confusions like #25724.
Resolves the "build from source" portion of #25724. Building from
depends is still not ideal, however I have some other changes that might
help improve things in that case.
The difference in performance can be observed using the example from
https://github.com/bitcoin/bitcoin/issues/25724#issuecomment-1213554922,
but minified to only 10 descriptors. i.e:
```bash
time src/bitcoin-cli createwallet speedy true
time src/bitcoin-cli importdescriptors '[
{"desc":"raw(00145846369f3d6ba366d6f5a903fb5cf4dca3763c0e)#k9wh6v62","timestamp":"now"},
{"desc":"raw(001420800aabf13f3a4c4ce3ce4c66cecf1d17f21a6e)#6m0hlfh4","timestamp":"now"},
{"desc":"raw(0014c6bf9715e06d73ebf9b3b02d5cc48d24d8bbabc1)#wyavh36r","timestamp":"now"},
{"desc":"raw(00141ba7807b3f46af113beaea5c698428ce7138cd8a)#jctdsups","timestamp":"now"},
{"desc":"raw(00140c1bd27f10fff01b36ddf3c1febaa1acff19b080)#9s6nc3pk","timestamp":"now"},
{"desc":"raw(00141226e31987e4bc2e63c0ee12908f675e40464b20)#9pp7qm39","timestamp":"now"},
{"desc":"raw(0014f73f149f7503960a5e849c6ee7a8a8c336f631cb)#qtkxv9fc","timestamp":"now"},
{"desc":"raw(0014c8ccb4d81ffc769fc5fdd8d7eed69b0e0cae5749)#hn39qayv","timestamp":"now"},
{"desc":"raw(001498565aead2d67a22a6021d55210f2a917fc22169)#6ar3vwsx","timestamp":"now"},
{"desc":"raw(001403013248ac0cd9eabe176cad162cda2a19f771e1)#4m47mukd","timestamp":"now"}
]'
```
Running master, when building from souce and using brew installed
sqlite, this takes ~3.4s. With this PR, the same operation takes ~0.3s.
Github-Pull: #25985
Rebased-From: d216d714aa
Watchonly wallets do not have any private keys to encrypt. It does not
make sense to encrypt such wallets, so disable the option to encrypt
them.
This avoids an assertion that can be hit when encrypting watchonly descriptor
wallets.
Github-Pull: bitcoin-core/gui#631
Rebased-From: 4c495413e1
Qt 5.15.3 release is a patch release made on the top of Qt 5.15.2. As a patch
release, Qt 5.15.3 does not add any new functionality but provides bug fixes
and other improvements.
https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/5.15.3/release-note.md
* dropped patches:
- patches/qt/dont_use_avx_android_x86_64.patch
- patches/qt/fix_bigsur_style.patch
* adjusted patches:
- patches/qt/fix_android_jni_static.patch
- patches/qt/fix_limits_header.patch
- patches/qt/use_android_ndk23.patch
Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
Github-Pull: bitcoin/bitcoin#24668
Rebased-From: ef20add4c9
With the release of binutils/ld 2.36, ld swapped to much improved
default settings when producing windows binaries with mingw-w64. One of
these changes was to stop stripping the .reloc section from binaries,
which is required for working ASLR.
.reloc section stripping is something we've accounted for previously,
see #18702. The related upstream discussion is in this thread:
https://sourceware.org/bugzilla/show_bug.cgi?id=19011.
When we switched to using a newer Guix time-machine in #23778, we begun
using binutils 2.37 to produce releases. Since then, our windows
installer (produced with makensis) has not functioned correctly when run on
a Windows system with the "Force randomization for images (Mandatory ASLR)"
option enabled. Note that all of our other release binaries, which all
contain .reloc sections, function fine under the same option, so it
cannot be just the presence of a .reloc section that is the issue.
For now, restore makensis to it's pre-binutils-2.36 behaviour, which
fixes the produced installer. The underlying issue can be further
investigated in future.
Github-Pull: #25788
Rebased-From: 7a0b129c41
If we self-advertised to an inbound peer with the address they gave us,
nTime was left default-initialized, so that our peer wouldn't relay it
any further along.
Github-Pull: #25314
Rebased-From: 99b9e5f3a9