Commit Graph

27852 Commits

Author SHA1 Message Date
Kittywhiskers Van Gogh
62b0213c45
merge bitcoin#27999: add macOS test for fixup_chains usage 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
be175091e6
merge bitcoin#27676: Bump minimum required runtime version and prepare for building with upstream LLVM 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
9f5d4b3719
merge bitcoin#27798: modernize clang flags for Darwin 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
54c538d697
merge bitcoin#26578: install binutils, not binutils-gold in depends 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
d0aae2bd3d
merge bitcoin#26059: revert "Build depends/qt with our platform definition" 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
9d1cd6255d
merge bitcoin#25917: libnatpmp 07004b97cf691774efebe70404cf22201e4d330d 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
fff0f6b628
merge bitcoin#25838: Use mkspecs/bitcoin-linux-g++ for all Linux hosts 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
8d51bcc171
merge bitcoin#22380: add and use C_STANDARD and CXX_STANDARD in depends 2024-11-13 11:07:38 +00:00
pasta
3aa51d6515
Merge #6376: refactor: a bunch of trivial-ish headers improvements
e9387eef69 refactor: remove unused includes and forward declarations from headers (Konstantin Akimov)
f2a186f3f3 refactor: remove definition IsQuorumDKGEnabled from header (Konstantin Akimov)
8a7941bd0d refactor: merge helper GetCoinbaseTx which is used only once into GetNonNullCoinbaseChainlock (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  Split from https://github.com/dashpay/dash/pull/6375 and added some extra

  ## What was done?
  Tidy up headers of evo/ and llmq/:
   - removed unused includes and added missing
   - removed unused forward declarations and added missing
   - removed helper GetCoinbaseTx, moved helper IsQuorumDKGEnabled from header to implementation

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

  Compilation time _in theory_ should be improved, in really it shaved just 2-5 seconds from 5 minutes by my benchmark.

  ## 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 _(for repository code-owners and collaborators only)_

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

Tree-SHA512: 7b4795fe0bcea23b9f368a962b888d610cac94b42dd6419cfe06977c1a28bbe27a7a2ae2e4cd730ec0ca4f8b333f656a601ebb90bc271f4117dec7a424a08b45
2024-11-12 08:46:07 -06:00
pasta
b12f5f5f7c
Merge #6381: refactor: a bunch of trivial-ish code improvements
c32fac079f refactor: more `CGovernanceVote` cleanups (UdjinM6)
efc8c99139 refactor: Introduce `get_chain_conf_names` (UdjinM6)
519966efff refactor: Refactor `CCbTx` python class to match c++ declaration (UdjinM6)
38a0b5ac04 refactor: Move `HasChainLock()` calls out of loops (UdjinM6)
6370c7a9e5 refactor: Tidy up `CGovernanceVote` a bit (UdjinM6)
ae675d5314 refactor: Drop redundant `SplitBy` (UdjinM6)
88c3a13674 refactor: Use `switch..case` instead of `if` in `AvailableCoins` (UdjinM6)
38b304c7b0 refactor: Make bls worker aggregator batch size const (rename it accordingly) (UdjinM6)
0cf7d4a65e refactor: Turn `ReadResult` into enum class (UdjinM6)
d9aab0fa60 refactor: Rename `masternode_state_t` and turn it into enum class (UdjinM6)

Pull request description:

  ## Issue being fixed or feature implemented

  ## What was done?

  ## How Has This Been Tested?

  ## Breaking Changes

  ## Checklist:
  - [ ] 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:
  knst:
    utACK c32fac079f
  PastaPastaPasta:
    utACK c32fac079f

Tree-SHA512: 7a33d2d535f73c858cd01a442fb28793b1ea185a2eb50d6bce86b44be1012b7427649e3496647b4a0a7d7816dbbb50f138fa701d203c2aa1e7a515c9c9a0e931
2024-11-12 08:41:11 -06:00
UdjinM6
f4d879a0b3
guix: more sanity checks for WORKSPACE_PATH 2024-11-12 16:36:32 +03:00
UdjinM6
07f056a377
guix: Let XCODE_SOURCE be specified via env 2024-11-12 16:36:28 +03:00
UdjinM6
74489dc82d
chore: Log when preparing macOS SDK or adding safe.directory option 2024-11-12 15:28:55 +03:00
UdjinM6
3ac5739e38
guix: "Invert" guix-start/guix-check cmd-line argument behaviour, defaults to pwd 2024-11-12 15:17:13 +03:00
UdjinM6
187a4f1a0c
guix: Avoid adding duplicate safe.directory option 2024-11-12 15:13:31 +03:00
pasta
be97bfeedc
Merge #6383: backport: merge bitcoin#28370, #28759, #28580, #28786, #29078, #27897, #29651, #29695, #29673, #29828, #29846, #30231, #30438, partial bitcoin#30511 (guix backports: part 5)
91b7ef8607 merge bitcoin#30438: build Linux GCC with --enable-cet (Kittywhiskers Van Gogh)
cfc6cba4ea partial bitcoin#30511: GCC 12 consolidation (Kittywhiskers Van Gogh)
06f54318b3 merge bitcoin#30231: bump time-machine to f0bb724211872cd6158fce6162e0b8c73efed126 (Kittywhiskers Van Gogh)
5b292eec92 merge bitcoin#29846: replace GCC unaligned VMOV patch with binutils patch (Kittywhiskers Van Gogh)
4d1f7dccd7 merge bitcoin#29828: remove `gcc-toolchain static` from Windows build (Kittywhiskers Van Gogh)
f321d3de0c merge bitcoin#29673: use GCC 11 in macOS build env (Kittywhiskers Van Gogh)
d570e2d21f merge bitcoin#29695: build GCC with --enable-standard-branch-protection (Kittywhiskers Van Gogh)
c965943a57 merge bitcoin#29651: bump time-machine to dc4842797bfdc5f9f3f5f725bf189c2b68bd6b5a (Kittywhiskers Van Gogh)
59a125a5ad merge bitcoin#27897: use GCC 12.3.0 to build releases (Kittywhiskers Van Gogh)
a701b06435 merge bitcoin#29078: Bump guix time-machine to unlock riscv64 metal (Kittywhiskers Van Gogh)
d4b10a3813 merge bitcoin#28786: switch to 6.1 kernel headers over 5.15 (Kittywhiskers Van Gogh)
c3718700ab merge bitcoin#28580: update time-machine (Kittywhiskers Van Gogh)
d36c9b6466 merge bitcoin#28759: update signapple to latest master (Kittywhiskers Van Gogh)
38c71d88b4 merge bitcoin#28370: remove GCC 10 workaround from NSIS (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * Dependent on https://github.com/dashpay/dash/pull/6382
  * Dependency for https://github.com/dashpay/dash/pull/6384

  ## 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 **(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:
    utACK 91b7ef8607

Tree-SHA512: 0cfb436a430cf4b624a48a9928ecac9cd5c50e88e51ed04e7d1d0100968af8be1183364f035ac75153781a5e1616aa2f6fadabf0a1c03ec4b66dedea544b77ad
2024-11-11 20:19:16 -06:00
UdjinM6
87c978605e
guix: guix-start should respect SDK_PATH 2024-11-11 20:56:16 +03:00
Kittywhiskers Van Gogh
ee5f62b0db
guix: build only supported targets using Guix container 2024-11-11 11:30:31 +03:00
Konstantin Akimov
e9387eef69
refactor: remove unused includes and forward declarations from headers 2024-11-11 14:41:35 +07:00
Konstantin Akimov
f2a186f3f3
refactor: remove definition IsQuorumDKGEnabled from header 2024-11-11 14:41:19 +07:00
Konstantin Akimov
8a7941bd0d
refactor: merge helper GetCoinbaseTx which is used only once into GetNonNullCoinbaseChainlock 2024-11-11 14:39:56 +07:00
Kittywhiskers Van Gogh
91b7ef8607
merge bitcoin#30438: build Linux GCC with --enable-cet 2024-11-10 17:58:34 +00:00
Kittywhiskers Van Gogh
cfc6cba4ea
partial bitcoin#30511: GCC 12 consolidation
excludes:
- 8b41ede55ebbc6978deb3f4fad5e18b76b372506
2024-11-10 17:58:34 +00:00
Kittywhiskers Van Gogh
06f54318b3
merge bitcoin#30231: bump time-machine to f0bb724211872cd6158fce6162e0b8c73efed126 2024-11-10 17:58:34 +00:00
Kittywhiskers Van Gogh
5b292eec92
merge bitcoin#29846: replace GCC unaligned VMOV patch with binutils patch 2024-11-10 17:58:34 +00:00
Kittywhiskers Van Gogh
4d1f7dccd7
merge bitcoin#29828: remove gcc-toolchain static from Windows build 2024-11-10 17:58:34 +00:00
Kittywhiskers Van Gogh
f321d3de0c
merge bitcoin#29673: use GCC 11 in macOS build env 2024-11-10 17:58:34 +00:00
Kittywhiskers Van Gogh
d570e2d21f
merge bitcoin#29695: build GCC with --enable-standard-branch-protection 2024-11-10 17:58:34 +00:00
Kittywhiskers Van Gogh
c965943a57
merge bitcoin#29651: bump time-machine to dc4842797bfdc5f9f3f5f725bf189c2b68bd6b5a 2024-11-10 17:58:33 +00:00
Kittywhiskers Van Gogh
59a125a5ad
merge bitcoin#27897: use GCC 12.3.0 to build releases 2024-11-10 17:58:33 +00:00
Kittywhiskers Van Gogh
a701b06435
merge bitcoin#29078: Bump guix time-machine to unlock riscv64 metal 2024-11-10 17:58:33 +00:00
Kittywhiskers Van Gogh
d4b10a3813
merge bitcoin#28786: switch to 6.1 kernel headers over 5.15 2024-11-10 17:58:33 +00:00
Kittywhiskers Van Gogh
c3718700ab
merge bitcoin#28580: update time-machine 2024-11-10 17:58:33 +00:00
Kittywhiskers Van Gogh
d36c9b6466
merge bitcoin#28759: update signapple to latest master 2024-11-10 17:58:33 +00:00
Kittywhiskers Van Gogh
38c71d88b4
merge bitcoin#28370: remove GCC 10 workaround from NSIS 2024-11-10 17:58:33 +00:00
pasta
f155ecfa29
Merge #6382: backport: merge bitcoin#21089, #27670, #24031, #26470, #27296, #27179, #27813, #27811, #28069, #28294, #28324, #28328, #29987 (guix backports: part 4)
1edd1215ef merge bitcoin#29987: build with glibc 2.31 (Kittywhiskers Van Gogh)
09498259d3 revert: add exception for 32-bit ARM builds which need glibc 2.28 (Kittywhiskers Van Gogh)
0ac25311d5 merge bitcoin#28328: update time-machine (Kittywhiskers Van Gogh)
ef9c4bdc60 merge bitcoin#28324: pre time-machine bump changes (Linux) (Kittywhiskers Van Gogh)
b45a127658 merge bitcoin#28294: pre time-machine bump changes (Windows) (Kittywhiskers Van Gogh)
ed1f7fe812 merge bitcoin#28069: Remove librt usage from release binaries (Kittywhiskers Van Gogh)
5d51aa940d merge bitcoin#27811: Clean up manifest (Kittywhiskers Van Gogh)
d439e4612f merge bitcoin#27813: Update `python-lief` package to 0.13.2 (Kittywhiskers Van Gogh)
70e62830a1 merge bitcoin#27179: use osslsigncode 2.5 (Kittywhiskers Van Gogh)
3799509603 merge bitcoin#27296: import/sync python-lief (0.12.3) package definition from upstream (Kittywhiskers Van Gogh)
ac8bd5ae5f refactor: move lief definitions to expected location (Kittywhiskers Van Gogh)
eb0ae0828a merge bitcoin#26470: Clean up `libexec/build.sh` (Kittywhiskers Van Gogh)
d3d7a0562a merge bitcoin#24031: don't compress macOS DMG (Kittywhiskers Van Gogh)
6a54603ca3 merge bitcoin#27670: remove redundant glibc patches (Kittywhiskers Van Gogh)
0c988f06d8 merge bitcoin#21089: Add support for powerpc64{,le} (Kittywhiskers Van Gogh)
808d215926 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](https://github.com/bitcoin/bitcoin/pull/21778), which is well outside the scope of this PR.

  ## Additional Notes

  * Dependency for https://github.com/dashpay/dash/pull/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](https://github.com/bitcoin/bitcoin/pull/29987), which gets rid of those tests ([source](b5fc6d46a3 (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 1edd1215ef

Tree-SHA512: 194a35a72ede5fb5488cdc41eb15320df7a5fa1fb8815c7342dd15b3983efff417fb1a525fdf497a98ede91958d0a5ed18f3e5f0f27c5cbc5dc25eb58116dbd5
2024-11-10 10:34:59 -06:00
Kittywhiskers Van Gogh
1edd1215ef
merge bitcoin#29987: build with glibc 2.31 2024-11-06 19:22:02 +00:00
Kittywhiskers Van Gogh
09498259d3
revert: add exception for 32-bit ARM builds which need glibc 2.28
reverts:
- 853583019b

We're going to be updating to glibc 2.31 in the next commit
2024-11-06 19:22:02 +00:00
Kittywhiskers Van Gogh
0ac25311d5
merge bitcoin#28328: update time-machine 2024-11-06 19:22:02 +00:00
Kittywhiskers Van Gogh
ef9c4bdc60
merge bitcoin#28324: pre time-machine bump changes (Linux) 2024-11-06 19:22:02 +00:00
Kittywhiskers Van Gogh
b45a127658
merge bitcoin#28294: pre time-machine bump changes (Windows) 2024-11-06 19:22:02 +00:00
Kittywhiskers Van Gogh
ed1f7fe812
merge bitcoin#28069: Remove librt usage from release binaries 2024-11-06 19:22:02 +00:00
Kittywhiskers Van Gogh
5d51aa940d
merge bitcoin#27811: Clean up manifest 2024-11-06 19:22:02 +00:00
Kittywhiskers Van Gogh
d439e4612f
merge bitcoin#27813: Update python-lief package to 0.13.2 2024-11-06 19:22:01 +00:00
Kittywhiskers Van Gogh
70e62830a1
merge bitcoin#27179: use osslsigncode 2.5 2024-11-06 19:22:01 +00:00
Kittywhiskers Van Gogh
3799509603
merge bitcoin#27296: import/sync python-lief (0.12.3) package definition from upstream 2024-11-06 19:22:01 +00:00
Kittywhiskers Van Gogh
ac8bd5ae5f
refactor: move lief definitions to expected location
Should help upcoming commits render their diffs correctly
2024-11-06 19:22:01 +00:00
Kittywhiskers Van Gogh
eb0ae0828a
merge bitcoin#26470: Clean up libexec/build.sh 2024-11-06 19:22:01 +00:00
Kittywhiskers Van Gogh
d3d7a0562a
merge bitcoin#24031: don't compress macOS DMG 2024-11-06 19:22:01 +00:00
Kittywhiskers Van Gogh
6a54603ca3
merge bitcoin#27670: remove redundant glibc patches 2024-11-06 19:22:01 +00:00