Commit Graph

549 Commits

Author SHA1 Message Date
fanquake
277766fcef
Merge bitcoin/bitcoin#27493: depends: no-longer nuke libc++abi.so* in native_clang package
9ae854da193f3c4bda38a75e96f9b989b289baab depends: no-longer nuke libc++abi.so* in native_clang package (fanquake)

Pull request description:

  We weren't copying it over in any case.

ACKs for top commit:
  hebasto:
    ACK 9ae854da193f3c4bda38a75e96f9b989b289baab
  theuni:
    Sure. utACK no-op 9ae854da193f3c4bda38a75e96f9b989b289baab.

Tree-SHA512: 3cc7f18f27c1b498f930bc1a09283aa04ba673d3c1a5220d8462213f0a06b74bc34989f23404402850de518cba35ddab900a54f7f0fac112fc86664e4155f8cb
2024-10-23 20:05:10 -05:00
Kittywhiskers Van Gogh
9dad5252db
build: set -march irrespective of target operating system 2024-10-08 14:52:16 +00:00
Kittywhiskers Van Gogh
82b440546a
build: update gmp to 6.3.0 2024-10-08 14:52:16 +00:00
fanquake
9f0e4ae82a
Merge bitcoin/bitcoin#29706: depends: set two CMake options globally
76045bb9d6808931cd0f2933203b5b611e032ec8 depends: always set CMAKE_POSITION_INDEPENDENT_CODE=ON (fanquake)
d04623678c70ff58a20fb5c35d33cb8f483f1efb depends: always set CMAKE_INSTALL_LIBDIR=lib/ (fanquake)

Pull request description:

  Set `CMAKE_INSTALL_LIBDIR=lib/` and `CMAKE_POSITION_INDEPENDENT_CODE=ON` globally in depends, rather than per-package. `CMAKE_INSTALL_LIBDIR=lib/` is needed to override the annoying [`GNUInstallDirs`](https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html) `lib` vs `lib64` behaviour, and we always want PIC code. The PIC commit is the counterpart to the same Autotools change in #29488. I'm PRing these commits as I have a CMake branch building on top, and want to avoid adding the same workarounds to every package we are going to touch, but these can go in separately as the build should be tested for existing packages (i.e multiprocess).

ACKs for top commit:
  hebasto:
    re-ACK 76045bb9d6808931cd0f2933203b5b611e032ec8.
  theuni:
    utACK 76045bb9d6808931cd0f2933203b5b611e032ec8. Both changes make sense to me, and both can be overridden if needed, though I can't imagine we'd need to.

Tree-SHA512: 655a0b6b7ee5a5820f52e8e919ef03fc216d29f13f3904f72b64ce57436510e073c903039488d5740535c56e1f6221267229238c5231de5f8467d238fd562578
2024-10-04 12:54:24 -05:00
fanquake
be07bbe87e
Merge bitcoin/bitcoin#28846: depends: fix libmultiprocess build on aarch64
bde8d63b17637c507a543cebe90f2998b5847373 depends: build libmultiprocess with position independant code (fanquake)
506634d79d6427925cd458f67799fe59e0ab14dd depends: always install libmultiprocess to /lib (fanquake)
beb309626381bf189cd2ae8bde83078b9de47c6a depends: always install capnp to /lib (fanquake)

Pull request description:

  Change to always install libmultiprocess into `lib/`. On some systems (my Fedora aarch64 box), libmultiprocess was being installed into `lib64/`, and then configure would fail to pick it up, because we only add `lib/` to pkgconfig/ldflags out of depends. Rather than adding lib64 to those, I opted for installing libmultiprocess into lib, with every other dependency we build.

  This was broken in our build after https://github.com/chaincodelabs/libmultiprocess/pull/79 upstream.

ACKs for top commit:
  ryanofsky:
    Code review ACK bde8d63b17637c507a543cebe90f2998b5847373. Only changes since last review were reverting the native_capnp change as suggested, and changing the order of the first two commits.

Tree-SHA512: ddd547e4ac224f2f199c569efd91104db7f2c243b124f9535aa0d9377315775ac566d699101580ce45ddd6676ad3e0c8cbe256334eeed9548205c2fa04d02102
2024-10-04 12:54:24 -05:00
fanquake
0dea194026
Merge bitcoin/bitcoin#28856: depends: Build the native_capnp and capnp packages with CMake
11d797e3a078b8f5f0039a1073047d3f0a8c6cdc depends: Build `native_capnp` package with CMake (Hennadii Stepanov)
90389c95e9edf3d705fb9376388c83f07d1a570e depends: Build `capnp` package with CMake (Hennadii Stepanov)

