Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: Produce a .zip for macOS distribution #28432

Merged
merged 4 commits into from Sep 20, 2023

Conversation

hebasto
Copy link
Member

@hebasto hebasto commented Sep 8, 2023

It is #27099 revived with addressed comments.

From #27099 (comment):

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

@DrahtBot
Copy link
Contributor

DrahtBot commented Sep 8, 2023

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.

@hebasto
Copy link
Member Author

hebasto commented Sep 8, 2023

cc @Sjors @fanquake @prusnak

@DrahtBot
Copy link
Contributor

DrahtBot commented Sep 8, 2023

Guix builds (on x86_64)

File commit 4e1a38c
(master)
commit efdd2a5
(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...

@Sjors
Copy link
Member

Sjors commented Sep 9, 2023

ACK b334ef8

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

Guix hashes match @hebasto's:

find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env-r0 sha256sum
d0294bf567dd0403070ad599c93900fccd54d352396d0cec6778e6c04a7bfe8f  guix-build-b334ef8dbccc/output/arm64-apple-darwin/SHA256SUMS.part
51f6de1530136253f7a6616fadea55e9e5ee3ec6f8d350e9069e5953d2487f20  guix-build-b334ef8dbccc/output/arm64-apple-darwin/bitcoin-b334ef8dbccc-arm64-apple-darwin-unsigned.tar.gz
a20203dfd9624bb445a5c7d1d3e7746feb3910df033c413df8354b2606d2293a  guix-build-b334ef8dbccc/output/arm64-apple-darwin/bitcoin-b334ef8dbccc-arm64-apple-darwin-unsigned.zip
7d771d7279c1c5480315e0570914724738ef684ae599943f21421fd90bb2db52  guix-build-b334ef8dbccc/output/arm64-apple-darwin/bitcoin-b334ef8dbccc-arm64-apple-darwin.tar.gz
59f6e88ba0f28010feecfdc1fd67dd32de35c8eecc7ea4a73164d550f83eba57  guix-build-b334ef8dbccc/output/dist-archive/bitcoin-b334ef8dbccc.tar.gz
c23611d70355b31f70094b26555bce361cfa81f5044a2ab4f14ac1a95aae2cc7  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/SHA256SUMS.part
c315865d94d98ae5830d80bfa5adb14b3eec111762fbd2ae234da9a20fedc999  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/bitcoin-b334ef8dbccc-x86_64-apple-darwin-unsigned.tar.gz
e857d41029a8d20bce3db5bc1e4636dd863cc19b6e454a19b3f97764408539e7  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/bitcoin-b334ef8dbccc-x86_64-apple-darwin-unsigned.zip
36ca3883439d36de7e27ba8edaa3dbead910a28396c1229ff3ce427eeba237f5  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/bitcoin-b334ef8dbccc-x86_64-apple-darwin.tar.gz

@maflcko maflcko added this to the 26.0 milestone Sep 12, 2023
@maflcko
Copy link
Member

maflcko commented Sep 12, 2023

Assigned milestone, because the issue has a milestone.

Copy link
Contributor

@stickies-v stickies-v left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

% find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | sort -z | xargs -0 sha256sum

7d771d7279c1c5480315e0570914724738ef684ae599943f21421fd90bb2db52  guix-build-b334ef8dbccc/output/arm64-apple-darwin/bitcoin-b334ef8dbccc-arm64-apple-darwin.tar.gz
51f6de1530136253f7a6616fadea55e9e5ee3ec6f8d350e9069e5953d2487f20  guix-build-b334ef8dbccc/output/arm64-apple-darwin/bitcoin-b334ef8dbccc-arm64-apple-darwin-unsigned.tar.gz
a20203dfd9624bb445a5c7d1d3e7746feb3910df033c413df8354b2606d2293a  guix-build-b334ef8dbccc/output/arm64-apple-darwin/bitcoin-b334ef8dbccc-arm64-apple-darwin-unsigned.zip
d0294bf567dd0403070ad599c93900fccd54d352396d0cec6778e6c04a7bfe8f  guix-build-b334ef8dbccc/output/arm64-apple-darwin/SHA256SUMS.part
59f6e88ba0f28010feecfdc1fd67dd32de35c8eecc7ea4a73164d550f83eba57  guix-build-b334ef8dbccc/output/dist-archive/bitcoin-b334ef8dbccc.tar.gz
36ca3883439d36de7e27ba8edaa3dbead910a28396c1229ff3ce427eeba237f5  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/bitcoin-b334ef8dbccc-x86_64-apple-darwin.tar.gz
c315865d94d98ae5830d80bfa5adb14b3eec111762fbd2ae234da9a20fedc999  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/bitcoin-b334ef8dbccc-x86_64-apple-darwin-unsigned.tar.gz
e857d41029a8d20bce3db5bc1e4636dd863cc19b6e454a19b3f97764408539e7  guix-build-b334ef8dbccc/output/x86_64-apple-darwin/bitcoin-b334ef8dbccc-x86_64-apple-darwin-unsigned.zip
c23611d70355b31f70094b26555bce361cfa81f5044a2ab4f14ac1a95aae2cc7  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.

@hebasto
Copy link
Member Author

hebasto commented Sep 15, 2023

Updated b334ef8 -> f52a72a (pr28432.01 -> pr28432.02):

@hebasto
Copy link
Member Author

hebasto commented Sep 15, 2023

My updated Guix builds:

x86_64
bbbbce4747a8dcd9581cd734eec6fed14163e830e5ab7d53b6a1057f4414b0cc  guix-build-b5790c35f7e1/output/arm64-apple-darwin/SHA256SUMS.part
add758c8c7c526c68fbe43850af17f284a2a52d267e9b38f328060673dffda77  guix-build-b5790c35f7e1/output/arm64-apple-darwin/bitcoin-b5790c35f7e1-arm64-apple-darwin-unsigned.tar.gz
7f477397fe0e13d4e4b6048488258f46b88c52f32dc510d85e080bb1eec81a7e  guix-build-b5790c35f7e1/output/arm64-apple-darwin/bitcoin-b5790c35f7e1-arm64-apple-darwin-unsigned.zip
dad1cea8b0db52d7e8d08dd02bbe22ba8777c44c40be9b15ebb77f31bb121b7a  guix-build-b5790c35f7e1/output/arm64-apple-darwin/bitcoin-b5790c35f7e1-arm64-apple-darwin.tar.gz
d8a89730ac1398621bcc7d245ca20991dac33c37728668727bc1edbb892c5706  guix-build-b5790c35f7e1/output/dist-archive/bitcoin-b5790c35f7e1.tar.gz
864f0dcb1a795e6958dfe152ef3b172c5f2c7b77a1ff6589e59059f484121506  guix-build-b5790c35f7e1/output/x86_64-apple-darwin/SHA256SUMS.part
3a1f7384e9d132a18650550e3484f5dbd33807030f3a5fad490532797b5e70ed  guix-build-b5790c35f7e1/output/x86_64-apple-darwin/bitcoin-b5790c35f7e1-x86_64-apple-darwin-unsigned.tar.gz
671d4c6df29d1ed36cd2624ef799fe8fa10e7fdcf8e78861dfd40fbefd075e6c  guix-build-b5790c35f7e1/output/x86_64-apple-darwin/bitcoin-b5790c35f7e1-x86_64-apple-darwin-unsigned.zip
ae8fbb32d0c311eb0891b325988e519061051d8c5e754e6ae457f59bf8ac5ed8  guix-build-b5790c35f7e1/output/x86_64-apple-darwin/bitcoin-b5790c35f7e1-x86_64-apple-darwin.tar.gz

@Sjors
Copy link
Member

Sjors commented Sep 15, 2023

Getting the same guix hashes as @hebasto.

tACK b5790c3

Only tested that the Guix binary still works.

Copy link
Member

@jarolrod jarolrod left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK b5790c3

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

Copy link
Contributor

@TheCharlatan TheCharlatan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK b5790c3

@fanquake fanquake merged commit e9a4793 into bitcoin:master Sep 20, 2023
15 checks passed
@hebasto hebasto deleted the 230908-zip branch September 20, 2023 11:44
Frank-GER pushed a commit to syscoin/syscoin that referenced this pull request Sep 25, 2023
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Sep 26, 2023
fanquake added a commit that referenced this pull request Nov 24, 2023
0ffcc5b ci: remove python3-setuptools from mac build deps (fanquake)

Pull request description:

  Remove no-longer used python-setuptools.
  Followup to #28432.
  Related to #28845.

ACKs for top commit:
  hebasto:
    ACK 0ffcc5b, I have reviewed the code and it looks OK.
  TheCharlatan:
    ACK 0ffcc5b

Tree-SHA512: c3ac441c85f6f203414e5e2ad0c453ee35fa4765c72c5ff79699aa622c0db767651890ac0c8507f5ed18e18e3b0e23f2952f677476424cfda4df93647a367c26
fanquake added a commit to fanquake/bitcoin that referenced this pull request Nov 30, 2023
Remove no-longer used libz-dev (from DMG compression).
Followup to bitcoin#28432.
Missed this in bitcoin#28932.
fanquake added a commit that referenced this pull request Dec 1, 2023
97d53e9 ci: remove libz-dev from macOS build deps (fanquake)

Pull request description:

  Remove no-longer used libz-dev (from DMG compression).
  Followup to #28432.
  Missed this in #28932.

ACKs for top commit:
  TheCharlatan:
    ACK 97d53e9

Tree-SHA512: ea4e46d83a11cfb0d77e7c5b370359864a026ca58e02de1a3d30458e4463dabd338db9546da63b782a7fa0ce199446c418fbfdfc400f3803b0ea9dd626aed42f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants