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#28370, #28759, #28580, #28786, #29078, #27897, #29651, #29695, #29673, #29828, #29846, #30231, #30438, partial bitcoin#30511 (guix backports: part 5) #6383

Merged
merged 14 commits into from
Nov 12, 2024

Conversation

kwvg
Copy link
Collaborator

@kwvg kwvg commented Nov 5, 2024

Additional Information

Breaking Changes

None expected

Checklist

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

@DashCoreAutoGuix
Copy link

Guix Automation has failed due to the HEAD commit not being signed by an authorized core-team member. Please rebase and sign or push a new empty signed commit to allow Guix build to happen.

@kwvg
Copy link
Collaborator Author

kwvg commented Nov 5, 2024

Expected hashes for 6906a63

ac6693111e7a24e767d9925204b404f30677eaaea8f3c7ab2ef5c024fa379d04  dashcore-22.0.0-beta.1-70-g6906a630a98d-aarch64-linux-gnu-debug.tar.gz
3ffb3894061bf669be8599c35f9b2c1775a0d4f35d4aa04ddd85663801d81418  dashcore-22.0.0-beta.1-70-g6906a630a98d-aarch64-linux-gnu.tar.gz
13ad66278d3327405466c81913d850160477a09b773df3bf448d825f6296a1d1  dashcore-22.0.0-beta.1-70-g6906a630a98d-arm-linux-gnueabihf-debug.tar.gz
a6575f9a68cedb81a68b5f82218b9ca446c796896f93e50ec9e2ede2f5c9da41  dashcore-22.0.0-beta.1-70-g6906a630a98d-arm-linux-gnueabihf.tar.gz
ba261228f3551d4d96f08282798995288486fddadb24b3f7ac372d09c3bce682  dashcore-22.0.0-beta.1-70-g6906a630a98d-arm64-apple-darwin-unsigned.dmg
e1a6b12606eb4aff2d0cfca0037174e220800894b13f88d6a66d91fb965da768  dashcore-22.0.0-beta.1-70-g6906a630a98d-arm64-apple-darwin-unsigned.tar.gz
ea235fc581dfd786a3546613bf86f2586e6b86751b5423f68385e274d2675e9c  dashcore-22.0.0-beta.1-70-g6906a630a98d-arm64-apple-darwin.tar.gz
57f093db186a76295b21c67843dd981736d6a6e9d735e484b5a6e5cf4940f9a5  dashcore-22.0.0-beta.1-70-g6906a630a98d.tar.gz
1c7dc5c230806dc9f1246939b30b60b57682c9cc60e2793a75816c1c88c64eab  dashcore-22.0.0-beta.1-70-g6906a630a98d-powerpc64-linux-gnu-debug.tar.gz
1d908fd7982ebbc13d0472b4d447a827b9bd8636308d51166262ea9391c6dbda  dashcore-22.0.0-beta.1-70-g6906a630a98d-powerpc64-linux-gnu.tar.gz
eb8527921bdcfbf1df1816245155ca2fcfea0dbcc721f89f18b73edc85d729ac  dashcore-22.0.0-beta.1-70-g6906a630a98d-riscv64-linux-gnu-debug.tar.gz
f15df0b354352741589ad9c8d659395b1de3351d6041c86a7fd89e2a8eb64c80  dashcore-22.0.0-beta.1-70-g6906a630a98d-riscv64-linux-gnu.tar.gz
1af7bd675fa1a819d26daf1d3fa5ef0cbc8ed0a54ea40bebd00d1a0705df08ab  dashcore-22.0.0-beta.1-70-g6906a630a98d-x86_64-apple-darwin-unsigned.dmg
e8f4467defbfca91770bfceb851426fa0dea853fb6780b2484c014d7d98e5d68  dashcore-22.0.0-beta.1-70-g6906a630a98d-x86_64-apple-darwin-unsigned.tar.gz
18ff55de9b9fff9f3fe3d19fa69e1d3d451fae01738a71aa9a48a9dec4017b9b  dashcore-22.0.0-beta.1-70-g6906a630a98d-x86_64-apple-darwin.tar.gz
a6d8bea31d885a04267c04e5386f8d2e4671a09f3fd285453cb44860a3a66287  dashcore-22.0.0-beta.1-70-g6906a630a98d-x86_64-linux-gnu-debug.tar.gz
80cc10fcd4c2ede00d00fd39a8c72945d7efc488b98e8fe1dfebf719ec7764d7  dashcore-22.0.0-beta.1-70-g6906a630a98d-x86_64-linux-gnu.tar.gz
7c72e69c85624dda200eed039a5239339a762f4d0df5369c90a33dd8a86dd998  dashcore-22.0.0-beta.1-70-g6906a630a98d-win64-debug.zip
79240bcb7b6dad64de4c4c8e3006979c7df59476586d7d9ad4b41aeac1cc6f6d  dashcore-22.0.0-beta.1-70-g6906a630a98d-win64-setup-unsigned.exe
ccddbb5489a8e398370641567a9a1f6020710d7c7da2edea82491503f7f6dd31  dashcore-22.0.0-beta.1-70-g6906a630a98d-win64-unsigned.tar.gz
523865ff21e05cca364ffb6608c3cedc70a5f0fc857e71dad5d6230f1ed2dece  dashcore-22.0.0-beta.1-70-g6906a630a98d-win64.zip

