Commit Graph

174 Commits

Author SHA1 Message Date
Kittywhiskers Van Gogh
be175091e6
merge bitcoin#27676: Bump minimum required runtime version and prepare for building with upstream LLVM 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
d0aae2bd3d
merge bitcoin#26059: revert "Build depends/qt with our platform definition" 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
91b7ef8607
merge bitcoin#30438: build Linux GCC with --enable-cet 2024-11-10 17:58:34 +00:00
Kittywhiskers Van Gogh
cfc6cba4ea
partial bitcoin#30511: GCC 12 consolidation
excludes:
- 8b41ede55ebbc6978deb3f4fad5e18b76b372506
2024-11-10 17:58:34 +00:00
Kittywhiskers Van Gogh
06f54318b3
merge bitcoin#30231: bump time-machine to f0bb724211872cd6158fce6162e0b8c73efed126 2024-11-10 17:58:34 +00:00
Kittywhiskers Van Gogh
5b292eec92
merge bitcoin#29846: replace GCC unaligned VMOV patch with binutils patch 2024-11-10 17:58:34 +00:00
Kittywhiskers Van Gogh
4d1f7dccd7
merge bitcoin#29828: remove gcc-toolchain static from Windows build 2024-11-10 17:58:34 +00:00
Kittywhiskers Van Gogh
f321d3de0c
merge bitcoin#29673: use GCC 11 in macOS build env 2024-11-10 17:58:34 +00:00
Kittywhiskers Van Gogh
d570e2d21f
merge bitcoin#29695: build GCC with --enable-standard-branch-protection 2024-11-10 17:58:34 +00:00
Kittywhiskers Van Gogh
c965943a57
merge bitcoin#29651: bump time-machine to dc4842797bfdc5f9f3f5f725bf189c2b68bd6b5a 2024-11-10 17:58:33 +00:00
Kittywhiskers Van Gogh
59a125a5ad
merge bitcoin#27897: use GCC 12.3.0 to build releases 2024-11-10 17:58:33 +00:00
Kittywhiskers Van Gogh
a701b06435
merge bitcoin#29078: Bump guix time-machine to unlock riscv64 metal 2024-11-10 17:58:33 +00:00
Kittywhiskers Van Gogh
d4b10a3813
merge bitcoin#28786: switch to 6.1 kernel headers over 5.15 2024-11-10 17:58:33 +00:00
Kittywhiskers Van Gogh
c3718700ab
merge bitcoin#28580: update time-machine 2024-11-10 17:58:33 +00:00
Kittywhiskers Van Gogh
d36c9b6466
merge bitcoin#28759: update signapple to latest master 2024-11-10 17:58:33 +00:00
Kittywhiskers Van Gogh
38c71d88b4
merge bitcoin#28370: remove GCC 10 workaround from NSIS 2024-11-10 17:58:33 +00:00
Kittywhiskers Van Gogh
1edd1215ef
merge bitcoin#29987: build with glibc 2.31 2024-11-06 19:22:02 +00:00
Kittywhiskers Van Gogh
0ac25311d5
merge bitcoin#28328: update time-machine 2024-11-06 19:22:02 +00:00
Kittywhiskers Van Gogh
ef9c4bdc60
merge bitcoin#28324: pre time-machine bump changes (Linux) 2024-11-06 19:22:02 +00:00
Kittywhiskers Van Gogh
b45a127658
merge bitcoin#28294: pre time-machine bump changes (Windows) 2024-11-06 19:22:02 +00:00
Kittywhiskers Van Gogh
ed1f7fe812
merge bitcoin#28069: Remove librt usage from release binaries 2024-11-06 19:22:02 +00:00
Kittywhiskers Van Gogh
5d51aa940d
merge bitcoin#27811: Clean up manifest 2024-11-06 19:22:02 +00:00
Kittywhiskers Van Gogh
d439e4612f
merge bitcoin#27813: Update python-lief package to 0.13.2 2024-11-06 19:22:01 +00:00
Kittywhiskers Van Gogh
70e62830a1
merge bitcoin#27179: use osslsigncode 2.5 2024-11-06 19:22:01 +00:00
Kittywhiskers Van Gogh
3799509603
merge bitcoin#27296: import/sync python-lief (0.12.3) package definition from upstream 2024-11-06 19:22:01 +00:00
Kittywhiskers Van Gogh
ac8bd5ae5f
refactor: move lief definitions to expected location
Should help upcoming commits render their diffs correctly
2024-11-06 19:22:01 +00:00
Kittywhiskers Van Gogh
eb0ae0828a
merge bitcoin#26470: Clean up libexec/build.sh 2024-11-06 19:22:01 +00:00
Kittywhiskers Van Gogh
d3d7a0562a
merge bitcoin#24031: don't compress macOS DMG 2024-11-06 19:22:01 +00:00
Kittywhiskers Van Gogh
6a54603ca3
merge bitcoin#27670: remove redundant glibc patches 2024-11-06 19:22:01 +00:00
Kittywhiskers Van Gogh
0c988f06d8
merge bitcoin#21089: Add support for powerpc64{,le}
continuation of 9c8f5f71 from dash#5237
2024-11-06 19:22:01 +00:00
Ava Chow
01b570e9e2
Merge bitcoin/bitcoin#29999: guix: fix suggested fake date for openssl-1.1.1l
8fee5355ee1d2f2b410c548bac9e85f2a21a696d guix: fix suggested fake date for openssl -1.1.1l (Sjors Provoost)

