Commit Graph

20253 Commits

Author SHA1 Message Date
Wladimir J. van der Laan
bca013ddd6
Merge #16957: 9% less memory: make SaltedOutpointHasher noexcept
67d99900b0d770038c9c5708553143137b124a6c make SaltedOutpointHasher noexcept (Martin Ankerl)

Pull request description:

  If the hash is not `noexcept`, `unorderd_map` has to assume that it can throw an exception. Thus when rehashing care needs to be taken. libstdc++ solves this by simply caching the hash value, which increases memory of each node by 8 bytes. Adding `noexcept` prevents this caching. In my experiments with `-reindex-chainstate -stopatheight=594000`, memory usage (maximum resident set size) has decreased by 9.4% while runtime has increased by 1.6% due to additional hashing. Additionally, memusage::DynamicUsage() is now more accurate and does not underestimate.

  |                                       | runtime h:mm:ss | max RSS kbyte |
  |---------------------------------------|-----------------|--------------|
  | master                                |         4:13:59 |      7696728 |
  | 2019-09-SaltedOutpointHasher-noexcept |         4:18:11 |      6971412 |
  | change                                |          +1.65% |       -9,42% |

  Comparison of progress masters vs. 2019-09-SaltedOutpointHasher-noexcept
  ![out](https://user-images.githubusercontent.com/14386/65541887-69424e00-df0e-11e9-8644-b3a068ed8c3f.png)

ACKs for top commit:
  jamesob:
    Tested ACK 67d99900b0

Tree-SHA512: 9c44e3cca993b5a564dd61ebd2926b9c4a238609ea4d283514c018236f977d935e35a384dd4696486fd3d78781dd2ba190bb72596e20a5e931042fa465872a0b
2021-07-13 13:03:30 -05:00
Wladimir J. van der Laan
a597c1bb8e
Merge #16577: util: CBufferedFile fixes and unit test
efd2474d17098c754367b844ec646ebececc7c74 util: CBufferedFile fixes (Larry Ruane)

Pull request description:

  The `CBufferedFile` object guarantees its user is able to "rewind" the data stream (that's being read from a file) up to a certain number of bytes, as specified by the user in the constructor. This guarantee is not honored due to a bug in the `SetPos` method.

  Such rewinding is done in `LoadExternalBlockFile()` (currently the only user of this object), which deserializes a series of `CBlock` objects. If that function encounters something unexpected in the data stream, which is coming from a `blocks/blk00???.dat` file, it "rewinds" to an earlier position in the stream to try to get in sync again. The `CBufferedFile` object does not actually rewind its file offset; it simply repositions its internal offset, `nReadPos`, to an earlier position within the object's private buffer; this is why there's a limit to how far the user may rewind.

  If `LoadExternalBlockFile()` needs to rewind (call `blkdat.SetPos()`), the stream may not be positioned as it should be, causing errors in deserialization. This need to rewind is probably rare, which is likely why this bug hasn't been noticed already. But if this object is used elsewhere in the future, this could be a serious problem, especially as, due to the nature of the bug, the `SetPos()` _sometimes_ works.

  This PR adds a unit test for `CBufferedFile` that fails due to this bug. (Until now it has had no unit tests.) The unit test provides good documentation and examples for developers trying to understand `LoadExternalBlockFile()` and for future users of this object.

  This PR also adds code to throw an exception from the constructor if the rewind argument is not less than the buffer size (since that doesn't make any sense).

  Finally, I discovered that the object is too restrictive in one respect: When the deserialization methods call this object's `read` method, a check ensures that the number of bytes being requested is less than the size of the buffer (adjusting for the rewind size), else it throws an exception. This restriction is unnecessary; the object being deserialized can be larger than the buffer because multiple reads from disk can satisfy the request.

ACKs for top commit:
  laanwj:
    ACK ~after squash.~ efd2474d17098c754367b844ec646ebececc7c74
  mzumsande:
    I had intended to follow up earlier on my last comment, ACK efd2474d17098c754367b844ec646ebececc7c74. I reviewed the code, ran tests and did a successful reindex on testnet with this branch.

Tree-SHA512: 695529e0af38bae2af4e0cc2895dda56a71b9059c3de04d32e09c0165a50f6aacee499f2042156ab5eaa6f0349bab6bcca4ef9f6f9ded4e60d4483beab7e4554
2021-07-13 13:03:30 -05:00
UdjinM6
90e990e1ac
Merge pull request #4244 from PastaPastaPasta/backport-triv-pr8
backport: 'trivial' pr8
2021-07-13 20:53:57 +03:00
UdjinM6
6aea99094b
Merge pull request #4243 from Munkybooty/backports-0.18-pr7.1
Merge bitcoin#13877: utils: Make fs::path::string() always return utf-8 string on Windows
2021-07-13 20:53:30 +03:00
PastaPastaPasta
48487122ad
Merge pull request #4239 from Munkybooty/backports-0.18-pr7
Backports 0.18 pr7
2021-07-13 11:51:50 -05:00
UdjinM6
d1ff298c8e
Add more compile time checking for cs_main runtime locking assertions 2021-07-13 19:43:33 +03:00
UdjinM6
b472a7025a
Initialize nBytes in CreateTransaction 2021-07-13 19:43:33 +03:00
UdjinM6
69a72ea5d5
Initialize firstNodeId 2021-07-13 19:43:33 +03:00
UdjinM6
4aa8689a15
Remove duplicates/add checks where needed for cs_main/cs_wallet 2021-07-13 19:43:33 +03:00
UdjinM6
8934a653e7
Fix mempool locks 2021-07-13 19:43:32 +03:00
UdjinM6
64d6e5720f
Fix locks in CMasternodeSync 2021-07-13 19:43:32 +03:00
UdjinM6
cc601e80c5
Fix CConnman related locks 2021-07-13 19:43:32 +03:00
UdjinM6
66f3f4f328
Check for locks in more places in CSigSharesManager 2021-07-13 19:43:32 +03:00
UdjinM6
cf3896304a
Hold the right lock in AskNodesForLockedTx 2021-07-13 19:43:31 +03:00
UdjinM6
a65a4669a7
Drop external protection of pending messages in CDKGSessionHandler 2021-07-13 19:43:31 +03:00
UdjinM6
3e95d592d8
Fix locks in CDKGSession 2021-07-13 19:43:31 +03:00
UdjinM6
d2a1bab978
Fix locks in EnforceBestChainLock() 2021-07-13 19:43:31 +03:00
UdjinM6
934826d0d2
Hold locks in CHDChain::swap() 2021-07-13 19:43:31 +03:00
UdjinM6
0f17a13b9b
Remove duplicate rescanblockchain declaration
leftover from 13899
2021-07-13 19:43:30 +03:00
UdjinM6
a18707e397
Remove/fix unused variables 2021-07-13 19:43:30 +03:00
UdjinM6
b797fbd827
ci: Add --enable-werror to arm and c++17 builds
Kind of similar to changes in 18145
2021-07-13 19:43:27 +03:00
Kittywhiskers Van Gogh
1a887a0067 tests: adapt PSBT RPC tests for Dash testnet 2021-07-13 22:00:18 +05:30
UdjinM6
fa5956a64d tests: Swap some valid/invalid test cases
Can't spend from segwit but at the same time we do not care about errors in segwit keys (they are unknown to us).
2021-07-13 22:00:18 +05:30
Kittywhiskers Van Gogh
622c7034da trivial: replace references of bitcoin with dash 2021-07-13 22:00:18 +05:30
Kittywhiskers Van Gogh
1e15a6116d core: remove all leftover references to segwit/rbf 2021-07-13 22:00:18 +05:30
Kittywhiskers Van Gogh
8b891c2b10 Merge #13723: PSBT key path cleanups 2021-07-13 22:00:18 +05:30
Kittywhiskers Van Gogh
472cfcbf7f Merge #13666: Always create signatures with Low R values 2021-07-13 22:00:18 +05:30
Kittywhiskers Van Gogh
737ccd2de3 Merge #13721: Bugfixes for BIP 174 combining and deserialization 2021-07-13 22:00:18 +05:30
Kittywhiskers Van Gogh
c00b3e942f Merge #13557: BIP 174 PSBT Serializations and RPCs 2021-07-13 22:00:17 +05:30
PastaPastaPasta
d2e45e0a35
Update CONTRIBUTING.md 2021-07-13 10:48:56 -05:00
MarcoFalke
e8c2117b16 Merge #13877: utils: Make fs::path::string() always return utf-8 string on Windows
2c3eade704 Make fs::path::string() always return utf-8 string (Chun Kuan Lee)

Pull request description:

  Imbue `fs::path` with `std::codecvt_utf8_utf16` at `SetupEnvironment()`, so that default string encoding will be utf-8 inside `fs::path`.

Tree-SHA512: 0cb59464d777278decbf24771fc5ff0cb2caa7bc2fe8ee5cd36c97a2324873a3caad131f08f050393b488316ee7f4ab0b28b7fa4699e41839f8e51b9867d5118

# Conflicts:
#	src/qt/guiutil.cpp
2021-07-13 09:51:49 -04:00
Wladimir J. van der Laan
c585c4a792 Merge #13734: gui: Drop boost::scoped_array and use wchar_t API explicitly on Windows
bb6ca65f9890e8280ace32de5a37774e14705859 gui: get special folder in unicode (Chun Kuan Lee)
1c5d22585384c8bb05a27a04eab5c57b31d623fb Drop boost::scoped_array (Chun Kuan Lee)

Pull request description:

  Drop boost::scoped_array and simplify the code.

  `TCHAR` should be defined as `wchar_t` if `UNICODE` is defined. So we can use `.toStdWString().c_str()` to get wchar_t C-style string.

  Fix #13819

Tree-SHA512: 3fd4aa784129c9d1576b01e6ee27faa42d793e152d132f2dde504d917dad3a8e95e065fcbc54a3895d74fb6b2a9ed4f5ec67d893395552f585e225486a84a454

# Conflicts:
#	src/qt/guiutil.cpp
2021-07-12 21:57:11 -04:00
fanquake
d3a9042e01 Merge #16870: build: update boost macros to latest upstream for improved error reporting
bb99c4e684bbd3053ecf7a789049b11b29260189 build: update boost macros to latest upstream (fanquake)

Pull request description:

  Fixes: #16803

  I opened an [upstream PR](https://github.com/autoconf-archive/autoconf-archive/pull/197) to improve the Boost error reporting, so pull the latest macros.

ACKs for top commit:
  laanwj:
    Code review ACK bb99c4e684bbd3053ecf7a789049b11b29260189
  jonatack:
    Sanity check ACK bb99c4e684bbd3053ecf7a789049b11b29260189, light code read, built and ran tests on Debian 4.19.37-5+deb10u2 (2019-08-08) x86_64 GNU/Linux. Only tested the happy path.

Tree-SHA512: 34704ed623ac0085215fd874a23fde8f6e39a69fa20d78472b0c4d2306dc101c0571fa26c4c8821600746b94daaaf05faf6d15546899d588081c26357d29ec46
2021-07-12 20:54:22 -05:00
fanquake
6b46bddf64 Merge #16914: doc: Update homebrew instruction for doxygen
14c6a2de1a4cf8cc17116d418242709ba2519b9e [doc] update brew instruction for doxygen (Sjors Provoost)

Pull request description:

  I noticed while testing #16912 that `brew install doxygen --with-graphviz` no long works. Instead you need to use `brew install graphviz doxygen`.

ACKs for top commit:
  fanquake:
    ACK 14c6a2de1a4cf8cc17116d418242709ba2519b9e - tested a `make docs` on macOS with and without `graphviz` (`dot`) available.

Tree-SHA512: 2682568e558c16e9e0a657421c449b74cc14a89771844c1c88623fb75b07b89afb63c45a919eb7b9c3dba9bdfaef21489b5f7ea45a08d8d5da18614657c19e47
2021-07-12 20:54:22 -05:00
Wladimir J. van der Laan
821200cb2d Merge #16809: depends: zlib: Move toolchain options to configure
f0636d34185d235f51eebaa2ad14c1e6fcaed6c2 depends: zlib: Move toolchain options to configure (Carl Dong)

Pull request description:

  ```
  zlib has its own custom configure script, see comment in zlib.mk for
  more details
  ```

  Performed Guix cross-builds locally and everything worked as expected.

ACKs for top commit:
  laanwj:
    ACK f0636d34185d235f51eebaa2ad14c1e6fcaed6c2

Tree-SHA512: 7ff6114e52a9c49941da31cb0ebd8918b056bf23343790d758e107003d856f3b1f16ebf4ce0ce22e1216a37a610b4c106def3f869d128bfffa61280d45ed6b38
2021-07-12 20:54:22 -05:00
fanquake
6638fa763c Merge #16879: build: remove redundant sed patching
93995c27515aa268c2c1aefe82f1a3cee33966ce build: remove unnecessary qt xcb patching (fanquake)
4d45577c4314fd7075094d5b3384b4b86100c125 build: remove unnecessary macOS qt patching (fanquake)

Pull request description:

  While looking at #16838 I found at least two cases of `sed` patching in depends that now seems to be redundant. There's possibly a [third case](https://github.com/bitcoin/bitcoin/pull/16837#discussion_r322842701), but I haven't looked into that enough yet.

  Patching `0` -> `kCGMouseButtonLeft` should not be required, as [`kCGMouseButtonLeft`](https://code.qt.io/cgit/qt/qtbase.git/tree/src/plugins/platforms/cocoa/qcocoacursor.mm?h=5.9#n82) has been used in the `cocoa/qcocoacursor.mm` source for a while.

  The include we were modifying in [`src/plugins/platforms/xcb/qxcbxsettings.cpp`](https://code.qt.io/cgit/qt/qtbase.git/tree/src/plugins/platforms/xcb/qxcbxsettings.cpp?h=5.9#n47) was removed in [this commit](https://code.qt.io/cgit/qt/qtbase.git/commit/src/plugins/platforms/xcb/qxcbxsettings.cpp?h=5.9&id=78731b434e0e99ad108601249108e12d8a49c350).

ACKs for top commit:
  dongcarl:
    ACK 93995c27515aa268c2c1aefe82f1a3cee33966ce

Tree-SHA512: 5e0cbf317b798ce2e142a42b7fabf1d9e8e00d12f59589e98d790195ba27db60858f933b035c6e9cd0deadd8c3406f1ff4a4ed2af4a19e9b5b43aa97d04b9ecb
2021-07-12 20:54:22 -05:00
Wladimir J. van der Laan
e8f63fc657 Merge #16792: Assert that the HRP is lowercase in Bech32::Encode
2457aea83c1f9fba708e2335bb197950bf0b6244 Assert that the HRP is lowercase in Bech32::Encode (Samuel Dobson)

Pull request description:

  From BIP-173:
  > The lowercase form is used when determining a character's value for checksum purposes.
  > Encoders MUST always output an all lowercase Bech32 string. If an uppercase version of the encoding result is desired, (e.g.- for presentation purposes, or QR code use), then an uppercasing procedure can be performed external to the encoding process.

  Currently if HRP contains uppercase characters, the checksum will be generated over these uppercase characters resulting in mixed-case output that will always be invalid even if the case is changed manually after encoding. This shouldn't happen because both prefix's `bc` and `tb` are lowercase currently, but we assert this condition anyway.

  This is consistent also with the [C reference implementation](2b0aac650c/ref/c/segwit_addr.c (L59))

ACKs for top commit:
  laanwj:
    ACK 2457aea83c1f9fba708e2335bb197950bf0b6244

Tree-SHA512: 24fcbbc2f315c72c550cc3d82b4332443eea6378fc73d571f98b87492604d023378dd102377c9e05467192cae6049606dee98e4c5688c8d5e4caac50c970284b
2021-07-12 20:52:56 -05:00
MarcoFalke
d36d5efee5 Merge #16768: test: Make lint-includes.sh work from any directory
490da639cbd48ce0dc438abbfc89ab796391cb2a Make lint-includes.sh work from any directory (Kristaps Kaupe)

Pull request description:

  Before this change it works from root folder of bitcoin git repo, but if you do `cd test/lint; ./test-includes.sh`, you will have a lot of false positive messages like this:
  ```
  Good job! The circular dependency "chainparamsbase -> util/system -> chainparamsbase" is no longer present.
  Please remove it from EXPECTED_CIRCULAR_DEPENDENCIES in ./lint-circular-dependencies.sh
  to make sure this circular dependency is not accidentally reintroduced.

  Good job! The circular dependency "index/txindex -> validation -> index/txindex" is no longer present.
  Please remove it from EXPECTED_CIRCULAR_DEPENDENCIES in ./lint-circular-dependencies.sh
  to make sure this circular dependency is not accidentally reintroduced.

  ```

Top commit has no ACKs.

Tree-SHA512: 07fa69cb2883181dcee922191acac4b242722eeb2916cdffdc7163421302b22f3c9525aaf4c754a9dba1c307032c05285e38191d5c6aabc894321f8a27bbceaa
2021-07-12 20:52:56 -05:00
fanquake
1d6671fa94 Merge #16760: qt: Change uninstall icon on Windows
635e9154da223ca760713d7b3b66c0a9321d1277 [qt] Change uninstall icon on Windows (GChuf)

Pull request description:

  Change uninstall icon in Windows by changing a registry value.
  Original uninstall.exe icon remains the same
  Reason: almost no other modern program uses that uninstall icon in Windows.

  before:
  ![before](https://user-images.githubusercontent.com/42591821/63967490-13a09000-ca8d-11e9-8f49-3884d33302ce.png)
  after:
  ![after](https://user-images.githubusercontent.com/42591821/63967491-13a09000-ca8d-11e9-82f0-5adb74246a1e.png)

ACKs for top commit:
  promag:
    ACK 635e9154da223ca760713d7b3b66c0a9321d1277.
  l2a5b1:
    ACK 635e915
  practicalswift:
    ACK 635e9154da223ca760713d7b3b66c0a9321d1277
  jonasschnelli:
    utACK 635e9154da223ca760713d7b3b66c0a9321d1277
  fanquake:
    ACK 635e9154da223ca760713d7b3b66c0a9321d1277 - Tested building and installing using WSL on Windows 10.

Tree-SHA512: a0f435c79e726896cc93db058f1712dcf37daefbcacbf213b340ef2d5f4ff387148b8d659302f3e84be8a9f3df23e72b0ca5937f5d77499b808081bd40bfbbac
2021-07-12 20:52:56 -05:00
fanquake
04d768d09a Merge #14862: doc: Declare BLOCK_VALID_HEADER reserved
fa0b910486e9aada077fe47e1201dcb3bd523c87 [doc] chain: Declare BLOCK_VALID_HEADER reserved (MarcoFalke)

Pull request description:

  `BLOCK_VALID_HEADER` was never used and the comment is confusing to me in several ways:

  * It claims "version ok". However, without the previous header, it is not possible to check the validity of the version since the height needs to be known (c.f. BIP 90)
  * It claims "hash satisfies claimed PoW". While it is possible to check against the claimed PoW, it is not possible without the previous header to check that the claimed PoW is itself valid.
  * It claims "1 <= vtx count <= max". However, with the header alone and current consensus rules, the number of transactions is unknown.

ACKs for top commit:
  sipa:
    ACK fa0b910486e9aada077fe47e1201dcb3bd523c87
  ryanofsky:
    ACK fa0b910486e9aada077fe47e1201dcb3bd523c87

Tree-SHA512: 3972995a0a2f83aa55767bf8982af1fcb9493483f62aee6df27e58be9181a48d5968ae718b390cecc8be3ed4f26495683b1cffde8ef272dea0bd610ec169ef8b
2021-07-12 20:52:56 -05:00
Wladimir J. van der Laan
12b5403aa6 Merge #16695: rpc: Add window final block height to getchaintxstats
d48c1e837ae1bd08e0f18ad1b57ff72675c3d6ad Add window final block height to getchaintxstats (Jonathan "Duke" Leto)

Pull request description:

  This patch is motivated by the desire to make the output of `getchaintxstats` more useful and optimized for applications to consume and render the data.

  Firstly, this data is already available to the RPC, no additional work is done. Currently additional RPC calls will be needed to look up the height of the final block in the window or the block height that began the window.

  By adding the block height of the final block in the window, the JSON is "self-contained" and applications can calculate the exact block height range of the window with no additional RPC requests.
  For example, a web application which wants to render historical information for `getchaintxstats` RPC on various window sizes might call the RPC with various window lengths, once per day, and store the JSON results somewhere. Because the final block height of each dataset is included, it's no extra work to determine the exact block window range of each JSON response.

ACKs for top commit:
  promag:
    ACK d48c1e837ae1bd08e0f18ad1b57ff72675c3d6ad.

Tree-SHA512: fd4952c125f81a4ad18f7c78498c6b3e265b93cb574832166ac25596321ce84957f971f3f78f37d7e42638dc65f2a5d4d760f289873c9c2f2a82eb00a0f87c3f
2021-07-12 20:52:56 -05:00
fanquake
33aa4c2840 Merge #16752: doc: Delete stale URL in test README
41d484d5c88f057e75cfdd8b88587b9a12a61744 doc: Delete stale URL in test README (Michael Folkson)

Pull request description:

  The resource on the Boost unit test framework previously linked to in src/test/README.md was a stale URL.

  Instead of deleting it, I've replaced it with an alternative resource on the framework on [boost.org](https://www.boost.org/doc/libs/1_45_0/libs/test/doc/html/utf/tutorials.html).

ACKs for top commit:
  promag:
    ACK 41d484d5c88f057e75cfdd8b88587b9a12a61744.
  hebasto:
    ACK 41d484d5c88f057e75cfdd8b88587b9a12a61744, the removed link is really obsolete.
  fanquake:
    ACK 41d484d5c88f057e75cfdd8b88587b9a12a61744 - Thanks.

Tree-SHA512: 764f12548441bde615f77b7a2ca7c5188b4ab936972d16b84960fbd8604d4cbd224415bc59ce839e7e63293aa84fd97f31a69e38734e531231cdb0e148d2e1bd
2021-07-12 20:52:56 -05:00
fanquake
91d5b02582 Merge #16621: doc: add default bitcoin.conf locations
1373fa7e3d3f04ce6938cdcd2124cba71ff82ca0 doc: add default bitcoin.conf locations (Chuf)

Pull request description:

  Added default bitcoin.conf data directories and paths

ACKs for top commit:
  practicalswift:
    ACK 1373fa7e3d3f04ce6938cdcd2124cba71ff82ca0
  ryanofsky:
    ACK 1373fa7e3d3f04ce6938cdcd2124cba71ff82ca0
  fanquake:
    ACK 1373fa7e3d3f04ce6938cdcd2124cba71ff82ca0 - Already three ACKs and lots of discussion here, so I'm going to merge, and the other comment

Tree-SHA512: 8bb1ed9868c5d171b6791bd6dc9598eddfdf64977d327ff4f333323cef8e3e76b1a67da21e4199f008a12f5610ac6dc6f34f4a13235e8846754eb6d6e5075da4
2021-07-12 20:52:56 -05:00
fanquake
ee46c9545e Merge #16461: doc: Tidy up shadowing section
9452802480bd154e23771230bbdfebde1dbaa941 doc: Tidy up shadowing section (João Barbosa)

Pull request description:

  Removes the example because it violates the code format.

ACKs for top commit:
  MarcoFalke:
    unsigned ACK 9452802480bd154e23771230bbdfebde1dbaa941
  ryanofsky:
    ACK 9452802480bd154e23771230bbdfebde1dbaa941
  fanquake:
    ACK 9452802480bd154e23771230bbdfebde1dbaa941 - Thanks for following up.

Tree-SHA512: 1fc31355d368225713298da7803e39e99014fbfcd229f2d3b56c082de95ab2965e51c80b172a5abce4646c53f845fa62a6d94d5df714e7835cac07a8ec7d5da7
2021-07-12 20:52:56 -05:00
MeshCollider
7fcb8f53ed Merge #16370: depends: cleanup package configure flags
c295cba5a2f934e51a7c8610ab4c58b8e9d56619 depends: zeromq: disable draft classes and methods (fanquake)
0072237b9e33e0b89f6c9f51dd0b946fa89a6134 depends: xproto: configure flags cleanup (fanquake)
6a8ada3a4f67affcf0ef7452e206083d7b58b2bc depends: qrencode: configure flags cleanup (fanquake)
86beb8cdc4e312bd0bed2cbb273aebb792be2747 depends: fontconfig: configure flags cleanup (fanquake)
e656d95ec74336c2bd93bd387f67aeb6aed4dc40 depends: libxcb: configure flags cleanup (fanquake)
e439388b352b7dfbf2e00c6ba2970fed0a4a5554 depends: libXau: configure flags cleanup (fanquake)

Pull request description:

  Related to #16354.

  This PR adds additional configure flags to packages in depends to explicitly disable features we aren't using; similar to #16183. It also fixes passing `--without-tools` to `qrencode`.

  I've added `--disable-drafts` to `zeromq`:
  ```bash
  Build and install draft classes and methods [default=yes]
  ```

  I'm not entirely sure how far we want to take this. i.e in the `zeromq` package we explicitly pass `--without-libsodium`, even though it's disabled by default.

  Do we also want to explicitly pass all the other `--without` flags? :
  ```bash
    --with-libgssapi_krb5   require libzmq build with libgssapi_krb5
                            [default=no]
    --with-libsodium        use libsodium instead of built-in tweetnacl
                            [default=no]
    --with-pgm              build libzmq with PGM extension. Requires pkg-config
                            [default=no]
    --with-norm             build libzmq with NORM protocol extension,
                            optionally specifying norm path [default=no]
    --with-vmci             build libzmq with VMCI transport [default=no]
  ```

ACKs for top commit:
  dongcarl:
    ACK c295cba5a2f934e51a7c8610ab4c58b8e9d56619

Tree-SHA512: df6d38b863b4008ed2cb06c97eb0e21eaa4b5fde552876065ba7f3c87bf6e372e5b954a51bf3fde2151cfb6d2c022227d34337fc6e50ce0caa1d518abbd2412a
2021-07-12 20:52:56 -05:00
fanquake
ae01429338 Merge #16694: gui: Ensure transaction send error is always visible
a4765bd77f9bc5c4d5c866ee6940807522741941 gui: Ensure tx send error highlight is visible (bpay)

Pull request description:

  Rebased and squashed #14956.

  > If sending to multiple recipients and one of the recipient fields is malformed, the highlighted field may not be visible due to being scrolled out of view. This results in a confusing lack of error feedback.

  > Avoid this problem by ensuring the first field containing an error is scrolled into view when Send is clicked.

  You can see the behavior here: https://imgur.com/a/QZG5TQc

  How to test:
  Add a few recipients and give any of them an invalid address or amount. Scroll the invalid recipient out of view and hit Send. With this change, the GUI will scroll to show the invalid recipient, with master it will not, "hiding" the error.

ACKs for top commit:
  jonatack:
    Tested ACK a4765bd77f9bc5c4d5c866ee6940807522741941 on Linux Debian with Qt 5.11.3. Change is that I had added an inadvertent typo in my make bash alias; fixed.
  hebasto:
    ACK a4765bd77f9bc5c4d5c866ee6940807522741941, tested on Debian 9.9 with system Qt 5.7.1.

Tree-SHA512: a5653ca44d6d540214bdb424b0b75a06a5872cff41b0cd8cffd9cef99ebf04a17a3652e561139ac75315b39c3347e5f7ae304fa35e14b48bdae4768a416df9b0
2021-07-12 20:52:56 -05:00
fanquake
77c46e07dc Merge #16674: refactor: remove obsolete qt algorithm usage
153d9dd9acffa95bb97a4b1579bd20237fdc9c52 refactor: replace qLowerBound & qUpperBound with std:: upper_bound & lower_bound (fanquake)
59373e3e94015316bcaa03a7b9c2e6f442641720 refactor: replace qSort with std::sort (fanquake)
fea33cbbdfb4673033f3414bf1613591ff654aac refactor: replace qStableSort with std::stable_sort (fanquake)

Pull request description:

  `qStablesort`, `qSort`, `qLowerBound` and `qUpperBound` have been marked as obsolete since at least Qt 5.9: [Obsolete Members for QtAlgorithms](https://doc.qt.io/qt-5.9/qtalgorithms-obsolete.html).

  This pull request replaces their usage with the suggested `std::` replacements.

  This also removes some warning spam when compiling against newer Qt (5.13.0 via brew):
  ```bash
    CXX      qt/libbitcoinqt_a-walletcontroller.o
  qt/transactiontablemodel.cpp:96:52: warning: 'qLowerBound<QList<TransactionRecord>::iterator, uint256, TxLessThan>' is deprecated: Use std::lower_bound [-Wdeprecated-declarations]
          QList<TransactionRecord>::iterator lower = qLowerBound(
  qt/transactiontablemodel.cpp:98:52: warning: 'qUpperBound<QList<TransactionRecord>::iterator, uint256, TxLessThan>' is deprecated: Use std::upper_bound [-Wdeprecated-declarations]
          QList<TransactionRecord>::iterator upper = qUpperBound(
  ```

  ```bash
    CXX      qt/libbitcoinqt_a-moc_walletcontroller.o
  qt/bantablemodel.cpp:64:13: warning: 'qStableSort<QList<CCombinedBan>::iterator, BannedNodeLessThan>' is deprecated: Use std::stable_sort [-Wdeprecated-declarations]
              qStableSort(cachedBanlist.begin(), cachedBanlist.end(), BannedNodeLessThan(sortColumn, sortOrder));
  ```

  ```bash
    CXX      qt/libbitcoinqt_a-sendcoinsentry.o
  qt/recentrequeststablemodel.cpp:205:5: warning: 'qSort<QList<RecentRequestEntry>::iterator, RecentRequestEntryLessThan>' is deprecated: Use std::sort [-Wdeprecated-declarations]
      qSort(list.begin(), list.end(), RecentRequestEntryLessThan(column, order));
  ```

ACKs for top commit:
  hebasto:
    ACK 153d9dd9acffa95bb97a4b1579bd20237fdc9c52
  promag:
    ACK 153d9dd9acffa95bb97a4b1579bd20237fdc9c52.
  jonasschnelli:
    utACK 153d9dd9acffa95bb97a4b1579bd20237fdc9c52

Tree-SHA512: 22f7290ed798ce8b0f5f313405377845d4c8e48dc8687be7464e27fff53363b451a40e9e18910a8c3b4b9d4dcc236a366c92e7d171fcb8576c48f149a1886c26
2021-07-12 20:52:56 -05:00
Wladimir J. van der Laan
00cc0de358 Merge #16611: build: Remove src/obj directory from repository
b6e9ff899677770741d94f1cf4f61ebb13fc453f build: Remove src/obj directory from repository (Wladimir J. van der Laan)

Pull request description:

  This directory is automatically created by the build process (in the build target directory, see #16588) and doesn't need to be in the repository nor in the tarballs.

  Move associated ignore directive to top-level `.gitignore` file.

ACKs for top commit:
  hebasto:
    Concept ACK b6e9ff899677770741d94f1cf4f61ebb13fc453f

Tree-SHA512: 5f3f5a0e8f19ecf925eb16cab327c3023b8512731bbaad5875828da7a25fdda1b77f6fbd06c002a383913627dc9b552f09ad27c57bcf0cb020ed3b1f506e5fef
2021-07-12 20:52:56 -05:00
PastaPastaPasta
f1f32364f6
Merge pull request #4242 from kittywhiskers/morebps
merge #14785, #16314, #17052: minor backports
2021-07-12 20:21:47 -05:00
PastaPastaPasta
4258056196 dashification
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-07-12 20:16:37 -05:00