Commit Graph

128 Commits

Author SHA1 Message Date
Wladimir J. van der Laan
1835af9b36
Merge #20549: Support make src/bitcoin-node and src/bitcoin-gui
206f74e88cfa343d228c1d6596d3846863824ca5 Support make src/bitcoin-node and src/bitcoin-gui (João Barbosa)

Pull request description:

  This change adds the following configure output variables
  ```
  dnl Multi Process
  BITCOIN_MP_NODE_NAME=bitcoin-node
  BITCOIN_MP_GUI_NAME=bitcoin-gui
  ```
  and adds support for
  ```sh
  make src/bitcoin-node src/bitcoin-gui
  ```

ACKs for top commit:
  laanwj:
    Code review ACK 206f74e88cfa343d228c1d6596d3846863824ca5

Tree-SHA512: 4d1a694b9010ecc267ee955f4475127a58e6da72f30179ec740285ee6fe03cd91dcb6847317a47460dbd548edb88b7da6c7a98eac10f0dabe3ce4e83e0aa8093
2024-01-16 09:34:27 -06:00
Kittywhiskers Van Gogh
343e2724d2
merge bitcoin#19916: allow user to specify DIR_FUZZ_SEED_CORPUS for cov_fuzz 2024-01-10 12:11:18 -06:00
Kittywhiskers Van Gogh
9d227e82a0
merge bitcoin#19688: Add support for llvm-cov 2024-01-10 12:11:17 -06:00
fanquake
007076d372 Merge bitcoin/bitcoin#24603: macdeploy: remove unused detached-sig-apply.sh
979271a5d9ff887cb2efb199feaf9602c9b2086d macdeploy: remove unused detached-sig-apply (fanquake)

Pull request description:

  Signature application is now done with signapple.

  8435d7f11a/contrib/guix/libexec/codesign.sh (L84-L85)

ACKs for top commit:
  laanwj:
    ACK 979271a5d9ff887cb2efb199feaf9602c9b2086d
  gruve-p:
    ACK 979271a5d9
  achow101:
    ACK 979271a5d9ff887cb2efb199feaf9602c9b2086d
  hebasto:
    ACK 979271a5d9ff887cb2efb199feaf9602c9b2086d, I have reviewed the code and it looks OK, I agree it can be merged.

Tree-SHA512: ab51a609d00cead4f33bcfc5b5ff1008ee02363ab1f4c4bf9544631069c237bfa92eac4dfa231bff8a1d702bda6cc92b4151361f74f58e77b595e0cb82a8391a
2023-11-24 11:23:46 -06:00
laanwj
8b61966944 Merge bitcoin/bitcoin#24669: build: further consolidate macOS deployment
3d415215699e718b3f6eea6e3c9fb2948476f930 build: perform /Applications symlink generation in macdeployqtplus (fanquake)
dac693671928aa3fc304e6a802abfffb2f4ec8fd build: perform all .tiff copying in macdeployqtplus (fanquake)

Pull request description:

  Rather than maintaining 2 different versions of the same code (`.tiff` copying and symlink generation), consolidate to just the Python code, and use it on macOS and Linux. Previously Linux would  perform the 2 actions in the makefile, and then would still be running the `macdeployqtplus` script, so it makes sense to further consolidate deployment operations into the script.

  Guix Build (on x86_64):
  ```bash
  23343f04c426c7ff078afae4e600a7028970d4d86eed8b7834696d9e4d684151  guix-build-3d415215699e/output/arm64-apple-darwin/SHA256SUMS.part
  c28b2a2e4888bf84369aa25804e2576347d5ab09416354ec8b95c76a9d38ff96  guix-build-3d415215699e/output/arm64-apple-darwin/bitcoin-3d415215699e-arm64-apple-darwin-unsigned.dmg
  9a57077b2bd722a7d85d26b66cbce5abdb791985fe9d9d37e884c79ba8751e24  guix-build-3d415215699e/output/arm64-apple-darwin/bitcoin-3d415215699e-arm64-apple-darwin-unsigned.tar.gz
  d2b06dc5b86541798ace41dab569849f7403e7ff9ec329bda671ec84e6fad549  guix-build-3d415215699e/output/arm64-apple-darwin/bitcoin-3d415215699e-arm64-apple-darwin.tar.gz
  608e7d51a44ab9c5b28eb3703a0f4fe98b4adff22c77a5502786b84bd96cc188  guix-build-3d415215699e/output/dist-archive/bitcoin-3d415215699e.tar.gz
  3e483705b1f9f1fb8f6afedc8ad0214a6cb00e77f766c0b03c42d56f410d4362  guix-build-3d415215699e/output/x86_64-apple-darwin/SHA256SUMS.part
  9370e3e3b7d47b5a44e64554cf3b6d7e0671b072c08cd251eacc7ec72ce2b53f  guix-build-3d415215699e/output/x86_64-apple-darwin/bitcoin-3d415215699e-x86_64-apple-darwin-unsigned.dmg
  ad0f68682d78c311497669fc3d627138be37510215d259b5f0b686d93e7d83b7  guix-build-3d415215699e/output/x86_64-apple-darwin/bitcoin-3d415215699e-x86_64-apple-darwin-unsigned.tar.gz
  e09dce4ff692ef66d1f4818083c1880bcf3a79c53112561d9e929bb6e5ffc011  guix-build-3d415215699e/output/x86_64-apple-darwin/bitcoin-3d415215699e-x86_64-apple-darwin.tar.gz
  ```