Pull request description:

  Using `2020-10-01` as the fake timestamp will cause many test failures with `/gnu/store/bfirgq65ndhf63nn4q6vlkbha9zd931q-openssl-1.1.1l.drv`. I didn't investigate why, but I guess because it's _before_ the test certificates were created. They expired in June 2022. I tried a month before that, which worked.

  Also fixes layout of instructions.

ACKs for top commit:
  achow101:
    ACK 8fee5355ee1d2f2b410c548bac9e85f2a21a696d
  maflcko:
    review ACK 8fee5355ee1d2f2b410c548bac9e85f2a21a696d

Tree-SHA512: df5dd3aa961e25bd57d0b8b73daeb3ec76856b06e35277f24b6b19be81774512228f75e2b779afa8ea92fcc39beb869f43e0c57fba19ad16a82812e7c0bea38b
2024-10-26 19:14:08 -05:00
merge-script
63e139d11b
Merge bitcoin/bitcoin#30185: guix: show *_FLAGS variables in pre-build output
5f2c1d84e37697f4f8a20e3c12f37bba71b3c2a6 guix: show *_FLAGS variables in pre-build output (fanquake)

Pull request description:

  For example:
  ```bash
  # ADDITIONAL_GUIX_COMMON_FLAGS set in the ENV
  ADDITIONAL_GUIX_ENVIRONMENT_FLAGS="--emulate-fhs" ./contrib/guix/guix-build
  <snip>
  INFO: Building f751991 for platform triple x86_64-linux-gnu:
        ...using reference timestamp: 1716905119
        ...running at most 10 jobs
        ...from worktree directory: '/bitcoin'
            ...bind-mounted in container to: '/bitcoin'
        ...in build directory: '/bitcoin/guix-build-f75199182133/distsrc-f75199182133-x86_64-linux-gnu'
            ...bind-mounted in container to: '/distsrc-base/distsrc-f75199182133-x86_64-linux-gnu'
        ...outputting in: '/bitcoin/guix-build-f75199182133/output/x86_64-linux-gnu'
            ...bind-mounted in container to: '/outdir-base/x86_64-linux-gnu'
        ADDITIONAL FLAGS (if set)
            ADDITIONAL_GUIX_COMMON_FLAGS: --no-substitutes
            ADDITIONAL_GUIX_ENVIRONMENT_FLAGS: --emulate-fhs
            ADDITIONAL_GUIX_TIMEMACHINE_FLAGS:
  ```

ACKs for top commit:
  hebasto:
    ACK 5f2c1d84e37697f4f8a20e3c12f37bba71b3c2a6.

