Commit Graph

27073 Commits

Author SHA1 Message Date
Kittywhiskers Van Gogh
d4b0faeae1
merge bitcoin#26854: Fix intermittent timeout in p2p_permissions.py 2024-10-02 08:31:48 +00:00
Kittywhiskers Van Gogh
892e329ada
merge bitcoin#26138: Avoid race in disconnect_nodes helper 2024-10-02 08:31:48 +00:00
Kittywhiskers Van Gogh
d6ce037814
merge bitcoin#25443: Fail if connect_nodes fails 2024-10-02 08:31:48 +00:00
Kittywhiskers Van Gogh
60b5392d92
partial bitcoin#22778: Reduce resource usage for inbound block-relay-only connections
includes:
- 290a8dab0288344fa5731ec2ffd09478e9420a2f
2024-10-02 08:31:48 +00:00
Kittywhiskers Van Gogh
85c4aef9cb
merge bitcoin#23774: Add missing assert_equal import to p2p_add_connections.py 2024-10-02 08:31:48 +00:00
Kittywhiskers Van Gogh
03544175d9
merge bitcoin#22777: don't request tx relay on feeler connections 2024-10-02 08:31:15 +00:00
merge-script
1b622944c4
Merge bitcoin/bitcoin#30743: depends: build libevent with -D_GNU_SOURCE
556775408797d8e27154c3edaf139820b0979cce depends: build libevent with -D_GNU_SOURCE (fanquake)

Pull request description:

  Currently, builds of libevent in depends, using CMake, fail on some systems, like Alpine, with the following:
  ```bash
  /bitcoin/depends/work/build/aarch64-unknown-linux-musl/libevent/2.1.12-stable-1516ed47ea8/evmap.c: In function 'evmap_signal_add_':
  /bitcoin/depends/work/build/aarch64-unknown-linux-musl/libevent/2.1.12-stable-1516ed47ea8/evmap.c:456:31: error: 'NSIG' undeclared (first use in this function)
    456 |         if (sig < 0 || sig >= NSIG)
  ```

  From what I can tell the `GNU_SOURCE` "detection" in libevents CMake build system, never? really worked, primarily relies on looking for a deprecated define, and it's not clear what a nice fix is. For now, always build with `_GNU_SOURCE`, to match the autotools behaviour.

ACKs for top commit:
  TheCharlatan:
    ACK 556775408797d8e27154c3edaf139820b0979cce

