Commit Graph

799 Commits

Author SHA1 Message Date
merge-script
494300f4cc Merge bitcoin/bitcoin#35796: depends: fix IPC listeners on macOS dying when accepting a dead socket
e07224f2d5 depends: fix IPC listeners on macOS dying when accepting a dead socket (xyzconstant)

Pull request description:

  This PR adds a depends patch to fix a Cap'n Proto bug present in macOS that throws the following exception after accepting a disconnected client:

  ```
  mp/proxy.cpp:48: error: Uncaught exception in daemonized task.; exception = kj/async-io-unix.c++:1365: failed: setsocketopt(IPPROTO_TCP, TCP_NODELAY): Invalid argument
  ```

  This goes uncaught killing `libmultiprocess`'s accept loop (`mp::ListenConnections()`) in the process.

  ### Root cause

  After `accept()`, kj unconditionally calls `setsockopt(TCP_NODELAY)` on the connection socket. For Unix sockets, kj handles the usual "not supported" error codes, however, on macOS EINVAL is returned when the client has already disconnected and kj only tolerates that code when built for FreeBSD. The unexpected error then goes uncaught in the accept loop, causing the listener to stop accepting new connections.

  See https://github.com/bitcoin-core/libmultiprocess/issues/319 for more details and instructions on how to reproduce it in Bitcoin Core using socat.

  ### Fix

  The patch is based on the EINVAL handling from capnproto/capnproto@7df5bd078, which is only available on the not yet released v2 branch. It's applied to `capnp.mk` as a temporary workaround until capnproto/capnproto#2748 is available in a v1 release.

ACKs for top commit:
  hebasto:
    ACK e07224f2d5, I have reviewed the code and it looks OK.
  ryanofsky:
    Code review ACK e07224f2d5. Confirmed patch matches what was committed upstream (85d8e47fcb).

Tree-SHA512: 7d3b3dd6cabdc658971e0f20159ad36594759b3686d2e5dc74fb21900ccec0c637980e36fa71fbd808c642ce83f89c73f5bc788eb42644bceed67acb78e8eee5
2026-09-09 09:42:18 +01:00
xyzconstant
e07224f2d5 depends: fix IPC listeners on macOS dying when accepting a dead socket
After `accept()`, kj unconditionally calls `setsockopt(TCP_NODELAY)` on the
connection socket. For Unix sockets, kj handles the usual "not supported"
error codes, however, on macOS EINVAL is returned when the client has already
disconnected and kj only tolerates that code when built for FreeBSD.
The unexpected error then goes uncaught in the accept loop, causing the
listener to stop accepting new connections.

See https://github.com/bitcoin-core/libmultiprocess/issues/319 for more details.