Tree-SHA512: 85a6d508499b4ec1d6166343a1707b682d327b2fcfb2fb438571894478aac0062d21e1239b5092091ff98711c5c747151973c4f325a7a7c447d0e807166fcb07
2024-10-25 15:30:56 -05:00
pasta
a67319351a
Merge #6346: backport: trivial 2024 10 23 pr2
8bf1d06599 Merge bitcoin/bitcoin#29308: doc: update `BroadcastTransaction` comment (glozow)
2a77808596 Merge bitcoin-core/gui#789: Avoid non-self-contained Windows header (Hennadii Stepanov)
da371b830d Merge bitcoin/bitcoin#28870: depends: Include `config.guess` and `config.sub` into `meta_depends` (fanquake)
2e41562d81 Merge bitcoin/bitcoin#29219: fuzz: Improve fuzzing stability for ellswift_roundtrip harness (fanquake)
b091329599 Merge bitcoin/bitcoin#29211: fuzz: fix `connman` initialization (Ava Chow)
df42d41060 Merge bitcoin/bitcoin#29200: net: create I2P sessions using both ECIES-X25519 and ElGamal encryption (fanquake)
4cdd1a8a5d Merge bitcoin/bitcoin#29172: fuzz: set `nMaxOutboundLimit` in connman target (fanquake)
97012ea522 Merge bitcoin/bitcoin#28962: doc: Rework guix docs after 1.4 release (fanquake)
c70ff5d702 Merge bitcoin/bitcoin#28844: contrib: drop GCC MAX_VERSION to 4.3.0 in symbol-check (fanquake)
e6f19e7760 Merge bitcoin/bitcoin#29068: test: Actually fail when a python unit test fails (fanquake)
75e0334866 Merge bitcoin/bitcoin#28989: test: Fix test by checking the actual exception instance (Andrew Chow)
8cd85d311f Merge bitcoin/bitcoin#28852: script, assumeutxo: Enhance validations in utxo_snapshot.sh (Ryan Ofsky)
fd2e88d6f3 Merge bitcoin/bitcoin#26077: guix: switch from `guix environment` to `guix shell` (fanquake)
02741a7706 Merge bitcoin/bitcoin#28913: coins: make sure PoolAllocator uses the correct alignment (fanquake)
dfd53dabed Merge bitcoin/bitcoin#28902: doc: Simplify guix install doc, after 1.4 release (fanquake)

Pull request description:

  ## Issue being fixed or feature implemented
  Batch of trivial backports

  ## What was done?
  See commits

  ## How Has This Been Tested?
  built locally; large combined merge passed tests locally

  ## Breaking Changes
  Should be 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 8bf1d06599
  knst:
    utACK 8bf1d06599

Tree-SHA512: 506273e5a188f9ca74edf656e3cd338992192e6e97f68c89fc43e34be20fb7f211b48e4dfa8693727839a7920da8284509413c722f55774a428939c296dad517
2024-10-24 16:54:41 -05:00
fanquake
43b88315e1
Merge bitcoin/bitcoin#28426: doc: s/--no-substitute/--no-substitutes in guix/INSTALL
8f541023b9582f8291d00ed4fc14a0db096b0113 doc: s/--no-substitute/--no-substitutes in guix/INSTALL (fanquake)

Pull request description:

  https://guix.gnu.org/manual/en/html_node/Common-Build-Options.html

ACKs for top commit:
  hebasto:
    ACK 8f541023b9582f8291d00ed4fc14a0db096b0113.
  TheCharlatan:
    ACK 8f541023b9582f8291d00ed4fc14a0db096b0113

Tree-SHA512: 4d79791a8fa772d35723d35e85aaf9ab86304f2a1238e883bbb85051d0cc5f9841dab99ef0fe1e9d67f6259798e98942be00ae7c4320328987234293d9bf3012
2024-10-24 11:18:38 -05:00
fanquake
97012ea522
Merge bitcoin/bitcoin#28962: doc: Rework guix docs after 1.4 release
fad444f6e1b1ce5c1572c773db4a9a098c7a0b96 doc: Rework guix docs after 1.4 release (MarcoFalke)

Pull request description:

  Follow-up to https://github.com/bitcoin/bitcoin/pull/28902

  Fixes https://github.com/bitcoin/bitcoin/issues/28957

ACKs for top commit:
  TheCharlatan:
    ACK fad444f6e1b1ce5c1572c773db4a9a098c7a0b96
  fanquake:
    ACK fad444f6e1b1ce5c1572c773db4a9a098c7a0b96

