Commit Graph

1213 Commits

Author SHA1 Message Date
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
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
Hennadii Stepanov
ec8eb013a9 doc: Add x86_64-w64-mingw32ucrt triplet to depends/README.md 2025-11-30 11:33:04 +00:00
fanquake
ef4ce19a15 depends: freetype 2.11.1 2025-11-27 15:05:40 +00:00
merge-script
e249ea7da6 Merge bitcoin/bitcoin#33945: depends: latest config.guess & config.sub
3e4355314b depends: latest config.sub (fanquake)
04eb84fe3f depends: latest config.guess (fanquake)

Pull request description:

  It's been about a year since these were last updated.
  Pull in the latest versions.

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

Tree-SHA512: f18a0b95e71588e9f1ea55efb6379664aa6e9154801448e9425362414c3f3c4dab29dbe0e3ab02c46ac1f2e2ad1d067bc6feb8c550ccde37cabd1c0bd9d1b87c
2025-11-26 11:27:43 +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
fanquake
3e4355314b depends: latest config.sub 2025-11-25 16:29:23 +00:00
fanquake
04eb84fe3f depends: latest config.guess 2025-11-25 16:29:23 +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