Patch is the upstream commit https://github.com/capnproto/capnproto/commit/85d8e47f,
the 1.x backport of https://github.com/capnproto/capnproto/commit/7df5bd078
(https://github.com/capnproto/capnproto/pull/2748).
2026-08-24 21:01:15 -03:00
Hennadii Stepanov
e8500cbd19 depends, qt: Add patch for missing headers
This fixes the build when using recent clang releases and libc++.
2026-08-10 17:43:21 +01:00
merge-script
d472a7798a Merge bitcoin/bitcoin#32764: guix: Build for macOS using LLVM toolchain only
8a90c7cd97 guix: Build for macOS using LLVM toolchain only (Hennadii Stepanov)
7e1a750d45 guix, refactor: Use `target` variable instead of hardcoded value (Hennadii Stepanov)

Pull request description:

  This PR makes macOS builds LLVM-only (non-GCC) by switching the build compiler in depends to `clang` + `libc++`.

  See: https://github.com/bitcoin/bitcoin/issues/30206.

ACKs for top commit:
  fanquake:
    ACK 8a90c7cd97

Tree-SHA512: 02bfa784f89db980de2d2bb759200a0e8c0b10f48ac7e14e2bcdba75416aef30afa68d36e98c4652e18d282f023d1e94a351ff65b4a2731bdcac7c8a8c720623
2026-07-23 13:56:58 +01:00
Hennadii Stepanov
8a90c7cd97 guix: Build for macOS using LLVM toolchain only 2026-07-22 20:20:10 +01:00
merge-script
bc49bd154a Merge bitcoin/bitcoin#35709: depends: Update Qt to 6.8.4
226e6388b7 depends: Update Qt to 6.8.4 (Hennadii Stepanov)

Pull request description:

  Release notes: https://code.qt.io/cgit/qt/qtreleasenotes.git/about/qt/6.8.4/release-note.md

  `depends/patches/qt/qtbase_platformsupport.patch` has been dropped as the fix was backported upstream in 5afcc64fd7.

ACKs for top commit:
  fanquake:
    ACK 226e6388b7

Tree-SHA512: 20f371384c1fcfd5018218ef262b10568bd009e2f1fafca9fa42788aca4683ec706b7a4e35816b884b294b5f9bdb1aefda0bad75921d9e426558cccd80f913cd
2026-07-22 11:50:09 +01:00
Hennadii Stepanov
e446ea09c4 depends, zeromq: Apply upstream patch
See https://github.com/zeromq/libzmq/pull/4911.
2026-07-22 07:54:50 +01:00
Hennadii Stepanov
226e6388b7 depends: Update Qt to 6.8.4 2026-07-14 13:16:39 +01:00
merge-script
734c34bafd Merge bitcoin/bitcoin#35427: depends: Build qt and qrencode packages on OpenBSD
a54ec373a6 depends: Build `qt` and `qrencode` packages for OpenBSD hosts (Hennadii Stepanov)

Pull request description:

  This PR enables the building of GUI dependencies ( `qt` and `qrencode`) natively on OpenBSD:

  <img width="1280" height="960" alt="VirtualBox_OpenBSD Desktop_01_06_2026_00_57_50" src="https://github.com/user-attachments/assets/9ab20ad2-8812-42c7-9858-65ee6a7f6a26" />

  ---

  Build logs in the GHA environment are available here:
   - OpenBSD 7.8: https://github.com/hebasto/bitcoin-core-nightly/actions/runs/26852431726/job/79187479855
   - OpenBSD 7.9: https://github.com/hebasto/bitcoin-core-nightly/actions/runs/26852431726/job/79187479827

  ---

  The [branch](https://github.com/hebasto/bitcoin/tree/260531-openbsd-qt-cross) that is compatible with [cross-compiling](https://github.com/bitcoin/bitcoin/pull/35397) from Linux to OpenBSD is still a WIP.

ACKs for top commit:
  fanquake:
    ACK a54ec373a6 - changes look fine, didn't build or test.

Tree-SHA512: 2d674b8b5677b2d1f91337243f1173dba4beb12bb8aa2ee6bad71de50dd403d6dd50009f1836c22abad63ec54ebb94bcfc9c664a8fc811f900b4ddef4623626e
2026-07-14 10:31:45 +01:00
fanquake
a2e4cd7ad2 depends: capnp 1.5.0 2026-07-13 08:59:28 +01:00
fanquake
fb1d152c24 depends: Boost 1.91.0-1 2026-07-02 16:33:16 +01:00
Hennadii Stepanov
5c55606da9 depends: Remove unused lib/pkgconfig in qrencode package 2026-06-25 15:30:14 +01:00
fanquake
a0ca249f3f depends: remove libevent 2026-06-23 09:25:49 +01:00
Hennadii Stepanov
a54ec373a6 depends: Build qt and qrencode packages for OpenBSD hosts 2026-06-02 22:02:49 +01:00
merge-script
2b541eeb36 Merge bitcoin/bitcoin#34495: Replace boost signals with minimal compatible implementation
242b0ebb5c btcsignals: use a single shared_ptr for liveness and callback (Cory Fields)
b12f43a0a8 signals: remove boost::signals2 from depends and vcpkg (Cory Fields)
a4b1607983 signals: remove boost::signals2 mentions in linters and docs (Cory Fields)
375397ebd9 signals: remove boost includes where possible (Cory Fields)
091736a153 signals: re-add forward-declares to interface headers (Cory Fields)
9958f4fe49 Revert "signals: Temporarily add boost headers to bitcoind and bitcoin-node builds" (Cory Fields)
34eabd77a2 signals: remove boost compatibility guards (Cory Fields)
e60a0b9a22 signals: Add a simplified boost-compatible implementation (Cory Fields)
63c68e2a3f signals: add signals tests (Cory Fields)
edc2978058 signals: use an alias for the boost::signals2 namespace (Cory Fields)
9ade3929aa signals: remove forward-declare for signals (Cory Fields)
037e58b57b signals: use forwarding header for boost signals (Cory Fields)
2150153f37 signals: Temporarily add boost headers to bitcoind and bitcoin-node builds (Cory Fields)
fd5e9d9904 signals: Use a lambda to avoid connecting a signal to another signal (Cory Fields)

Pull request description:

  This drops our dependency on `boost::signals2`, leaving `boost::multi_index` as the only remaining boost dependency for bitcoind.

  `boost::signals2` is a complex beast, but we only use a small portion of it. Namely: it's a way for multiple subscribers to connect to the same event, and the ability to later disconnect individual subscribers from that event.

  `btcsignals` adheres to the subset of the `boost::signals2` API that we currently use, and thus is a drop-in replacement. Rather than implementing a complex `slot` tracking class that we never used anyway (and which was much more useful in the days before std::function existed), callbacks are simply wrapped directly in `std::function`s.

  The new tests work with either `boost::signals2` or the new `btcsignals` implementation. Reviewers can verify
  functional equivalency by running the tests in the commit that introduces them against `boost::signals2`, then again with `btcsignals`.

  The majority of the commits in this PR are preparation and cleanup. Once `boost::signals2` is no longer needed, it is removed from depends. Additionally, a few CMake targets no longer need boost includes as they were previously only required for signals.

  I think this is actually pretty straightforward to review. I kept things simple, including keeping types unmovable/uncopyable where possible rather than trying to define those semantics. In doing so, the new implementation has even fewer type requirements than boost, which I believe is due to a boost bug. I've opened a PR upstream for that to attempt to maintain parity between the implementations.

  See individual commits for more details.

  Closes #26442.

ACKs for top commit:
  fjahr:
    Code review ACK 242b0ebb5c
  maflcko:
    re-review ACK 242b0ebb5c 🎯
  w0xlt:
    reACK 242b0ebb5c

Tree-SHA512: 9a472afa4f655624fa44493774a63b57509ad30fb61bf1d89b6d0b52000cb9a1409a5b8d515a99c76e0b26b2437c30508206c29a7dd44ea96eb1979d572cd4d4
2026-04-09 16:25:47 +08:00
Cory Fields
b12f43a0a8 signals: remove boost::signals2 from depends and vcpkg 2026-04-03 18:20:50 +00:00
Hennadii Stepanov
3aeccb7d73 depends, qt: Fix build on aarch64 macOS 26.4 2026-03-30 14:41:29 +01:00
fanquake
f44191f163 depends: build qrencode for Freebsd 2026-03-24 11:26:22 +08:00
fanquake
6464f14081 depends: disable inotify in Freebsd Qt build 2026-03-24 10:49:46 +08:00
Hennadii Stepanov
7a9304f887 depends: Fix cross-compiling on macOS for Windows
1. Use `build_os` instead of `host_os` for native packages.
2. `XCODE_VERSION` is available only for `darwin` hosts. Therefore,
   simply disable the Xcode version check for `native_qt`.
2026-03-20 12:38:27 +00:00
fanquake
bde35d61f9 depends: capnp 1.4.0 2026-03-15 11:24:38 +08:00
merge-script
7c21413616 Merge bitcoin/bitcoin#34755: depends: cleanup meta files
0ebc6891e2 depends: delete Boost extra files (fanquake)
168997e9b5 depends: disable Qt sbom generation (fanquake)

Pull request description:

  1 followup to #34650, to disable sbom generation.
  1 commit to Boost, to cleanup `.natvis` files that end up in share.

ACKs for top commit:
  hebasto:
    ACK 0ebc6891e2, tested on Ubuntu 25.10.

Tree-SHA512: 728b51d798a30c54df915564446a7a8648eb4fc27adb8c18b8202df506e2ff61e74516cfe4d6af1af72279255fc75fe14cb43403632a978637781d59eb11fc0f
2026-03-11 09:46:23 +00:00
fanquake
3a83715c2a depends: link to upstream qt issue
Follows up to:
https://github.com/bitcoin/bitcoin/pull/34650#discussion_r2837726376.

https://qt-project.atlassian.net/browse/QTBUG-144864
2026-03-10 11:01:11 +00:00
fanquake
0ebc6891e2 depends: delete Boost extra files 2026-03-06 14:20:28 +00:00
fanquake
168997e9b5 depends: disable Qt sbom generation 2026-03-06 14:05:03 +00:00
merge-script
b5737b755d Merge bitcoin/bitcoin#34650: depends: Update Qt to version 6.8.3
0a6724aaae doc: Update Windows build notes (Hennadii Stepanov)
473e5f8efc qt: Add patch to fix SFINAE warnings in QAnyStringView with gcc16 (Hennadii Stepanov)
3cb4d6066b qt: add patches to fix SFINAE errors/warnings with gcc16 (Cory Fields)
d7e972a90d qt: add patch to fix build with gcc16 (Cory Fields)
19693a8c91 depends: Update Qt to 6.8.3 (Hennadii Stepanov)
c55584575a cmake: Fix `FindQt` module (Hennadii Stepanov)

Pull request description:

  This PR updates the `qt` package in depends to the latest open-source [6.8.3](https://www.qt.io/blog/qt-6.8.3-released) LTS release.

  The update includes numerous bugfixes, which allows us to drop `qtbase_plugins_windows11style.patch`.

  Additionally, it includes [patches](https://github.com/bitcoin/bitcoin/issues/34569#issuecomment-3892793262) for compatibility with GCC 16 (along with one extra patch), and incorporates a [commit](8f1b55d1d5) from https://github.com/bitcoin/bitcoin/pull/32709.

  Closes https://github.com/bitcoin/bitcoin/issues/34569.

ACKs for top commit:
  achow101:
    ACK 0a6724aaae
  sedited:
    ACK 0a6724aaae

Tree-SHA512: b66fe6f75bae00fb5c525c5fad56d39273f53f6bfd58206da8a55c6e41d14533137c72fb03e9537ba3a3d0b3463b6dcbef6a88ac2f4559fa6e9abf045fe1beaa
2026-03-06 11:55:46 +00:00
Hennadii Stepanov
473e5f8efc qt: Add patch to fix SFINAE warnings in QAnyStringView with gcc16 2026-03-04 11:31:30 +00:00
Cory Fields
3cb4d6066b qt: add patches to fix SFINAE errors/warnings with gcc16
Meta-Issue: https://qt-project.atlassian.net/browse/QTBUG-143470
Backports:

679e8bda1e
3312e89b47
05f201a3d5

An additional includes fix is needed after the others:
d68fc6ecc8
2026-03-04 11:31:23 +00:00
Cory Fields
d7e972a90d qt: add patch to fix build with gcc16
Backported from:
7fccc79dd5
2026-03-04 11:31:23 +00:00
Hennadii Stepanov
19693a8c91 depends: Update Qt to 6.8.3 2026-03-04 11:31:22 +00:00
Hennadii Stepanov
2a7a4f608a depends: Allow building Qt packages after interruption 2026-03-02 17:59:19 +00:00
Hennadii Stepanov
65134c7e5f depends: Prefix include path for headers-only systemtap package 2026-02-05 13:46:20 +00:00
Hennadii Stepanov
b5375c44ed depends: Prefix include path for headers-only boost package 2026-02-05 13:46:20 +00:00
merge-script
aeaa67a9ea Merge bitcoin/bitcoin#33428: depends: Boost 1.90.0
ca4a844eed depends: Boost 1.90.0 (fanquake)

Pull request description:

  Update [Boost to 1.90.0](https://www.boost.org/releases/1.90.0.beta1/) in depends.

ACKs for top commit:
  hebasto:
    ACK ca4a844eed.
  sedited:
    ACK ca4a844eed

Tree-SHA512: d9fbef9f8f8b14b12281a252b17c79abb8bf5bcd5cbbccac0e509c010adca909f66d3f4739f6663741c5ff2829ec58e88185e67ed5815d2588b0980bba9b1b63
2026-01-09 23:19:45 +01:00
fanquake
719158db5c depends: capnp 1.3.0 2025-12-18 13:50:26 +00:00
fanquake
ca4a844eed depends: Boost 1.90.0 2025-12-10 16:16:21 +00:00
merge-script
36073d56db Merge bitcoin/bitcoin#33952: depends: update freetype and document remaining bitcoin-qt runtime libs
41e657aacf guix: add bitcoin-qt runtime libs doc in symbol-check (fanquake)
ef4ce19a15 depends: freetype 2.11.1 (fanquake)

Pull request description:

  Update freetype to `2.11.1`.
  Updating fontconfig (currently `2.12.6`) to `2.13.1` requires what looks like a hard dep on gperf; leaving that as-is for now.
  Document expectations in `symbol-check.py`.
  Closes #29977 (changes are based on discussion there).

ACKs for top commit:
  sedited:
    ACK 41e657aacf

Tree-SHA512: 71c4ccc442df0b90bebc475003eb325564111b8312c42bc7d7a9c81a2fc166fdc0814c9ddde3cfe562c3c835556e7f97107458b02a07b981b1a199bf65d5ac1d
2025-12-08 10:10:23 +00:00
Hennadii Stepanov
4cf5ea6c3d depends: Propagate native C compiler to sqlite package
This ensures that autosetup can build the local bootstrap `jimsh0` when
neither `jimsh` nor `tclsh` is available on the system.
2025-12-02 14:44:29 +00:00
fanquake
ef4ce19a15 depends: freetype 2.11.1 2025-11-27 15:05:40 +00:00
merge-script
d5ed4ba9d8 Merge bitcoin/bitcoin#33906: depends: Add patch for Windows11Style plugin
8558902e57 depends: Add patch for Windows11Style plugin (Hennadii Stepanov)

Pull request description:

  This PR fixes https://github.com/bitcoin-core/gui/issues/906:

  <img width="561" height="179" alt="image" src="https://github.com/user-attachments/assets/6bb6d12b-91a6-4659-b6eb-be64093ec86d" />

ACKs for top commit:
  waketraindev:
    ACK 8558902e57
  fanquake:
    ACK 8558902e57 - did not test on Windows.

Tree-SHA512: c8c0518b9cfccffb364f9305febec238236ef51134e915885f491c7f0bef59401367f60bbb034e0216edf0a74a99a07a3dcc22804d8396260375ea60a60756a9
2025-11-25 17:06:53 +00:00
merge-script
902717b66d Merge bitcoin/bitcoin#33918: depends: Update Qt download link
50cbde3295 depends: Update Qt download link (Hennadii Stepanov)

Pull request description:

  Replace the [unreliable](https://github.com/bitcoin/bitcoin/issues/33898#issuecomment-3559092421) https://code.qt.io with the GitHub mirror link.

  Closes https://github.com/bitcoin/bitcoin/issues/33898.

ACKs for top commit:
  fanquake:
    ACK 50cbde3295

Tree-SHA512: 1c59f438e39662a58618d3701ba5d39e87f4d4f7c05074b9f8a99d4b5a2665ee071bc3528865e25dbebbdc3bd1ce52a9016273261b7584360f3712e7dfb2774e
2025-11-25 12:22:15 +00:00
merge-script
5fe753b56f Merge bitcoin/bitcoin#32655: depends: sqlite 3.50.4; switch to autosetup
1db7491470 depends: sqlite 3.50.4 (fanquake)
286f3e49c8 guix: sqlite wants tcl (fanquake)

Pull request description:

  Migrate to SQLite `3.50.4` in depends; switching to its new [Autosetup](https://msteveb.github.io/autosetup/) build system.

ACKs for top commit:
  TheCharlatan:
    ACK 1db7491470
  willcl-ark:
    tACK 1db7491470

Tree-SHA512: 2932fcde866e4eb7bae6a7c4fa0ef7a6dfcc4d2fdf239b0a0c224e064086ca8bda62d159f89dd7273db232e609a0d28c625756628b885abcfbc0940d067f4d20
2025-11-25 10:49:26 +00:00
Hennadii Stepanov
50cbde3295 depends: Update Qt download link
Replace the unreliable https://code.qt.io with the GitHub mirror link.
2025-11-20 17:21:43 +00:00
fanquake
f541b92cf2 depends: expat 2.7.3
Remove the patch, as expat has bumped it's minimum to 3.15.
Remove the lto related workaround. I haven't seen issues with CMakes
TestBigEndian.
2025-11-20 11:47:39 +00:00
Hennadii Stepanov
2ebf4356e6 depends: libxcb 1.17.0
--without-launchd was removed in
ccdef1a8a5.
2025-11-20 10:15:46 +00:00
Hennadii Stepanov
ba7ac870a3 depends: xcb_proto 1.17.0 2025-11-20 10:15:40 +00:00
fanquake
42d0692f91 depends: libxcb-util-cursor 0.1.6 2025-11-20 09:28:50 +00:00
fanquake
25b85919ab depends: libxcb 1.15 2025-11-20 09:28:50 +00:00
fanquake
d129384ca9 depends: libxcb-util-wm 0.4.2 2025-11-20 09:28:50 +00:00
fanquake
0b857ae9e5 depends: libxcb-util-renderutil 0.3.10 2025-11-20 09:28:49 +00:00