Tree-SHA512: 23f270b438ede4e3173da68e63c1d022e2ef23bfd83f0ec038ec63a62348038722278385c5dac63ac29a460b4b61f23d8c9939667e00a1a3571b041d3eecb4cb
2024-10-23 22:19:57 -05:00
fanquake
fd2e88d6f3
Merge bitcoin/bitcoin#26077: guix: switch from guix environment to guix shell
66c4b58e518aff08030b3c879c44af7716110619 guix: switch from guix environment to guix shell (fanquake)

Pull request description:

  See https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-environment.html.

  > Deprecation warning: The guix environment command is deprecated
  in favor of guix shell, which performs similar functions but is more convenient to use. See Invoking guix shell.

  > Being deprecated, guix environment is slated for eventual removal,
  but the Guix project is committed to keeping it until May 1st, 2023. Please get in touch with us at guix-devel@gnu.org if you would like to discuss it.

  See also https://guix.gnu.org/blog/2021/from-guix-environment-to-guix-shell/ for a blog post and additional details.

  Guix `shell` was added to Guix ~1 year ago, in this commit, https://git.savannah.gnu.org/cgit/guix.git/commit/?id=80edb7df6586464aa40e84e103f0045452de95db, which isn't part of the 1.3.0 release binaries out of the box, but invoking a `guix pull`, and updating will make it available. i.e:
  ```bash
  bash-5.1# guix --version
  guix (GNU Guix) 1.3.0
  Copyright (C) 2021 the Guix authors
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.

  bash-5.1# guix shell
  guix: shell: command not found
  Try 'guix --help' for more information.

  bash-5.1# guix pull
  Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
  Authenticating channel 'guix', commits 9edb3f6 to 7a980bb (6,278 new commits)...
  Building from this channel:
    guix      https://git.savannah.gnu.org/git/guix.git7a980bb
  < snip >
  building /gnu/store/2wwwsczxcw61m05p4mv0kf0advx4fqsb-inferior-script.scm.drv...
  building package cache...
  building profile with 1 package...
  New in this revision:
    6,866 new packages: a2jmidid, abjad,

  bash-5.1# guix help shell
  Usage: guix shell [OPTION] PACKAGES... [-- COMMAND...]
  Build an environment that includes PACKAGES and execute COMMAND or an
  interactive shell in that environment.
  ```

ACKs for top commit:
  TheCharlatan:
    ACK 66c4b58e518aff08030b3c879c44af7716110619

Tree-SHA512: caa3fd2ca8d0f261c50ecdda3728a75389d24d89b51293dedc704ee77ab1342b2bb08ca8c871dcb4646229f056ec86cb15500934ded1b0c501a3ffc25aaa8ae6
2024-10-23 22:19:56 -05:00
fanquake
dfd53dabed
Merge bitcoin/bitcoin#28902: doc: Simplify guix install doc, after 1.4 release
fa552e8a4e4fc61b01eb36387bdf86b27c6893c3 doc: Simplify guix install doc, after 1.4 release (MarcoFalke)

Pull request description:

  Now that 1.4 is out (for a while), remove the recommendation to build a random commit.

ACKs for top commit:
  fanquake:
    ACK fa552e8a4e4fc61b01eb36387bdf86b27c6893c3
  hebasto:
    ACK fa552e8a4e4fc61b01eb36387bdf86b27c6893c3.

Tree-SHA512: f5642df201ff0e2af8a7ae9660a66920ddbb5f522b3e921f6f4aa7c411ced23afa91bdfe43b943ac012228eebbaad3396df505d00aa8f721a4358f03fda9d8e3
2024-10-23 22:19:56 -05:00
fanquake
142245d29a
Merge bitcoin/bitcoin#29733: build, macos: Drop unused osx_volname target
eff19fa1c8d736d30dea937ebce0b372c19b7559 build, macos: Drop unused `osx_volname` target (Hennadii Stepanov)

