1229 Commits

Author SHA1 Message Date
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
699c21aea4 depends: add netbsd_LDFLAGS 2026-07-09 09:14:16 +01:00
fanquake
244739db9d depends: move FreeBSD SDK handling to CI
As pointed out by Hebasto, the approach used in #35397 and #35412 is
better, rather than hardcoding flags and putting the SDK handling into
depends.
2026-07-06 10:44:07 +01:00
fanquake
fb1d152c24 depends: Boost 1.91.0-1 2026-07-02 16:33:16 +01:00
Hennadii Stepanov
f26c15bdd2 Merge bitcoin/bitcoin#35397: ci: add OpenBSD Clang cross job
d64ea15824 ci: add openBSD cross CI job (fanquake)
5404b62074 depends: add openbsd_LDFLAGS (fanquake)

Pull request description:

  This adds a Linux cross job for OpenBSD; similar to https://github.com/bitcoin/bitcoin/pull/34491 (FreeBSD).

ACKs for top commit:
  hebasto:
    ACK d64ea15824.
  willcl-ark:
    ACK d64ea15824

Tree-SHA512: 0353c0ae8dd49c861a9100ebd5044fc39227c29859ca68e6454ebdf469c90ff5471e29733613606ee8ba72037f7fca5086275f794e90864a6456ffee73d9113b
2026-07-01 09:00:18 +01:00
fanquake
5404b62074 depends: add openbsd_LDFLAGS 2026-06-29 10:55:27 +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
fanquake
8f0354995b depends: latest config.guess & config.sub 2026-06-18 16:18:39 +02:00
Hennadii Stepanov
2cf2b22ff1 depends: Drop trailing slash from CMAKE_INSTALL_LIBDIR
1. The trailing slash is redundant.
2. It causes warnings when using CMake >=3.31:
```
CMake Warning (dev) at CMakeLists.txt:596 (install):
  Policy CMP0177 is not set: install() DESTINATION paths are normalized.  Run
  "cmake --help-policy CMP0177" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.
This warning is for project developers.  Use -Wno-dev to suppress it.

```
2026-06-04 14:40:06 +01:00
Hennadii Stepanov
a54ec373a6 depends: Build qt and qrencode packages for OpenBSD hosts 2026-06-02 22:02:49 +01:00
Hennadii Stepanov
9f7a2293c4 depends: Unset SOURCE_DATE_EPOCH in gen_id script 2026-05-06 16:04:54 +02:00
Hennadii Stepanov
e7d647388c Merge bitcoin/bitcoin#34923: depends: remove workaround for Make older than 4.2.90
f1e14dfbe9 depends: remove workaround for Make older than 4.2.90 (fanquake)

Pull request description:

  This was introduced for distros shipping older `make`, such as Ubuntu `20.04` (`4.2.1`). It's likely that any distros being used for Darwin and Windows cross compilation, are shipping a newer make at this point.

ACKs for top commit:
  hebasto:
    ACK f1e14dfbe9, I have reviewed the code and it looks OK.

Tree-SHA512: bb5d785e4804f0b0d51c5abba31ee4537cf04247801edef51a5da728c7df7fff1189625d222f91b8f5896f9ec71dc8dbd11614a69e13e0dcad6017cab7dd5874
2026-04-16 17:19:16 +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
fanquake
f1e14dfbe9 depends: remove workaround for Make older than 4.2.90
This was introduced for distros shipping older make, such as
Ubuntu 20.04 (4.2.1). It's likely that all distros being used for
Darwin and Qindows cross compilation, are shipping a newer make at
this point.
2026-04-03 09:18:59 +08: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
7f7018738e depends: FreeBSD cross with Clang 2026-03-24 10:57:27 +08:00
fanquake
6464f14081 depends: disable inotify in Freebsd Qt build 2026-03-24 10:49:46 +08:00
merge-script
1a1f584360 Merge bitcoin/bitcoin#29963: depends: Do not consider CC environment variable for detecting system
b149a28f6b depends: Do not consider `CC` environment variable when detecting system (Hennadii Stepanov)

Pull request description:

  On the master branch @ 3c88eac28e, consider the following commands in the `depends` subdirectory:
  ```sh
  $ make print-build HOST=i686-pc-linux-gnu CC="clang -m32"
  build=x86_64-pc-linux-gnu
  $ make print-host HOST=i686-pc-linux-gnu CC="clang -m32"
  host=i686-pc-linux-gnu
  ```
  The printed variable values are expected.

  However, switching the `CC` variable context from Makefile to the shell environment breaks expectations:
  ```sh
  $ CC="clang -m32" make print-build HOST=i686-pc-linux-gnu
  build=i686-pc-linux-gnu
  $ CC="clang -m32" make print-host HOST=i686-pc-linux-gnu
  host=i686-pc-linux-gnu
  ```

  This PR fixes this issue.

  #### UPDATE 2026-01-20

  On the master branch @ 7f5ebef56a:
  ```
  $ gmake print-build HOST=i686-pc-linux-gnu CC="clang -m32"
  build=i686-pc-linux-gnu
  $ gmake print-host HOST=i686-pc-linux-gnu CC="clang -m32"
  host=i686-pc-linux-gnu
  ```