@kwvg kwvg marked this pull request as draft November 5, 2024 14:20
@kwvg kwvg removed the guix-build label Nov 7, 2024
PastaPastaPasta added a commit that referenced this pull request Nov 10, 2024
, bitcoin#26470, bitcoin#27296, bitcoin#27179, bitcoin#27813, bitcoin#27811, bitcoin#28069, bitcoin#28294, bitcoin#28324, bitcoin#28328, bitcoin#29987 (guix backports: part 4)

1edd121 merge bitcoin#29987: build with glibc 2.31 (Kittywhiskers Van Gogh)
0949825 revert: add exception for 32-bit ARM builds which need glibc 2.28 (Kittywhiskers Van Gogh)
0ac2531 merge bitcoin#28328: update time-machine (Kittywhiskers Van Gogh)
ef9c4bd merge bitcoin#28324: pre time-machine bump changes (Linux) (Kittywhiskers Van Gogh)
b45a127 merge bitcoin#28294: pre time-machine bump changes (Windows) (Kittywhiskers Van Gogh)
ed1f7fe merge bitcoin#28069: Remove librt usage from release binaries (Kittywhiskers Van Gogh)
5d51aa9 merge bitcoin#27811: Clean up manifest (Kittywhiskers Van Gogh)
d439e46 merge bitcoin#27813: Update `python-lief` package to 0.13.2 (Kittywhiskers Van Gogh)
70e6283 merge bitcoin#27179: use osslsigncode 2.5 (Kittywhiskers Van Gogh)
3799509 merge bitcoin#27296: import/sync python-lief (0.12.3) package definition from upstream (Kittywhiskers Van Gogh)
ac8bd5a refactor: move lief definitions to expected location (Kittywhiskers Van Gogh)
eb0ae08 merge bitcoin#26470: Clean up `libexec/build.sh` (Kittywhiskers Van Gogh)
d3d7a05 merge bitcoin#24031: don't compress macOS DMG (Kittywhiskers Van Gogh)
6a54603 merge bitcoin#27670: remove redundant glibc patches (Kittywhiskers Van Gogh)
0c988f0 merge bitcoin#21089: Add support for powerpc64{,le} (Kittywhiskers Van Gogh)
808d215 fix: set correct locale in guix ci container (UdjinM6)