Pull request description:

  The `osx_volname` makefile target was introduced in https://github.com/bitcoin/bitcoin/pull/7192 and was used to pass the package name to Gitian scripts as a content of the `osx_volname` file.

  With the current Guix scripts, the `osx_volname` file is never read. Therefore, its creation might be omitted.

  My Guix builds:
  ```
  x86_64
  5e2d254e207d53784621c8df331c9bf4a969da667d185992402f48a5ac49f563  guix-build-eff19fa1c8d7/output/arm64-apple-darwin/SHA256SUMS.part
  089dba70685893aca5e7c8ce1d53a07380e87ca50eda8b3a2a75aeaeb1d28e48  guix-build-eff19fa1c8d7/output/arm64-apple-darwin/bitcoin-eff19fa1c8d7-arm64-apple-darwin-unsigned.tar.gz
  390c57197c6ab4aefdde1c665d5e4ebdfb4ae5e553f8f93b017f2fad1093d110  guix-build-eff19fa1c8d7/output/arm64-apple-darwin/bitcoin-eff19fa1c8d7-arm64-apple-darwin-unsigned.zip
  e1edde7ca28bf26aea8d956b1d3c1725a475f2a9c148f5c36b651db4b814091c  guix-build-eff19fa1c8d7/output/arm64-apple-darwin/bitcoin-eff19fa1c8d7-arm64-apple-darwin.tar.gz
  d0096ea73a5f75cc4d3cef4ef1761ae3e48c8a63aff918f07371c5c88896e4e6  guix-build-eff19fa1c8d7/output/dist-archive/bitcoin-eff19fa1c8d7.tar.gz
  51b4affb9fd6f8aea05b7d25d29f017d0a0a145395f457caa14b9af9646b035b  guix-build-eff19fa1c8d7/output/x86_64-apple-darwin/SHA256SUMS.part
  b1df081ecf636a92754e673e5388d1d988653d4646f0b0446a4c9f14d865a265  guix-build-eff19fa1c8d7/output/x86_64-apple-darwin/bitcoin-eff19fa1c8d7-x86_64-apple-darwin-unsigned.tar.gz
  62e09926029d176da950d3e3db7ff8ae6cbe4c0b2ea17b084fc1d28565f91475  guix-build-eff19fa1c8d7/output/x86_64-apple-darwin/bitcoin-eff19fa1c8d7-x86_64-apple-darwin-unsigned.zip
  477dcb2382cbd447bd88a3b644b4bd736f5b67d66d42cb73fe31ffc153d3e181  guix-build-eff19fa1c8d7/output/x86_64-apple-darwin/bitcoin-eff19fa1c8d7-x86_64-apple-darwin.tar.gz
  ```

ACKs for top commit:
  Empact:
    ACK eff19fa1c8
  Sjors:
    tACK eff19fa1c8d736d30dea937ebce0b372c19b7559
  TheCharlatan:
    ACK eff19fa1c8d736d30dea937ebce0b372c19b7559

Tree-SHA512: 29714be5c58caa07b3eb99846d71bb83366dade769af022059bb3c499878adcd34cdf03b006c5da561291f373ccc59abdb83c925057ec0049465eaa8dd6ef4e1
2024-10-04 12:54:24 -05:00
pasta
02f81e5e35
Merge bitcoin#23511: require glibc 2.18+
follow to 07bd5977e5
2024-10-04 12:54:24 -05:00
fanquake
ae6e0ada9b
Merge bitcoin/bitcoin#29725: depends: build libqrencode with CMake
007ea322a6492d46f1565ef58a0c49f5b468ff20 depends: switch to building libqrencode with CMake (fanquake)
884330c0a57ce839d48606dc2de3928869b31b7d guix: make cmake-minimal a global requirement (fanquake)

Pull request description:

  Switch to building libqrencode with CMake. Note that upstream (https://github.com/fukuchi/libqrencode) hasn't seen any activity for ~4 years, so the odds of getting anything upstream seems low, but I've made two minor changes to the source here, which I will PR in any case.

  From an initial look I couldn't find any significant difference between the Autotools and CMake produced libs. As part of this change we move cmake-minimal in Guix into the global package set.

ACKs for top commit:
  TheCharlatan:
    ACK 007ea322a6492d46f1565ef58a0c49f5b468ff20

Tree-SHA512: c784f790ddea958082c8ae96d3744bdf99331a8799765f9d44f00861b8e2cfcab1a88a3d64af5b10e51a8d5938d55eb6a3d271790b565e50492a39d00dc0e30f
2024-09-29 10:54:41 +03:00
fanquake
237279950b
Merge bitcoin/bitcoin#23001: doc: Enable TLS in links in documentation
9bdda50151dd808cbad094d457bf0ed7939a7c87 Enable TLS in links in documentation (Jeremy Rand)

Pull request description:

  This PR enables TLS in several documentation links, which improves security.

ACKs for top commit:
  fanquake:
    ACK 9bdda50151dd808cbad094d457bf0ed7939a7c87

Tree-SHA512: 9d04d8771a9daf3c3b9914ff324e2eabfdf3ff5ae7f7dc92b84a1f3527010ceb860e73873a8f24d6051763eb472d9ea324ccbd6129a40318a520ca88c05f0586
2024-09-12 20:24:08 +05:30
pasta
92f82f6fc6
fix: group the ENV in quotations 2024-08-12 11:58:20 +07:00
pasta
2237b4266b
refactor: use = with ENV in dockerfiles
see: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/
2024-08-11 16:39:11 +07:00
fanquake
7f39b5af41
Merge bitcoin/bitcoin#23635: test: Bump shellcheck version to 0.8.0
5202bd1dc0942953c415ef39c14ffd48cbaab6b9 test: Bump shellcheck version to 0.8.0 (Hennadii Stepanov)

Pull request description:

  Among [added](https://github.com/koalaman/shellcheck/blob/master/CHANGELOG.md#v080---2021-11-06) rules, SC2295 could be [useful](https://github.com/bitcoin/bitcoin/pull/23506#issuecomment-982201468) for us.

ACKs for top commit:
  dongcarl:
    Code Review ACK 5202bd1dc0942953c415ef39c14ffd48cbaab6b9
  fanquake:
    ACK 5202bd1dc0942953c415ef39c14ffd48cbaab6b9 - would have rather this just been a part of #23506 to avoid another PR and pointless rebasing.

Tree-SHA512: fd7ff801c71af03c5a5b2823b7daba25a430b3ead5e5e50a3663961ee2223e55d322aec91d79999814cd35bd7ed6e9415a0b797718ceb8c0b1dbdbb40c336b82
2024-06-05 08:49:14 -05:00
W. J. van der Laan
dce79f5c8e
Merge bitcoin/bitcoin#21740: test: add new python linter to check file names and permissions
46b025e00df40724175735eb5606ac73067cb3b8 test: add new python linter to check file names and permissions (windsok)
6f6bb3ebc7cb8e17a5dfc8ef55aa2d3f2dc6bdea test: fix file permissions on various scripts (windsok)

Pull request description:

  Adds a new python linter test which tests for correct filenames and file permissions in the repository.

  Replaces the existing tests in the `test/lint/lint-filenames.sh` and `test/lint/lint-shebang.sh` linter tests, as well as adding some new and increased testing. This increased coverage is intended to catch issues such as in #21728 and https://github.com/bitcoin/bitcoin/pull/16807/files#r345547050

  Summary of tests:
  * Checks every file in the repository against an allowed regexp to make sure only lowercase or uppercase alphanumerics (a-zA-Z0-9), underscores (_), hyphens (-), at (@) and dots (.) are used in repository filenames.

  * Checks only source files (*.cpp, *.h, *.py, *.sh) against a stricter allowed regexp to make sure only lowercase alphanumerics (a-z0-9), underscores (_), hyphens (-) and dots (.) are used in source code filenames. Additionally there is an exception regexp for directories or files which are excepted from matching this regexp (This should replicate the existing `test/lint/lint-filenames.sh` test)

  * Checks all files in the repository match an allowed executable or non-executable file permission octal. Additionally checks that for executable files, the file contains a shebang line.

  * Checks that for executable `.py` and `.sh` files, the shebang line used matches an allowable list of shebangs (This should replicate the existing `test/lint/lint-shebang.sh` test)

  * Checks every file that contains a shebang line to ensure it has an executable permission

  Additionally updates the permissions on various files to comply with the new tests.

  Fixes #21729

ACKs for top commit:
  practicalswift:
    cr re-ACK 46b025e00df40724175735eb5606ac73067cb3b8: patch still looks correct
  kiminuo:
    code review ACK 46b025e00df40724175735eb5606ac73067cb3b8 if `contrib/gitian-descriptors/assign_DISTNAME` permission change is deemed OK.
  laanwj:
    Code review ACK 46b025e00df40724175735eb5606ac73067cb3b8

Tree-SHA512: 1c8201a2cee0d9cbce15652b68cec9a6458a8b493fcd5392f98560aca0b1a12e668baab65a47100f116f626dadc3f591deb47f7368468c6a46c6c712c2533455
2024-05-16 02:09:37 +07:00
Konstantin Akimov
a29f82670b
guix: exclude debug symbols for apple from list of hash sums due to its undeterminism 2024-04-03 23:45:24 +07:00
UdjinM6
42decd3c68
fix: fallback to a commit hash in codesign.sh 2024-03-03 15:37:55 -06:00
Andrew Chow
3e693ddfb5
Merge bitcoin/bitcoin#25788: guix: patch NSIS to remove .reloc sections from installer stubs
7a0b129c41d9fefdbc20d6d04983dd87bb8379e7 guix: patch NSIS to remove .reloc sections from install stubs (fanquake)

Pull request description:

  With the release of binutils/ld 2.36, ld swapped to much improved
  default settings when producing windows binaries with mingw-w64. One of
  these changes was to stop stripping the .reloc section from binaries,
  which is required for working ASLR.

  When we switched to using a newer Guix time-machine in #23778, we begun
  using binutils 2.37 to produce releases. Since then, our windows
  installer (produced with makensis) has not functioned correctly when run on
  a Windows system with the "Force randomization for images (Mandatory ASLR)"
  option enabled. Note that all of our other release binaries, which all
  contain .reloc sections, function fine under the same option, so it
  cannot be just the presence of a .reloc section that is the issue.

  The root cause of the problem is that when we compile NSIS (makensis), a number
  of exe installer stubs are produced at the same time, for use later when makensis
  is actually run. Given the new linker defaults, the stubs will contain .reloc sections,
  when previously they would not. It seems that, in combination with how makensis
  mutates the stub when it actually builds the installer, causes the problem.

  According to upstream, https://sourceforge.net/p/nsis/bugs/1131/#abb6:
  > Looks like the problem is the very existance of the .reloc section.
  > It's not supposed to be there, and makensis doesn't handle it.

  The most recent .reloc related upstream activity is in
  https://sourceforge.net/p/nsis/bugs/1283/, where the conclusion again seemed to
  be that .relo sections are not wanted, but there hasn't been any further follow up.

  For now, restore pre-binutils-2.36 behaviour, by passing `-Wl,--disable-reloc-section`
  to the linker when building the installer stubs, which fixes the produced installer.
  The underlying issue can be further investigated in future.

  .reloc section stripping is something we've accounted for previously,
  see #18702, and related upstream discussion is in this thread:
  https://sourceware.org/bugzilla/show_bug.cgi?id=19011.

  Fixes #25726.

  Guix Build (x86_64):
  ```bash
  7e0723388913ac1ec9f650b943c6b23351ba0cd921c0ec830abf16b16724d503  guix-build-7a0b129c41d9/output/dist-archive/bitcoin-7a0b129c41d9.tar.gz
  c3bb9c68895ffafa2900b0d18c1268e299d012a7dc70593f20f9900cf116eb05  guix-build-7a0b129c41d9/output/x86_64-w64-mingw32/SHA256SUMS.part
  b57aa99c242b0aae64653c64ada38f6d3f0cbd902bbc096d3dc529fdcf87d681  guix-build-7a0b129c41d9/output/x86_64-w64-mingw32/bitcoin-7a0b129c41d9-win64-debug.zip
  341d99afc9961299883be6cd9666e8bc0f3f6296cff758719a32d27419acad36  guix-build-7a0b129c41d9/output/x86_64-w64-mingw32/bitcoin-7a0b129c41d9-win64-setup-unsigned.exe
  1d9ef48d3c9ed93a925962356b41cdaeb9d09fd758de193cd4d5f4d1ec6791eb  guix-build-7a0b129c41d9/output/x86_64-w64-mingw32/bitcoin-7a0b129c41d9-win64-unsigned.tar.gz
  28c81d99a9a4bd6648449393f91db213369e958add579ba9e9a1721540d2c4f7  guix-build-7a0b129c41d9/output/x86_64-w64-mingw32/bitcoin-7a0b129c41d9-win64.zip
  ```

  Guix Build (arm64):
  ```bash
  7e0723388913ac1ec9f650b943c6b23351ba0cd921c0ec830abf16b16724d503  guix-build-7a0b129c41d9/output/dist-archive/bitcoin-7a0b129c41d9.tar.gz
  c3bb9c68895ffafa2900b0d18c1268e299d012a7dc70593f20f9900cf116eb05  guix-build-7a0b129c41d9/output/x86_64-w64-mingw32/SHA256SUMS.part
  b57aa99c242b0aae64653c64ada38f6d3f0cbd902bbc096d3dc529fdcf87d681  guix-build-7a0b129c41d9/output/x86_64-w64-mingw32/bitcoin-7a0b129c41d9-win64-debug.zip
  341d99afc9961299883be6cd9666e8bc0f3f6296cff758719a32d27419acad36  guix-build-7a0b129c41d9/output/x86_64-w64-mingw32/bitcoin-7a0b129c41d9-win64-setup-unsigned.exe
  1d9ef48d3c9ed93a925962356b41cdaeb9d09fd758de193cd4d5f4d1ec6791eb  guix-build-7a0b129c41d9/output/x86_64-w64-mingw32/bitcoin-7a0b129c41d9-win64-unsigned.tar.gz
  28c81d99a9a4bd6648449393f91db213369e958add579ba9e9a1721540d2c4f7  guix-build-7a0b129c41d9/output/x86_64-w64-mingw32/bitcoin-7a0b129c41d9-win64.zip
  ```

ACKs for top commit:
  achow101:
    ACK 7a0b129c41d9fefdbc20d6d04983dd87bb8379e7
  hebasto:
    ACK 7a0b129c41d9fefdbc20d6d04983dd87bb8379e7
  jarolrod:
    ACK 7a0b129c41d9fefdbc20d6d04983dd87bb8379e7

Tree-SHA512: 9e14e98207d20236b833603319fc4bb335c878a7c179ab495b33d143e2a900c6926125536bbb7499ee4f0f676cd5ea45c8c86cd7e544ed9a76bb298f98db6197
2024-02-29 09:34:59 -06:00
fanquake
69737c0073
Merge bitcoin/bitcoin#27345: guix: use GCC tool wrappers
4133c8104f522c403c55d26bd03436a8149ff106 guix: use gcc tool wrappers (fanquake)

Pull request description:

  This way, correct `--plugin` arguments are passed through.

  This is a prerequisite for LTO (see #25391). Split out, to try move things along, as this change is isolated, and should be straight-forward.

ACKs for top commit:
  TheCharlatan:
    ACK [4133c81](4133c8104f)
  hebasto:
    ACK 4133c8104f522c403c55d26bd03436a8149ff106

Tree-SHA512: 4311a72a613cf027bd4490caa29604c985ed455589acd972285f13cbdf4806d2184a4dc6f20cb6f47c3fa751d58bfd0bacc257b87d4a804bf5ecf5b240e4a757
2024-02-07 10:14:46 -06:00
fanquake
30f6c4985b
Merge bitcoin/bitcoin#27326: guix: combine and document enable_werror
4becee396f3bda40832138dd1aaa90368ed31857 guix: combine and document enable_werror (fanquake)

Pull request description:

  Combine into `hardened-glibc`.
  Document why we don't use `--disable-werror` directly.

  https://www.gnu.org/software/libc/manual/html_node/Configuring-and-compiling.html
  > By default, the GNU C Library is built with -Werror. If you wish
  > to build without this option (for example, if building with a
  > newer version of GCC than this version of the GNU C Library was
  > tested with, so new warnings cause the build with -Werror to fail),
  > you can configure with --disable-werror.

ACKs for top commit:
  hebasto:
    ACK 4becee396f3bda40832138dd1aaa90368ed31857, the diff is correct.
  TheCharlatan:
    ACK 4becee396f3bda40832138dd1aaa90368ed31857

Tree-SHA512: 8724415f51b4d72d40c4e797faf52c93a81147fb629332b9388ffd7f113f2b16db3b7496bf3063dd978ac629fd5bde3ec7df4f1ff1ed714cb56f316a9334d119
2024-02-07 10:14:45 -06:00