Pull request description:

  The first commit fixes two bugs when cross-compiling the `capnp` package on the master branch @ 160d23677ad799cf9b493eaa923b2ac080c3fb8e:
  - for `x86_64-w64-mingw32` (see https://github.com/bitcoin/bitcoin/pull/28735#issuecomment-1790406668):
  ```
  libtool: link: x86_64-w64-mingw32-g++-posix -shared -nostdlib /usr/lib/gcc/x86_64-w64-mingw32/12-posix/../../../../x86_64-w64-mingw32/lib/dllcrt2.o /usr/lib/gcc/x86_64-w64-mingw32/12-posix/crtbegin.o  src/kj/.libs/cidr.o src/kj/.libs/common.o src/kj/.libs/units.o src/kj/.libs/memory.o src/kj/.libs/refcount.o src/kj/.libs/array.o src/kj/.libs/list.o src/kj/.libs/string.o src/kj/.libs/string-tree.o src/kj/.libs/source-location.o src/kj/.libs/hash.o src/kj/.libs/table.o src/kj/.libs/encoding.o src/kj/.libs/exception.o src/kj/.libs/debug.o src/kj/.libs/arena.o src/kj/.libs/io.o src/kj/.libs/mutex.o src/kj/.libs/thread.o src/kj/.libs/time.o src/kj/.libs/filesystem.o src/kj/.libs/filesystem-disk-unix.o src/kj/.libs/filesystem-disk-win32.o src/kj/.libs/test-helpers.o src/kj/.libs/main.o src/kj/parse/.libs/char.o   -L/home/hebasto/git/bitcoin/depends/x86_64-w64-mingw32/lib -L/usr/lib/gcc/x86_64-w64-mingw32/12-posix -L/usr/lib/gcc/x86_64-w64-mingw32/12-posix/../../../../x86_64-w64-mingw32/lib -lstdc++ -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -lkernel32 -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -lkernel32 /usr/lib/gcc/x86_64-w64-mingw32/12-posix/crtend.o  -mthreads -O2 -mthreads   -mthreads -o .libs/libkj-1-0-1.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libkj.dll.a
  /usr/bin/x86_64-w64-mingw32-ld: src/kj/.libs/cidr.o:cidr.c++:(.text+0x1dc): undefined reference to `__imp_inet_ntop'
  /usr/bin/x86_64-w64-mingw32-ld: src/kj/.libs/cidr.o:cidr.c++:(.text+0x44b): undefined reference to `__imp_inet_pton'
  collect2: error: ld returned 1 exit status
  ```
  - for `arm64-apple-darwin`:
  ```
  checking build system type... x86_64-pc-linux-gnu
  checking host system type... Invalid configuration `arm64-apple-darwin': machine `arm64-apple' not recognized
  configure: error: /bin/bash build-aux/config.sub arm64-apple-darwin failed
  ```

  The second commit applies the same changes for the `native_capnp` package for [consistency](https://github.com/bitcoin/bitcoin/pull/28856#issuecomment-1807936546).

ACKs for top commit:
  ryanofsky:
    Code review ACK 11d797e3a078b8f5f0039a1073047d3f0a8c6cdc. Since last review arm64-apple-darwin platform is now mentioned in the commit message, and the change to `depends/packages/libmultiprocess.mk` in d1604d4b1d1ee8df279a1776303e167cc3d06193 which was unrelated (but probably still a good optimization) was reverted.

Tree-SHA512: c636e53073ce6fcda9724723bc59f3990fa9629a3b2f73d93dbc102a5a1badfbe8f4c5fef841f03588ebcad5cd4883f3ce32b128afcd75f6bc21eb801796a586
2024-10-04 12:54:23 -05:00
fanquake
a23eee1938
partial Merge bitcoin/bitcoin#23619: build: Propagate user-defined flags to host packages
a3a2bd9e8ad360a63cc8bdfc365d8bfd25ecc720 ci: Drop no longer needed package-specific flags (Hennadii Stepanov)
071eef1e974f128131afe6c6b5c68a430c64687a build: Propagate user-defined flags to host packages (Hennadii Stepanov)

Pull request description:

  On master (4f8b1f8759301d2553183e14f72444a0f1d80725) `{CPP,C,CXX,LD}FLAGS` that are specified in the command line are not propagated to packages:
  ```
  $ make --no-print-directory -C depends print-libevent_cxxflags CXXFLAGS=-some-fancy-flag
  libevent_cxxflags=-pipe -O2
  ```

  This PR:
  - propagates `{CPP,C,CXX,LD}FLAGS` to host packages:
  ```
  $ make --no-print-directory -C depends print-libevent_cxxflags CXXFLAGS=-some-fancy-flag
  libevent_cxxflags= -some-fancy-flag
  ```
  - does not propagate `{CPP,C,CXX,LD}FLAGS` to native packages:
  ```
  $ make --no-print-directory -C depends print-native_b2_cxxflags CXXFLAGS=-some-fancy-flag
  native_b2_cxxflags=
  ```
  - actually addresses the https://github.com/bitcoin/bitcoin/pull/23551#issuecomment-973896518

ACKs for top commit:
  TheCharlatan:
    Code review ACK a3a2bd9e8ad360a63cc8bdfc365d8bfd25ecc720

Tree-SHA512: 243d6b1b0e9c5de46debc36de62a77b6b4d6f638940fd530040c219956ec624e321b0c25290fed164e3a8c88befa7b97b20f765d7b9a428c269b3720f21da099
2024-10-04 12:54:22 -05:00
merge-script
7cdacdc1ad
Merge bitcoin/bitcoin#30513: depends: Bump libmultiprocess for CMake fixes
ec0e805d11d6a73c542032fc49a58a1d05b62d24 depends: Bump `libmultiprocess` for CMake fixes (Hennadii Stepanov)

Pull request description:

  This PR amends https://github.com/bitcoin/bitcoin/pull/30490 and bumps the upstream branch, which now includes a required CMake [fix](https://github.com/chaincodelabs/libmultiprocess/pull/103).

  Addresses https://github.com/bitcoin/bitcoin/pull/30490#issuecomment-2241153244.

  The CI logs are available in https://github.com/bitcoin/bitcoin/pull/29790 where the recent [push](https://github.com/hebasto/bitcoin/tree/pr29790-0723.2.mp) uses this PR implementation.

ACKs for top commit:
  ryanofsky:
    Code review ACK ec0e805d11d6a73c542032fc49a58a1d05b62d24
  theuni:
    utACK ec0e805d11d6a73c542032fc49a58a1d05b62d24.

Tree-SHA512: e300a27bcab80a63a518719e9af8e10a938294fc07289cadbf4a7744627c10b0e9541a36971d08b65152f3f7d0eb434e427274d9c9d9f0bdd216afd914027a0f
2024-10-03 01:16:41 -05: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
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
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
UdjinM6
1522896f9f
fix mingw32 build 2024-09-28 10:48:43 +03: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
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
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
pasta
801c4fc24a
build: followup to 29488 applied to gmp 2024-09-27 10:22:36 -05:00
fanquake
4b704a60ad
Merge bitcoin/bitcoin#28627: depends: zeromq 4.3.5
986d7fed057b995a720787cbbd21e1c41763fb83 depends: zeromq 4.3.5 (fanquake)

Pull request description:

  First new point release of zeromq in two and a half years. Mostly bug fixes; the project also completed a relicense to the "Mozilla Public License".

  See https://github.com/zeromq/libzmq/releases/tag/v4.3.5.

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

Tree-SHA512: cdd6abfbbe10873c1ca267fed648c2e6ff17a4aff50c414924006e63fa39d501e803f8893a5cd966a2078b5c077f2578e482483e6723ea6f5760f16211d40998
2024-09-26 22:44:19 -05:00
fanquake
0e6cb989a7
Merge bitcoin/bitcoin#26421: build: copy config.{guess,sub} post autogen in zmq package
1914e470e327091c625f627b4447beb336f7fe5a build: copy config.{guess,sub} post autogen in zmq package (fanquake)

Pull request description:

  Otherwise our config.guess and config.sub will be copied over. This problem has been masked by the fact that modern systems ship with versions that recognise all the triplets we use (namely arm64-apple-darwin). However building on ubuntu 20.04 surfaces the issue.

  Fixes #26420.

ACKs for top commit:
  hebasto:
    ACK 1914e470e327091c625f627b4447beb336f7fe5a, tested on Ubuntu 18.04.

Tree-SHA512: dff64c3c62d9f8fc205e5a4dffe8befd58838418d073a15dfe304a0f64b182dfffd9dcf98b53df44bfab905c12a62d03cd5c0f91fa7c4b246ac21ae5f20540fd
2024-09-26 22:44:15 -05:00
fanquake
cd33b69bfd
Merge bitcoin/bitcoin#29488: depends: always configure with --with-pic
e037c4fe0914d8fa9149ce7532c0d70f738e79e9 depends: always configure with --with-pic (fanquake)

Pull request description:

  We currently do this sporadically. Not only amongst packages, but across OS's, i.e sometimes it's done for BSDs/Android, and sometimes not.

  Configure with `--with-pic` globally instead. I think this generally makes more sense, and should not have any downsides.

  See related discussion in https://github.com/bitcoin/bitcoin/pull/28846#discussion_r1399123100.

ACKs for top commit:
  hebasto:
    ACK e037c4fe0914d8fa9149ce7532c0d70f738e79e9.

Tree-SHA512: efc743ff92f9f99f3ac16514e98363ad395c6f956cd4be7e785b5c573685baf7fcd68c51d6a705ee8761fc676eb045b7e61676595be0eb0f70f34e99174cddc0
2024-09-26 22:38:53 -05:00
fanquake
1b88674815
Merge bitcoin/bitcoin#29287: depends: Do not override CFLAGS when building SQLite with DEBUG=1
5fb8f0f80fc41cc636da56864195244d8fd9116e depends: Do not override CFLAGS when building SQLite with DEBUG=1 (Hennadii Stepanov)
2b0dd88f1ce9084324dc54db578fade9c926fd71 depends: Ensure definitions are passed when building SQLite with DEBUG=1 (Hennadii Stepanov)

Pull request description:

  The `--enable-debug` configure option for the SQLite package does two things:
  ```autoconf
  #-----------------------------------------------------------------------
  #   --enable-debug
  #
  AC_ARG_ENABLE(debug, [AS_HELP_STRING(
    [--enable-debug], [build with debugging features enabled [default=no]])],
    [], [])
  AC_MSG_CHECKING([Build type])
  if test x"$enable_debug" = "xyes"; then
    BUILD_CFLAGS="$BUILD_CFLAGS -DSQLITE_DEBUG -DSQLITE_ENABLE_SELECTTRACE -DSQLITE_ENABLE_WHERETRACE"
    CFLAGS="-g -O0"
    AC_MSG_RESULT([debug])
  else
    AC_MSG_RESULT([release])
  fi
  #-----------------------------------------------------------------------
  ```

  It adds three preprocessor definitions and overrides `CFLAGS` with `"-g -O0"`. The latter breaks the user's ability to provide sanitizer and LTO flags.

  This PR might be especially useful for OSS-Fuzz where `DEBUG=1` has been used since https://github.com/google/oss-fuzz/pull/10503.

  Also it makes a workaround for building SQLite for 32-bit unneeded. For details, please refer to https://github.com/hebasto/oss-fuzz/tree/240120-sqlite.

  Changes in https://github.com/bitcoin/bitcoin/pull/29282 might not be strictly required now. However, I consider them an improvement.

ACKs for top commit:
  fanquake:
    ACK 5fb8f0f80fc41cc636da56864195244d8fd9116e - downstream is also green, so i'll fixup the PR there.

Tree-SHA512: 8593d8a0237ebb270d5da763fb65ed642ab8ed0d44e57704a34154621f49e3d5c58b462cc0070251fa1ba556c58a3c7d3620530d6839dc6dc9e0887010330eca
2024-09-26 22:37:07 -05:00
Andrew Chow
f50fb6e627
Merge bitcoin/bitcoin#26998: depends: ensure we are appending to sqlite cflags
56a03f1834a7437e3357923a1e45e512c9b2e6fc depends: ensure we are appending to sqlite cflags (fanquake)

Pull request description:

  Otherwise we'll just override other flags passed in (i.e msan).

  Should fix https://cirrus-ci.com/task/6598922274078720?logs=ci#L3661.

ACKs for top commit:
  achow101:
    ACK 56a03f1834a7437e3357923a1e45e512c9b2e6fc
  TheCharlatan:
    ACK 56a03f1834a7437e3357923a1e45e512c9b2e6fc

Tree-SHA512: 5890018cfc5deaef18b0f01a3a0396f803e97f9a9785bf6873ef48bc13b74b644315f0f29cf11d3522964a6396f74e1f080bb4e412bc302956a651fed28b27df
2024-09-26 22:37:04 -05:00
Andrew Chow
25a594f46e
Merge bitcoin/bitcoin#25987: build: compile depends sqlite with more recommended options
dee690257c7948510a0661e23c9e398a13e20659 build: pass --enable-debug to sqlite when DEBUG=1 (fanquake)
807b61fcca6d301286ae43d00f88d986a985ea38 build: use more recommended sqlite3 compile options (fanquake)

Pull request description:

  https://www.sqlite.org/compile.html

  [SQLITE_DQS](https://www.sqlite.org/compile.html#dqs)
  > This setting disables the double-quoted string literal misfeature.

  [SQLITE_DEFAULT_MEMSTATUS](https://www.sqlite.org/compile.html#default_memstatus)
  > This setting causes the sqlite3_status() interfaces that track
  > memory usage to be disabled.
  > This helps the sqlite3_malloc() routines run much faster, and since
  > SQLite uses sqlite3_malloc() internally, this helps to make the
  > entire library faster.

  [SQLITE_OMIT_DEPRECATED](https://www.sqlite.org/compile.html#omit_deprecated)
  > Omitting deprecated interfaces and features will not help SQLite
  > to run any faster.
  > It will reduce the library footprint, however. And it is the
  > right thing to do.

  [SQLITE_OMIT_SHARED_CACHE](https://www.sqlite.org/compile.html#omit_shared_cache)
  > Omitting the possibility of using shared cache allows many
  > conditionals in performance-critical sections of the code to be
  > eliminated. This can give a noticeable improvement in performance.

  Also: https://www.sqlite.org/sharedcache.html
  > Shared-cache mode is an obsolete feature.
  > The use of shared-cache mode is discouraged.
  > Most use cases for shared-cache are better served by WAL mode.
  > Applications that build their own copy of SQLite from source code
  > are encouraged to use the -DSQLITE_OMIT_SHARED_CACHE compile-time
  > option, as the resulting binary will be both smaller and faster.

  [SQLITE_OMIT_JSON](https://www.sqlite.org/compile.html#omit_json)
  > Starting with sqlite 3.38.0 the JSON extension became opt-out rather
  than opt-in, so we disable it here.

  --disable-rtree
  > An R-Tree is a special index that is designed for doing range queries.
  > R-Trees are most commonly used in geospatial systems...
  https://www.sqlite.org/rtree.html

  --disable-fts4 --disable-fts5
  > FTS5 is an SQLite virtual table module that provides full-text
  > search functionality to database applications.

  DSQLITE_LIKE_DOESNT_MATCH_BLOBS
  > simplifies the implementation of the LIKE optimization and allows
  > queries that use the LIKE optimization to run faster.

  DSQLITE_OMIT_DECLTYPE
  > By omitting the (seldom-needed) ability to return the declared type of
  > columns from the result set of query, prepared statements can be made
  > to consume less memory.

  DSQLITE_OMIT_PROGRESS_CALLBACK
  > By omitting this interface, a single conditional is removed from the
  > inner loop of the bytecode engine, helping SQL statements to run slightly
  > faster.

  DSQLITE_OMIT_AUTOINIT
  > with the SQLITE_OMIT_AUTOINIT option, the automatic initialization is omitted.
  > This helps many API calls to run a little faster
  > it also means that the application must call sqlite3_initialize()
  manually.

  On my Linux box this results in a `libsqlite3.a` that shrinks from ~1.7mb to ~1.3mb.
  On macOS, `libsqlite3.a` shrinks from ~2.2mb to ~1.3mb.

  Guix Build:
  ```bash
  04626ec7b64086103bfb5537397d7953d0699b31da1b1bc100003c7d30991fdf  guix-build-dee690257c79/output/aarch64-linux-gnu/SHA256SUMS.part
  a77c72052266788e890a0d3d89cc6eee9dd72db6a1b6fdc8aab882b35a315284  guix-build-dee690257c79/output/aarch64-linux-gnu/bitcoin-dee690257c79-aarch64-linux-gnu-debug.tar.gz
  86d782f185ee0fae8e8733ab8a511de2ca2500f02eb3d4aaa20d65b4434dcd77  guix-build-dee690257c79/output/aarch64-linux-gnu/bitcoin-dee690257c79-aarch64-linux-gnu.tar.gz
  d81874ecd378470b01a429f2a4be07fcb4824b56ace146226b77088cc3c41baa  guix-build-dee690257c79/output/arm-linux-gnueabihf/SHA256SUMS.part
  8f24076800e5a19ac9005af8c6e4987b32e0a857a83af84931958505228ef58d  guix-build-dee690257c79/output/arm-linux-gnueabihf/bitcoin-dee690257c79-arm-linux-gnueabihf-debug.tar.gz
  b913f2b0d8f0e32a176bc0e9330106cf1973afe6e8ee955f3eeb89918ab9d565  guix-build-dee690257c79/output/arm-linux-gnueabihf/bitcoin-dee690257c79-arm-linux-gnueabihf.tar.gz
  034b47d8a60a19391e0e18f6fcc8fb3a87be78a9707e3ac3e7ee45eb37687bb7  guix-build-dee690257c79/output/arm64-apple-darwin/SHA256SUMS.part
  9efc5c0ceac05f6efce03fcde0cbe8b79bae43fe0d98aecb817908e76f5c39b7  guix-build-dee690257c79/output/arm64-apple-darwin/bitcoin-dee690257c79-arm64-apple-darwin-unsigned.dmg
  a549cdcbd311d9b025971b13987290f6cd2b93e16c8389e8a7a2ccd3608326ed  guix-build-dee690257c79/output/arm64-apple-darwin/bitcoin-dee690257c79-arm64-apple-darwin-unsigned.tar.gz
  3dd9e26a41596151022aa4288d778dc335a2b38bd391e3f65c0575dd6eb47b54  guix-build-dee690257c79/output/arm64-apple-darwin/bitcoin-dee690257c79-arm64-apple-darwin.tar.gz
  a71685a3ff62fbf456fc1d3c0f78ab7ab1d5a4a094c1f43d3829730d65a3ec51  guix-build-dee690257c79/output/dist-archive/bitcoin-dee690257c79.tar.gz
  d5c74167b2260b7de72fdbac77eedacbbb929214e279e07f41c3236ea20116b6  guix-build-dee690257c79/output/powerpc64-linux-gnu/SHA256SUMS.part
  03c043daa971f70886805c9e4174acd600e5cda03ae0e827043c4df81a6a6426  guix-build-dee690257c79/output/powerpc64-linux-gnu/bitcoin-dee690257c79-powerpc64-linux-gnu-debug.tar.gz
  3884423f67d48f671a90169962f9568dcbd8df582cd269df29a4399dc9c70e99  guix-build-dee690257c79/output/powerpc64-linux-gnu/bitcoin-dee690257c79-powerpc64-linux-gnu.tar.gz
  cee2847d4feeadebfdf4d37110faafa250824c68cfefc3bfa289ae8b09599a20  guix-build-dee690257c79/output/powerpc64le-linux-gnu/SHA256SUMS.part
  ca9f1085184b50e7bd377b68a58afd42ac4055ffe214eede8c6ca7291e00b45a  guix-build-dee690257c79/output/powerpc64le-linux-gnu/bitcoin-dee690257c79-powerpc64le-linux-gnu-debug.tar.gz
  b9cadff5b30244f6cb4f277e1ac610841332cb0d732637fe438fd51c88adf5a4  guix-build-dee690257c79/output/powerpc64le-linux-gnu/bitcoin-dee690257c79-powerpc64le-linux-gnu.tar.gz
  db6e45d9fc8868e5cb25fa3d0789247db10a6bab2a6f3866a27d641ae00bd03b  guix-build-dee690257c79/output/riscv64-linux-gnu/SHA256SUMS.part
  751e90c0aefa249f175c0c1707dc5eee3637e2b9657a9ee1b2068479e9830ff0  guix-build-dee690257c79/output/riscv64-linux-gnu/bitcoin-dee690257c79-riscv64-linux-gnu-debug.tar.gz
  8dd87bb24f1fbdba67fb6b72ab5fc93532452eada8c2942463100b8ed8118ae3  guix-build-dee690257c79/output/riscv64-linux-gnu/bitcoin-dee690257c79-riscv64-linux-gnu.tar.gz
  b53fe650f431e394a5af6bd809401551e3c36e4f7d90c31f39f51c5fe236efaf  guix-build-dee690257c79/output/x86_64-apple-darwin/SHA256SUMS.part
  b35b4ae345a625e42b8315acd9b75bb651f60265f67ec6f7d78a41c8d21c635e  guix-build-dee690257c79/output/x86_64-apple-darwin/bitcoin-dee690257c79-x86_64-apple-darwin-unsigned.dmg
  6748e4c64ae069632624cbec20de7f03eca1a7578fcef96607f3e8cb0ac4106e  guix-build-dee690257c79/output/x86_64-apple-darwin/bitcoin-dee690257c79-x86_64-apple-darwin-unsigned.tar.gz
  6415cbecfa18002a1e4865b996268558b4f26121118fd73b0ef4ca44967f34c7  guix-build-dee690257c79/output/x86_64-apple-darwin/bitcoin-dee690257c79-x86_64-apple-darwin.tar.gz
  f0a8d8837e80e42b5d77c3efc9d746c11ffc9909aece16dcba0a10726e1be7e0  guix-build-dee690257c79/output/x86_64-linux-gnu/SHA256SUMS.part
  418f4607159387ee17657120beda1c741fa6060e4457b304b857aa6c33859e6a  guix-build-dee690257c79/output/x86_64-linux-gnu/bitcoin-dee690257c79-x86_64-linux-gnu-debug.tar.gz
  d384fe8f2d6515c256a371ad84ae76ac9727ffd49887c0e22bb5ada4cd890092  guix-build-dee690257c79/output/x86_64-linux-gnu/bitcoin-dee690257c79-x86_64-linux-gnu.tar.gz
  3f441eb2d68ddd530b32f56a16ff639b27dcc58b5ba395e40f4c2be805f6cd8b  guix-build-dee690257c79/output/x86_64-w64-mingw32/SHA256SUMS.part
  d3d22479adc554ced965c4bde79f4c919e6b216acfca598fac4ebfc3b0e2d39d  guix-build-dee690257c79/output/x86_64-w64-mingw32/bitcoin-dee690257c79-win64-debug.zip
  89de153f5d839df6cd1266f8b3cb3ad455b2f6c43cee7644889da1e3efc7b2f1  guix-build-dee690257c79/output/x86_64-w64-mingw32/bitcoin-dee690257c79-win64-setup-unsigned.exe
  ba30708b9551b3794e4d2726aff27775dd4f1b347ea71b3fe1b00e39e8b7a594  guix-build-dee690257c79/output/x86_64-w64-mingw32/bitcoin-dee690257c79-win64-unsigned.tar.gz
  ab6a2b7a3e899fc58030a44b555e449d64aa69b5215d761bc550946b14f93515  guix-build-dee690257c79/output/x86_64-w64-mingw32/bitcoin-dee690257c79-win64.zip
  ```

ACKs for top commit:
  Sjors:
    tACK dee690257c7948510a0661e23c9e398a13e20659
  achow101:
    ACK dee690257c7948510a0661e23c9e398a13e20659
  hebasto:
    ACK dee690257c7948510a0661e23c9e398a13e20659, I have reviewed the code and it looks OK.

Tree-SHA512: e0605f049404905db94ea61473b2b68df008ceb86b9a09d8562ca3acc1f3a3be3893149fc62d189a6fbf24cfc76c393f2d1a1215292e9ae5dc4afc199e876821
2024-09-26 22:35:05 -05:00
fanquake
d725c5880d
Merge bitcoin/bitcoin#27312: depends: qrencode 4.1.1
eb1c3adf38cb71c3e6f298a61871738c4919b4a1 depends: qrencode 4.1.1 (fanquake)

Pull request description:

  Upgrade to the latest qrencode, and disable some warnings that cause compile failures with newer compilers (clang-15+).

  I haven't tested this (from a GUI perspective) at all. This is just "good enough" to keep things compiling, and uses some similar work-arounds as we have with other older packages, i.e bdb.

  Note that upstream, libqrencode is effectively unmaintained. No code changes for > 2 years. No responses to issues/PRs. Seems like the author has mostly dropped off of GitHub as well.

  This fixes part of #27299.

ACKs for top commit:
  TheCharlatan:
    Code review ACK eb1c3adf38cb71c3e6f298a61871738c4919b4a1

Tree-SHA512: 898eaac3e9915dfcdc0a011b736fff685a3b46990bd27f6038ef4d3e7cb6a276206438ea50d45908a051ce55c9b0779347d4be1d35271b67f76f409a7dc21fed
2024-09-26 22:34:13 -05:00
fanquake
482e5bbc49
Merge bitcoin/bitcoin#27462: depends: fix compiling bdb with clang-16 on aarch64
f8b8458276983f8fc1e2a47c4d00c1e30633067d depends: fix compiling bdb with clang-16 on aarch64 (fanquake)

Pull request description:

  Compiling bdb with clang-16 on aarch64 (hardware) currently fails:
  ```bash
  make -C depends/ bdb CC=clang CXX=clang++
  ...
  checking for mutexes... UNIX/fcntl
  configure: WARNING: NO SHARED LATCH IMPLEMENTATION FOUND FOR THIS PLATFORM.
  configure: error: Unable to find a mutex implementation
  ```

  Looking at config.log we've got:
  ```bash
  configure:18704: checking for mutexes
  configure:18815: clang -o conftest -pipe -std=c11 -O2 -Wno-error=implicit-function-declaration -Wno-error=format-security    -I/bitcoin/depends/aarch64-unknown-linux-gnu/include -D_GNU_SOURCE -D_REENTRANT   -L/bitcoin/depends/aarch64-unknown-linux-gnu/lib conftest.c  -lpthread >&5
  conftest.c:45:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
  main() {
  ^
  int
  conftest.c:50:2: warning: call to undeclared library function 'exit' with type 'void (int) __attribute__((noreturn))'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
          exit (
          ^
  conftest.c:50:2: note: include the header <stdlib.h> or explicitly provide a declaration for 'exit'
  1 warning and 1 error generated.
  ```

  Clang-16 changed `-Wimplicit-function-declaration` and `-Wimplicit-int`
  warnings into errors, see:
  https://releases.llvm.org/16.0.0/tools/clang/docs/ReleaseNotes.html#potentially-breaking-changes.

  > The -Wimplicit-function-declaration and -Wimplicit-int warnings now
  > default to an error in C99, C11, and C17. As of C2x, support for implicit
  > function declarations and implicit int has been removed, and the
  > warning options will have no effect. Specifying -Wimplicit-int in
  > C89 mode will now issue warnings instead of being a noop.

ACKs for top commit:
  hebasto:
    ACK f8b8458276983f8fc1e2a47c4d00c1e30633067d, tested on Ubuntu Lunar (`aarch64`) with:

Tree-SHA512: 5ca078b1c00915446e9f0f2ecaa4342295a2097996554345753315d1c81c23000c57be14e1ac5506a87820f5114aba748456f2c2b6426b0810504d62d761a787
2024-09-26 22:33:26 -05:00
merge-script
f0a53c99e9
Merge bitcoin/bitcoin#26994: depends: define __BSD_VISIBLE for FreeBSD bdb build
0e02f725482dd30b9f03903074a481af1164411d depends: define `__BSD_VISIBLE` for FreeBSD bdb build (fanquake)

Pull request description:

  Required for additional definitions (`IPC_R` & friends), to be available, when compiling under C11, which would otherwise cause compile fails.

  See: https://github.com/MarcoFalke/btc_nightly/pull/4.

ACKs for top commit:
  hebasto:
    ACK 0e02f725482dd30b9f03903074a481af1164411d, tested on FreeBSD 13.1:

Tree-SHA512: 885d4aa341d9668da360cf6dfafb97ce816803c54e76c0a06e448db39a723666d42cd14b3e713d17ecbe33163f5af69924567cf449d679a2db95b36357005d43
2024-09-26 22:32:03 -05:00
fanquake
b1ac9926e7
Merge bitcoin/bitcoin#26073: build: fix depends bdb compilation for BSDs
5b2529b2697e9b2675783c98a32a41e28c72e076 build: fix depends bdb compilation for BSDs (fanquake)

Pull request description:

  Currently, building bdb for *BSD HOSTs in depends fails with:
  ```bash
  libtool: compile:  clang -m64 -c -I. -I../dist/./.. -I/home/ubuntu/bitcoin/depends/x86_64-unknown-freebsd/include -D_THREAD_SAFE -pipe -std=c11 -O2 -Wno-error=implicit-function-declaration -Wno-error=format-security ../dist/./../mutex/mut_tas.c  -fPIC -DPIC -o mut_tas.o
  In file included from ../dist/./../mutex/mut_tas.c:11:
  In file included from ./db_int.h:884:
  In file included from ../dist/./../dbinc/mutex.h:15:
  ../dist/./../dbinc/mutex_int.h:932:2: error: unknown type name 'pthread_rwlock_t'
          MUTEX_FIELDS                    /* Opaque thread mutex structures. */
          ^
  ../dist/./../dbinc/mutex_int.h:65:3: note: expanded from macro 'MUTEX_FIELDS'
                  pthread_rwlock_t rwlock;        /* Read/write lock */   \
                  ^
  1 error generated.
  ```

  Defining `_XOPEN_SOURCE` >=600 fixes access to the missing `pthread_rwlock_t` definitions.

ACKs for top commit:
  jarolrod:
    ACK 5b2529b2697e9b2675783c98a32a41e28c72e076

Tree-SHA512: 76584bfef7a86c69a095eb722657aa681b95658a031ef2da79d91a616e5370da292a65e7d67cdf641711791422b8a407b647b630ad497ffb9908683479e6cfb6
2024-09-26 22:31:03 -05:00
fanquake
45e0f6e56d
Merge bitcoin/bitcoin#25763: bdb: disable Werror for format-security
b46c6ec52e1501b8c4337cead0301ef2c3777dd6 bdb: disable Werror for format-security (fanquake)

Pull request description:

  This is causing build failures in some build environments, like NixOS.
  I don't think we are going to patch bdb at this point, and this warning
  has existed for as long as we've used bdb.

  Fixes #25211.

  Tested (in Docker) with:
  ```bash
  docker run -it nixos/nix
  nix-shell -p gitMinimal gcc12 libtool pkg-config curl gnumake patch autoconf automake
  git clone https://github.com/bitcoin/bitcoin
  make -C bitcoin/depends bdb
  ```

  Co-authored-by: Ryan Ofsky <ryan@ofsky.org>

  Guix Build (x86_64):
  ```bash
  25981417fe09fa9e6f7b30875dac709a1de1146d77ec3c04bbf18eace16932b7  guix-build-b46c6ec52e15/output/aarch64-linux-gnu/SHA256SUMS.part
  9edc248dad9508ff7ec1ddc121caa606a2da27f5b36f664cb54b17bcdcfa407e  guix-build-b46c6ec52e15/output/aarch64-linux-gnu/bitcoin-b46c6ec52e15-aarch64-linux-gnu-debug.tar.gz
  e3bac816e7b1ef69927a818e6d882af0bf2dae69930181d4a144bfe309078391  guix-build-b46c6ec52e15/output/aarch64-linux-gnu/bitcoin-b46c6ec52e15-aarch64-linux-gnu.tar.gz
  d15461bb5fb5abafb3a515fa37e2f6b49a352e22b22d5d93aa4ecf7705781e72  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/SHA256SUMS.part
  f3d215bcee1e695a83092841544f00f34cbe65d6d5374673ef3b9a686caaaf85  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/bitcoin-b46c6ec52e15-arm-linux-gnueabihf-debug.tar.gz
  e9eb5bca37dfeac5207ec427bbe590528841cb9fb7d4a1e28646ebb00386a72d  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/bitcoin-b46c6ec52e15-arm-linux-gnueabihf.tar.gz
  d2b13313b5e638d54c77026c8e383c93e32c677fe9b48c457b16d872bf034219  guix-build-b46c6ec52e15/output/arm64-apple-darwin/SHA256SUMS.part
  21dc8ac4f0a1535c9459e9be43d65151e4affd7cdd0a65d2e95f6f8fb0960a71  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin-unsigned.dmg
  2dfb444497b71a546e56e0dbc1dc560860006489edfe0cf2e418378ac36c5780  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin-unsigned.tar.gz
  22ebb15f5bec1f5d610dc4706ebbb0977ed013209d73077a3c601e27db6bc37c  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin.tar.gz
  320d12f518f899fa1b31ca89553362f8e2855a4ae50e9756e8c12cdfbc4c5392  guix-build-b46c6ec52e15/output/dist-archive/bitcoin-b46c6ec52e15.tar.gz
  0c6773c8960746c837e2bd929057dab08f0d2963ef42f0ac071bfcb0fbc57e44  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/SHA256SUMS.part
  2c77c8213fa52bb0395a57d128b179e5615c463e4a4a582b111bf13bb907c293  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/bitcoin-b46c6ec52e15-powerpc64-linux-gnu-debug.tar.gz
  74023867ae64c3b32fccead48b3dcb81c55299a61bd921d22bc3a7c937c253fb  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/bitcoin-b46c6ec52e15-powerpc64-linux-gnu.tar.gz
  f3fff570610cf13ab77e8ce9b97700b82cf9d3f2ab61662ca49b2c99be824ae2  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/SHA256SUMS.part
  a638b18d3281253ad20d54e1dfd83157d6d38c6bd90a30f724de1d29d416aff5  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/bitcoin-b46c6ec52e15-powerpc64le-linux-gnu-debug.tar.gz
  340f56a514437cf25e75c14d3c90084f67b7c9cd0b304739033db17c9978c754  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/bitcoin-b46c6ec52e15-powerpc64le-linux-gnu.tar.gz
  35c06a9e06fded9bdaff53c2f142c03e5dc255c3fdfa8bad0af068a29b488471  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/SHA256SUMS.part
  049d06931661ab0f1cbcb37217083c35b809187a6bc51d7173c54c237ee1160d  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/bitcoin-b46c6ec52e15-riscv64-linux-gnu-debug.tar.gz
  a128abdd8898a7fb75f1b293141ec64ef70129576f61415025187d3cb9f2ecc6  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/bitcoin-b46c6ec52e15-riscv64-linux-gnu.tar.gz
  184be693f9633b0642bd75065d7bdf964cec9485af167504eea32d2d8aff8075  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/SHA256SUMS.part
  53ab2fb050533dc9a0f7b301b53d47ca65484f4e4eeea3b1259c353dd2cde4f2  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin-unsigned.dmg
  5d92fcb539b41fb3b41bd1878025ecbb958521caf7eae8c3ae796aa4f235a982  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin-unsigned.tar.gz
  be71b8da7fa0ac39a3f8191293326b300b93b8fe4efba732a78366aebbb971b9  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin.tar.gz
  07c195ad1ad1b00f5062d405913169367b73363a0418330c6add394c9df6e30b  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/SHA256SUMS.part
  4c11ba2d5a38921511b0fc88b1aca0e30f939291176d2c1f93b211d63b04fd45  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/bitcoin-b46c6ec52e15-x86_64-linux-gnu-debug.tar.gz
  694d21edd3f462163ecf5821dae74b39c9ee4fc4f5697fe5865a71a7e3dc24dc  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/bitcoin-b46c6ec52e15-x86_64-linux-gnu.tar.gz
  9b66a629a38e37b2746f237289bf4287184605876583ce24a073e42136e840af  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/SHA256SUMS.part
  7a8d633ac6f2c4a4955fb6dcc64b7560d96bfa74516ab2799ea7fc1b90c58b2f  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-debug.zip
  81169a19c0a954949293fee2c8825a86bfb36a3a34c4c0271d926982cad626e2  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-setup-unsigned.exe
  58be54d27b308f07609447ae6fca8a91e76630d7753adb54e200c576fee8e6c0  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-unsigned.tar.gz
  f13243cb6527bf7e9182673d32ccee32cb160d404271a0057e092a1cb571cc29  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64.zip
  ```

  Guix Build (arm64):
  ```bash
  d15461bb5fb5abafb3a515fa37e2f6b49a352e22b22d5d93aa4ecf7705781e72  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/SHA256SUMS.part
  f3d215bcee1e695a83092841544f00f34cbe65d6d5374673ef3b9a686caaaf85  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/bitcoin-b46c6ec52e15-arm-linux-gnueabihf-debug.tar.gz
  e9eb5bca37dfeac5207ec427bbe590528841cb9fb7d4a1e28646ebb00386a72d  guix-build-b46c6ec52e15/output/arm-linux-gnueabihf/bitcoin-b46c6ec52e15-arm-linux-gnueabihf.tar.gz
  f699f38a59bc888d5b728c934d1bf2a30dc46e6e0dfe4f6109c90c1e557b6334  guix-build-b46c6ec52e15/output/arm64-apple-darwin/SHA256SUMS.part
  e60d6ea30c18bfc948e146f6e8a6d9d53c84500c2117472999bc60e1bfa2dc4a  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin-unsigned.dmg
  8f5693a12671ea789e885b40dfeefdf076dd6f9856bfa867f33b7e1005779dd4  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin-unsigned.tar.gz
  a56b01ad6bf161f4cd7e3f89faea5b464460093131400df8f89c3b78839a72a9  guix-build-b46c6ec52e15/output/arm64-apple-darwin/bitcoin-b46c6ec52e15-arm64-apple-darwin.tar.gz
  320d12f518f899fa1b31ca89553362f8e2855a4ae50e9756e8c12cdfbc4c5392  guix-build-b46c6ec52e15/output/dist-archive/bitcoin-b46c6ec52e15.tar.gz
  0c6773c8960746c837e2bd929057dab08f0d2963ef42f0ac071bfcb0fbc57e44  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/SHA256SUMS.part
  2c77c8213fa52bb0395a57d128b179e5615c463e4a4a582b111bf13bb907c293  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/bitcoin-b46c6ec52e15-powerpc64-linux-gnu-debug.tar.gz
  74023867ae64c3b32fccead48b3dcb81c55299a61bd921d22bc3a7c937c253fb  guix-build-b46c6ec52e15/output/powerpc64-linux-gnu/bitcoin-b46c6ec52e15-powerpc64-linux-gnu.tar.gz
  f3fff570610cf13ab77e8ce9b97700b82cf9d3f2ab61662ca49b2c99be824ae2  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/SHA256SUMS.part
  a638b18d3281253ad20d54e1dfd83157d6d38c6bd90a30f724de1d29d416aff5  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/bitcoin-b46c6ec52e15-powerpc64le-linux-gnu-debug.tar.gz
  340f56a514437cf25e75c14d3c90084f67b7c9cd0b304739033db17c9978c754  guix-build-b46c6ec52e15/output/powerpc64le-linux-gnu/bitcoin-b46c6ec52e15-powerpc64le-linux-gnu.tar.gz
  35c06a9e06fded9bdaff53c2f142c03e5dc255c3fdfa8bad0af068a29b488471  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/SHA256SUMS.part
  049d06931661ab0f1cbcb37217083c35b809187a6bc51d7173c54c237ee1160d  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/bitcoin-b46c6ec52e15-riscv64-linux-gnu-debug.tar.gz
  a128abdd8898a7fb75f1b293141ec64ef70129576f61415025187d3cb9f2ecc6  guix-build-b46c6ec52e15/output/riscv64-linux-gnu/bitcoin-b46c6ec52e15-riscv64-linux-gnu.tar.gz
  184be693f9633b0642bd75065d7bdf964cec9485af167504eea32d2d8aff8075  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/SHA256SUMS.part
  53ab2fb050533dc9a0f7b301b53d47ca65484f4e4eeea3b1259c353dd2cde4f2  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin-unsigned.dmg
  5d92fcb539b41fb3b41bd1878025ecbb958521caf7eae8c3ae796aa4f235a982  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin-unsigned.tar.gz
  be71b8da7fa0ac39a3f8191293326b300b93b8fe4efba732a78366aebbb971b9  guix-build-b46c6ec52e15/output/x86_64-apple-darwin/bitcoin-b46c6ec52e15-x86_64-apple-darwin.tar.gz
  07c195ad1ad1b00f5062d405913169367b73363a0418330c6add394c9df6e30b  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/SHA256SUMS.part
  4c11ba2d5a38921511b0fc88b1aca0e30f939291176d2c1f93b211d63b04fd45  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/bitcoin-b46c6ec52e15-x86_64-linux-gnu-debug.tar.gz
  694d21edd3f462163ecf5821dae74b39c9ee4fc4f5697fe5865a71a7e3dc24dc  guix-build-b46c6ec52e15/output/x86_64-linux-gnu/bitcoin-b46c6ec52e15-x86_64-linux-gnu.tar.gz
  9b66a629a38e37b2746f237289bf4287184605876583ce24a073e42136e840af  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/SHA256SUMS.part
  7a8d633ac6f2c4a4955fb6dcc64b7560d96bfa74516ab2799ea7fc1b90c58b2f  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-debug.zip
  81169a19c0a954949293fee2c8825a86bfb36a3a34c4c0271d926982cad626e2  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-setup-unsigned.exe
  58be54d27b308f07609447ae6fca8a91e76630d7753adb54e200c576fee8e6c0  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64-unsigned.tar.gz
  f13243cb6527bf7e9182673d32ccee32cb160d404271a0057e092a1cb571cc29  guix-build-b46c6ec52e15/output/x86_64-w64-mingw32/bitcoin-b46c6ec52e15-win64.zip
  ```

ACKs for top commit:
  ryanofsky:
    Code review ACK b46c6ec52e1501b8c4337cead0301ef2c3777dd6. Thanks for addressing build issue. Probably there is no real security issue, but could look into that
  jarolrod:
    Code Review ACK b46c6ec52e1501b8c4337cead0301ef2c3777dd6

Tree-SHA512: 4b6b98e225e9b98fe1426a6402dae28e30327c932268d9bec31bf84aee12ec609ce97bd89a592a1f2cfd4d031ba520130bfef95006f7e09c0692af233f9614bb
2024-09-26 22:30:03 -05:00
Kittywhiskers Van Gogh
f4a53ba8ce
merge bitcoin#26945: systemtap 4.8 2024-09-04 18:46:14 +00:00
Kittywhiskers Van Gogh
457bbd3f8b
merge bitcoin#25360: SystemTap 4.7 (RISC-V support) 2024-09-04 18:46:14 +00:00
Kittywhiskers Van Gogh
c3d7e3a192
merge bitcoin#26944: fix systemtap download URL 2024-09-04 18:46:13 +00:00
Kittywhiskers Van Gogh
264e02fcc7
merge bitcoin#23724: add systemtap's sys/sdt.h as depends for GUIX builds with USDT tracepoints 2024-09-04 18:46:13 +00:00
Kittywhiskers Van Gogh
b02d5e34ff
merge bitcoin#30217: Update Boost download link 2024-08-13 22:53:52 +07:00
Kittywhiskers Van Gogh
9e80893a3c
partial bitcoin#28622: use macOS 14 SDK (Xcode 15.0)
includes:
- 51c97ffb6989a4cf56ad966d360a9fa0426e174c
2024-08-13 22:53:52 +07:00
Kittywhiskers Van Gogh
1d8b8900ef
merge bitcoin#26557: Update Boost to 1.81.0 in depends 2024-08-13 22:53:49 +07:00
Kittywhiskers Van Gogh
1ad64dadca
merge bitcoin#25873: Boost 1.80.0 2024-08-13 22:53:49 +07:00
Kittywhiskers Van Gogh
aa361b2717
merge bitcoin#24301: header-only Boost 2024-08-13 22:53:48 +07:00
pasta
d1addb27aa
fix: change fallback download path to be an s3 link which includes a few packages
Reasonably enough I guess, it appears that a number of our dependencies block github runner IP addresses? the blobs stored at the s3 link were downloadable from the normal location when accessed locally, but returned a 404 from github runners. These blobs were also not present in the bitcoincore depends-sources anyhow.
2024-08-11 15:02:31 +07:00
pasta
efe4c2d6eb
Merge #6143: backport: bitcoin#19160, #21663, #21669, #21732, #21738, #21750, #21775, #21812
f4cb0fbfe1 fix: no need to relay quorum commitment in case of block undo (Konstantin Akimov)
0431a33919 fix: follow-up changes for bitcoin#14193. (Konstantin Akimov)
86b76d19b6 Merge bitcoin/bitcoin#21812: ci: Enable D_GLIBCXX_DEBUG for multiprocess task (fanquake)
334496ea7e Merge bitcoin/bitcoin#21775: p2p: Limit m_block_inv_mutex (MarcoFalke)
23b83109ea Merge bitcoin/bitcoin#21750: net: remove unnecessary check of CNode::cs_vSend (MarcoFalke)
b34514191f Merge bitcoin/bitcoin#21738: test: Use clang-12 for ASAN, Add missing suppression (fanquake)
3411577473 Merge bitcoin/bitcoin#19160: multiprocess: Add basic spawn and IPC support (W. J. van der Laan)
970048d917 fix: missing changes from bitcoin#19267 - run multiprocess on CI (Konstantin Akimov)
f2b7ee73db fix: follow-up bitcoin#15402 - removed dead code (Konstantin Akimov)
274068cdbc fix: follow-up bitcoin/bitcoin#21732 - minor missing typo (MarcoFalke)
e9450a8b36 Merge #21669: test: Remove spurious double lock tsan suppressions by bumping to clang-12 (MarcoFalke)
ef92c3065c Merge #21663: ci: Fix macOS brew install command (W. J. van der Laan)

Pull request description:

  ## Issue being fixed or feature implemented
  Just regular backports from v22

  ## What was done?
  See commits for backports.

  Also there're 2 bugs are fixed which became visible after backporting bitcoin#21775 - both are related to possible deadlocks in net_processing

  ## How Has This Been Tested?
  Run unit and functional tests. Enabled multiprocess builds on CI

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] 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
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    utACK f4cb0fbfe1
  PastaPastaPasta:
    utACK f4cb0fbfe1

Tree-SHA512: 3204c2aa243fa4834ccf4ff4672d183cf9b35f87b857df8543572cd685729e15fca39f85b27194233e57cbc1746e36b556efab95ce20d0aa0a7d4476a9f3c6c0
2024-08-10 19:15:13 +07:00
Kittywhiskers Van Gogh
a3b79267e0
merge bitcoin#20744: Use std::filesystem. Remove Boost Filesystem & System 2024-08-06 18:00:39 +00:00
Kittywhiskers Van Gogh
28b96a071d
merge bitcoin#22840: fix unoptimized libraries in depends 2024-08-06 18:00:37 +00:00
W. J. van der Laan
3411577473
Merge bitcoin/bitcoin#19160: multiprocess: Add basic spawn and IPC support
84934bf70e11fe4cda1cfda60113a54895d4fdd5 multiprocess: Add echoipc RPC method and test (Russell Yanofsky)
7d76cf667eff512043a28d4407cc89f58796c42b multiprocess: Add comments and documentation (Russell Yanofsky)
ddf7ecc8dfc64cf121099fb047e1ac871de94f4c multiprocess: Add bitcoin-node process spawning support (Russell Yanofsky)
10afdf0280fa93bfffb0a7665c60dc155cd84514 multiprocess: Add Ipc interface implementation (Russell Yanofsky)
745c9cebd50fea1664efef571dc1ee1bddc96102 multiprocess: Add Ipc and Init interface definitions (Russell Yanofsky)
5d62d7f6cd48bbc4e9f37ecc369f38d5e1e0036c Update libmultiprocess library (Russell Yanofsky)

Pull request description:

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

  ---

  This PR adds basic process spawning and IPC method call support to `bitcoin-node` executables built with `--enable-multiprocess`[*].

  These changes are used in https://github.com/bitcoin/bitcoin/pull/10102 to let node, gui, and wallet functionality run in different processes, and extended in https://github.com/bitcoin/bitcoin/pull/19460 and https://github.com/bitcoin/bitcoin/pull/19461 after that to allow gui and wallet processes to be started and stopped independently and connect to the node over a socket.

  These changes can also be used to implement new functionality outside the `bitcoin-node` process like external indexes or pluggable transports (https://github.com/bitcoin/bitcoin/pull/18988). The `Ipc::spawnProcess` and `Ipc::serveProcess` methods added here are entry points for spawning a child process and serving a parent process, and being able to make bidirectional, multithreaded method calls between the processes. A simple example of this is implemented in commit "Add echoipc RPC method and test."

  Changes in this PR aside from the echo test were originally part of #10102, but have been split and moved here for easier review, and so they can be used for other applications like external plugins.

  Additional notes about this PR can be found at https://bitcoincore.reviews/19160

  [*] Note: the `--enable-multiprocess` feature is still experimental, and not enabled by default, and not yet supported on windows. More information can be found in [doc/multiprocess.md](https://github.com/bitcoin/bitcoin/blob/master/doc/multiprocess.md)

ACKs for top commit:
  fjahr:
    re-ACK 84934bf70e11fe4cda1cfda60113a54895d4fdd5
  ariard:
    ACK 84934bf. Changes since last ACK fixes the silent merge conflict about `EnsureAnyNodeContext()`. Rebuilt and checked again debug command `echoipc`.

Tree-SHA512: 52a948b5e18a26d7d7a09b83003eaae9b1ed2981978c36c959fe9a55abf70ae6a627c4ff913a3428be17400a3dace30c58b5057fa75c319662c3be98f19810c6
2024-07-27 13:04:24 +07:00