Tree-SHA512: 4552b4a92867e8fa2af0ffa39b2be6c994bf739de7ce6a7c581590be486da81f7d93fca816854548c1e912347d33a35218c441b5058c3cbd3e82c74a9b7c78d9
2024-10-01 22:54:14 -05:00
Kittywhiskers Van Gogh
7229eb0ae2
merge bitcoin#23042: Avoid logging AlreadyHaveTx when disconnecting misbehaving peer 2024-10-01 19:40:51 +00:00
Kittywhiskers Van Gogh
05395ff37b
merge bitcoin#22817: Avoid race after connect_nodes
Due to stricter checks, we can no longer start masternodes in parallel,
as entities used to process `to_connection` checks are reused before the
previous check is completed, resulting in an exception. Since we're
now validating the establishment of a two-way connection, we have to do
it one at a time.
2024-10-01 19:40:51 +00:00
pasta
5a0479fe53
Merge #6275: feat: bury mn_rr fork - fire up test chains by first block - 6/n
9a9d0d5b79 feat: drop SPORK 24 (EHF) so far as this feature works on testnet / mainnet (Konstantin Akimov)
da0dc06eea perf: optimize feature_mnehf.py by generating less blocks (Konstantin Akimov)
0de3923b06 feat: bury fork mn_rr (masternode reward reallocation) (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  MN_RR is activated on mainnet: time to bury it!

  ## What was done?
  Hard-fork mn_rr is buried. Prior fixes are done here: https://github.com/dashpay/dash/pull/6270 and https://github.com/dashpay/dash/pull/6269

  ## How Has This Been Tested?
  Run unit and functional tests

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    light ACK 9a9d0d5b79
  PastaPastaPasta:
    utACK 9a9d0d5b79

Tree-SHA512: 73ea0ca1270f15f6f1193efbaf402d476c84e9a843af85b7eae3e40199f4c943ad40f58e062b8db20e1c5c69c1a85579ebaf0722f1044ee2e1a4e7f96c58e645
2024-10-01 13:45:45 -05:00
UdjinM6
c91ba8ac14
fix: no crashes allowed 2024-10-01 21:13:02 +03:00
UdjinM6
a4cd1d6423
fix: explicitly test no tx in mempool after invalidateblock 2024-10-01 21:11:47 +03:00
merge-script
0f135dd233
Merge bitcoin/bitcoin#30522: ci: Add missing qttools5-dev install to Asan task
faa359877270121b3cd442e1e5e865586ce7e530 ci: Add missing qttools5-dev install to Asan task (MarcoFalke)

Pull request description:

  This is required, according to the docs:

  ```
  $ git grep --line-number 'qtbase5-dev qttools5-dev qttools5-dev-tools' doc
  doc/build-unix.md:84:    sudo apt-get install qtbase5-dev qttools5-dev qttools5-dev-tools
  ```

  Also, needed for cmake.

ACKs for top commit:
  hebasto:
    ACK faa359877270121b3cd442e1e5e865586ce7e530.

Tree-SHA512: c986908f757d70d958267c1e902b5d7d94589360db61ddf7b9b398cd635b2172e83510c0c77fd6032810166342a286c0f95225b6c6639acd869e1e51c3348ea7
2024-10-01 09:46:26 -05:00
merge-script
d46e16c023
Merge bitcoin/bitcoin#30490: depends: bump libmultiprocess for CMake fixes
d318c4ef56465ccad1a1d4d27c52216e0b69ad4e depends: bump libmultiprocess for CMake fixes (Cory Fields)

Pull request description:

  Broken out of #30454 . Bumped [even further](4883197abc (r1684802528)) after https://github.com/chaincodelabs/libmultiprocess/pull/98 was merged upstream.

  hebasto Presumably this approach works now with the CMake branch?

ACKs for top commit:
  ryanofsky:
    Code review ACK d318c4ef56465ccad1a1d4d27c52216e0b69ad4e.

Tree-SHA512: 4b5491f73c0063d09e8339829cd831b1f4c441dd7b55a22037c9337c80cce19bb00a3e5cf925efa77d6d4e89ab45482f40f5799bc14948f8cabcbad3c3549430
2024-10-01 09:46:26 -05:00
fanquake
7a63c20c47
Merge bitcoin/bitcoin#29276: depends: Update libmultiprocess library to fix C++20 macos build error
b8105b3ed7c97cd6545dba99d0e13c33f183e450 depends: Update libmultiprocess library to fix C++20 macos build error (Ryan Ofsky)

Pull request description:

  Fixes #29248

  The std::result_of type was removed in c++20, but was being referenced in some old, unused code in the library. The issue was fixed in:

  - https://github.com/chaincodelabs/libmultiprocess/pull/91

  This update also includes other recent libmultiprocess changes to improve C++20 support and fix build issues:

  - https://github.com/chaincodelabs/libmultiprocess/pull/89
  - https://github.com/chaincodelabs/libmultiprocess/pull/90
  - https://github.com/chaincodelabs/libmultiprocess/pull/93

ACKs for top commit:
  fanquake:
    ACK b8105b3ed7c97cd6545dba99d0e13c33f183e450.

Tree-SHA512: 2ca64b5fc27be752baba38df4b4faf62152e18c70ead6e0e063f1cb0c25dd5d924dec7ebfd7f8bbd651ae50eb35e8d8b591a9847c36f22558b5f5effccf56536
2024-10-01 09:46:26 -05:00
fanquake
630e767be7
Merge bitcoin/bitcoin#28907: depends: bump libmultiprocess to fix capnproto deprecation warnings
21bfee0720ba72935d4f9fc4c2a2887ae5b54092 depends: bump libmultiprocess to fix capnproto deprecation warnings (Ryan Ofsky)

Pull request description:

  This incorporates PR chaincodelabs/libmultiprocess#88 and reverts the NO_WERROR CI workaround added in #28735

  Upstream diff: 61d5a0e661...414542f81e

  ---

  This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/issues/28722).

ACKs for top commit:
  maflcko:
    lgtm ACK 21bfee0720ba72935d4f9fc4c2a2887ae5b54092
  hebasto:
    ACK 21bfee0720ba72935d4f9fc4c2a2887ae5b54092, I have reviewed the code and it looks OK. I've also skimmed through the related changes in the https://github.com/chaincodelabs/libmultiprocess repository.

