Commit Graph

27931 Commits

Author SHA1 Message Date
pasta
0f39da9631
Merge #6417: refactor: introduce cs_pendingSigns
397a157e8d refactor: introduce cs_pendingSigns (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  Much more minimal version of https://github.com/dashpay/dash/pull/6410; data from testnet while MNs were doing lots of instantsend locking showed minimal contention over signing_shares cs, however, the contention that did exist, most was a result of AsyncSign conflicting with something else. This should resolve the vast majority of contention in signing_shares while minimizing the complication / risk of introducing dead locks compared to 6410

  ## What was done?
  introduce cs_pendingSigns

  ## How Has This Been Tested?
  Built locally

  ## Breaking Changes
  None

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [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 _(for repository code-owners and collaborators only)_

ACKs for top commit:
  knst:
    utACK 397a157e8d
  UdjinM6:
    utACK 397a157e8d

Tree-SHA512: aac741c274449cf9c22625ac95e964d275dd1454647eaa2fc064c90b44a215e5509c9f9b8aceccbd49002edc21cbea883900f202204aa2138c104f4989ae5e26
2024-11-21 11:37:57 -06:00
pasta
242dc519ca
Merge #6404: fix(qt): avoid potential precision loss in amounts on Governance Tab
c48efdac83 fix(qt): avoid potential precision loss in amounts on Governance Tab (UdjinM6)

Pull request description:

  ## Issue being fixed or feature implemented
  https://github.com/dashpay/dash/pull/6403#discussion_r1847834174

  ## 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 c48efdac83
  PastaPastaPasta:
    utACK c48efdac83

Tree-SHA512: 705bc154e10150e32e3ff04d4a90de14e29ffd195cc9f94a753dd1b4588f2730d6526cd66d851005b956e0d074d39250d142baa946bea8df95dbc92718931762
2024-11-20 23:24:36 -06:00
pasta
8a14482190
Merge #6407: fix: dataraces
5078baea2b fix(test): wait for chainlock before mining a block we expect to include said chainlock (pasta)
f39c1e6f4c fix: guard m_can_tx_relay behind m_tx_relay_mutex; make it private; add additional annotations (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  See each commit; fixes two bugs, both discovered while running feature_llmq_chainlocks.py with tsan / debug.

  one a datarace in net_processing.cpp and the other in the test I was using to ensure this fix was correct, feature_llmq_chainlocks

  ## What was done?
  ### net_processing.cpp
  You can see the datarace here: https://gist.github.com/PastaPastaPasta/c966a9f805758b34524085e3d52ea7f8

  We simply guard it with an existing mutex that is always locked in close proximity.

  ### feature_llmq_chainlocks.py
  Most of the time, while generating the cycle quorum, there is sufficient time to generate a chainlock; however, this is racey, and I've observed locally where the block gets generated before a chainlock is present and as such `test_coinbase_best_cl` fails. We should instead wait for the chainlock first, and then mine the block. This was we can ensure the mined block will include that chainlock.

  This was observed locally maybe 1/10 times or so

  ## How Has This Been Tested?
  ran feature_llmq_chainlocks.py ~40 times locally with tsan / debug

  ## Breaking Changes
  None

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [x] I have performed a self-review of my own code
  - [x] 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 _(for repository code-owners and collaborators only)_

ACKs for top commit:
  kwvg:
    utACK 5078baea2b
  knst:
    utACK 5078baea2b
  UdjinM6:
    utACK 5078baea2b

Tree-SHA512: b346fc60809df72d0161f625073dce7062bd2641d35e4f80160fac9afeec63707de552e2856940ac2604875908ae3b98a225d352de36bfbfc6ee3fbe1e1538ff
2024-11-20 22:09:02 -06:00
pasta
9d87d9df72
Merge #6414: chore: bump seeds for v22
5741d5da28 chore: update seeds (Kittywhiskers Van Gogh)
2d732fc66e chore: drop defunct onion seeds, add new existing onion hosts as seeds (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  Update onion seeds for upcoming version

  ## What was done?
  Update onion seeds to reflect latest status

  ## How Has This Been Tested?
  As of today, all of these are able to be connected to on port 9999; I've not actually connected to all of them and verified they're on latest core or something like that; but their addresses my core knows about, and are able to be trivially connected to

  ## Breaking Changes

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

ACKs for top commit:
  kwvg:
    utACK 5741d5da28
  UdjinM6:
    utACK 5741d5da28

Tree-SHA512: 541bcc510b2ebf6de08ac91f2b7e5b1c910536dca9bab0b38930d6e5cfa1cd05e8c014ba4c74c14c43ed211cda3275fffb5baaf1489bbd1221567130d804b0ec
2024-11-20 13:59:11 -06:00
pasta
397a157e8d
refactor: introduce cs_pendingSigns 2024-11-20 13:54:33 -06:00
pasta
5adf92cb3c
Merge #6412: chore: bump develop to be 22.1.0
d728879329 chore: bump develop to be 22.1.0 (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  Develop is now for 22.1

  ## What was done?

  ## How Has This Been Tested?

  ## Breaking Changes

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

ACKs for top commit:
  kwvg:
    utACK d728879329
  UdjinM6:
    utACK d728879329

Tree-SHA512: 3ce6d37c43925c59a581cb7d518279c23cbf412b5511a3fa46dc1dd479da8a5d6bd3c40615f88e3db5bd6452ad3d9246901057055db91e3387e9d7c452e5c730
2024-11-20 12:02:46 -06:00
pasta
3c80dfc3f5
Merge #6403: feat(qt): Governance Tab should respect selected units and settings
90923ae7c7 feat(qt): Governance Tab should respect selected units and settings (UdjinM6)

Pull request description:

  ## Issue being fixed or feature implemented
  Governance Tab ignores selected units and settings atm. Let's fix this.

  Display settings:
  <img width="607" alt="Screenshot 2024-11-19 at 00 49 35" src="https://github.com/user-attachments/assets/4ee777b4-8104-4e82-801a-c412573aa505">

  develop:
  <img width="965" alt="Screenshot 2024-11-19 at 00 47 35" src="https://github.com/user-attachments/assets/8aa69db0-c8a7-4e31-b733-e765e7f7f510">
  <img width="956" alt="Screenshot 2024-11-19 at 00 48 02" src="https://github.com/user-attachments/assets/1213fd66-24a2-40b8-bb32-87f3310f0086">

  this PR:

  <img width="956" alt="Screenshot 2024-11-19 at 00 49 04" src="https://github.com/user-attachments/assets/a09f8134-eddd-4e9c-ab86-1b5c4afeb994">
  <img width="958" alt="Screenshot 2024-11-19 at 00 49 17" src="https://github.com/user-attachments/assets/f9c34938-c56f-4198-8613-26f6e8c08c71">

  ## 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:
  PastaPastaPasta:
    ACK 90923ae7c7
  knst:
    utACK 90923ae7c7

Tree-SHA512: 90887821674ff989156718f39ffccda4d30bcf3126627443cb3dab9ce00869d436606eb8a6cd2fc498bd6d8107f6697863bf7df1e41200505c2d7c3081d2b21a
2024-11-20 11:38:34 -06:00
pasta
8a86fd898e
Merge #6416: refactor: drop unused parameter mninfos_valid in test framework mine_ cycle_quorum
0072318421 refactor: drop unused parameter mninfos_valid in test framework mine_cycle_quorum (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  This param is unused

  ## What was done?
  Removed

  ## How Has This Been Tested?
  see ci

  ## Breaking Changes

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

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

Tree-SHA512: e66e2b23b95b98e843fdb1d58419ba0798e8ba4115ef6c52e2e4681b04ea3e43efe73cee0ac96758560914567f822d107169ca0d6212210e07cc81b317a3e2eb
2024-11-20 11:34:21 -06:00
Kittywhiskers Van Gogh
5741d5da28
chore: update seeds 2024-11-20 11:33:06 -06:00
pasta
2d732fc66e
chore: drop defunct onion seeds, add new existing onion hosts as seeds
As of today, all of these are able to be connected to on port 9999; I've not actually connected to all of them and verified they're on latest core or something like that; but their addresses my core knows about, and are able to be trivially connected to
2024-11-20 11:33:06 -06:00
pasta
e3645f76c5
Merge #6408: refactor: removed pre-MN_RR logic of validation of CL
3f2e064b18 refactor: set `const auto& cbTx` to avoid using optional throughout method (pasta)
0c0d91e491 fix: functional test feature_llmq_chainlocks.py should activate MN_RR instead v20 (Konstantin Akimov)
af93e877f2 refactor: removed pre-MN_RR logic of validation of CL (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  The fork MN_RR is active awhile on testnet and mainnet and no more need legacy check

  ## What was done?
  Removes legacy version of checks for CL and related functional tests

  ## How Has This Been Tested?
  Run unit / functional test - DONE
  Reindex testnet - DONE
  Reindex mainnet - DONE

  ## Breaking Changes
  Removed pre-mn_rr version of checks for CL.
  It's no more relevant on mainnet and testnet.
  It affects behavior on new devnets and regtest for pre-mn_rr activation blocks.

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

ACKs for top commit:
  UdjinM6:
    utACK 3f2e064b18

Tree-SHA512: 8b4b3a20a54602f4df9d98e17c79004214493b15c0bce9c08c68d667a5cba86b817947f008d646c48ef9f2f86676c02085c7d0ed36e83548ef5425b64faffb89
2024-11-20 11:31:45 -06:00
Kittywhiskers Van Gogh
a9cfbd1048
fix: don't use non-existent PrintLockContention in SharedEnter
`PrintLockContention` hasn't existed since dash#6046
2024-11-20 17:26:33 +00:00
Kittywhiskers Van Gogh
f331cbe8c8
merge bitcoin#24770: Put lock logging behind DEBUG_LOCKCONTENTION preprocessor directive 2024-11-20 17:26:33 +00:00
Kittywhiskers Van Gogh
d9cc2ea178
merge bitcoin#23104: Avoid breaking single log lines over multiple lines in the log file 2024-11-20 17:26:32 +00:00
pasta
0072318421
refactor: drop unused parameter mninfos_valid in test framework mine_cycle_quorum 2024-11-19 23:10:21 -06:00
pasta
d728879329
chore: bump develop to be 22.1.0 2024-11-19 21:06:35 -06:00
pasta
31243ca313
chore: update nMinimumChainWork, defaultAssumeValid, checkpointData, chainTxData for mainnet and testnet 2024-11-19 20:35:44 -06:00
pasta
d4c17d95b0
Merge #6406: ci: use actions/cache to manage depends cache
9cc29a832e ci: use `actions/cache` to manage depends cache (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * Builds after [dash#6401](https://github.com/dashpay/dash/pull/6401) have silently stopped building Dash Qt, see pre-[dash#6401](https://github.com/dashpay/dash/pull/6401) `develop` (6a51ab27)'s [build](https://github.com/dashpay/dash/actions/runs/11881892222/job/33106960691#step:7:725) compared against [build \#1](https://github.com/PastaPastaPasta/dash/actions/runs/11897504945/job/33152711720#step:7:1432) and [build \#2](https://github.com/kwvg/dash/actions/runs/11898510091/job/33156186503#step:7:1432) from [dash#6401](https://github.com/dashpay/dash/pull/6401)'s review process.

    This pull request aims to correct that regression.

  ## 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:
  PastaPastaPasta:
    utACK 9cc29a832e
  UdjinM6:
    utACK 9cc29a832e

Tree-SHA512: 09663987696d29e12c98b48297960c7c1e6484e337ddc8311f340fee1d026ace572674e8cbca578ba743ff781caabb6fcc1853cee8ddff3e13af3fe3d0361776
2024-11-19 15:09:00 -06:00
pasta
3f2e064b18
refactor: set const auto& cbTx to avoid using optional throughout method 2024-11-20 03:20:50 +07:00
Konstantin Akimov
0c0d91e491
fix: functional test feature_llmq_chainlocks.py should activate MN_RR instead v20 2024-11-20 03:20:50 +07:00
Konstantin Akimov
af93e877f2
refactor: removed pre-MN_RR logic of validation of CL
The fork MN_RR is active awhile on testnet and mainnet and no more need legacy check
2024-11-20 03:20:50 +07:00
Kittywhiskers Van Gogh
9cc29a832e
ci: use actions/cache to manage depends cache
Co-authored-by: pasta <pasta@dashboost.org>
2024-11-19 18:23:48 +00:00
pasta
5078baea2b
fix(test): wait for chainlock before mining a block we expect to include said chainlock
Most of the time, while generating the cycle quorum, there is sufficient time to generate a chainlock; however, this is racey, and I've observed locally where the block gets generated before a chainlock is present and as such `test_coinbase_best_cl` fails. We should instead wait for the chainlock first, and then mine the block. This was we can ensure the mined block will include that chainlock.

This was observed locally maybe 1/10 times or so
2024-11-19 10:39:22 -06:00
pasta
f39c1e6f4c
fix: guard m_can_tx_relay behind m_tx_relay_mutex; make it private; add additional annotations
Originally introduced in pr 6365; this datarace was discovered using tsan locally, and running feature_llmq_chainlocks 5 times. 1 out of 5 times failed
2024-11-19 10:26:33 -06:00
UdjinM6
c48efdac83
fix(qt): avoid potential precision loss in amounts on Governance Tab 2024-11-19 15:15:59 +03:00
UdjinM6
90923ae7c7
feat(qt): Governance Tab should respect selected units and settings 2024-11-19 00:58:02 +03:00
pasta
018d80a896
Merge #6398: backport: 24306, 24312, 24371
ba7e500062 refactor: more of 24306 (GetPathArg in Dash-specific code) (UdjinM6)
562e3f7b18 Merge bitcoin/bitcoin#24371: util: Fix ReadBinaryFile reading beyond maxsize (MarcoFalke)
3383b79049 Merge bitcoin/bitcoin#24312: addrman: Log too low compat value (MarcoFalke)
d96983a327 Merge bitcoin/bitcoin#24306: util: Make ArgsManager::GetPathArg more widely usable (MarcoFalke)

Pull request description:

  ## Issue being fixed or feature implemented
  A few simple backports

  ## What was done?

  ## How Has This Been Tested?
  Built locally; see CI

  ## Breaking Changes
  None

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

ACKs for top commit:
  UdjinM6:
    utACK ba7e500062
  kwvg:
    utACK ba7e500062

Tree-SHA512: 42f41cb04945af15bfa4581ae53354eec88d4cdec44ab7c0100edcfe2fa71a95e05073e76b8d3935bd05cd5ee1f5cd5b34d2ed99e7eb551475abdc77f1ffff7c
2024-11-18 14:04:24 -06:00
pasta
cde4d0294a
Merge #6401: ci: deduplicate depends building
2f18c1af30 ci: deduplicate depends building (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  Currently we build the same host / options multiple times. Don't do this!

  ## What was done?
  Now building depends only twice

  ## How Has This Been Tested?
  Local CI appears to be working

  ## Breaking Changes
  None

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

ACKs for top commit:
  kwvg:
    utACK 2f18c1af30
  UdjinM6:
    utACK 2f18c1af30

Tree-SHA512: 67460508a2e9458152f7c8bb5f4a1a786aedcfded0e5c54fb03d85010ba8bb87362b66a0c322b51aeba75752e36418fc235d8dc4197ef10695e234ccc5a00a39
2024-11-18 13:18:18 -06:00
pasta
65c5f46ea7
Merge #6402: ci: cache built
9604d87af1 ci: cache depends/built like gitlab (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  Depends build didn't seem to be caching properly

  ## What was done?
  changed depends/${{ matrix.host }} to depends/built as gitlab does

  ## How Has This Been Tested?
  Depends "build" now takes only ~1 minute instead of ~15 minutes in CI: https://github.com/PastaPastaPasta/dash/actions/runs/11899038167

  ## Breaking Changes
  None

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

ACKs for top commit:
  UdjinM6:
    utACK 9604d87af1
  kwvg:
    utACK 9604d87af1

Tree-SHA512: 63d2321f41b284be6cc2f0b2d53294cf220b1623af464d411225c0e43ec14268e1c3a701e23973e5c641925b6ea28dcb92062d8cefb9e6baed6ac5bb619ce1a1
2024-11-18 13:16:57 -06:00
pasta
2f18c1af30
ci: deduplicate depends building 2024-11-18 12:45:15 -06:00
pasta
9604d87af1
ci: cache depends/built like gitlab 2024-11-18 12:28:52 -06:00
pasta
8fa1c245d4
Merge #6397: ci: add powerpc64 to GH Guix job matrix
c5d5b14205 ci: add powerpc64 to GH Guix job matrix (UdjinM6)

Pull request description:

  ## Issue being fixed or feature implemented
  I guess we should make sure that binaries for every possible platform can be built via Guix with no issues even if we do not want to provide "official" binaries for it.

  ## 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)_

Top commit has no ACKs.

Tree-SHA512: 6464b68a47e680bb379c82842599200d6917adb8f1493fa75ac80ddc7a6fea92a9190215cfa3f32b0bd88e2dd0425d4eb13846ea2d7e19e144afff9c1171ff13
2024-11-18 12:28:29 -06:00
UdjinM6
ba7e500062
refactor: more of 24306 (GetPathArg in Dash-specific code) 2024-11-18 12:20:38 -06:00
MarcoFalke
562e3f7b18
Merge bitcoin/bitcoin#24371: util: Fix ReadBinaryFile reading beyond maxsize 2024-11-18 12:20:13 -06:00
Kittywhiskers Van Gogh
479ae82ecc
merge bitcoin#23235: Reduce unnecessary default logging 2024-11-18 10:45:27 +00:00
MarcoFalke
3383b79049
Merge bitcoin/bitcoin#24312: addrman: Log too low compat value
fa097d074bc1afcc2a52976796bb618f7c6a68b3 addrman: Log too low compat value (MarcoFalke)

Pull request description:

  Before this patch, when writing a negative `lowest_compatible` value, it would be read as a positive value. For example `-32` will be read as `224`. There is generally nothing wrong with that. Though, similarly there shouldn't be anything wrong with refusing to read a negative value. I find the code after this patch more logical than before. Also, this allows dropping a file-wide sanitizer suppression.

  In practice none of this should ever happen. Bitcoin Core would never write a negative `lowest_compatible` in normal operation, unless the file storage is later corrupted by external influence.

ACKs for top commit:
  mzumsande:
    re-ACK fa097d074bc1afcc2a52976796bb618f7c6a68b3

Tree-SHA512: 9aae7b8fe666f52f667f149667025e0160cef1a793cc4d392e36608f65c2bee8096da429235118f40a3368f327aabe30f3732ae78c5874648ea6f423f2687b65
2024-11-17 17:49:40 -06:00
MarcoFalke
d96983a327
Merge bitcoin/bitcoin#24306: util: Make ArgsManager::GetPathArg more widely usable
60aa179d8f9a675efa2d78eaadc09e3ba450f50f Use GetPathArg where possible (Pavol Rusnak)
5b946edd73640c6ecdfb4cbac1d4351e634678dc util, refactor: Use GetPathArg to read "-settings" value (Ryan Ofsky)
687e655ae2970f2f13aca0267c7de86dc69be763 util: Add GetPathArg default path argument (Ryan Ofsky)

Pull request description:

  Improve `ArgsManager::GetPathArg` method added in recent PR #24265, so it is usable more places. This PR starts to use it for the `-settings` option. This can also be helpful for #24274 which is parsing more path options.

  - Add `GetPathArg` default argument so it is less awkward to use to parse options that have default values.
  - Fix `GetPathArg` negated argument handling. Return path{} not path{"0"} when path argument is negated.
  - Add unit tests for default and negated cases
  - Move `GetPathArg` method declaration next to `GetArg` declaration. The two methods are close substitutes for each, so this should help keep them consistent and make them more discoverable.

ACKs for top commit:
  w0xlt:
    Tested ACK 60aa179 on Ubuntu 21.10
  hebasto:
    re-ACK 60aa179d8f9a675efa2d78eaadc09e3ba450f50f

Tree-SHA512: 3d24b885d8bbeef39ea5d0556e2f09b9e5f4a21179cef11cbbbc1b84da29c8fb66ba698889054ce28d80bc25926687654c8532ed46054bf5b2dd1837866bd1cd
2024-11-17 17:49:05 -06:00
pasta
6a51ab271d
Merge #6385: backport: merge bitcoin#24241, #24534, #24948, #28622, #28880, #29185, #29170, #29233, #29298, #29598, #29732, #29890, #29739, #30074, #30198, #29072 (toolchain backports: part 2)
1506d9d9b8 merge bitcoin#29072: use `-no_exported_symbols` on macOS (Kittywhiskers Van Gogh)
9247960c3e merge bitcoin#30198: qt 5.15.14 and fix macOS build with Clang 18 (Kittywhiskers Van Gogh)
5585e7a849 merge bitcoin#30074: use ENV flags in get_arch (Kittywhiskers Van Gogh)
decd420ca1 merge bitcoin#29739: swap cctools otool for llvm-objdump (Kittywhiskers Van Gogh)
0f8c420f2c merge bitcoin#29890: remove some tools when cross-compiling for macOS (Kittywhiskers Van Gogh)
936da1a3d3 merge bitcoin#29732: qt 5.15.13 (Kittywhiskers Van Gogh)
c294b47487 revert: patch qt to make placeholders differ from actual text (Kittywhiskers Van Gogh)
af7090c68e merge bitcoin#29598: don't use -h with touch on OpenBSD (Kittywhiskers Van Gogh)
ebf8ff2a34 merge bitcoin#29298: patch libtool out of libnatpmp/miniupnpc (Kittywhiskers Van Gogh)
070b8768a5 merge bitcoin#29233: depends move macOS C(XX) FLAGS out of C & CXX (Kittywhiskers Van Gogh)
d838481f96 revert dash#2398: Force fvisibility=hidden when compiling on macos (Kittywhiskers Van Gogh)
59a18f9fb9 merge bitcoin#29170: add macho branch protection check (Kittywhiskers Van Gogh)
cb024d968b merge bitcoin#29185: remove `--enable-lto` (Kittywhiskers Van Gogh)
6d75a81f62 merge bitcoin#28880: switch to using LLVM 17.x for macOS builds (Kittywhiskers Van Gogh)
7b0a1f2256 merge bitcoin#28622: use macOS 14 SDK (Xcode 15.0) (Kittywhiskers Van Gogh)
02eb73513e merge bitcoin#24948: fix typo in permissions (Kittywhiskers Van Gogh)
2739107de3 merge bitcoin#24534: make gen-sdk deterministic (Kittywhiskers Van Gogh)
ab10bf9692 merge bitcoin#24241: cleanup doc on need of Developer Account to obtain macOS SDK (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * Dependent on https://github.com/dashpay/dash/pull/6384
  * Dependency for https://github.com/dashpay/dash/pull/6389
  * The Qt patch introduced in [dash#5596](https://github.com/dashpay/dash/pull/5596), `fix_qt_placeholders.patch`, was a portion of a suggested workaround for QTBUG-92199 ([source](https://bugreports.qt.io/browse/QTBUG-92199?focusedId=669719&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-669719)) but since then, a fix ([here](https://codereview.qt-project.org/c/qt/qtbase/+/434310)) has made its way to 5.15.12 and we are upgrading to 5.15.14 from 5.15.11.

    So we can safely remove this patch.

  ## Breaking Changes

  None expected

  ## Checklist

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

ACKs for top commit:
  UdjinM6:
    utACK 1506d9d9b8
  PastaPastaPasta:
    utACK 1506d9d9b8

Tree-SHA512: df8e4ea0ce9e7b269d248518698f0566b5eca1a54cdfb53f5b213b90fb5177e5a5df44eaeb6f3fc014cd93351c9245736bb2fd52bc2af4ae274d8fa93e601b07
2024-11-17 14:15:38 -06:00
Kittywhiskers Van Gogh
1506d9d9b8
merge bitcoin#29072: use -no_exported_symbols on macOS 2024-11-17 07:42:09 +00:00
Kittywhiskers Van Gogh
9247960c3e
merge bitcoin#30198: qt 5.15.14 and fix macOS build with Clang 18 2024-11-17 07:42:09 +00:00
Kittywhiskers Van Gogh
5585e7a849
merge bitcoin#30074: use ENV flags in get_arch 2024-11-17 07:42:09 +00:00
Kittywhiskers Van Gogh
decd420ca1
merge bitcoin#29739: swap cctools otool for llvm-objdump 2024-11-17 07:42:09 +00:00
Kittywhiskers Van Gogh
0f8c420f2c
merge bitcoin#29890: remove some tools when cross-compiling for macOS 2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
936da1a3d3
merge bitcoin#29732: qt 5.15.13 2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
c294b47487
revert: patch qt to make placeholders differ from actual text
reverts:
- 139d70701c
2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
af7090c68e
merge bitcoin#29598: don't use -h with touch on OpenBSD 2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
ebf8ff2a34
merge bitcoin#29298: patch libtool out of libnatpmp/miniupnpc 2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
070b8768a5
merge bitcoin#29233: depends move macOS C(XX) FLAGS out of C & CXX 2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
d838481f96
revert dash#2398: Force fvisibility=hidden when compiling on macos
reverts:
- fc63f15097
2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
59a18f9fb9
merge bitcoin#29170: add macho branch protection check 2024-11-17 07:42:08 +00:00