Commit Graph

21026 Commits

Author SHA1 Message Date
Kittywhiskers Van Gogh
c04f74b1d4 merge bitcoin#15680: Remove resendwallettransactions RPC method 2021-12-12 21:07:49 +05:30
Kittywhiskers Van Gogh
ee4f2fc8b4 merge bitcoin#15728: Refactor relay transactions 2021-12-12 21:07:49 +05:30
Kittywhiskers Van Gogh
11fc0f5667 merge bitcoin#15646: Add test for wallet rebroadcasts
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-12-12 21:07:43 +05:30
Kittywhiskers Van Gogh
6718789ada merge bitcoin#17449: fix uninitialized variable nMinerConfirmationWindow 2021-12-12 20:32:49 +05:30
Kittywhiskers Van Gogh
4486659768 merge bitcoin#15928: Move QRImageWidget to its own file-pair 2021-12-12 20:32:49 +05:30
Kittywhiskers Van Gogh
adc3f0478c merge bitcoin#16984: Make thread names shorter 2021-12-12 20:32:49 +05:30
Kittywhiskers Van Gogh
ac4dc7f4a6 merge bitcoin#16713: Ignore old versionbit activations to avoid 'unknown softforks' warning 2021-12-12 20:32:48 +05:30
Kittywhiskers Van Gogh
e1a40e554c merge bitcoin#15588: Log the actual wallet file version and no longer publicly expose the "version" record 2021-12-12 19:46:11 +05:30
Kittywhiskers Van Gogh
2fecd1495f merge bitcoin#15401: Actually throw help when passed invalid number of params 2021-12-12 19:46:11 +05:30
Kittywhiskers Van Gogh
269501259c merge bitcoin#14845: Add wallet_balance.py
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-12-12 19:46:11 +05:30
PastaPastaPasta
58d3e1381b
refactor: modifications to GenerateContributions (#4594)
* modifications to GenerateContributions

* Introduce some benchmarks to ensure there's no regression

* minor fixups

Signed-off-by: pasta <pasta@dashboost.org>
2021-12-12 16:37:26 +03:00
Kittywhiskers Van Gogh
45e09d4bb0 merge bitcoin#16865: add some unit tests for merkle.cpp 2021-12-12 18:57:02 +05:30
Kittywhiskers Van Gogh
98465b2a59 merge bitcoin#16850: servicesnames field in getpeerinfo and getnetworkinfo 2021-12-12 18:57:02 +05:30
Kittywhiskers Van Gogh
fc6e35060d merge bitcoin#16796: Fix segfault in CreateWalletFromFile 2021-12-12 18:57:02 +05:30
Kittywhiskers Van Gogh
c6c307b3f7 merge bitcoin#13541: sendrawtransaction maxfeerate 2021-12-12 11:57:44 +05:30
PastaPastaPasta
8f36cfe236
refactor: introduce MAKE_MSG macro for compile time check to ensure the p2p message name is short enough (#4614)
* refactor: introduce MAKE_MSG macro for compile time check to ensure the p2p message name is short enough

I would like this ofc to not be a macro, but to be as non-invasive as possible, I think a macro is best. Arguably these should all be converted to string_view and have a better abstraction layer over it (kinda like we do with sporks) as opposed to needing to place these names in multiple files.

* optional; also use it for bitcoin's NetMsgType's

* use std::size instead of potentiall non-constexpr strlen

Signed-off-by: pasta <pasta@dashboost.org>
2021-12-12 01:15:00 +03:00
PastaPastaPasta
683be4086e
build: enable experimental Cxx20 support (#4600)
* build: Add optional c++20 compilation option

* build: update ax_cxx_compile_stdcxx.m4 to be compatible with c++20

* fix: fix c++20 build error for undefined identifier

* ci: enable c++20 build during ci

* cxx17 -> cxx20

Signed-off-by: pasta <pasta@dashboost.org>
2021-12-12 01:14:17 +03:00
PastaPastaPasta
a490615a8b
Merge pull request #4601 from dzutte-cpp/merge_15497_15744
Backport bitcoin#15497 and bitcoin#15744
2021-12-11 16:09:07 -05:00
UdjinM6
5502ce2705
Merge pull request #4602 from PastaPastaPasta/drop-unused-boost-libs
build: remove unused boost libraries
2021-12-11 23:02:44 +03:00
PastaPastaPasta
9f95e4947e
refactor: remove unused include in miner.cpp (#4617)
Signed-off-by: pasta <pasta@dashboost.org>
2021-12-11 23:01:56 +03:00
UdjinM6
99cbd9d0d2
test: replace feature_block_reward_reallocation.py with two corresponding unit tests (#4603)
* test: Add BRR and DAT unit tests

* test: Drop feature_block_reward_reallocation.py

* change copyright

* remove trivially removable includes

* use constexpr, remove empty statement

* Don't use BOOST_ASSERT, fix bug?

Not sure if this was a bug, as it does an assignment. If this isn't a bug please add a comment / explanation
```
BOOST_ASSERT(::ChainActive().Tip()->nVersion = 536870912);
```

* deduplicate all the things (also test all activation periods)

* use try_emplace, and remove some tempararies

* update threshold to be inline with dynamic

* explicitly include map, vector, remove now unneeded base58.h

* remove unused param, and replace raw loop with range loop

* re: Don't use BOOST_ASSERT, fix bug?

* Make TestChain<smth>Setup in dynamic_activation_thresholds_tests more general

* Specify min level activation tests correctly

Co-authored-by: Pasta <pasta@dashboost.org>
2021-12-11 23:01:20 +03:00
pravblockc
459bc3ee7e
add ehf special tx (#4577) 2021-12-11 23:00:27 +03:00
Kittywhiskers Van Gogh
06ebacbb9a
build: bump gmp from 6.1.2 to 6.2.1 (#4597) 2021-12-06 19:35:38 -05:00
Pasta
4176234dea
remove references to libboost-system-dev and libboost-chrono-dev 2021-12-06 13:05:32 -05:00
Pasta
9504065688
extend 18264: build: Remove Boost System 2021-12-05 23:52:21 -05:00
fanquake
ff632333ae
Merge #18264: build: Remove Boost Chrono
ad345909b2465a65ee023b389fae342088e2f187 doc: remove Boost Chrono from install docs (fanquake)
e21fa542b189263ad3a4342d048905d68c3a3507 test: remove Boost Chrono installation from CI (fanquake)
bd37f2bc26158f85ef1ab73b9ca1fc0da8ea562a build: remove Boost Chrono detection from build system (fanquake)
1d0a87e712a6253ef3f9b06a9611fd8e113401d2 build: remove chrono package from depends Boost (fanquake)

Pull request description:

  We no longer use Boost Chrono.

ACKs for top commit:
  practicalswift:
    ACK ad345909b2465a65ee023b389fae342088e2f187
  MarcoFalke:
    ACK ad345909b2465a65ee023b389fae342088e2f187
  kallewoof:
    ACK ad345909b2465a65ee023b389fae342088e2f187

Tree-SHA512: d987ab5461c76c982318c65ec8d625094356716b79fd3a462beea75f07db0f82608ace13ec4c4b0233f352508715a4505ac2b4ed1c1e9d9d78f0da936b80f0f3

# Conflicts:
#	build_msvc/bitcoin_config.h
#	ci/test/00_setup_env_native_asan.sh
#	ci/test/00_setup_env_native_fuzz.sh
#	ci/test/00_setup_env_native_fuzz_with_valgrind.sh
#	ci/test/00_setup_env_native_tsan.sh
#	ci/test/00_setup_env_native_valgrind.sh
#	depends/packages/boost.mk
#	doc/build-unix.md
2021-12-05 23:51:09 -05:00
Kittywhiskers Van Gogh
d7281c82ef merge bitcoin#16826: Do additional character escaping for wallet names and address labels 2021-12-05 18:45:22 +05:30
Kittywhiskers Van Gogh
4c85471e6d merge bitcoin#16758: Replace QFontMetrics::width() with TextWidth() 2021-12-05 18:45:22 +05:30
Kittywhiskers Van Gogh
d4a1decb73 merge bitcoin#16701: Replace functions deprecated in Qt 5.13 2021-12-05 18:45:22 +05:30
Kittywhiskers Van Gogh
16b2591e77 merge bitcoin#16570: Make descriptor tests deterministic 2021-12-05 15:47:46 +05:30
UdjinM6
632c759352
Merge pull request #4605 from UdjinM6/bp21036_min
Merges: #16184, #17029, #17308, #17409, #17483, #17756, #18331, #18556, #19622; partial merges: #16327, #18104, #18741, #20318, #21036
2021-12-05 13:07:44 +03:00
Wladimir J. van der Laan
3d642e293b Merge #16397: doc: Clarify includeWatching for fundrawtransaction
80031045fc6435ef4eb5dd1aee773d938c57a0fd Clarify includeWatching for fundrawtransaction (Steven Roose)

Pull request description:

  Might be sufficient to solve https://github.com/bitcoin/bitcoin/issues/16396, https://github.com/bitcoin/bitcoin/issues/7879 and https://github.com/bitcoin/bitcoin/issues/14405.

ACKs for top commit:
  Sjors:
    ACK 8003104. This will always be confusing, but at least it gives a bunch more clues for the user to google.

Tree-SHA512: 9b8002c259c50f93d89fc5574105aae6152858d8d45c07b4c3d5b7023adafe73c7a98a290874ff3fbbb7dfad2ac1bdf4acb8769a2a1c14e38484922f44e84e54
2021-12-04 21:05:07 -05:00
fanquake
dd37d5f947 Merge #17015: qa: Explain QT_QPA_PLATFORM for gui tests
fa06bb607da2d3e35723661156d873c8eac1fa50 qa: Do not force overwrite of QT_QPA_PLATFORM on windows for gui tests (MarcoFalke)
faccf5f9c899c40d4da5792629d0714249a4616b doc: Explain QT_QPA_PLATFORM for gui tests (MarcoFalke)

Pull request description:

  Closes #17013

ACKs for top commit:
  promag:
    ACK fa06bb607da2d3e35723661156d873c8eac1fa50.
  jonasschnelli:
    ACK fa06bb60
  ryanofsky:
    utACK fa06bb607da2d3e35723661156d873c8eac1fa50
  fanquake:
    ACK fa06bb607da2d3e35723661156d873c8eac1fa50 - tested on macOS using `QT_QPA_PLATFORM=cocoa src/qt/test/test_bitcoin-qt`.

Tree-SHA512: f257159f6e66b2df7e870ac832ae9ef09eea173c8b7cd766458f87cf22f94681c81dcc54dea030dbc97eab5e3ae5132a4ffe8a343431a4e40f7ee29dc808dcb1
2021-12-04 20:34:23 -05:00
UdjinM6
af68eeca22
Drop arm-linux-gnueabihf from releases 2021-12-04 00:51:20 +03:00
UdjinM6
a0cf454476
depends: let cmake detect compilers on its own 2021-12-03 18:13:02 +03:00
MarcoFalke
6c797b13e8
partial merge #21036: gitian: Bump descriptors to Focal for 22.0
2ecaf214331b506ebfac4f4922241744357d652b gitian: remove execstack workaround for ricv64 & powerpc64le (fanquake)
5baff2b31840bdbc465f55b875aa6e9480288215 build: use focal in gitian descriptors (fanquake)

Pull request description:

  This PR changes the gitian descriptors to use Ubuntu Focal (20.04), over Bionic (18.04), moving from GCC 7.5 to GCC 8.4 for native Linux builds, mingw-w64 GCC 7.3 to mingw-w64 GCC 9.3 for Windows builds, while continuing to use GCC 8.4 for all cross builds and Clang 8.0.0 for macOS builds.

  It also drops the `-Wl,-z,noexecstack` workaround we've been using for the riscv64 and powerpc64le hosts, as it's no-longer needed. One new package is installed in the osx build, `libtinfo5`, as libtinfo5.so is required by our downloaded Clang 8.

  A bump to Focal will at least be required if we want to update to a newer Qt (5.15, #19716) for 22.0, as we need a newer version of [`g++-mingw-w64`](https://packages.ubuntu.com/focal/g++-mingw-w64-x86-64) and the [`mingw-w64`](https://mingw-w64.org/doku.php) headers. This can still be done while continuing to use GCC 8.4 for Linux builds (see below), however the newer `g++-mingw-w64` will be based off of GCC 9.3.

  **Some considerations**

  GCC 9 is affected by #20005 "memcmp with constants that contain zero bytes are broken in GCC", and the newer `g++-mingw-w64` will be based off of GCC 9.3.

  The `--no-*` variants of the Windows linker flags (i.e `--no-dynamicbase`) we use to [test our `security-check.py` script](16b784d953/contrib/devtools/test-security-check.py (L53)) are not patched into the mingw binutils in Focal (they have been re-added in Groovy (20.10)). This isn't currently an issue, however, we might add a call to `test-security-check` for Guix (#20980), and if we wanted to do the same for gitian, it would not work. Note how it's quite "easy" for us to apply the `--no-*` variant patch to our Guix build; it would be quite a bit harder to do in Gitian.

  Gitian Builds @ 2ecaf214331b506ebfac4f4922241744357d652b

  #### Linux
  ```bash
  8882ea78486fbae4fac574b9089eb1107c6372d0dd7dfcda4f0f930576f9d6c1  bitcoin-2ecaf214331b-aarch64-linux-gnu-debug.tar.gz
  50a9e30943b4eee5163edff3331241e745ff32a2c4463c21a6fdc5986e2d0383  bitcoin-2ecaf214331b-aarch64-linux-gnu.tar.gz
  ec4e55a447fddf033fee33cd5f22bfeda3c3612f059194bcf6238859f7989d7a  bitcoin-2ecaf214331b-arm-linux-gnueabihf-debug.tar.gz
  444fe1b3b933c00bcbd4a9d86888cff3b61c1215b1debccd2843e842d1224777  bitcoin-2ecaf214331b-arm-linux-gnueabihf.tar.gz
  88e486ff465980dc1a4aab9687d142ec6f727ed2c52cf539f69db2877dee83b2  bitcoin-2ecaf214331b-powerpc64-linux-gnu-debug.tar.gz
  66144ac264c65cada9d86446e6026c85b04fb88198b8f41b42840f6031db3e6c  bitcoin-2ecaf214331b-powerpc64-linux-gnu.tar.gz
  34bcc13d78d929d575e34e77a6672f23ca7ea23230b28ec2eed563889352ba86  bitcoin-2ecaf214331b-powerpc64le-linux-gnu-debug.tar.gz
  b4c5f959664f3063df4330edfe343c17120eb6b556ee1c15c4aeb2c1c54ffd49  bitcoin-2ecaf214331b-powerpc64le-linux-gnu.tar.gz
  918fa72ab6f6ebce4e9663c93f72fe26651c260477cbb54749f7eb61438b5cc1  bitcoin-2ecaf214331b-riscv64-linux-gnu-debug.tar.gz
  f704f9f8c053ffe37d854e2e81e0f4c0614c435dad7f5d82518c681b73a76ae6  bitcoin-2ecaf214331b-riscv64-linux-gnu.tar.gz
  b59e3a62f1df9d79f30e916b3c9655f654036fe3a420040c53acc8dd9f4162c5  bitcoin-2ecaf214331b-x86_64-linux-gnu-debug.tar.gz
  a4dc9ca877cc97544e65db11be38406d16f15d74fcdcd2318bb92474729bc60d  bitcoin-2ecaf214331b-x86_64-linux-gnu.tar.gz
  b40ba2d5da498330ade92a4ccebcceb1452b94c8ffeacb336f87e93b5c88d8af  src/bitcoin-2ecaf214331b.tar.gz
  af6ebc91147778e4e6705eade62608dde4d6e60522d79087fa9129bdb7c01199  bitcoin-core-linux-22-res.yml
  ```

  #### Windows
  ```bash
  121a3970a6911cb8c453b2ce37d03f6cbb43333e29db8fa516c68563fb367f43  bitcoin-2ecaf214331b-win-unsigned.tar.gz
  6294e9efebe935092f9ba119dc60ad4094f18b51c4181324e54d3057524d6101  bitcoin-2ecaf214331b-win64-debug.zip
  5b5a236b63e67f5f6c07ad9aa716aa7b72fb63722c96798b332c6d164738f9cf  bitcoin-2ecaf214331b-win64-setup-unsigned.exe
  c1fa5894c5e02a201637567c80b9bde9024f44673dcd06fd4d489c1709179279  bitcoin-2ecaf214331b-win64.zip
  b40ba2d5da498330ade92a4ccebcceb1452b94c8ffeacb336f87e93b5c88d8af  src/bitcoin-2ecaf214331b.tar.gz
  665fd7eb61aed368150db58a254f15fb5efb51a4efa5abcc52571cb7a1a5de22  bitcoin-core-win-22-res.yml
  ```

  #### macOS
  ```bash
  6a1deae7662aa782baa82a42590f862c6bcdc4f4e38daa9b8c2a9eed1fbb5397  bitcoin-2ecaf214331b-osx-unsigned.dmg
  1ee843266e84928a4323fa255c833528c2617a2c9fd2f98fb26ba19bbfc1227b  bitcoin-2ecaf214331b-osx-unsigned.tar.gz
  097b64dadc167d8e5b733421bf1541a40760ad952990f7cf3f35adc6ae2616d0  bitcoin-2ecaf214331b-osx64.tar.gz
  b40ba2d5da498330ade92a4ccebcceb1452b94c8ffeacb336f87e93b5c88d8af  src/bitcoin-2ecaf214331b.tar.gz
  6e378fb543928e40c7119b96be6ff773d38506a9a888f8b02c7f1b8a0801a80e  bitcoin-core-osx-22-res.yml
  ```

ACKs for top commit:
  laanwj:
    Build script changes review ACK 2ecaf214331b506ebfac4f4922241744357d652b

Tree-SHA512: 975d5830b787d2e08988f43cbc6e839294171c1d94c8219636308b05f9b77041421612ae67be24a631674670cfc9c2d96d8177f2b3158a78fc3deea19631febf
2021-12-03 18:13:02 +03:00
Wladimir J. van der Laan
09199e8415
partial merge #20318: build: Ensure source tarball has leading directory name
faa2f06f5eaf8578873495f44603ee74d7a1abf4 scripted-diff: [build] Ensure source tarball has leading directory name (MarcoFalke)

Pull request description:

  This has been fixed in 0.20, so it needs to be fixed on master as well to avoid a regression

  #18945

ACKs for top commit:
  laanwj:
    ACK faa2f06f5eaf8578873495f44603ee74d7a1abf4
  hebasto:
    ACK faa2f06f5eaf8578873495f44603ee74d7a1abf4, tested gitian builds only.
  promag:
    ACK faa2f06f5eaf8578873495f44603ee74d7a1abf4.

Tree-SHA512: e3b025c29c45b025002abc35262bb5d771f6cbd807f1c256c477c243685e93cd43ad9f642b38e3cf218590912abe6ea0ddfec3bfbef36f99080aad74ed6cc0af
2021-12-03 18:13:02 +03:00
fanquake
2899ea1d89
Merge #19622: build: Drop ancient hack in gitian-linux descriptor
33a84e8f405ed6dd8885419cef305b4e6c7a428a build: Update and sort package list in gitian-linux.yml (Hennadii Stepanov)
95051682bedc2ef1076af5ede5bd56ca243279e3 build: Drop old hack which is unneeded now (Hennadii Stepanov)

Pull request description:

  The hack was aimed to fix an issue in Ubuntu Trusty 14.04 (see #8188).
  The current hack implementation was added in #8315.

  On master (8db23349fe9b512e6801d59d17052c5a7a1c64df) this hack is effectively noop, and it is no longer needed.

  I see this PR as a step to removing `libfaketime` from gitian builds.

ACKs for top commit:
  dongcarl:
    tACK 33a84e8f405e
  laanwj:
    Code review ACK 33a84e8f405ed6dd8885419cef305b4e6c7a428a

Tree-SHA512: 90036c555a500649ccc3d108bf11f09a9cfd2c92c0b598f7e0c0df63a713ae7abaf78f350b68c025470619c967223f45f6a235ad37a6ce1d1a0341ed34963ba0
2021-12-03 18:13:02 +03:00
fanquake
c0572028e3
partial merge #18741: guix: Make source tarball using git-archive
bfe1ba2f5b36056e0c41edf8206b93d3d83098df rel-builds: Specify core.abbrev for git-rev-parse (Carl Dong)
27e63e01cce368d67092de8f0c736927d6f6aa69 build: Accomodate makensis v2.x (Carl Dong)
1f2c39a30e0f82046c7aecddfda3eb99cb536816 guix: Remove logical cores requirement (Carl Dong)
a4f6ffa71e335d4b2a6bf525b7f416968f9cd9f7 lint: Also enable source statements for non-gitian (Carl Dong)
d256f91cb1b0d6ff5170106b99b0266cbe51f5a2 rel-builds: Directly deploy win installer to OUTDIR (Carl Dong)
fa791da02f9684e3fd554b687fb692ae6a23d65a nsis: Specify OutFile path only once (Carl Dong)
14701604d0904bc5bbf1c67de08f8ee6d3215523 guix: Expose GIT_COMMON_DIR in container as readonly (Carl Dong)
f5a6ac4f48b18f93050d77bcb23f9cf45ec34647 guix: Make source tarball using git-archive (Carl Dong)
395c1137f630dc495ffb2752a23bc1dfd470ee53 gitian: Limit sourced script to just assignments (Carl Dong)

Pull request description:

  Based on: #18556
  Related: https://github.com/bitcoin/bitcoin/pull/17595#discussion_r399728721

ACKs for top commit:
  fanquake:
    ACK bfe1ba2f5b36056e0c41edf8206b93d3d83098df - I agree with Carl, and am going to merge this. I'd like for Linux Guix builds to be working again, and we can rebase #18818.

Tree-SHA512: c87ada7e3de17ca0b692a91029b86573442ded5780fc081c214773f6b374a0cdbeaf6f6898c36669c2e247ee32aa7f82defb1180f8decac52c65f0c140f18674
2021-12-03 18:13:01 +03:00
fanquake
4786fb0f71
Merge #17756: build: remove WINDOWS_BITS from build system
abc147de95fb294a2c0a3105695e708517010322 build: remove WINDOWS_BITS from build system (fanquake)

Pull request description:

  We no longer build/ship 32 bit windows executables.

ACKs for top commit:
  laanwj:
    LGTM ACK abc147de95fb294a2c0a3105695e708517010322

Tree-SHA512: 7101393cddb7e578740e4c79532dac981eb963630ce63c28dfebf0f5ecde266c1836ac0efd1fd82e6010a6151755ad2cc2b09bc2f67edd7c0c77060ac046a9cd
2021-12-03 18:13:01 +03:00
fanquake
a0d3f37d3a
Merge #18556: build: Drop make dist in gitian builds
2aa48edec0101f8a77a2189244fc62722ff7a123 refactor: Drop unused ${WRAP_DIR}/${HOST} directory (Hennadii Stepanov)
1362be044724bb49d785ca2e296a3b43343c1690 build: Drop make dist in gitian builds (Hennadii Stepanov)

Pull request description:

  After the merge of #18331, the packaged source tarball is created by `git archive`, but the binaries are built from another one which is made by `make dist`.

  With this PR the only source tarball, created by `git archive`, is used both for binaries building and for packaging to users.

  Close #16588.
  Close #18547.

  As a good side-effect, #18349 becomes redundant.

  **Change in behavior**

  The following variables 1b151e3ffc/configure.ac (L2-L6)

  are no longer used for naming of directories and tarballs.

  Instead of them the gitian descriptors use a git tag (if available) or a commit hash.

  ---

  Also a small refactor commit picked from #18404.

ACKs for top commit:
  dongcarl:
    ACK 2aa48edec0101f8a77a2189244fc62722ff7a123
  MarcoFalke:
    ACK 2aa48edec0101f8a77a2189244fc62722ff7a123
  fanquake:
    ACK 2aa48edec0101f8a77a2189244fc62722ff7a123 - I've had a quick look over this, and don't want to block merging if this actually gets as closer to finally having this all sorted out. Obviously we've still got #18741, and after speaking to Carl this morning, there will likely be even more changes after that (not Guix specific).

Tree-SHA512: d3b16f87e48d1790a3264940c28acd5d881bfd10f3ce94fb0c8a6af76d8039289d01e0cd4972adac49ae24362857251f6c1e5e09e3e9fbf636c10708b4015a7c
2021-12-03 18:13:01 +03:00
UdjinM6
ac953c5ac7
Apply shellcheck suggestions 2021-12-03 18:13:01 +03:00
fanquake
ffe950bbc7
partial merge #16327: scripts and tools: Update ShellCheck linter
1ac454a3844b9b8389de0f660fa9455c0efa7140 Enable ShellCheck rules (Hennadii Stepanov)

Pull request description:

  Enable some simple ShellCheck rules.

  Note for reviewers: `bash` and `shellcheck` on macOS are different from ones on Ubuntu.
  For local tests the latest `shellcheck` version 0.6.0 should be used (see #15166).

ACKs for top commit:
  practicalswift:
    utACK 1ac454a3844b9b8389de0f660fa9455c0efa7140
  dongcarl:
    utACK 1ac454a
  fanquake:
    ACK 1ac454a3844b9b8389de0f660fa9455c0efa7140

Tree-SHA512: 8d0a3a5c09fe1a0c22120178f5e6b80f81f746f8c3356b7701ff301c117acb2edea8fe08f08fb54ed73f94b1617515fb239fa28e7ab4121f74872e6494b6f20e
2021-12-03 18:13:01 +03:00
Wladimir J. van der Laan
824d6c08f9
Merge #17308: nsis: Write to correct filename in first place
3b3b93174a216961f935b63b03732fbc2821ff92 nsis: Write to correct filename in first place (Carl Dong)

Pull request description:

  Per MarcoFalke's suggestion here https://github.com/bitcoin/bitcoin/pull/17029#discussion_r333216722

ACKs for top commit:
  MarcoFalke:
    unsigned ACK 3b3b93174a216961f935b63b03732fbc2821ff92, makes sense to name it that way because it will raise the "unsinged" error in Windows

Tree-SHA512: da72aae438505e162d0b3cd27d873b7ad8176178bb459a738e61b6e2ad0fa739d905b3109fab641bb1a3950fe59ad526c5568d12cf48a305166cdb7db6686543
2021-12-03 18:13:00 +03:00
Wladimir J. van der Laan
83cbc3c811
Merge #18331: build: Use git archive as source tarball
e4d366788bc2e8dce8e6ca572fce08d913d15d6b build: Drop needless EXTRA_DIST content (Hennadii Stepanov)
6c4da59f5b5b3c40526d38965d4ffa7fd59f2ebc build: Drop SOURCEDIST reordering (Hennadii Stepanov)
5e6b8b391243016cb06e9e107c2e6a13a744b31e build: Use git archive as source tarball (Hennadii Stepanov)

Pull request description:

  This PR:
  - is an alternative to #17104
  - closes #16734
  - closes #6753

  The idea is clear described by some developers:
  - [MarcoFalke](https://github.com/bitcoin/bitcoin/pull/17097#issuecomment-540691850):
  > This whole concept of explicitly listing each and every file manually (or with a fragile wildcard) is an obvious sisyphean task. I'd say all we need to do is run git archive and be done with it forever, see #16734, #6753, #11530 ...

  - [laanwj](https://github.com/bitcoin/bitcoin/pull/17097#issuecomment-540706025):
  > I agree, I've never been a fan of it. I don't think we have any files in the git repository we don't want to ship in the source tarball.

  ---

  The suggested changes have a downside which is pointed by [**luke-jr**](https://github.com/bitcoin/bitcoin/pull/17104#issuecomment-540828045):
  > ... but the distfile needs to include autogen-generated files.

  This means that a user is not able to run `./configure && make` right away. One must run `./autogen.sh` at first.

  Here are opinions about mandatory use of `./autogen.sh`:
  - [ryanofsky](https://github.com/bitcoin/bitcoin/issues/16734#issuecomment-534139356):
  > It's probably ok to require autogen. I think historically configure scripts were supposed to work on obscure unix systems that would just have a generic shell + make tool + c compiler, and not necessarily need gnu packages like m4 which are needed for autogen.

  - [laanwj](https://github.com/bitcoin/bitcoin/issues/16734#issuecomment-540729483):
  > I also think it's fine to require autogen. What is one dependency more, if you're building from source.

  ---

  ~Also this PR provides Windows users with ZIP archives of the sources. Additionally the commit ID is stored in these ZIP files as a file comment:~

  ---

  Note for reviewers: please verify is `git archive` output deterministic?

ACKs for top commit:
  MarcoFalke:
    re-ACK e4d366788bc2e8dce8e6ca572fce08d913d15d6b, only change is adding two dots in a the path 🛳
  laanwj:
    ACK e4d366788bc2e8dce8e6ca572fce08d913d15d6b

Tree-SHA512: d1153d3ca4a580696019b92be3555ab004d197d9a2146aacff9d3150eb7093b7d40eebd6eea12d861d93ff62d62b68706e04e64dbe5ea796ff6757486e462193
2021-12-03 18:13:00 +03:00
fanquake
b5f5bf7330
partial merge #18104: build: Skip i686 build by default in guix and gitian
fae9084ac5b10f94bdee54853d307838c4254e9c build: Skip i686 build by default in guix and gitian (MarcoFalke)
fa55a2554c2661b8f2a759044d5ac85c9979d9ca depends: Remove reference to win32 (MarcoFalke)

Pull request description:

  Closes #17504

  Now that we no longer provide downloads for i686 on our website (https://bitcoincore.org/en/download/), there is no need to build them by default.

  i686 can still be built in depends (tested by ci/travis) and in guix/gitian by setting the appropriate `HOSTS`.

ACKs for top commit:
  practicalswift:
    ACK fae9084ac5b10f94bdee54853d307838c4254e9c -- patch looks correct
  dongcarl:
    ACK fae9084ac5b10f94bdee54853d307838c4254e9c patch looks correct
  laanwj:
    Code review ACK fae9084ac5b10f94bdee54853d307838c4254e9c
  hebasto:
    ACK fae9084ac5b10f94bdee54853d307838c4254e9c, I have reviewed the code and it looks OK, I agree it can be merged.

Tree-SHA512: b000c19a2cd2a596a52028fa298c4022c24cfdfc1bdb3795a90916d0a00a32e4dd22278db93790b6a11724e08ea8451f4f05c77bc40d1664518e11a8c82d6e29
2021-12-03 18:13:00 +03:00
MarcoFalke
8022accec7
Merge #17483: build: Set gitian arch back to amd64
fae75306bac4c82dd07a1b85ce5dfb020e052fe8 scripted-diff: Set gitian arch back to amd64 (MarcoFalke)

Pull request description:

  This was required to allow gitian builds on non-amd64 architecture, however, it seems to break the current builds (with lxc), see https://github.com/bitcoin/bitcoin/pull/17409#issuecomment-554099626

  Also, the gititan builds wouldn't be deterministic across arches anyway, see #17468

  So instead of wasting more time on this, revert the change and hope that guix allows to compile on non-amd64 architectures.

Top commit has no ACKs.

Tree-SHA512: 801e9a30ae1b0882ef45d5eb3a3cf80f3ace3b99db046069dbd95b6162119e977e3cf3134287d1ac5d09483906206acc71e1ac34d6b74dbc533d46aaf73f5cc2
2021-12-03 18:13:00 +03:00
Wladimir J. van der Laan
b7f68eabe6
Merge #17409: build: Avoid hardcoded libfaketime dir in gitian
333362991c5219e6d9ede5fa54328bcbb0277cf2 doc: Explain $LIB in LD_PRELOAD in gitian descriptors (MarcoFalke)
fab9850ef4a76e4f09278909a2865e5175661653 scripted-diff: Avoid hardcoded libfaketime dir in gitian (MarcoFalke)

Pull request description:

  Without this gitian prints warnings for me:

  ```
  ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
  ```

  ```
  $ ls /usr/lib/aarch64-linux-gnu/faketime/libfaketime.so.1
  /usr/lib/aarch64-linux-gnu/faketime/libfaketime.so.1
  ```

ACKs for top commit:
  laanwj:
    ACK 333362991c5219e6d9ede5fa54328bcbb0277cf2

Tree-SHA512: 3e7c4471b69c2ae38c29d0cc0db8b9eae0912085299d7f5ac67eeb4b6a2fdc7eb23d806eeeae0b0c2da22d6d1ba82513cab23652876b97aada9928b2c7d38e7e
2021-12-03 18:13:00 +03:00
Wladimir J. van der Laan
56057a27e5
Merge #17029: gitian: Various improvements for Windows descriptor
9d1f971c7554bd5eb80792a1b9a692e0145ed516 gitian: Put things in the right place to begin with (Carl Dong)
71949a97a7d050d4cd511731062a9ffe471ac438 gitian: Eliminate rename dependency (Carl Dong)
999a9a5f5b4165dbdcb032c8d58c0ac1085ddcd1 gitian: Smaller diff with gitian-linux.yml (Carl Dong)
c4a3c25ba11b20871699e570fc7b98a7b8472503 gitian: Fix README inclusion in archives (Carl Dong)
93cb974980c578c459c15fd28e565c9722a1627d gitian: Use split-debug.sh for Win builds (Carl Dong)

Pull request description:

  It would seem that our `gitian-win.yml` has not been keeping up with `gitian-linux.yml`, this PR:

  1. Minimizes the diff size between `gitian-{win,linux}.yml`
  2. Eliminates the `rename` dependency

ACKs for top commit:
  laanwj:
    ACK 9d1f971c7554bd5eb80792a1b9a692e0145ed516

Tree-SHA512: 84ed47c685e12d0064c02811907ae3d0fd3c47db8773d497dcc38f0defbfb3040fd82899fb026cf355f229b906d05a1c8038a95642bb90d044afbc2e0b239af2
2021-12-03 18:13:00 +03:00
MarcoFalke
6dd986c111
Merge #16184: scripted-diff: gitian: Use REFERENCE_DATETIME directly.
993aa414d3 scripted-diff: gitian: Use REFERENCE_DATETIME directly. (Carl Dong)

Pull request description:

  Fixes regression introduced by #16141.

  ```
  -BEGIN VERIFY SCRIPT-
  sed -i 's#\$REFERENCE_DATE\\\\\\ \$REFERENCE_TIME#\$REFERENCE_DATETIME#g' contrib/gitian-descriptors/*
  -END VERIFY SCRIPT-
  ```

  -----

  Note that this could have been fixed by escaping properly, but using `REFERENCE_DATETIME` directly is simpler.

  Future note: `REFERENCE_{DATE{,DATETIME},TIME}` is a bit ridiculous. At the very _least_ gitian should use epoch, as it is the most parse-able, and preferably set SOURCE_DATE_EPOCH.

ACKs for commit 993aa4:

Tree-SHA512: 8457e5fffde66e1d2b846547b6807416b884c171f63569f76dfefd498d2a58ad6f9eb93931eb6cfc7ff38c6b460b0c488ca87d1a68bc630c48f365a74b6ee163
2021-12-03 18:12:56 +03:00