Tree-SHA512: b5addb0deed694eeec62a0ae08b4715a811110201f39f3e6cadee8fc4e6231b0e66c844a98512072a1445bac122ab561dc1711e27fb4d7ac5c08ac46780a4acf
2024-10-01 09:46:26 -05:00
fanquake
318471d599
Merge bitcoin/bitcoin#28735: depends: Bump to capnproto-c++-1.0.1
BACKPORT NOTICE: excludes ci/test/00_setup_env_i686_multiprocess.sh changes, however, these do not satisfy enough this to be partial to me

3333f14efac815ba3c885398a6795c7e8ce68d08 depends: Bump to capnproto-c++-1.0.1 (MarcoFalke)

Pull request description:

  Reasons:
  * Debian is starting to ship this version in Trixie (https://packages.debian.org/trixie/capnproto), which will likely become the version shipped with Ubuntu 24.04 LTS. So testing with this version will help to find any issues before real users start to use those distro packages.
  * The feature is currently experimental, so bumping the version shouldn't cause any production issues.
  * With multiprocess begin a priority project for 27.0, it seems better to do build system changes/bumps early, rather than later, to allow for more time testing them.

ACKs for top commit:
  TheCharlatan:
    Re-ACK 3333f14efac815ba3c885398a6795c7e8ce68d08
  fanquake:
    ACK 3333f14efac815ba3c885398a6795c7e8ce68d08 - the response from upstream is that [if we submit a PR, they can take a look](https://github.com/capnproto/capnproto/issues/1833#issuecomment-1792582206), so if anyone would like this to work for Windows, I'd suggest sending a patch.
  ryanofsky:
    Code review ACK 3333f14efac815ba3c885398a6795c7e8ce68d08

Tree-SHA512: 7d53ad1536f042ab43dbc7847126b826e7fc76694f173c348b835fd1067b8f3dd682c5bcb4887f09ee85bab69130721cd7f8fb96b2e82053d4e28bd5c38bdc5f
2024-10-01 09:46:26 -05:00
fanquake
ad0c279ac8
Merge bitcoin/bitcoin#26672: build: Update libmultiprocess library
1986f129c6af7644d238c76f032713731d7afcac build: Update `libmultiprocess` library (Hennadii Stepanov)

Pull request description:

  This update in particular includes:
  - https://github.com/chaincodelabs/libmultiprocess/pull/78 which is [required](https://github.com/bitcoin/bitcoin/pull/25972#issuecomment-1246812573) for https://github.com/bitcoin/bitcoin/pull/25972
  - https://github.com/chaincodelabs/libmultiprocess/pull/74
  - https://github.com/chaincodelabs/libmultiprocess/pull/70

ACKs for top commit:
  ryanofsky:
    Code review ACK 1986f129c6af7644d238c76f032713731d7afcac

Tree-SHA512: 2d9fa72df5de7d5be37d77d479702cba36c45e9fa9d9fc27e58aac0437c39e4a1054c0ac53b612cb43e830982e444d98c7d3e651d093ac68344e66f4734227bb
2024-10-01 09:46:26 -05:00
pasta
a285fff311
Merge #6291: backport: merge bitcoin#23037, #23047, #23102, #23209, #23210, #23501, #23392, #23799, #24195, #24324 (test backports)
51e1170f8f merge bitcoin#24324: refactor: remove unneeded bytes<->hex conversions in `byte_to_base58` (Kittywhiskers Van Gogh)
473ee8ef18 merge bitcoin#24195: Fix failfast option for functional test runner (Kittywhiskers Van Gogh)
64dd46764c merge bitcoin#23799: Let test_runner.py start multiple jobs per timeslot (Kittywhiskers Van Gogh)
1b241a2832 merge bitcoin#23392: move check_node_connections to util (Kittywhiskers Van Gogh)
f6fa0c06b8 merge bitcoin#23501: various feature_nulldummy.py improvements (Kittywhiskers Van Gogh)
851dae7b29 merge bitcoin#23210: Replace satoshi_round with int() or Decimal() (Kittywhiskers Van Gogh)
739394df18 merge bitcoin#23209: Avoid RPC roundtrip in MiniWallet get_descriptor() (Kittywhiskers Van Gogh)
c96b9aa3d9 merge bitcoin#23102: Add missing re.escape() to feature_addrman test (Kittywhiskers Van Gogh)
4db9108b74 merge bitcoin#23047: Use MiniWallet in mempool_persist (Kittywhiskers Van Gogh)
234f22a72e merge bitcoin#23037: fix confusing off-by-one nValue in feature_coinstatsindex.py (Kittywhiskers Van Gogh)

Pull request description:

  ## Breaking Changes

  None expected.

  ## Checklist

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation **(note: N/A)**
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  knst:
    utACK 51e1170f8f
  UdjinM6:
    utACK 51e1170f8f

Tree-SHA512: 54ffbb2a44ad411d8602a7a752a05527faa65199da6cfa585f953892017c4d9e906c86c0b5b5e5d151d76eb0649aa76a7d17104ab0b3797a111d364ca52d716b
2024-10-01 09:43:52 -05:00
pasta
e493d591ca
Merge #6289: test: avoid node (dis)connections in functional tests that are invalid or likely to fail
40f2ab906c test: don't attempt to reconnect already connected nodes (Kittywhiskers Van Gogh)
4a0fc8b69e test: don't attempt to (dis)connect nodes to/from themselves (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * Dependency for https://github.com/dashpay/dash/pull/6276

  ## Checklist:

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation **(note: N/A)**
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK 40f2ab906c

Tree-SHA512: aaaeedabeb6b8ef77187fc14db1888c39863daf66afda93b8c8bc1dbbdf3ff6734445fd296d5b1034da6104e2d7cfcacf26b97b7be0a697b7a99f3671b6cb9a2
2024-10-01 09:41:46 -05:00
pasta
9612287e91
Merge #6294: backport: cmake prereq 2
ae6e0ada9b Merge bitcoin/bitcoin#29725: depends: build libqrencode with CMake (fanquake)
1522896f9f fix mingw32 build (UdjinM6)
7bb1d0ef5e Merge bitcoin/bitcoin#22724: windres: use PACKAGE_VERSION rather than building more version numbers (fanquake)
6bee8e25f7 Merge bitcoin/bitcoin#27496: depends: reuse _config_opts for CMake options (fanquake)
24973ee34c Merge bitcoin/bitcoin#30488: depends: Fix CMake-generated `libevent*.pc` files (merge-script)
a27b08ed7a Merge bitcoin/bitcoin#29835: depends: build libevent with CMake (merge-script)
a204616446 Merge bitcoin/bitcoin#30464: test, refactor: Fix MSVC warning C4101 "unreferenced local variable" (merge-script)
02aee122de Merge bitcoin/bitcoin#30508: depends: Fix CMake-generated `libzmq.pc` file (merge-script)
e2b24461d4 Merge bitcoin/bitcoin#29723: depends: build zeromq with CMake (merge-script)
685b7a7a1b Merge bitcoin/bitcoin#23611: build: add `LTO` option to depends (laanwj)
d2b8c6bbc9 Merge bitcoin/bitcoin#19952: build, ci: Add file-based logging for individual packages (laanwj)
fc1c29caf0 partial Merge bitcoin/bitcoin#23478: build: Add support for Android NDK r23 LTS (fanquake)

Pull request description:

  ## Issue being fixed or feature implemented
  depends on https://github.com/dashpay/dash/pull/6293

  ## What was done?
    _Describe your changes in detail_

  ## How Has This Been Tested?
    _Please describe in detail how you tested your changes._

    _Include details of your testing environment, and the tests you ran
  to see how your change affects other areas of the code, etc._

  ## Breaking Changes
    _Please describe any breaking changes your code introduces_

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK ae6e0ada9b
  knst:
    utACK ae6e0ada9b
  knst:
    utACK ae6e0ada9b

Tree-SHA512: 0606c7596394155417ad0fea96ce7e1f905109ce2978987e1c4132e8b0f5a8593c5c62ea7217510169228e8238ba42b418a74635ded01f5d674f62495ad3b3a9
2024-10-01 09:39:32 -05:00
UdjinM6
04b5db9417
test: extend and refactor DIP0020 activation test 2024-10-01 17:10:04 +03:00
Kittywhiskers Van Gogh
51e1170f8f
merge bitcoin#24324: refactor: remove unneeded bytes<->hex conversions in byte_to_base58 2024-09-30 09:03:28 +00:00
Kittywhiskers Van Gogh
473ee8ef18
merge bitcoin#24195: Fix failfast option for functional test runner 2024-09-30 09:03:28 +00:00
Kittywhiskers Van Gogh
64dd46764c
merge bitcoin#23799: Let test_runner.py start multiple jobs per timeslot 2024-09-30 09:03:28 +00:00
Kittywhiskers Van Gogh
1b241a2832
merge bitcoin#23392: move check_node_connections to util 2024-09-30 09:03:27 +00:00
Kittywhiskers Van Gogh
f6fa0c06b8
merge bitcoin#23501: various feature_nulldummy.py improvements 2024-09-30 09:03:27 +00:00
Kittywhiskers Van Gogh
851dae7b29
merge bitcoin#23210: Replace satoshi_round with int() or Decimal() 2024-09-30 09:03:27 +00:00
Kittywhiskers Van Gogh
739394df18
merge bitcoin#23209: Avoid RPC roundtrip in MiniWallet get_descriptor() 2024-09-30 09:03:27 +00:00
Kittywhiskers Van Gogh
c96b9aa3d9
merge bitcoin#23102: Add missing re.escape() to feature_addrman test 2024-09-30 09:03:27 +00:00
Kittywhiskers Van Gogh
4db9108b74
merge bitcoin#23047: Use MiniWallet in mempool_persist 2024-09-30 09:03:27 +00:00
Kittywhiskers Van Gogh
234f22a72e
merge bitcoin#23037: fix confusing off-by-one nValue in feature_coinstatsindex.py 2024-09-30 09:03:26 +00:00
Konstantin Akimov
9a9d0d5b79
feat: drop SPORK 24 (EHF) so far as this feature works on testnet / mainnet 2024-09-30 12:56:31 +07:00
Konstantin Akimov
da0dc06eea
perf: optimize feature_mnehf.py by generating less blocks 2024-09-30 12:56:31 +07:00
Konstantin Akimov
0de3923b06
feat: bury fork mn_rr (masternode reward reallocation) 2024-09-30 12:56:26 +07:00
fanquake
ae6e0ada9b
Merge bitcoin/bitcoin#29725: depends: build libqrencode with CMake
007ea322a6492d46f1565ef58a0c49f5b468ff20 depends: switch to building libqrencode with CMake (fanquake)
884330c0a57ce839d48606dc2de3928869b31b7d guix: make cmake-minimal a global requirement (fanquake)

Pull request description:

  Switch to building libqrencode with CMake. Note that upstream (https://github.com/fukuchi/libqrencode) hasn't seen any activity for ~4 years, so the odds of getting anything upstream seems low, but I've made two minor changes to the source here, which I will PR in any case.

  From an initial look I couldn't find any significant difference between the Autotools and CMake produced libs. As part of this change we move cmake-minimal in Guix into the global package set.

ACKs for top commit:
  TheCharlatan:
    ACK 007ea322a6492d46f1565ef58a0c49f5b468ff20

Tree-SHA512: c784f790ddea958082c8ae96d3744bdf99331a8799765f9d44f00861b8e2cfcab1a88a3d64af5b10e51a8d5938d55eb6a3d271790b565e50492a39d00dc0e30f
2024-09-29 10:54:41 +03:00
Odysseas Gabrielides
de4238e11b
Create release-notes-6183.md 2024-09-28 12:01:00 +03:00
Odysseas Gabrielides
d65f63c451
enable llmq_50_60 in Devnets 2024-09-28 11:51:20 +03:00
UdjinM6
1522896f9f
fix mingw32 build 2024-09-28 10:48:43 +03:00
fanquake
7bb1d0ef5e
Merge bitcoin/bitcoin#22724: windres: use PACKAGE_VERSION rather than building more version numbers
f12fbad5a1852706184082c68655fafad4bb9fe1 windres: use PACKAGE_VERSION rather than building more version numbers (fanquake)

Pull request description:

  Rather than defining more strings, reuse PACKAGE_VERSION, which is already available.

  We also already use PACKAGE_VERSION for `ProductVersion` and `FileVersion` in setup.nsi.

ACKs for top commit:
  MarcoFalke:
    cr ACK f12fbad5a1852706184082c68655fafad4bb9fe1
  laanwj:
    Code review ACK f12fbad5a1852706184082c68655fafad4bb9fe1

Tree-SHA512: b74a37cbba105d208d4da9264d295d7e052009fdd6b0ed54a0d9968bbe2deeba1766d6d310438b2939a81555faa0cbd67d5e53f0c8a2de669ce56353c1c67d22
2024-09-27 15:35:12 -05:00
fanquake
6bee8e25f7
Merge bitcoin/bitcoin#27496: depends: reuse _config_opts for CMake options
63c0c4ff10b2f6ed8510ef372a5b1f6a6494b179 depends: reuse _config_opts for CMake options (Cory Fields)

Pull request description:

  Context: I'm [currently experimenting with building our depends with CMake when possible](https://github.com/theuni/bitcoin/commits/depends-cmake) as part of our future transition to CMake. Specifically zmq, libevent, libnatpmp, and miniupnpc all have existing CMake buildsystems. Building them with CMake will allow us to drop several deps that we currently have (autoconf, automake, pkg-config, etc) which would be unfortunate to carry over after the switch-over.

  But that's not relevant for this PR. This is just a very simple change that makes the above work easier to experiment with as it [adds a needed feature for CMake packages](5733dc2000 (diff-e6ed342a25092e0a6d0308e0bfd826044578847132cc6726ac4afa2ca767b61aR20)). It's a no-op for the current builds.

  ---

  From commit description:

  This will allow us to use the existing machinery for filtering by arch, os, debug/release, etc.

  For example, the following becomes possible for libevent when building with CMake:

  `$(package)_config_opts_release=-DEVENT__DISABLE_DEBUG_MODE`

  Now the define is only set when not building depends with DEBUG=1

ACKs for top commit:
  hebasto:
    ACK 63c0c4ff10b2f6ed8510ef372a5b1f6a6494b179

Tree-SHA512: 17d123219d2f98c017880196966ffebd5d09d3e2db8e443e227eb7e49da46e9d971fbe7fd2b99a324fc367e1bbe0ac3cd15b399bce98dd87fbb144d767e15fe7
2024-09-27 13:45:27 -05:00
pasta
c3f2474898
chore: update pasta gpg key to reflect new subkeys 2024-09-27 12:54:58 -05:00
merge-script
24973ee34c
Merge bitcoin/bitcoin#30488: depends: Fix CMake-generated libevent*.pc files
8c935e625ea75d180144f0526d6a0d5fd58c1f29 depends: Fix CMake-generated `libevent*.pc` files (Hennadii Stepanov)

Pull request description:

  Broken out of #30454. This is a backport of the merged upstream PR: https://github.com/libevent/libevent/pull/1622.

  Note that after #29835 we might end up dropping pkg-config and using the installed CMake files directly, but that depends on whether or not enough distros actually ship those files.

  Either way, having fixed up .pc files won't hurt.

ACKs for top commit:
  hebasto:
    ACK 8c935e625ea75d180144f0526d6a0d5fd58c1f29.
  fanquake:
    ACK 8c935e625ea75d180144f0526d6a0d5fd58c1f29

Tree-SHA512: 259c2ad78fb9e90370a7205dc71c40acda1a872f6509435133bc1c4c2c3de57366e80679aa083e13ed85e7966883dc470c0147ee171a2ed0171a18cd5ffc99b3
2024-09-27 12:52:15 -05:00
merge-script
a27b08ed7a
Merge bitcoin/bitcoin#29835: depends: build libevent with CMake
f59e9057e2aa596b54cf9e85bab35c3ead137547 depends: switch libevent to CMake (Cory Fields)

Pull request description:

  Switches libevent in depends to be built with CMake.

ACKs for top commit:
  TheCharlatan:
    ACK f59e9057e2aa596b54cf9e85bab35c3ead137547
  willcl-ark:
    ACK f59e9057e2aa596b54cf9e85bab35c3ead137547

Tree-SHA512: 875bf9bc57653c78775a1f8192a2c964fea8f4490d733ff796d9efb00e786f0ca9a7c1a3fd610cda032273c4f2ae06394585b03567d5f241ab073c83a47cf927
2024-09-27 12:52:15 -05:00
merge-script
a204616446
Merge bitcoin/bitcoin#30464: test, refactor: Fix MSVC warning C4101 "unreferenced local variable"
44f08786f435ed4284d39dc604c2a5fcbde9e602 test: Fix MSVC warning C4101 "unreferenced local variable" (Hennadii Stepanov)
5d25a82b9a5e54f74cc066599541bc1d3da70988 univalue, refactor: Convert indentation tabs to spaces (Hennadii Stepanov)

Pull request description:

  This PR is split from https://github.com/bitcoin/bitcoin/pull/30454 and addresses MSVC warning [C4101](https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4101) "unreferenced local variable". The current MSVC build system in the master branch skips building univalue tests, so it is not affected.

  No behaviour changes.

ACKs for top commit:
  kevkevinpal:
    utACK [44f0878](44f08786f4)
  maflcko:
    ACK 44f08786f435ed4284d39dc604c2a5fcbde9e602
  theuni:
    trivial ACK 44f08786f435ed4284d39dc604c2a5fcbde9e602.

Tree-SHA512: 661d3b40ddb4f7915de7a65ccb27a24da88ae499ce03c036099007260b0597e83738f1a3a420985b51f798ee309ade32988c6d78f4ffed401099b175a0b2025b
2024-09-27 12:52:15 -05:00
merge-script
02aee122de
Merge bitcoin/bitcoin#30508: depends: Fix CMake-generated libzmq.pc file
371910a7682ecdaf86b3e65753667746add1ecd2 depends: Fix CMake-generated `libzmq.pc` file (Hennadii Stepanov)

Pull request description:

  This is a backport of: https://github.com/zeromq/libzmq/pull/4706.

  Similar to https://github.com/bitcoin/bitcoin/pull/30488.

  Addresses https://github.com/bitcoin/bitcoin/pull/29723#issuecomment-2239864170:
  > Looking at the mingw .pc generated by this PR:
  >
  > ```
  > Libs: -L${libdir} -lzmq
  > Libs.private:
  > Requires.private:
  > ```
  >
  > It looks like we'll need to take [zeromq/libzmq#4706](https://github.com/zeromq/libzmq/pull/4706) as well for CMake. That can be done as a follow-up though, as it's not yet merged upstream.

ACKs for top commit:
  fanquake:
    ACK 371910a7682ecdaf86b3e65753667746add1ecd2

Tree-SHA512: 6f9c2e32f83c0e629e32fd3e4c86712af00ffeaf0906bf85e5c2df889302707b9df102e8031249d1bae036eb4fc019c2a5124655682fbc5652d9337cb21c5f2c
2024-09-27 12:52:15 -05:00
merge-script
e2b24461d4
Merge bitcoin/bitcoin#29723: depends: build zeromq with CMake
0388ad0d65b6c9ee802ca641eb01d69fcdd5605d depends: switch zmq to CMake (Cory Fields)
fefb3bbe5b538f8faa59de191914ad0c22c3ade6 depends: add zeromq no librt patch (fanquake)
a522ef15424110f76172b3c0603fa08f7291c9fc depends: add zeromq cmake minimum patch (fanquake)
cbbc229adf4c12ad4bd7edde71425b8ef217edfc depends: add zeromq windows usage patch (fanquake)
2de68d6d388b9a33c57234d3161f6ffc4c2a0246 depends: add zeromq builtin sha1 patch (fanquake)
0c8605253ae887dac316264cb969b752027d277a depends: add zeromq mktemp macos patch (fanquake)

Pull request description:

  This picks up a change, which is a switch to building zeromq with CMake. It includes a number of patches, some which have already been upstreamed (see each patch for details).

ACKs for top commit:
  hebasto:
    ACK 0388ad0d65b6c9ee802ca641eb01d69fcdd5605d.

Tree-SHA512: 5567e432b4e4e0446c41d502bd61810a80b329dea2399b5d9d9f6e79acc450d1c6ba861c8238ba895de98338cfc5dc44ad2bf86ee8c222ecb3fbf47d6eb60da4
2024-09-27 12:52:15 -05:00
laanwj
685b7a7a1b
Merge bitcoin/bitcoin#23611: build: add LTO option to depends
094772656d71b3f5022ae292094e878da035de9e build: support LTO in depends (fanquake)

Pull request description:

  This adds an `LTO` option to depends, i.e `make -C depends LTO=1`, which passes `-flto` when building packages (not currently qt), and automatically configures with `--enable-lto` when doing a build using a `CONFIG_SITE`.

  The following tables comapres the size (in bytes) of the stripped `x86_64` Linux binaries produced with master and this PR (full depends build):

  | Binary | stripped master | stripped LTO=1 | saving |
  | -------- | ----------------: | -------------: | --------: |
  | bitcoin-cli | 1178632 | 469872 | 60% |
  | bitcoin-tx  | 2710584 | 1866504 | 31% |
  | bitcoin-util | 952880 | 240104 | 74% |
  | bitcoin-wallet | 7992888 | 5365984 | 32% |
  | bitcoind | 13421336 | 11868592 | 12% |
  | bitcoin-qt | 37680496 | 31640976 | 16% |

ACKs for top commit:
  laanwj:
    Tested ACK 094772656d71b3f5022ae292094e878da035de9e

Tree-SHA512: 6b8483ea490e57a153105ad8c38b25fb1af5d55b1af22db398c7c2573612aaf71b4d2b4cf09c18fd6331b1358dba01641eeaa03e5018a925392e1937118d984a
2024-09-27 12:52:15 -05:00
laanwj
d2b8c6bbc9
Merge bitcoin/bitcoin#19952: build, ci: Add file-based logging for individual packages
86c2889518df0234b8b28112a9771b85c577eefd ci: Make log verbose in error case only (Hennadii Stepanov)
7f650883b71b67cd33026cf49af0b16f01e45541 depends: Add file-based logging for individual packages (Hennadii Stepanov)

Pull request description:

  This PR adds file-based logging for individual packages in depends. To use this feature one should provide `LOG=1`.

  A log file is printed out automatically in case of a build error. After successful build log files are being moved along with package archives:
  ```
  $ make -C depends HOST=x86_64-w64-mingw32 LOG=1
  $ find ./depends/built/x86_64-w64-mingw32 -name '*.log' | sort
  ./depends/built/x86_64-w64-mingw32/bdb/bdb-4.8.30-5100a099801.log
  ./depends/built/x86_64-w64-mingw32/boost/boost-1_71_0-313f82dc7de.log
  ./depends/built/x86_64-w64-mingw32/libevent/libevent-2.1.12-stable-3fa27048d5e.log
  ./depends/built/x86_64-w64-mingw32/libnatpmp/libnatpmp-4536032ae32268a45c073a4d5e91bbab4534773a-9db4850dd32.log
  ./depends/built/x86_64-w64-mingw32/miniupnpc/miniupnpc-2.2.2-75d9a1807e0.log
  ./depends/built/x86_64-w64-mingw32/native_b2/native_b2-1_71_0-3bf253c19bf.log
  ./depends/built/x86_64-w64-mingw32/qrencode/qrencode-3.4.4-dfac87af599.log
  ./depends/built/x86_64-w64-mingw32/qt/qt-5.15.2-9304e03d3ac.log
  ./depends/built/x86_64-w64-mingw32/sqlite/sqlite-3320100-455acafa7be.log
  ./depends/built/x86_64-w64-mingw32/zeromq/zeromq-4.3.1-5ff627ec84a.log
  ```

  An example of CI tasks with package build errors -- https://cirrus-ci.com/task/5275741788045312

  Closes #16368.

ACKs for top commit:
  laanwj:
    Tested ACK 86c2889518df0234b8b28112a9771b85c577eefd

Tree-SHA512: 497f2146fd2e38c952124aecfd80ebb42be22bbc5dc59521491545f4465fc38f23da7787a0caea5686b7c30aa862f2b0c02092ae3fe863e80a5ddd14b3d324b9
2024-09-27 12:52:15 -05:00
fanquake
fc1c29caf0
partial Merge bitcoin/bitcoin#23478: build: Add support for Android NDK r23 LTS
BACKPORT NOTE: excludes documentation changes in doc/build-android.md

4ba492052ec09d48f8c3f391cc248340e761c7f2 doc: Add minimum supported Android NDK version (Hennadii Stepanov)
6393bdcd53b106367b10317c227a114494c90142 doc: Move Android dependencies guide into `build-android.md` (Hennadii Stepanov)
ac323a7222efaafc7bc3110b02f1ef2d2635c9a2 build: Switch to llvm buinutils for Android builds (Hennadii Stepanov)

Pull request description:

  The new Long Term Support release of the Android NDK is [available](https://groups.google.com/g/android-ndk-announce/c/MS6Qoub0DKE/m/Zfp5Ys8eAAAJ) since 2021-08-11:

  > As r23 is the new LTS, the support windows for r21 and r22 have now ended.

  On master (8ae4ba481ce8f7da173bef24432729c87a36cb70), dependency build fails because it expects GNU Binutils are present in the Android NDK. In [fact](https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#binutils):
  > GNU Binutils remains available up to and including r22. All binutils tools with the exception of the assembler (GAS) were removed in r23. GAS was removed in r24.

  This PR switches our depends build system to llvm binutils. The usage of `llvm-ar` and `llvm-ranlib` tools effectively makes r21 the minimum supported version of NDK.

  With this PR:
  - building depends against NDK r23 LTS now is possible with `NO_QT=1`
  - building the `qt` package in depends against NDK r23 LTS still fails:
  ```
  Creating qmake...
  ...

  ERROR: Cannot detect Android NDK toolchain.
  Please use -android-toolchain-version to specify it.
  ```

  The issue with the `qt` package is going to be addressed in another PR.

ACKs for top commit:
  fanquake:
    ACK 4ba492052ec09d48f8c3f391cc248340e761c7f2

Tree-SHA512: cdc8f95ff9a3ad7f12eb55b9ea18b6b6b800d4cceff7e0321985be6e39d15a2b2ea5b1592972307d76d111292a0ed58fd287e5ca285e2f6868b42a286536d310
2024-09-27 12:52:15 -05:00