Pull request description:

  ## Motivation

  In preparation for migrating to C++20 and bumping our minimum required compiler to ensure that we have access to greater portions of the C++20 spec, this pull request first of two pull requests aiming to upgrade our Guix setup to use GCC 12 (and GCC 11 for the macOS toolchain).

  Upgrades to the Clang toolchain for macOS and moving to GCC 12 for the macOS toolchain will be addressed in a separate pull request as the latter requires [bitcoin#21778](bitcoin#21778), which is well outside the scope of this PR.

  ## Additional Notes

  * Dependency for #6383

  * Newer versions of GCC will not behave as expected with `test-security-check.py` as the stack protector (listed as `Canary` in the test) now behaves as expected and no longer fails. This causes an error when running it as the test expects failure (see below). This isn't an issue upstream as they backported [bitcoin#29987](bitcoin#29987), which gets rid of those tests ([source](bitcoin@b5fc6d4#diff-52aa0cda44721f089e53b128cb1232a876006ef257b211655456b17dfb2ec712)).

    Therefore, we have backported that pull request as well.

    <details>

    <summary>Build failure:</summary>

    ```
    ======================================================================
    FAIL: test_ELF (__main__.TestSecurityChecks)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "/distsrc-base/distsrc-22.0.0-beta.1-70-g7907fab39c17-x86_64-linux-gnu/./contrib/devtools/test-security-check.py", line 61, in test_ELF
        self.assertEqual(call_security_check(cc, source, executable, ['-Wl,-zexecstack','-fno-stack-protector','-Wl,-znorelro','-no-pie','-fno-PIE', '-Wl,-z,separate-code']),
    AssertionError: Tuples differ: (1, 'test1: failed PIE NX RELRO CONTROL_FLOW') != (1, 'test1: failed PIE NX RELRO Canary CONTROL_FLOW')

    First differing element 1:
    'test1: failed PIE NX RELRO CONTROL_FLOW'
    'test1: failed PIE NX RELRO Canary CONTROL_FLOW'

    - (1, 'test1: failed PIE NX RELRO CONTROL_FLOW')
    + (1, 'test1: failed PIE NX RELRO Canary CONTROL_FLOW')
    ?                                +++++++

    ----------------------------------------------------------------------
    Ran 1 test in 0.126s

    FAILED (failures=1)
    ```

    </details>

    * The backport has the effect of bumping the target glibc version to 2.31, which as the release notes say, cuts off support for RHEL 8 and Ubuntu 18.04 LTS (`bionic`) (i.e. our Guix binaries won't run on these distros anymore, users running those distros will have to compile it themselves).

    This shouldn't be a problem as full support for RHEL 8 ended May 31, 2024 ([source](https://access.redhat.com/support/policy/updates/errata#Life_Cycle_Dates)) and standard support for `bionic` ended April 2023 ([source](https://ubuntu.com/about/release-cycle)).

    **Dash Core will still work on Ubuntu 20.04 LTS (`focal`) as it ships with glibc 2.31 ([source](https://packages.ubuntu.com/focal/glibc-doc))**

  ## 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
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK 1edd121

Tree-SHA512: 194a35a72ede5fb5488cdc41eb15320df7a5fa1fb8815c7342dd15b3983efff417fb1a525fdf497a98ede91958d0a5ed18f3e5f0f27c5cbc5dc25eb58116dbd5
Copy link

This pull request has conflicts, please rebase.

@kwvg
Copy link
Collaborator Author

kwvg commented Nov 10, 2024

Expected hashes for 91b7ef8

78c9720a8519489683ad6d022e4128230b6614153beae010ae9b6650d908aef4  dashcore-22.0.0-beta.1-96-g91b7ef86074a-aarch64-linux-gnu-debug.tar.gz
be8bf6d0cdab85d83d425459dfd9027ce8414c952912a31c7b72286aaefb5108  dashcore-22.0.0-beta.1-96-g91b7ef86074a-aarch64-linux-gnu.tar.gz
46b98cc5869c2c9360b02f51a6c54f4d2837841d5f6b702deea90583d640d8ec  dashcore-22.0.0-beta.1-96-g91b7ef86074a-arm-linux-gnueabihf-debug.tar.gz
76320260e51fae7209a382c90acc798f1c1ac810fae5c874d7c5ebd6263b6da7  dashcore-22.0.0-beta.1-96-g91b7ef86074a-arm-linux-gnueabihf.tar.gz
d9316d510d0647507131241933dd4a97400b8c6a0a15da5fd4799c37167e3b9e  dashcore-22.0.0-beta.1-96-g91b7ef86074a-arm64-apple-darwin-unsigned.dmg
72d46ea71ac465ba93708e322e2500cfe0f5e53831e2fe9b0405898cf6f93b7c  dashcore-22.0.0-beta.1-96-g91b7ef86074a-arm64-apple-darwin-unsigned.tar.gz
9d815991c3d8249a13eea2ceb81be1c0ce56cd05bc91bd0f0b31668109d4d3bd  dashcore-22.0.0-beta.1-96-g91b7ef86074a-arm64-apple-darwin.tar.gz
58be92e0c5042820e00f5398f4e9ccac64eb82e4810f2ab8020e181a17534e40  dashcore-22.0.0-beta.1-96-g91b7ef86074a.tar.gz
9ce3685bfd4e4b9350422d2ac06f26ab19e95cad440d13410b78d2add5ddcfb8  dashcore-22.0.0-beta.1-96-g91b7ef86074a-powerpc64-linux-gnu-debug.tar.gz
1d602c4a47dc3cca0b2aad5e49e3c7f624728698f026d1bb8739be5c6ff3af57  dashcore-22.0.0-beta.1-96-g91b7ef86074a-powerpc64-linux-gnu.tar.gz
9e559cb538d0b561a51de5b476404f30957dd423b880fedc7539d93e404c1bdd  dashcore-22.0.0-beta.1-96-g91b7ef86074a-riscv64-linux-gnu-debug.tar.gz
ab5ea2dac9556c0f491e69be38e759c8df89163deffdc24174d68f0b68ad026f  dashcore-22.0.0-beta.1-96-g91b7ef86074a-riscv64-linux-gnu.tar.gz
4e9607d452afc8bee73acf06f85a2c393f9b791030a38bd9115bed44d843b349  dashcore-22.0.0-beta.1-96-g91b7ef86074a-x86_64-apple-darwin-unsigned.dmg
11f1bc94fc7f31cfdb0889514912d6a12249c8ac026fda704a886977e477ee32  dashcore-22.0.0-beta.1-96-g91b7ef86074a-x86_64-apple-darwin-unsigned.tar.gz
0f2d22267c3d8788d7cc1fcb7e3e98e51b3b97f417e9743eced9818348861b41  dashcore-22.0.0-beta.1-96-g91b7ef86074a-x86_64-apple-darwin.tar.gz
729f0c132899f917f0980aa51e8b2e44b4af8380f642835237c3c8288970662c  dashcore-22.0.0-beta.1-96-g91b7ef86074a-x86_64-linux-gnu-debug.tar.gz
703dba21f46cd6bd84a67ce6274238b131d2f0b98a3797f15f38eb7aa048c183  dashcore-22.0.0-beta.1-96-g91b7ef86074a-x86_64-linux-gnu.tar.gz
c741b1c54a57c68a3616712d2a4d9878b0c107b83de0ccb048ef085f03ce5b44  dashcore-22.0.0-beta.1-96-g91b7ef86074a-win64-debug.zip
2a92a03d5233f2182b5e91b105b6f33f52b3a5cb2b0880cc2c24ff56c589d6ea  dashcore-22.0.0-beta.1-96-g91b7ef86074a-win64-setup-unsigned.exe
006dc3181cd476a4be6ccb892a54542ff7e04c4cbc990074dd718fa096c037d3  dashcore-22.0.0-beta.1-96-g91b7ef86074a-win64-unsigned.tar.gz
6448839d0cd907c70275db08c8d795940c34538eafcc5b379de940a7a01b1e72  dashcore-22.0.0-beta.1-96-g91b7ef86074a-win64.zip

@kwvg kwvg marked this pull request as ready for review November 10, 2024 20:54
@kwvg kwvg requested a review from knst November 10, 2024 20:54
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.

LGTM, hashes match

utACK 91b7ef8

@PastaPastaPasta PastaPastaPasta merged commit be97bfe into dashpay:develop Nov 12, 2024
32 of 33 checks passed
PastaPastaPasta added a commit that referenced this pull request Nov 14, 2024
, bitcoin#26059, bitcoin#26578, bitcoin#27798, bitcoin#27676, bitcoin#27999, bitcoin#28337, bitcoin#28422, bitcoin#28630, bitcoin#28783, partial bitcoin#24866, bitcoin#25612 (toolchain backports: part 1)

d7cb92a merge bitcoin#28783: remove `-bind_at_load` usage (Kittywhiskers Van Gogh)
019c9dd partial bitcoin#25612: default to using GCC tool wrappers for LTO (with GCC) (Kittywhiskers Van Gogh)
9e0b935 partial bitcoin#24866: No longer need to hack the `PATH` variable in `config.site` (Kittywhiskers Van Gogh)
5dbc83b merge bitcoin#28630: update `LD64_VERSION` to 711 (Kittywhiskers Van Gogh)
b265352 merge bitcoin#28422: cctools 986, ld64 711 & libtapi 1300.0.6.5 (Kittywhiskers Van Gogh)
fe94154 merge bitcoin#28337: use Clang 15 for macOS cross-compilation (Kittywhiskers Van Gogh)
ba28141 ci: add missing `xorriso` `PACKAGES` entry in macOS environment (Kittywhiskers Van Gogh)
62b0213 merge bitcoin#27999: add macOS test for fixup_chains usage (Kittywhiskers Van Gogh)
be17509 merge bitcoin#27676: Bump minimum required runtime version and prepare for building with upstream LLVM (Kittywhiskers Van Gogh)
9f5d4b3 merge bitcoin#27798: modernize clang flags for Darwin (Kittywhiskers Van Gogh)
54c538d merge bitcoin#26578: install binutils, not binutils-gold in depends (Kittywhiskers Van Gogh)
d0aae2b merge bitcoin#26059: revert "Build depends/qt with our platform definition" (Kittywhiskers Van Gogh)
9d1cd62 merge bitcoin#25917: libnatpmp 07004b97cf691774efebe70404cf22201e4d330d (Kittywhiskers Van Gogh)
fff0f6b merge bitcoin#25838: Use `mkspecs/bitcoin-linux-g++` for all Linux hosts (Kittywhiskers Van Gogh)
8d51bcc merge bitcoin#22380: add and use C_STANDARD and CXX_STANDARD in depends (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * Dependent on #6383
  * Dependency for #6385
  * [bitcoin#24866](bitcoin#24866) is partial because f3af4f7 alters the way `dsymutil`'s location is reported, which is relevant due to the build target `osx_debug` ([source](https://github.com/dashpay/dash/blob/3aa51d651597ecbdc3a0f16eb8bad39b5d4c1612/src/Makefile.am#L1025-L1026)) using `dsymutil` to generate flat dSYM bundles to ensure that stacktraces work as expected (introduced in [dash#3006](1807c47#diff-4cb884d03ebb901069e4ee5de5d02538c40dd9b39919c615d8eaa9d364bbbd77R668-R669))

    As-is, with the changes, aberrant behaviour is noticeable when running `configure` (see below), where `depends` defines `DSYMUTIL` as being included in the target directory of the `native_clang` package... despite Guix builds using `FORCE_USE_SYSTEM_CLANG` ([source](https://github.com/dashpay/dash/blame/3aa51d651597ecbdc3a0f16eb8bad39b5d4c1612/contrib/guix/libexec/build.sh#L206)), meaning, the `native_clang` is never staged in `depends` because the build environment natively has it.

    Attempting to override it in `build.sh` yielded no results.

    <details>

    <summary>Run:</summary>

    ```
    [...]
    checking whether dsymutil needs -flat... ./configure: line 36201: /dash/depends/x86_64-apple-darwin/native/bin/x86_64-apple-darwin-dsymutil: No such file or directory
    no

    checking that generated files are newer than configure... done
    [...]
    ```

    </details>

    Which eventually results in the build failing

    <details>

    <summary>Failure:</summary>

    ```
    make: Entering directory '/distsrc-base/distsrc-22.0.0-beta.1-79-gb284e4c7cd48-x86_64-apple-darwin/src'
    for i in dashd  dash-cli dash-tx dash-wallet test/test_dash  qt/dash-qt  ; do mkdir -p $i.dSYM/Contents/Resources/DWARF && /dash/depends/x86_64-apple-darwin/native/bin/x86_64-apple-darwin-dsymutil -o $i.dSYM/Contents/Resources/DWARF/$(basename $i) $i &> /dev/null ; done
    make: *** [Makefile:22468: osx_debug] Error 127
    make: Leaving directory '/distsrc-base/distsrc-22.0.0-beta.1-79-gb284e4c7cd48-x86_64-apple-darwin/src'
    ```

    </details>

    To avoid breakage, the commit overriding `DSYMUTIL` and subsequent changes building on it (portions of [bitcoin#25612](bitcoin#25612)) have been skipped.

  ## Breaking Changes

  * The minimum runtime version needed to run Dash Qt is now macOS 11 (Big Sur)

  ## 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
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK d7cb92a

Tree-SHA512: 28c9ea13adc80a00b501afca286bd0b97e14a272bb50f578df7ab1af6ee8139f563bc5d670f0bfe3632bfab769c8228a76b5bcc51cfb727a54e31ac0f9af7a97
knst added a commit to knst/dash that referenced this pull request Dec 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants