-
Notifications
You must be signed in to change notification settings - Fork 37.7k
build: Replace genisoimage with xorriso #20470
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
Conversation
d961ea4
to
f2cfb5c
Compare
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
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. |
Concept ACK |
Concept ACK: maintained is better than unmaintained :) |
Concept ACK. |
Tested ACK f2cfb5c - Did a gitian build and verified the OSX disk image https://bitcoin.jonasschnelli.ch/gitian/build/347 |
f2cfb5c
to
75bfa82
Compare
Looks good. I tested with 48e1b68 on top of master (86f2007). One thing I noticed is that the naming of the DMGs is now inconsistent. i.e a Will be nice if Note: we should also add a |
75bfa82
to
fdb76e6
Compare
Addressed fanquake's concerns. Here are the Gitian hashes for fdb76e6
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Concept ACK. I never had much luck figuring out who the true upstreams were for these tools. Much better to use something supported.
Previously, the compression of the .iso file to a .dmg file was done outside of `make deploy' in order to use the faketime-wrapped version of libdmg-hfsplus's DMG tool. Specifying the faketime-wrapped version of the DMG tool to ./configure fixes this and simplifies build scripts.
fdb76e6
to
25d39b6
Compare
Pushed fdb76e6 -> 25d39b6: addressed #20470 (comment)
|
Gitian builds
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 25d39b6, tested cross-compiling on Linux Mint 20 (x86_64), and made the gitian build:
616680767fe519b013f31a8c915719d15aeb45647929a2185e9d7d4b34ed057a bitcoin-25d39b61095d-osx-unsigned.dmg
19e44ee5454510a7ce77b61ffdfd988f55ec1da8497b0c63803605601ef45ef0 bitcoin-25d39b61095d-osx-unsigned.tar.gz
ab639cd94bcb1ca168312927e1708de84a844be94e9672951d71de1446297f39 bitcoin-25d39b61095d-osx64.tar.gz
574fac8995ab9cb900aeb263e5b920d7ae3d1385523a4dd9cbe58c56184e1761 src/bitcoin-25d39b61095d.tar.gz
xorriso and its mkisofs/genisoimage emulation alter-ego xorrisofs are more maintained, and has the right toggles for us to achieve output determinism without using blunt tools like faketime. In this commit, we use xorrisofs from the build environment rather than building it ourselves using depends. This is not necessary and can be changed in the future. From https://wiki.debian.org/genisoimage?action=recall&rev=11 : > The classical command line interface for production of ISO 9660 > filesystem images is the option set established by program mkisofs. > For reasons of licensing and other problems with its author, Debian > ships a fork of mkisofs, called genisoimage, which was split off in > 2006 and then developed independently. > > Meanwhile, genisoimage gets no new features and not even bug fixes. It > is first choice only if its options -udf or -hfs are needed. > > Replacement in most uses cases, especially for bootable ISO 9660 > filesystems, archiving, and backup, is xorrisofs which starts the -as > mkisofs emulation mode of program xorriso.
25d39b6
to
7587d11
Compare
Pushed 25d39b6 -> 7587d11: addressed @hebasto's comments, thanks!
Maintainers: I think this is good to merge. |
Concept ACK |
@@ -135,8 +136,12 @@ $(APP_DIST_DIR)/Applications: | |||
|
|||
$(APP_DIST_EXTRAS): $(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Bitcoin-Qt | |||
|
|||
$(OSX_DMG): $(APP_DIST_EXTRAS) | |||
$(GENISOIMAGE) -no-cache-inodes -D -l -probe -V "$(OSX_VOLNAME)" -no-pad -r -dir-mode 0755 -apple -o $@ dist | |||
.INTERMEDIATE: $(OSX_TEMP_ISO) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This apparently fires a warning:
$ ./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
...
5e0dedb build: Define .INTERMEDIATE target once only (Hennadii Stepanov) Pull request description: A new warning was introduced in 22437fc (#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 5e0dedb Tree-SHA512: ecf8de79ba394c36ee84e0b8d3ba78587e0f856259e9731e6bbb38d0baebfd083eb44d7ef6a386dd9e4508dd64fec1c2b9a007e175fbd4d986e845b1c300a649
5e0dedb build: Define .INTERMEDIATE target once only (Hennadii Stepanov) Pull request description: A new warning was introduced in bitcoin@22437fc (bitcoin#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 5e0dedb Tree-SHA512: ecf8de79ba394c36ee84e0b8d3ba78587e0f856259e9731e6bbb38d0baebfd083eb44d7ef6a386dd9e4508dd64fec1c2b9a007e175fbd4d986e845b1c300a649
This was missed in bitcoin#20470.
5b41d84 doc: add xorriso to macOS depends packages (fanquake) Pull request description: This was missed in #20470. ACKs for top commit: hebasto: ACK 5b41d84, tested on Linux Mint 20.1 (x86_64). Tree-SHA512: bcfd8468a099c69175f8a9d295c1466764ab25d6a61121b28675a09c3e96f45b6309e1523d341f4cb21d0ddee4945f00ba060ba02da835f2f0db7e694fd6c44b
5b41d84 doc: add xorriso to macOS depends packages (fanquake) Pull request description: This was missed in bitcoin#20470. ACKs for top commit: hebasto: ACK 5b41d84, tested on Linux Mint 20.1 (x86_64). Tree-SHA512: bcfd8468a099c69175f8a9d295c1466764ab25d6a61121b28675a09c3e96f45b6309e1523d341f4cb21d0ddee4945f00ba060ba02da835f2f0db7e694fd6c44b
This was missed in bitcoin#20470.
This was missed in bitcoin#20470.
c967fb7 guix: Remove libcap from manifest (Hennadii Stepanov) 7bbb409 guix: Update darwin native packages dependencies (Hennadii Stepanov) Pull request description: It is a #20470 follow up. ACKs for top commit: fanquake: ACK c967fb7 Tree-SHA512: 66ce05770f578ba61a44c58747c5a2669f425a989ed987838058bd86e3b49e342ac5a4f8852fc49f2b3a86b58fb6a340fdf3e34c1fc19bdab910729febba4bc7
c967fb7 guix: Remove libcap from manifest (Hennadii Stepanov) 7bbb409 guix: Update darwin native packages dependencies (Hennadii Stepanov) Pull request description: It is a bitcoin#20470 follow up. ACKs for top commit: fanquake: ACK c967fb7 Tree-SHA512: 66ce05770f578ba61a44c58747c5a2669f425a989ed987838058bd86e3b49e342ac5a4f8852fc49f2b3a86b58fb6a340fdf3e34c1fc19bdab910729febba4bc7
merge bitcoin#19817, bitcoin#20470, bitcoin#22993: macOS C++17 bump
5e0dedb build: Define .INTERMEDIATE target once only (Hennadii Stepanov) Pull request description: A new warning was introduced in bitcoin@22437fc (bitcoin#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 5e0dedb Tree-SHA512: ecf8de79ba394c36ee84e0b8d3ba78587e0f856259e9731e6bbb38d0baebfd083eb44d7ef6a386dd9e4508dd64fec1c2b9a007e175fbd4d986e845b1c300a649
5e0dedb build: Define .INTERMEDIATE target once only (Hennadii Stepanov) Pull request description: A new warning was introduced in bitcoin@22437fc (bitcoin#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 5e0dedb Tree-SHA512: ecf8de79ba394c36ee84e0b8d3ba78587e0f856259e9731e6bbb38d0baebfd083eb44d7ef6a386dd9e4508dd64fec1c2b9a007e175fbd4d986e845b1c300a649
5e0dedb build: Define .INTERMEDIATE target once only (Hennadii Stepanov) Pull request description: A new warning was introduced in bitcoin@22437fc (bitcoin#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 5e0dedb Tree-SHA512: ecf8de79ba394c36ee84e0b8d3ba78587e0f856259e9731e6bbb38d0baebfd083eb44d7ef6a386dd9e4508dd64fec1c2b9a007e175fbd4d986e845b1c300a649
This is a redo of fanquake's #18151, which, aside from switching us from the deprecated
genisoimage
to the maintainedxorriso
, is also necessary for Guix to achieve determinism without using faketime.