ACKs for top commit:
  sedited:
    Re-ACK b149a28f6b
  ryanofsky:
    Code review ACK b149a28f6b. `env --unset` was replaced with `unset &&` since last review. I still think it could be better to write `CC=$(build_CC)` here even if `build_CC` may not be defined at this point (https://github.com/bitcoin/bitcoin/pull/29963#issuecomment-3774229317) because it makes intent of the code more obvious, but current PR is already an improvement

Tree-SHA512: bd498706ad46aab93192e21b7cc30c34a714c5f31601122752fc94416dc51846b8d4eaf5d1c3250ba64d4eadf3fd43c9f7f5d9e178a47ee2165474ac6833fa31
2026-03-23 14:57:19 +08:00
merge-script
cdaf2f20ae Merge bitcoin/bitcoin#34850: depends: Remove no longer necessary dsymutil
578525d31d depends: Remove no longer necessary `dsymutil` (Hennadii Stepanov)

Pull request description:

  I can't see where `dsymutil` is used. For example, a shared library under LTO builds fine:
  ```
  cmake -B build --toolchain depends/arm64-apple-darwin/toolchain.cmake -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -DBUILD_KERNEL_LIB=ON -DBUILD_SHARED_LIBS=ON
  cmake --build build -t libbitcoinkernel
  ```

ACKs for top commit:
  fanquake:
    ACK 578525d31d

Tree-SHA512: 41e7601e26f639383bfa78ceb97e45d03e6cf098cf636bc4f3274360516bb78753aacfd89c8541b38ee4f39cbbf7c7b7a6eb8dc9a653f4438392cd61678e80ce
2026-03-23 11:26:01 +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
Hennadii Stepanov
578525d31d depends: Remove no longer necessary dsymutil 2026-03-18 13:51:01 +00:00
fanquake
bde35d61f9 depends: capnp 1.4.0 2026-03-15 11:24:38 +08:00
will
4c07cf87e2 doc: document depends compiler configuration
CC/CXX only override compilers for target (host) packages. Native
build tool packages (native_capnp, native_qt, etc.) use separate
build_CC/build_CXX variables, which default to gcc/g++ on Linux.

On systems without gcc (e.g. Nix, Chimera Linux), native package
builds fail unless build_CC/build_CXX are also set explicitly.
Document how to override both sets of compilers.
2026-03-11 12:02:24 +00: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
fanquake
a89e1618dd contrib: update macOS SDK to Xcode-26.1.1-17B100 2026-01-29 16:27:04 +00:00
fanquake
57a778ed25 depends: use -Xclang -fno-cxx-modules in macOS cross build
Newer versions of the macOS SDK, have introduced code like:
```cpp
if defined(__has_feature) && __has_feature(modules)
define USE_CLANG_TYPES 1
else
define USE_CLANG_TYPES 0
endif

if USE_CLANG_TYPES
include <sys/_types/_ptrdiff_t.h>
include <sys/_types/_size_t.h>
include <sys/_types/_va_list.h>
include <sys/_types/_wchar_t.h>
endif
```

which is currently causing compile failures due to undeclared types,
which manifest when C++ modules are enabled. Note that the usage of
"modules" in LLVM is can be a bit ambiguous, see:
https://github.com/llvm/llvm-project/issues/55891.

For now, explcitly disable cxx modules using `-fno-cxx-modules`. This
resolves the include/compilation issues.

Related discussion:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116827
https://github.com/llvm/llvm-project/pull/150349
https://github.com/llvm/llvm-project/issues/57432
2026-01-29 16:27:00 +00:00
Hennadii Stepanov
b149a28f6b depends: Do not consider CC environment variable when detecting system
Otherwise, the build system fails to detect cross-compiling mode
properly in some cases when `CC` is set.
2026-01-20 17:49:46 +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
merge-script
e68517208b Merge bitcoin/bitcoin#33995: depends: Propagate native C compiler to sqlite package
710031ebef Revert "guix: sqlite wants tcl" (Hennadii Stepanov)
4cf5ea6c3d depends: Propagate native C compiler to `sqlite` package (Hennadii Stepanov)

Pull request description:

  This PR:

  1. Ensures that autosetup can build the local bootstrap `jimsh0` when neither `jimsh` nor `tclsh` is available on the system.

  2. Removes the `tcl` package from the Guix manifest.

  This is an alternative to https://github.com/bitcoin/bitcoin/pull/33975.

ACKs for top commit:
  fanquake:
    ACK 710031ebef
  sedited:
    ACK 710031ebef

Tree-SHA512: bdaa29af977799669bfc2aa3a8d0a4a688263b99c5f06b1582fbefb71ef77be0ee6223903e8357e51a9e0a7744807174b94262c2f4a3afd9f39737b61b00863e
2025-12-05 17:24:52 +00:00