ACKs for top commit:
  laanwj:
    Re-ACK 3d415215699e718b3f6eea6e3c9fb2948476f930

Tree-SHA512: 80dd66a6e94c5b3e8823ccb57dcb08a8851a1e70a154b62385443f8d2d5ed5af900a0ac5003143959863586f1c7b90002fe6bff3ca5e37697253e051f69d7629
2023-11-24 11:23:46 -06:00
Kittywhiskers Van Gogh
b1dd417f26 merge bitcoin#23909: use a static .tiff for macOS .dmg over generating 2023-06-18 11:47:54 -05:00
Kittywhiskers Van Gogh
77539574a7 merge bitcoin#20422: mac deployment unification 2023-06-07 14:42:02 +05:30
Kittywhiskers Van Gogh
110dbf82e8 merge bitcoin#22392: use LIEF for ELF security & symbol checks 2023-06-07 14:42:02 +05:30
Kittywhiskers Van Gogh
24a6642b6f partial bitcoin#22381: Test security-check sanity before performing them (with macOS)
excludes:
- d6ef3543ae16847d5a91fa9271acee9bd2164b32
2023-06-07 14:42:02 +05:30
Kittywhiskers Van Gogh
067d4a4541 merge bitcoin#20608: add symbol check test for PE binaries 2023-06-07 14:42:02 +05:30
Kittywhiskers Van Gogh
994fb5739c merge bitcoin#18434: add a test-security target and run it in CI 2023-06-07 14:40:37 +05:30
Wladimir J. van der Laan
e479892050 Merge #18107: build: Add cov_fuzz target
faf7d4fa86b700ec272806cd2bd8666a92405619 build: Add cov_fuzz target (MarcoFalke)
fac71e364e4bbaeffc35e45aff8c8c2c6f2b5c67 build: link fuzz/test_runner.py for out-of-tree builds (MarcoFalke)
faf2c5aca01643eb560287e08f9c0a7ca0ac9c88 build: Remove unused USE_COVERAGE (MarcoFalke)

