Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

backport: merge bitcoin#22402, #23583, #23618, #17874, #21286, #23489, #23675, #24130, #23556, #23862, #24722, #24132, #24668, #25643, #25719, partial #22469, #23677 (qt backports) #5362

Merged
merged 21 commits into from
Aug 8, 2023

Conversation

@kwvg kwvg force-pushed the qt_bump branch 2 times, most recently from 35b71ab to 484283e Compare May 9, 2023 16:32
@github-actions
Copy link

This pull request has conflicts, please rebase.

@github-actions
Copy link

github-actions bot commented Jun 6, 2023

This pull request has conflicts, please rebase.

@github-actions
Copy link

This pull request has conflicts, please rebase.

@github-actions
Copy link

This pull request has conflicts, please rebase.

@github-actions
Copy link

This pull request has conflicts, please rebase.

@kwvg kwvg requested review from UdjinM6 and PastaPastaPasta August 3, 2023 15:15
Copy link

@UdjinM6 UdjinM6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Guix hashes match

Gitian

3ad4ab0f24d78f484be444f0089cd748c9eda06cd6bfd9d8f44239928af32206  dashcore-e573aea84206-aarch64-linux-gnu-debug.tar.gz
e89e3e84f4a3a552f662a02d98394816dd2e80ca846f1bac7a0ce32df17b52cf  dashcore-e573aea84206-aarch64-linux-gnu.tar.gz
90a72a350d5cb87a1349dda0a2b3576d9855b236bc563eeba52b4c8a52a84600  dashcore-e573aea84206-riscv64-linux-gnu-debug.tar.gz
e562aeb5e4c15eacab604f2cba5a84e60d0407b4d4fcae86da185d12b67c5182  dashcore-e573aea84206-riscv64-linux-gnu.tar.gz
06261b33b425e47240856941618984723167d76b5e6dc282c7b9fd470c83dfb0  dashcore-e573aea84206-x86_64-linux-gnu-debug.tar.gz
57d50eb4f49994b55b722e42a02e8bd2994e994653e8fec0b3fd13f08950e1e9  dashcore-e573aea84206-x86_64-linux-gnu.tar.gz
abe1e15bde3bdd152a3a5f57cd7270f4525a81c3bf91188dea5237114bce0652  dashcore-e573aea84206-win-unsigned.tar.gz
a7a614220f3bed587eadfa91a22a49a93587c7bea905fd85c783439f8c9be27d  dashcore-e573aea84206-win64-debug.zip
b5877cfce7f7f2a85010103fb2b6a0825d01e15fe36313e809a41dbc2051d2f2  dashcore-e573aea84206-win64-setup-unsigned.exe
5cf76b591a81cca88a0f403e5543626f689751b9efb5ee151382ce674493cc27  dashcore-e573aea84206-win64.zip
95ce15715216ed8eb40e1995149606d0d8f32a3eab83442265c3b3d4a04c6ed4  dashcore-e573aea84206-osx-unsigned.dmg
c1cb011fa888dfd2fb2d21479c4a38ade6729ed8951a7afb1ed1e95cf59c4232  dashcore-e573aea84206-osx-unsigned.tar.gz
8d28e451e9bfe0b7c11fc6e8b16057b23c9fe57619ab457fdcb8af729f27fc86  dashcore-e573aea84206-osx64-debug.tar.gz
c79728ec8a36cae526df81eff1945552dc072a31b14af25b33539f6c2a75ce52  dashcore-e573aea84206-osx64.tar.gz

utACK

Copy link
Member

@PastaPastaPasta PastaPastaPasta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK for merging via merge commit

kwvg added 21 commits August 8, 2023 06:05
excludes `fix_openbsd_test_lib.patch` as it's already present

```
Preprocessing boost...
patching file boost/test/impl/execution_monitor.ipp
Reversed (or previously applied) patch detected!  Assume -R? [n]
```
@PastaPastaPasta PastaPastaPasta merged commit 666fa51 into dashpay:develop Aug 8, 2023
@UdjinM6 UdjinM6 added this to the 20 milestone Aug 21, 2023
PastaPastaPasta added a commit that referenced this pull request Jul 19, 2024
bbc9957 fix: sidestep c++17 std::unary_function removal by compiling boost with c++11 (Kittywhiskers Van Gogh)
3c622a3 revert: partial dash#5610 (make depends compilable with Xcode 15 on macos) (Kittywhiskers Van Gogh)
f15e1db fix: make `std::unary_function` suppression flag no longer contingent on `--enable-suppress-external-warnings` (Kittywhiskers Van Gogh)
5db84e2 revert: partial dash#3003 (Fix 2 common Travis failures which happen when Travis has network issues) (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  Despite builders for BSD-based platforms being backported as early as [dash#5362](#5362), they didn't work on account of using a `curl` flag, `--retry`, that was lopped off other builders in [dash#3003](#3003) as a way to mitigate aberrant Travis CI-specific behaviour.

  As the variable `$(DOWNLOAD_RETRIES)` was removed as part of that mitigation, the introduction of builders that rely on this variable caused failures as the flag was accompanied by nothing. As our CI host isn't based on FreeBSD, this went unnoticed. When deciding between extending the existing patch and reverting it, reverting it proved to be more attractive on account of us no longer using Travis CI and the revert bringing us closer to upstream.

  Additionally, the `std::unary_function` patch that was introduced in [dash#5610](#5610) proves to be necessary on BSD-based platforms as well (had to be extended for and tested on GhostBSD, based on FreeBSD 13.2-STABLE, Clang 16). Instead of conditionally patching based on platform and compiler, a more reliable patch would be to downgrade the C++ version used to build Boost at the last version to have `std::unary_function`, which would be C++11, albeit deprecated ([source](https://en.cppreference.com/w/cpp/utility/functional/unary_function)).

  Though it's likely this route wasn't taken originally due to compiler errors that happened despite downgrading to C++11. These errors were due to the compiler objecting to `std::unary_function` usage in Boost headers, despite the backport of [bitcoin#25436](bitcoin#25436), which should've solved this problem. The reason the errors were still persisting is because the necessary flag, `-DBOOST_NO_CXX98_FUNCTION_BASE`, was only applied if `--enable-suppress-external-warnings` was set. CI didn't catch this, as the flag is always set, to keep log lengths manageable. This has been rectified.

  All changes combined, one should be able to build non-Qt Dash binaries using `depends` though building the Qt client from `depends`  unfortunately remains a problem, even upstream ([source](bitcoin#23955 (comment)), [source](bitcoin#23948 (comment))).

  ## Demo

  **Based on bbc9957**

  Built using:
  * **`depends` flags:** `NO_QT=1 ALLOW_HOST_PACKAGES=1 HOST=x86_64-unknown-freebsd13.2`
  * **`configure` flags :** `--prefix=$(pwd)/depends/x86_64-unknown-freebsd13.2 --enable-debug --enable-suppress-external-warnings --with-gui`
  * Qt installed using `pkg` (`qt5`)

  ![Dash-Qt running on GhostBSD](https://github.com/dashpay/dash/assets/63189531/608ff7e6-0e53-41a6-92dd-e31ab2c76e2e)

  ## Checklist:

  - [x] I have performed a self-review of my own code **(note: N/A)**
  - [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 **(note: N/A)**
  - [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:
    light ACK bbc9957
  PastaPastaPasta:
    utACK bbc9957
  knst:
    ACK bbc9957

Tree-SHA512: b29d6775f42965d2f09307aff0192012aa192e39e06a83b800613831dc00fc7173201d496117fbe86850f5208a0b7688a376f2ee618881c062c28d694085efc9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants