build: Produce a .zip for macOS distribution #28432

pull hebasto wants to merge 4 commits into bitcoin:master from hebasto:230908-zip changing 16 files +36 −172
  1. hebasto commented at 9:54 am on September 8, 2023: member

    It is #27099 revived with addressed comments.

    From #27099#issue-1584429885:

    Reviving the discussion around using a .zip for the distributed macOS binaries, as opposed to a .dmg.

    Given we only had a single report of the “no finder window” issue (#26176), I wonder if that means macOS users were able to figure it out, they gave up/didn’t report, or, we just have very few macOS users.

    Related to #18128.

    That’s how it looks on macOS:

    image

  2. DrahtBot commented at 9:54 am on September 8, 2023: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK Sjors, jarolrod, TheCharlatan
    Approach ACK stickies-v

    If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #25391 (guix: Use LTO to build releases by fanquake)
    • #21778 (build: LLD based macOS toolchain by fanquake)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  3. DrahtBot added the label Build system on Sep 8, 2023
  4. hebasto added the label macOS on Sep 8, 2023
  5. hebasto commented at 9:56 am on September 8, 2023: member
  6. fanquake added the label DrahtBot Guix build requested on Sep 8, 2023
  7. DrahtBot commented at 9:14 pm on September 8, 2023: contributor

    Guix builds (on x86_64)

    File commit 4e1a38c6df91f96ca8a2ef07413ffdb1d59c30cc(master) commit efdd2a5fc3c1677030dd207259f2799b6514e099(master and this pull)
    SHA256SUMS.part 69f9fc2be1e53556... 8179e41f9bc840dd...
    *-aarch64-linux-gnu-debug.tar.gz 1e43f940561f0a15... aa9e49514e648bf9...
    *-aarch64-linux-gnu.tar.gz a5f011743b2a4a90... b6d0d87b9c6f1cc7...
    *-arm-linux-gnueabihf-debug.tar.gz 3c9a8c7dbf5006cf... 47045be9abb55e1d...
    *-arm-linux-gnueabihf.tar.gz a6f8247afce2b198... 0b386b746847adde...
    *-arm64-apple-darwin-unsigned.dmg ec1c5acd2b9f1779...
    *-arm64-apple-darwin-unsigned.tar.gz e62f2a7e003d1b0d... c55ac1cfaf1b3362...
    *-arm64-apple-darwin.tar.gz 163f914f19645c04... c22e76d542a2d1ab...
    *-powerpc64-linux-gnu-debug.tar.gz 34c740dc91105d58... 74e3be9a4cb1612f...
    *-powerpc64-linux-gnu.tar.gz 72c83d45d4cde1f7... b9df5cd754ddfaea...
    *-powerpc64le-linux-gnu-debug.tar.gz f2fd5ebc84b9a74a... 664fe67339e586d2...
    *-powerpc64le-linux-gnu.tar.gz e33cbe61e24377a1... d1074068a5c25429...
    *-riscv64-linux-gnu-debug.tar.gz 08f09807a985a93c... afbbcfa826e4fdb4...
    *-riscv64-linux-gnu.tar.gz 34cb2a3c553dc0eb... e026892cb81c185f...
    *-x86_64-apple-darwin-unsigned.dmg 8a2f9c61594d3682...
    *-x86_64-apple-darwin-unsigned.tar.gz c63be23afebb5717... 4739df2fdac50ab0...
    *-x86_64-apple-darwin.tar.gz d8572b47cbb71ff7... 8063970cbdb5af93...
    *-x86_64-linux-gnu-debug.tar.gz b00202cb6b8591d3... a1a9c9d84f444cf4...
    *-x86_64-linux-gnu.tar.gz af1a6bbd91caacab... 3378782db31e531c...
    *.tar.gz a4e68d00f9549f28... 646d6d6633d32a76...
    guix_build.log 8dc5fb48aac150df... 4e4fa09a56e9872b...
    *-arm64-apple-darwin-unsigned.zip ccbafd6b1c3b1909...
    *-x86_64-apple-darwin-unsigned.zip 78fc0104c1e4c04e...
    guix_build.log.diff 9051f93dcd3d8442...
  8. DrahtBot removed the label DrahtBot Guix build requested on Sep 8, 2023
  9. Sjors commented at 3:34 pm on September 9, 2023: member

    ACK b334ef8dbccc02505532a90711a27966fa46a44b

    Tested again on Intel macOS by building on the same machine and using the (unsigned) guix build.

    Guix hashes match @hebasto’s:

    0find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env-r0 sha256sum
    1d0294bf567dd0403070ad599c93900fccd54d352396d0cec6778e6c04a7bfe8f  guix-build-b334ef8dbccc/output/arm64-apple-darwin/SHA256SUMS.part
    251f6de1530136253f7a6616fadea55e9e5ee3ec6f8d350e9069e5953d2487f20  guix-build-b334ef8dbccc/output/arm64-apple-darwin/bitcoin-b334ef8dbccc-arm64-apple-darwin-unsigned.tar.gz
    3a20203dfd9624bb445a5c7d1d3e7746feb3910df033c413df8354b2606d2293a  guix-build-b334ef8dbccc/output/arm64-apple-darwin/bitcoin-b334ef8dbccc-arm64-apple-darwin-unsigned.zip
    47d771d7279c1c5480315e0570914724738ef684ae599943f21421fd90bb2db52  guix-build-b334ef8dbccc/output/arm64-apple-darwin/bitcoin-b334ef8dbccc-arm64-apple-darwin.tar.gz
    559f6e88ba0f28010feecfdc1fd67dd32de35c8eecc7ea4a73164d550f83eba57  guix-build-b334ef8dbccc/output/dist-archive/bitcoin-b334ef8dbccc.tar.gz
    6c23611d70355b31f70094b26555bce361cfa81f5044a2ab4f14ac1a95aae2cc7  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/SHA256SUMS.part
    7c315865d94d98ae5830d80bfa5adb14b3eec111762fbd2ae234da9a20fedc999  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/bitcoin-b334ef8dbccc-x86_64-apple-darwin-unsigned.tar.gz
    8e857d41029a8d20bce3db5bc1e4636dd863cc19b6e454a19b3f97764408539e7  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/bitcoin-b334ef8dbccc-x86_64-apple-darwin-unsigned.zip
    936ca3883439d36de7e27ba8edaa3dbead910a28396c1229ff3ce427eeba237f5  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/bitcoin-b334ef8dbccc-x86_64-apple-darwin.tar.gz
    
  10. MarcoFalke added this to the milestone 26.0 on Sep 12, 2023
  11. MarcoFalke commented at 11:30 am on September 12, 2023: member
    Assigned milestone, because the issue has a milestone.
  12. MarcoFalke requested review from jarolrod on Sep 15, 2023
  13. MarcoFalke requested review from dongcarl on Sep 15, 2023
  14. stickies-v commented at 11:13 am on September 15, 2023: contributor

    Approach ACK. Skipping the dmg for a simplified build process makes sense to me, it’s an easy enough setup process with the zip too. An additional installation hint on https://bitcoincore.org/en/download/ would probably be helpful.

    Tested on M1 Pro with make deploy, as well as guix build (done on amd64 bookworm). Both binaries work well, and my shasums match too:

     0% find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | sort -z | xargs -0 sha256sum
     1
     27d771d7279c1c5480315e0570914724738ef684ae599943f21421fd90bb2db52  guix-build-b334ef8dbccc/output/arm64-apple-darwin/bitcoin-b334ef8dbccc-arm64-apple-darwin.tar.gz
     351f6de1530136253f7a6616fadea55e9e5ee3ec6f8d350e9069e5953d2487f20  guix-build-b334ef8dbccc/output/arm64-apple-darwin/bitcoin-b334ef8dbccc-arm64-apple-darwin-unsigned.tar.gz
     4a20203dfd9624bb445a5c7d1d3e7746feb3910df033c413df8354b2606d2293a  guix-build-b334ef8dbccc/output/arm64-apple-darwin/bitcoin-b334ef8dbccc-arm64-apple-darwin-unsigned.zip
     5d0294bf567dd0403070ad599c93900fccd54d352396d0cec6778e6c04a7bfe8f  guix-build-b334ef8dbccc/output/arm64-apple-darwin/SHA256SUMS.part
     659f6e88ba0f28010feecfdc1fd67dd32de35c8eecc7ea4a73164d550f83eba57  guix-build-b334ef8dbccc/output/dist-archive/bitcoin-b334ef8dbccc.tar.gz
     736ca3883439d36de7e27ba8edaa3dbead910a28396c1229ff3ce427eeba237f5  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/bitcoin-b334ef8dbccc-x86_64-apple-darwin.tar.gz
     8c315865d94d98ae5830d80bfa5adb14b3eec111762fbd2ae234da9a20fedc999  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/bitcoin-b334ef8dbccc-x86_64-apple-darwin-unsigned.tar.gz
     9e857d41029a8d20bce3db5bc1e4636dd863cc19b6e454a19b3f97764408539e7  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/bitcoin-b334ef8dbccc-x86_64-apple-darwin-unsigned.zip
    10c23611d70355b31f70094b26555bce361cfa81f5044a2ab4f14ac1a95aae2cc7  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/SHA256SUMS.part
    

    We still have references to xorriso and xorrisofs, are those still necessary?

    I’m a bit out of my depth with this build stuff so this is probably as far as my review will go.

  15. build: add -zip option to macdeployqtplus
    This zips the app bundle in /dist.
    c38561d6b1
  16. build: produce a .zip for macOS distribution
    Instead of a .dmg.
    
    Co-authored-by: fanquake <fanquake@gmail.com>
    a128111c29
  17. macdeploy: remove DMG generation from deploy script 33ae0bd1e4
  18. build: remove dmg dependencies b5790c35f7
  19. hebasto force-pushed on Sep 15, 2023
  20. hebasto commented at 1:11 pm on September 15, 2023: member

    Updated b334ef8dbccc02505532a90711a27966fa46a44b -> f52a72af569526f319d9f1480eb473b9570125c3 (pr28432.01 -> pr28432.02):

  21. hebasto commented at 1:37 pm on September 15, 2023: member

    My updated Guix builds:

    0x86_64
    1bbbbce4747a8dcd9581cd734eec6fed14163e830e5ab7d53b6a1057f4414b0cc  guix-build-b5790c35f7e1/output/arm64-apple-darwin/SHA256SUMS.part
    2add758c8c7c526c68fbe43850af17f284a2a52d267e9b38f328060673dffda77  guix-build-b5790c35f7e1/output/arm64-apple-darwin/bitcoin-b5790c35f7e1-arm64-apple-darwin-unsigned.tar.gz
    37f477397fe0e13d4e4b6048488258f46b88c52f32dc510d85e080bb1eec81a7e  guix-build-b5790c35f7e1/output/arm64-apple-darwin/bitcoin-b5790c35f7e1-arm64-apple-darwin-unsigned.zip
    4dad1cea8b0db52d7e8d08dd02bbe22ba8777c44c40be9b15ebb77f31bb121b7a  guix-build-b5790c35f7e1/output/arm64-apple-darwin/bitcoin-b5790c35f7e1-arm64-apple-darwin.tar.gz
    5d8a89730ac1398621bcc7d245ca20991dac33c37728668727bc1edbb892c5706  guix-build-b5790c35f7e1/output/dist-archive/bitcoin-b5790c35f7e1.tar.gz
    6864f0dcb1a795e6958dfe152ef3b172c5f2c7b77a1ff6589e59059f484121506  guix-build-b5790c35f7e1/output/x86_64-apple-darwin/SHA256SUMS.part
    73a1f7384e9d132a18650550e3484f5dbd33807030f3a5fad490532797b5e70ed  guix-build-b5790c35f7e1/output/x86_64-apple-darwin/bitcoin-b5790c35f7e1-x86_64-apple-darwin-unsigned.tar.gz
    8671d4c6df29d1ed36cd2624ef799fe8fa10e7fdcf8e78861dfd40fbefd075e6c  guix-build-b5790c35f7e1/output/x86_64-apple-darwin/bitcoin-b5790c35f7e1-x86_64-apple-darwin-unsigned.zip
    9ae8fbb32d0c311eb0891b325988e519061051d8c5e754e6ae457f59bf8ac5ed8  guix-build-b5790c35f7e1/output/x86_64-apple-darwin/bitcoin-b5790c35f7e1-x86_64-apple-darwin.tar.gz
    
  22. Sjors commented at 4:22 pm on September 15, 2023: member

    Getting the same guix hashes as @hebasto.

    tACK b5790c35f7e1d48c79b83bded36f3f72c18c9fc1

    Only tested that the Guix binary still works.

  23. jarolrod approved
  24. jarolrod commented at 3:52 pm on September 19, 2023: member

    ACK b5790c35f7e1d48c79b83bded36f3f72c18c9fc1

    Tested working, tested through make deploy. One slight behavior change to note, consecutive expansion of the zip and its binary in the same directory will result in a naming convention for the binary of Bitcoin Qt [n], whereas with the current DMG approach it would be Bitcoin Core [n].

    Of course, that’s not something we need to optimize for :D

  25. TheCharlatan commented at 8:47 am on September 20, 2023: contributor
    utACK b5790c35f7e1d48c79b83bded36f3f72c18c9fc1
  26. fanquake merged this on Sep 20, 2023
  27. fanquake closed this on Sep 20, 2023

  28. hebasto deleted the branch on Sep 20, 2023

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-07-08 22:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me