Pull request description:

  Only libFuzzer is supported right now, so clang is required. Thus, this needs a workaround such as https://github.com/bitcoin/bitcoin/issues/12602#issuecomment-562788247

  Can be tested with:

  ```
  mkdir build && cd build
  ../configure --enable-fuzz --with-sanitizers=fuzzer --enable-lcov --enable-lcov-branch-coverage CC=clang CXX=clang++
  make $MAKEJOBS
  make cov_fuzz

ACKs for top commit:
  practicalswift:
    ACK faf7d4fa86b700ec272806cd2bd8666a92405619

Tree-SHA512: 6828f8f81d95f6781713d0b09d7eba2ffdb50217e09ca839db61791a4ed70024859c7a0cb01d9eede79166d574dd57ece01f9d9fe2610d4a72a4ca4a4ce0b838
2023-05-31 12:01:04 -05:00
Kittywhiskers Van Gogh
cb5ac0d292 merge bitcoin#11702: Add a script for installing db4 2023-05-27 23:15:05 +05:30
fanquake
48b1186ce1 Merge bitcoin/bitcoin#22234: build: Mark print-% target as phony.
fb7be92b094477131140b58a4e3ae98366b93e76 Mark print-% target as phony. (Dmitry Goncharov)

Pull request description:

  .PHONY does not take patterns (such as print-%) as prerequisites.
  Have print-% depend on force and mark force as phony.

  This change ensures print-% rule works even when there is a file that matches the target.

  ```
  $ # on master
  $ make print-host
  host=x86_64-pc-linux-gnu
  $ touch print-host
  $ make print-host
  make: 'print-host' is up to date.
  $
  $ git co mark_print_as_phony
  Switched to branch 'mark_print_as_phony'
  $ make print-host
  host=x86_64-pc-linux-gnu
  $ touch force
  $ make print-host
  host=x86_64-pc-linux-gnu
  ```

ACKs for top commit:
  hebasto:
    ACK fb7be92b094477131140b58a4e3ae98366b93e76, tested on Linux Mint 20.2 (x86_64).

Tree-SHA512: b89ae66aa8c7aa6a7ab5f0956f9eb3b3ef9d56994b60dc2a97d498d4c1bba537845c190723e8a10310280b1b35df2cd935cc30aeb76735cac2dc621ad7823772
2023-04-16 23:40:59 +03:00
W. J. van der Laan
033e30de8b Merge bitcoin/bitcoin#21239: guix: Add codesignature attachment support for osx+win
ee883201cf134952284632e9e9ae72bf1c8c792f guix: repro: Sort find output in libtool for gcc-8 (Carl Dong)
ee0a67c32a8861eab650bf8894af06807578eba0 codesigning: Use SHA256 as digest for osslsigncode (Windows) (Carl Dong)
38eb91eb0616ed6dbe34c23e11588d130fef07f8 guix: Add codesigning functionality (Carl Dong)
bac2690e6f683fcedb883fe1d32f3c33c628a141 guix: Package codesigning tools (Carl Dong)
0a2176d47767972e4cd5ed302c1dbeedece1708b guix: Reindent existing manifest.scm (Carl Dong)
c090a3e9238ba2df07875b4708e908d8dca4ed9b Makefile.am: use APP_DIST_DIR instead of hard-coding dist (Carl Dong)

Pull request description:

  This is the last PR before we reach feature-parity with the Gitian process!

  Note: I tried using the `Makefile` inside the distsrc to make the dmg instead of manually listing out the commands, but `make` seems to want to re-make a lot of other files which broke the dmg.

  The workflow looks something like this:
  1. `env [ FOO=bar... ] ./contrib/guix/guix-build` (add additional env vars as necessary)
  2. Codesigners only:
      1.  Copy `guix-build-<short-id>/output/x86_64-apple-darwin18/bitcoin-<short-id>-osx-unsigned.tar.gz` and `guix-build-<short-id>/output/x86_64-w64-mingw32/bitcoin-<short-id>-win-unsigned.tar.gz` to signing computer
      2. Codesign with `./detached-sig-create.sh` inside the tarball
      3. Upload contents of `signature-{osx,win}.tar.gz` to https://github.com/bitcoin-core/bitcoin-detached-sigs (as a new tag)
  3. Checkout new tag for `bitcoin-core/bitcoin-detached-sigs` with the detached signatures
  4. `env [ FOO=bar... ] DETACHED_SIGS_REPO=<path/to/bitcoin-detached-sigs> ./contrib/guix/guix-codesign` (modify env vars as necessary)
  5. Make sure `guix.sigs` is cloned and updated
  6. `env GUIX_SIGS_REPO=<path/to/guix.sigs> SIGNER=0x96AB007F1A7ED999=dongcarl ./contrib/guix/guix-attest` (modify env vars as necessary)
  7. Commit your new signatures and SHA256SUMS in `guix.sigs`
  8. Optionally, after there are multiple signatures in `guix.sigs`: `env GUIX_SIGS_REPO=<path/to/guix.sigs> ./contrib/guix/guix-verify`

ACKs for top commit:
  laanwj:
    Tested ACK ee883201cf134952284632e9e9ae72bf1c8c792f
  achow101:
    ACK ee883201cf134952284632e9e9ae72bf1c8c792f

Tree-SHA512: e812a07a5f19f900600c70cb9c717769ef544a6c0c12760b5558b76b6b37df863257f3dbf38b0757e6e06e334470267e94c9f2bdbc27409d6837b1a0bfc6acbc
2023-03-26 16:50:26 -05:00
W. J. van der Laan
0d5bc0b0f5 Merge #21304: guix: Add guix-clean script + establish gc-root for container profiles
867a5e172a23899a4a70eca4a396c64f1951745e guix: Register garbage collector root for containers (Carl Dong)
8f8b96fb542701b7717683caa3848390b24f77ab guix: Update hint messages to mention guix-clean (Carl Dong)
44f6d4f56b16e1dc5e8a23318b8e7aad0665f178 guix: Record precious directories and add guix-clean (Carl Dong)
84912d4b24382ae022da3a863bd6caa2b8948d94 build: Remove spaces from variable-printing rules (Carl Dong)

Pull request description:

  ```
  guix: Record precious directories and add guix-clean

  Many users have reported problems that stem from having an unclean
  working tree. To that end, I've written a guix-clean script which should
  help reset the working tree while respecting user-specified precious
  directories.

  Precious directories, such as:

  - SOURCES_PATH
  - BASE_CACHE
  - SDK_PATH
  - OUTDIR

  Should be preserved when cleaning the working tree, and are thus
  recorded in ./contrib/guix/var/precious_dirs.

  The ./contrib/guix/guix-clean script is able to parse that file and make
  sure to avoid them when cleaning out the working tree.
  ```

ACKs for top commit:
  laanwj:
    ACK 867a5e172a23899a4a70eca4a396c64f1951745e

Tree-SHA512: c498fad781ff5e6406639df2b91b687fc528273fdf266bcdba8f6eec3b3b37ecce544b6da0252f0b9c6717f9d88e844e4c7b72d1877bdbabfc6871ddd0172af5
2023-03-26 16:50:26 -05:00
Wladimir J. van der Laan
b207af123c Merge #20629: depends: Improve id string robustness
5200929bfe26c549d7da92c0adf8adf61e143416 depends: Include GUIX_ENVIRONMENT in id string (Carl Dong)
4c7d41858821e4fecf7cb0cec3fcad002365e6c9 depends: Improve id string robustness (Carl Dong)
b3bdff42b5a7b4b956da700b187a7254daac54ae build: Proper quoting for var printing targets (Carl Dong)

Pull request description:

  ```
  Environment variables and search paths can drastically effect the
  operation of build tools.

  Include these in our id string to mitigate against false cache hits.
  ```

  Note to builders: This will invalidate all depends output caches in `BASE_CACHE`

ACKs for top commit:
  laanwj:
    re-ACK 5200929bfe26c549d7da92c0adf8adf61e143416

Tree-SHA512: e70c98da89cde90dc54bc3be89b925787cf94bbf246e27cc9345816b312073d78a02215448f731f21d8cf033c455234a2377ff1d66c00e1f3db69c9c9687d027
2023-03-26 16:50:26 -05:00
fanquake
a6e7dda55b Merge #17920: guix: Build support for macOS
f1694757ddbcb3635213b085e864851e285c8c12 guix: Fix typo (Carl Dong)
771c4b98a8693eee642f2b118b3193fe6e022291 guix: README: Add darwin HOSTS entry (Carl Dong)
8dbf18cb1d3260d34ba822ceb12e67b1f124ea13 guix: Check for macOS SDK before building anything (Carl Dong)
34b23f597ec52efb795d72e9e5620712d0010edd guix: Set ZERO_AR_DATE for darwin build determinism (Carl Dong)
f3835dc6a3732dcd4afbb5987f84dc27f2bf55af build: Make xorrisofs reproducible with -volume_date (Carl Dong)
c9eb4cf3a0f81bfd72f06fd43b5610f0a4f5e804 guix: Add support for darwin builds (Carl Dong)
37fe73a092b08fe9d7ce636a1021429de6cda757 build: Add var printing target to src/Makefile.am (Carl Dong)

Pull request description:

  This PR brings our Guix builds on par with Gitian in terms of supported architectures.

  Reviewers: if you run a build, please submit:

  ```
  find output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
  ```

  So that we can compare hashes and ensure reproducibility!

ACKs for top commit:
  fanquake:
    ACK f1694757ddbcb3635213b085e864851e285c8c12 - I think we can make some small usability improvements, but this is ok to merge now.

Tree-SHA512: 4af2b71654a9736467dcc681d10601c6eee37800d7847011a50585455b67b55d61742ca5604585f310a2fd75335b674e5e27dfb5169cb2f26e112aa4c411d8be
2023-03-26 16:50:26 -05:00
Kittywhiskers Van Gogh
d37f30ce46 merge bitcoin#20476: Add test for ELF symbol-check 2023-01-18 19:02:39 -06:00
Kittywhiskers Van Gogh
29c885c9f7 merge bitcoin#20434: Parse ELF directly for symbol and security checks 2023-01-18 19:02:39 -06:00
Kittywhiskers Van Gogh
faeb154a01 build: restore support for building immer from local subtree 2022-12-01 00:51:07 +05:30
Kittywhiskers Van Gogh
305abe91f9
build/depends: commit dashpay/bls-signatures@66ee820f to source tree as vendored (#5077)
* Squashed 'src/dashbls/' content from commit 66ee820fbc

git-subtree-dir: src/dashbls
git-subtree-split: 66ee820fbc9e3b97370db8c164904af48327a124

* build: stop tracking build-system generated relic_conf.h.in

* build: add support for building bls-signatures from local subtree

* build: add exclusions to linting scripts and filters

* build: drop bls-signatures (bls-dash) from depends
2022-11-22 11:34:46 -06:00
Kittywhiskers Van Gogh
4dbb95316a merge bitcoin#18416: Limit decimal range of numbers ParseScript accepts 2022-11-01 00:28:53 -05:00
fanquake
ddd6ff38e9
Merge #19861: build: add /usr/local/ to LCOV_FILTER_PATTERN for macOS builds
9bdde3c802e1512cbcd8ae8f7db72b6fe13ea829 build: add /usr/local/ to LCOV_FILTER_PATTERN for macOS builds (eugene)

Pull request description:

  With this commit, the files in /usr/local/ will not be included in
  `make cov` or `make cov_fuzz` coverage reports. This behavior could
  be observed when generating the reports on macOS with brew-installed
  clang.

ACKs for top commit:
  fanquake:
    ACK 9bdde3c802e1512cbcd8ae8f7db72b6fe13ea829

Tree-SHA512: 15cbe8d514651448f3d7b8b0a00939fd6bd6f15e6812f1959fcaaab7364ca2ef4ee34f2ff8950b7fdc8ae64d043dc5f7185c0601dd94780b41331337e5e84c45
2022-06-07 16:11:23 -05:00
MarcoFalke
f1995b6ef9 Merge #17647: lcov: filter depends from coverage reports
f736f6920b160c9e7d7072500ddd0459c5181f86 lcov: filter /usr/lib64 from coverage report (nijynot)
a5a705b46dd32f93857e916311e3b71cae8be6b7 lcov: filter depends from coverage report (nijynot)

Pull request description:

  If you build the binaries with the `depends` folder and then generate coverage reports with `make cov`, `depends` will be included in the coverage reports. Coverage of the dependencies are not that interesting and should be filtered.

ACKs for top commit:
  laanwj:
    code review ACK f736f6920b160c9e7d7072500ddd0459c5181f86
  MarcoFalke:
    ACK f736f6920b160c9e7d7072500ddd0459c5181f86 🐇

Tree-SHA512: 57c3e09f32e71523afff6ddc4f92bc35ab7b783f26f7a7380ae7556222954111cccce4c6dbc99305c424818f91e15bf5fe3532a7dca1daaa8ad71315d1dd857c
2022-05-30 19:09:39 +07:00
MarcoFalke
baf262b022 Merge #12051: add missing debian contrib file to tarball
5d7ce74ab3 add missing debian contrib files to tarball (Peter Wagner)

Pull request description:

  the current release is missing the debian contrib folder, add it

ACKs for commit 5d7ce7:

Tree-SHA512: 9d38c9ec0cc13171582c0bde57a2f69b22026a91f353e20da556cb63a4cfbba68b2465c9c62eaa98df50a65d971cc4411ffee519824b34068772ae8ddedb7d4c
2021-12-26 22:23:01 -05: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
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
MarcoFalke
feafa02be2 Merge #16207: test: stop generating lcov coverage when functional tests fail
9218ce8d48 Failing functional tests stop lcov (Aseem Sood)

Pull request description:

  Fixes #15648

  Functional tests can fail and lcov still generates a coverage file, which is inaccurate. This change stops `make` from proceeding if functional tests fail.

  before:

  ![image](https://user-images.githubusercontent.com/6106941/59449220-a9a11480-8dd4-11e9-9eff-81c42513aafa.png)

  after:
  ![image](https://user-images.githubusercontent.com/6106941/59449234-b160b900-8dd4-11e9-9d80-6e9c7f41c241.png)

ACKs for commit 9218ce:
  laanwj:
    straightforward enough ACK 9218ce8d48e504aeaa983e82b206a386712e43e4

Tree-SHA512: 6bbba625f021471d897e911b0df7703153634ef133e295e7be8639346e11f5532bac04e9bab7d793e520fdf4b903219cacecc2ce1e25da0a6828a34a396729e2
2021-11-18 15:30:54 -05:00
Kittywhiskers Van Gogh
a9997c778e merge bitcoin#16371: ignore macOS make deploy artefacts & add them to clean-local 2021-11-11 18:36:08 +05:30
fanquake
0c79dbc7b6 Merge #20684: build: Define .INTERMEDIATE target once only
5e0dedb111ed9db03914b9dac36cf081974c2918 build: Define .INTERMEDIATE target once only (Hennadii Stepanov)

Pull request description:

  A new warning was introduced in 22437fc72e (#20470):
  ```
  $ ./autogen.sh
  ...
  Makefile.am:335: warning: .INTERMEDIATE was already defined in condition !BUILD_DARWIN, which is included in condition TRUE ...
  Makefile.am:139: ... '.INTERMEDIATE' previously defined here
  ...
  ```

  Fixed in this PR.

ACKs for top commit:
  jonatack:
    Tested and very light review ACK 5e0dedb111ed9db03914b9dac36cf081974c2918

Tree-SHA512: ecf8de79ba394c36ee84e0b8d3ba78587e0f856259e9731e6bbb38d0baebfd083eb44d7ef6a386dd9e4508dd64fec1c2b9a007e175fbd4d986e845b1c300a649
2021-10-21 14:33:54 -04:00
Kittywhiskers Van Gogh
fd03a23e85 merge bitcoin#20470: Replace genisoimage with xorriso 2021-10-05 08:04:26 +05:30
MarcoFalke
09633ea759
Merge #15388: [build] Makefile.am: add rule for src/bitcoin-wallet
4a43eb8cdf [build] Makefile.am: add rule for src/bitcoin-wallet (Sjors Provoost)

Pull request description:

  Otherwise `make src/bitcoin-wallet` will fail with `No rule to make target`.

  Also adds `bitcoin-wallet.exe` to the Windows installer.

Tree-SHA512: 932c34b349ec3efa17d1f1251d386434d0db6a07939d500236364a851468981c69392e2a00e26c9753d9b2d8ef056b5de870c5bd5202aa0c73326f9ed1403681
2021-09-10 20:54:52 -04:00
Kittywhiskers Van Gogh
d967c39222 bitcoin#15295: Add test/fuzz/test_runner.py and run it in travis 2021-08-11 08:50:43 +05:30
Kittywhiskers Van Gogh
fc8952aa19
build: add libgmp detection, make immer a package (#4311)
* build: detect the presence of libgmp before generating Makefile

* depends: add arximboldi/immer@v0.6.2 as a package and add detection

* depends: remove immer from source tree, build using package only

* Drop immer refs from tools

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-08-10 22:35:55 +03:00
UdjinM6
8e19b6b398
Merge pull request #4271 from PastaPastaPasta/backports-0.18-pr8
Backports 0.18 pr8
2021-07-19 20:49:51 +03:00
UdjinM6
f11c1bc1f8
Ignore immer in code coverage checks, lint-whitespace.sh and copyright_header.py scripts (#4268) 2021-07-19 12:32:29 +03:00
MarcoFalke
9d0fb5c295 Merge #14253: Build: during 'make clean', remove some files that are currently missed.
3f5ac27205 Include some files currently missed by 'make distclean'. (murrayn)

Pull request description:

  `make clean` currently leaves behind some cache and test log files that should be removed.

Tree-SHA512: a1877e776e24232f6dd1468d7f392ea0bd1e93fdd975e623897d48c4b23a080a2e84ebb199f5482abd6b8c9ddd036850325e7b7ed07e2f9fe7a32f83cc99da4a
2021-07-17 13:50:02 -05:00
UdjinM6
0c2b1be930
Merge pull request #4261 from PastaPastaPasta/backport-triv-pr16
Backport triv pr16
2021-07-16 20:20:26 +03:00
fanquake
9c8db95941 Merge #20734: build: Make platform-specific targets available for proper platform builds only
3d31abbaaad599443ec5ffee90ddb6989a625277 build: Make Windows-specific targets available for Windows builds only (Hennadii Stepanov)
92990e25b7e5d02651ffa27f2d57c4c2c190668e build: Make macOS-specific targets available for macOS builds only (Hennadii Stepanov)

Pull request description:

  On master (f1dbf92ff0475a01d20170ea422c1d086acbbc57) it is possible to point `make` to macOS and Windows specific targets even the build system is configured to build for Linux platforms:
  ```
  $ make Bitcoin-Core.dmg
  ...
  $ make bitcoin-21.99.0-win64-setup
  ...
  ```

  Such behavior makes no sense, and it is confused. Fixed in this PR.

ACKs for top commit:
  fanquake:
    ACK 3d31abbaaad599443ec5ffee90ddb6989a625277 - tested that nonsensical targets are no longer available. i.e

Tree-SHA512: bbd8450bf98fbccb0b828df2f753ed0dbbd203defa2f58ce21390ee2ea183c95d8ff585d62d52be870dbf0158e2bb0fbd47eda026b80174ee6fd617473f5ac03
2021-07-16 10:04:09 -05:00
UdjinM6
d0385cc04d
Merge pull request #4251 from PastaPastaPasta/backport-triv-pr12
backport: 'trivial' pr12
2021-07-16 02:01:43 +03:00
Kittywhiskers Van Gogh
da33c9619c
partial merge #17398: Update leveldb to 1.22+ (#4230)
* Update to leveldb upstream using subtree merge

* Import crc32c using subtree merge as as 'src/crc32c'

* build: Update build system for new leveldb

Upstream leveldb switched build systems, which means we need to define
a few different values.

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

* doc: Add crc32c subtree to developer notes

* test: Add crc32c to subtree check linter

* test: Add crc32c exception to various linters and generation scripts

* build: Add LCOV exception for crc32c

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>

* build: CRC32C build system integration

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2021-07-15 15:42:55 -05:00
fanquake
b742a7f8d8 Merge #19059: gui: update Qt base translations for macOS release
69bfcac27a83440092bc6e61904ded910ed4baf4 gui: update Qt base translations for macOS release (fanquake)

Pull request description:

  These haven't been updated since their addition, so this updates the list that
  controls which qt base translations are bundled with the macOS binary, to all the
  languages that are available with qt 5.9.8.

  This could probably be improved in some way, however qt updates are infrequent,
  and I didn't want to spend any more time looking at this. Also given that no-one
  seems to have noticed and/or reported this it wouldn't seem high-priority.

  Could be backported to 0.20.1.

  Master:
  ![master](https://user-images.githubusercontent.com/863730/82729428-11bce200-9d2a-11ea-8569-ee65d46c7403.png)

  This PR:
  ![fixed](https://user-images.githubusercontent.com/863730/82729427-0f5a8800-9d2a-11ea-86dd-1e6a3e211efa.png)

ACKs for top commit:
  hebasto:
    ACK 69bfcac27a83440092bc6e61904ded910ed4baf4, tested on macOS 10.15.

Tree-SHA512: df142fb16097deb514e72e005b73aafc4eb4ff0c17e423ba5040a3ec6874020a733e1c5259a88923580e71ef73c16222aed28f482b8c270a544a85b745a7b327
2021-07-15 13:26:07 -05:00
fanquake
c79a03ec93
Merge #17087: build: Add variable printing target to Makefiles
181989f6c9427fc266dbdcc84cb60ac03e67cdb2 build: Add variable printing target to Makefiles (Carl Dong)

Pull request description:

  ```
  I kept finding myself needing these to debug our build system, since
  they are innocuous and are very helpful they probably belong in the
  codebase.

  Source: John Graham-Cumming
  https://www.cmcrossroads.com/article/printing-value-makefile-variable
  ```

ACKs for top commit:
  MarcoFalke:
    ACK 181989f6c9427fc266dbdcc84cb60ac03e67cdb2
  fanquake:
    ACK 181989f6c9427fc266dbdcc84cb60ac03e67cdb2 - concise amount of useful code. Tested on macOS. Did not visit the link.

Tree-SHA512: 2139621e68a499c7347663ca9dc04e166ea6280e05986c27858df0156016ef2f9461262464d70c601419384f43a4ae3bcc67dfc0a05dbeef64f08386ab429cd8
2021-07-13 13:14:05 -05:00
UdjinM6
637a8a28fe
Merge pull request #4226 from PastaPastaPasta/backport-triv-pr6
backport: 'trivial' pr6
2021-07-08 23:25:09 +03:00
Wladimir J. van der Laan
fd4b647787 Merge #14698: build: Add bitcoin-tx.exe into Windows installer
5c5902acc515c8f46ad73222cd57a29c4c13b92c build: Add bitcoin-tx.exe into Windows installer (Chun Kuan Lee)

Pull request description:

  I think bitcoin-tx.exe should be packed into the Windows installer.

Tree-SHA512: 346051d3680e74e773d5d8736b5d90604dc52689484cf14b2bc47e1fe3a010f9322f82993e2b1ba3533736bcb9bc8478d71f8c4d42eadf6605195fba619d71a2
2021-07-01 17:37:50 -05:00
MarcoFalke
00971209b7 Merge #14281: lcov: filter /usr/lib/ from coverage reports
fa6b30c40b lcov: filter /usr/lib/ from coverage reports (MarcoFalke)

Pull request description:

  This folder was included for me on ubuntu trusty and bionic when creating coverage reports.

  Can be tested by passing `--enable-lcov` +optional `--enable-lcov-branch-coverage` to `./configure`

  Then `make -j 4 && make cov`, which will generate the report in html.

  See https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md#compiling-for-test-coverage

Tree-SHA512: 722deda8bca0d6d63e10dd55848ab72318d5cdbd56ab7ea19a1d1ca7285989bd3f0ccc72c3001aad326e1ce5b008e0a183bb5f05f2225d80ec68377c9434293a
2021-07-01 16:57:02 -05:00
MarcoFalke
ae4b1e0916
Merge #13254: Remove improper qt/moc_* cleaning glob from the general Makefile
4138f42d24 Revert "Merge #12870: make clean removes src/qt/moc_ files" (Ben Woosley)

Pull request description:

  As noted by theuni and Sjors in #12870, qt moc cleaning is handled
  by CLEAN_QT via QT_MOC_CPP in Makefile.qt.include.

  In my testing I configured, built and cleaned with qt4 and qt5 both,
  absent the associated wildcard, and no MOC files were left after clean.
  Propose we revert the change and reconsider if a specific file
  is identified, and in that case add that file to QT_MOC_CPP.

  This reverts commit 1d540046fe, reversing
  changes made to ad960f5771.

Tree-SHA512: 5d5d07733b273e6d1f6cc6634e9bfab3d8ebbe2131ed9b80dafd73d22b4f99d13babf146023703d1cd6471d1d576305ba3ab6a75e6578c79f3caa3e76b407e7f
2021-05-25 14:11:35 +03:00
UdjinM6
81ce9c451a
qt: More asset cleanup (#3735)
* Drop icon sources (svg) we no longer use

* Rename some icons to better match their content

* Drop chevron/console prompt icon

We do not show it in Dash specific themes and Traditional is just fine with a simple ">" label

* bitcoin -> dash for icons

* Adjust `contrib/debian/copyright`

Dashify it + we no longer use icons mentioned there

* `mogrify src/qt/res/*/*.png`

* `python3 contrib/devtools/optimize-pngs.py`

Total reduction: 68072 bytes
2020-09-30 16:08:11 +03:00