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: Use zip instead of dmg for macOS #18128

Closed
dongcarl opened this issue Feb 12, 2020 · 14 comments
Closed

build: Use zip instead of dmg for macOS #18128

dongcarl opened this issue Feb 12, 2020 · 14 comments

Comments

@dongcarl
Copy link
Contributor

dongcarl commented Feb 12, 2020

Since macOS is able to to extract tarballs with a double-click, I'm wondering what people's thoughts are on using zip instead of dmg for macOS builds.

This will eliminate the following build dependencies:

  • native_ds_store
  • native_mac_alias

A valid concern is one of UX, which might be worse.

Here were the steps to installing Bitcoin in a DMG world:

  1. Double-click the DMG
  2. Drag the .app to the aliased Applications folder (with an arrow as the hint)

tarballzip world steps:

  1. Double-click the tarballzip
  2. Drag the .app to Applications folder (no hint)

ping @fanquake

@jonasschnelli
Copy link
Contributor

My 5cts on this:

  • Using the .zip file seems to be an approach done more and more by common software packages
  • The disk image offers a more native way to "install" an app by showing the Application folder (+ the arrow)
  • Additional, the disk image allows for branding space.

I personally would ack a move from .dmg to zip. I don't think we have to deal with users not knowing how to move an .app bundle form the downloads folder to the application folder.

Additionally, it (the .zip approach) may simplify macOS app notarization.

@dongcarl
Copy link
Contributor Author

Ah yes, a .zip might be better... From the link you posted on IRC:

You can notarize an existing disk image, installer package, or ZIP archive containing your app.

@dongcarl dongcarl changed the title build: Use tarball instead of dmg for macOS build: Use zip instead of dmg for macOS Feb 12, 2020
@ch4ot1c
Copy link
Contributor

ch4ot1c commented Feb 13, 2020

I'd suggest to stick with the .dmg, just because some users really don't know that .apps should go in Applications/.

Though, your point makes sense. Zipping the .dmg isn't a particularly good option either. Maybe include a README with 'installation steps' (one move) in the zipped .app?

@fjahr
Copy link
Contributor

fjahr commented Feb 18, 2020

I agree with @ch4ot1c that some users may not know that the app needs to be moved to Applications/ but I think that could be solved with a clear instruction to do so next to the download link. If people don't even read one-liner instructions then we can't help them. I think that also has a better chance of being read than a README file in the zip, the concept of a plain text README file is pretty weird to non-programmers. And I also feel like I have seen this more lately, as @jonasschnelli says, so I think it will not be foreign to most users. So Concept ACK from me.

@fanquake
Copy link
Member

Using the .zip file seems to be an approach done more and more by common software packages

@jonasschnelli Can you give some examples? I had a quick look around, and Firefox, Google Chrome, Tor, VLC, Transmission, VirtualBox etc all still use a .dmg.

I'm still not entirely sure, but could probably be convinced that the reduction in build-system complexity is worth the trade-off in "branding". I might put those changes together as an alternative to/alongside #18151.

@fanquake fanquake added the macOS label May 25, 2020
@fanquake
Copy link
Member

After some more thought I think this is the way forward, and have pretty much finished up the changes required to switch to using a .zip. I'll PR them shortly and close #18151.

@laanwj
Copy link
Member

laanwj commented May 25, 2020

~0 on this. I like the simplification in build system complexity, but on the other hand, .dmg is what most people expect for macOS software and as far as I know, by far most software uses that as distribution.

@dongcarl
Copy link
Contributor Author

GitHub Desktop uses zips instead of dmgs: https://desktop.github.com/

@bitcoin bitcoin deleted a comment from sheffine Dec 21, 2020
@bitcoin bitcoin deleted a comment from sheffine Dec 21, 2020
@jarolrod
Copy link
Member

my 2cnts, the move to a .zip is enticing in that we can eliminate some build dependencies. But, here are some arguments against that move:

  • .dmg is still the dominant format for distributing application on the macOS platform. It offers instant assurance that the application I just downloaded is a macOS specific application. Receiving a .zip may cast some level of doubt, as in: Did the server mess up and feed me a Windows application in a .zip
  • It sucks that Apple always chooses to do it's own thing instead of adopting industry standards, but .dmg is still the standard and we should continue to use it for the foreseeable future since it is still what people expect.

@prusnak
Copy link
Contributor

prusnak commented Jan 8, 2022

We simplified the creation of dmg in #23909 removing the half of the dependencies from the original post:

  • native_biplist
  • native_cdrkit
  • native_ds_store
  • native_libdmg-hfsplus
  • native_mac_alias
  • librsvg2-bin
  • libtiff-tools
  • imagemagick
  • fonts-tuffy

Do we still want to consider moving from dmg to zip?

@fanquake
Copy link
Member

Do we still want to consider moving from dmg to zip?

I don't think we'll make the move from dmg to zip yet, but I have opened another PR (#24031) which I think makes an OK tradeoff in regards to removing additional dependencies / build complexity from the macOS build.

@fanquake
Copy link
Member

fanquake commented Aug 8, 2022

Updated the op to refect build changes since it was first written.

@fanquake
Copy link
Member

Opened a new PR to discuss this change in #27099.

fanquake added a commit that referenced this issue Sep 20, 2023
b5790c3 build: remove dmg dependencies (fanquake)
33ae0bd macdeploy: remove DMG generation from deploy script (fanquake)
a128111 build: produce a .zip for macOS distribution (Hennadii Stepanov)
c38561d build: add -zip option to macdeployqtplus (fanquake)

Pull request description:

  It is #27099 revived with addressed [comments](#27099 (comment)).

  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](https://github.com/bitcoin/bitcoin/assets/32963518/baa637bb-256b-4b24-8645-8c2754c2ae64)

ACKs for top commit:
  Sjors:
    tACK b5790c3
  jarolrod:
    ACK b5790c3
  TheCharlatan:
    utACK b5790c3

Tree-SHA512: 6e9cb3ab0f60f8a92bfec50577e8d096c5b23ec09ebbb334826415609140ddc96d470aea37379495c1c6bb1beec0d306b09460f62e1543bb0f4396c10a1dfbe2
@maflcko
Copy link
Member

maflcko commented Sep 20, 2023

Anything left to be done here? If yes, maybe open a new issue?

@maflcko maflcko closed this as completed Sep 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

10 participants