PrismLauncher / PrismLauncher

A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once (Fork of MultiMC)
https://prismlauncher.org
GNU General Public License v3.0
5.9k stars 659 forks source link

Use .zip and .dmg for packaging on macOS #221

Open ryanccn opened 2 years ago

ryanccn commented 2 years ago

Goal

Use .zip and .dmg (?) for packaging on macOS while keeping .tar.gz's for backwards compatibility

Motivation

More commonly used formats for macOS app distribution.

Specification

Drawbacks

Not really.

Unresolved Questions

No

Alternatives Considered

No

This suggestion is unique

You may use the editor below to elaborate further.

No response

kthchew commented 2 years ago

Change updater to use other formats?

It's worth noting that this is what Sparkle (the update framework for macOS) has to say about this (emphasis mine):

Sparkle supports updating from ZIP archives, tarballs, disk images (DMGs), and installer packages. While you can reuse the same archive for distribution of your app on your website, we recommend serving ZIPs or tarballs (e.g. tar.xz) for updates because they are the fastest and most reliable formats for Sparkle. Disk images (DMGs) can be significantly slower to extract programmatically and sometimes be less reliable to attach/detach. Installer packages should rarely be used for distribution or updates (i.e. only for kexts, but not for installing daemons or installing system extensions).

ryanccn commented 2 years ago

Yeah I was more thinking of using the .zips for the updater, but idk it isn't really necessary to change that part since it's internal.

DioEgizio commented 2 years ago

honestly i think tar.gz is fine, dmgs are less and less used and zips remove executable bits

ryanccn commented 2 years ago

on macOS everything in zips seems to be given an executable bit by default or something on decompress, haven't run into permission issues with apps from zips (such as Visual Studio Code).

DMGs could be useful for clueless users who have no idea what to do tho

ghost commented 2 years ago

dmgs are less and less used and zips remove executable bits

I only have used dmg to install application, and most of the application offer dmg as the only(minecraft launcher) or default option. I don't think they are becoming less used??

zips remove executable bits

?? wdym

With zip file, you have to extract its contents to the current directory, and then you would then have to browse to in the Finder and drag to somewhere yourself.

DMGs could be useful for clueless users who have no idea what to do tho

Most of the people who use macOS prefer dmgs. and it doesnt make you clueless.

Also pls do this process: https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution It will make the installing experience much better

DioEgizio commented 2 years ago

dmgs are less and less used and zips remove executable bits

I only have used dmg to install application, and most of the application offer dmg as the only(minecraft launcher) or default option. I don't think they are becoming less used??

As I said, less apps are using dmg because it's slow

zips remove executable bits

?? wdym

With zip file, you have to extract its contents to the current directory, and then you would then have to browse to in the Finder and drag to somewhere yourself.

If you read above, we used zips initially but they removed executable bits so the .app didn't run :p

DMGs could be useful for clueless users who have no idea what to do tho

Most of the people who use macOS prefer dmgs. and it doesnt make you clueless.

Also pls do this process: https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution It will make the installing experience much better

honestly the process is the same between dmg and not not dmg, so :P

ghost commented 2 years ago

As I said, less apps are using dmg because it's slow

Surely tell me an app that doesn't use dmgs. The slowness can depend on the size. and also like what do you expect the process installing the application to be? Instantaneous?

If you read above, we used zips initially but they removed executable bits so the .app didn't run :p

What are "executable bits"? like custom scripts other than the application itself?

honestly the process is the same between dmg and not not dmg, so :P

DMGs are fun to install. You also get the satisfying 'ding' sound after it done. You can add a custom background as well (: eg:

Screen Shot 2022-10-25 at 17 59 00
kthchew commented 2 years ago

Also pls do this process: https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution It will make the installing experience much better

Well, it does require the maintainers to pay Apple ~$99/year, so I doubt it’s high priority

(the fee can be waived for nonprofit organizations, but I don’t think there is one for the launcher)

Scrumplex commented 2 years ago

IMO .tar.gz is fine. You just double-click it and Finder will extract it for you. Then you can move that to Applications or leave it in your Downloads folder.

and also like what do you expect the process installing the application to be? Instantaneous?

The point was about DMG being slower than normal archives.

What are "executable bits"? like custom scripts other than the application itself?

On UNIX-like systems, applications need to have an executable flag set to be able to run. ZIP files do not support these.

Well, it does require the maintainers to pay Apple ~$99/year, so I doubt it’s high priority

We will probably do it eventually, as we got funding on Open Collective. I wouldn't mind if our macOS users specifically would donate for this, as most of our user base will not profit from us spending our budget on the Apple developer program.

ghost commented 2 years ago

Fair enough. But still just also build dmg file. Don't need another fork of multimc just to add dmg support. The only reason I could find for dmg being slow is because of the better compression(this and advantage imo since it take less time to download)

ryanccn commented 2 years ago

.zip is definitely a more widely used compression format on macOS, so I think it would be worth it to add distribution for it.

https://github.com/ryanccn/PrismLauncher/actions/runs/3306718631 I've tested this and it works fine. Should I open a PR?

Scrumplex commented 2 years ago

.zip and .tar.gz work identically on macOS. I don't see a reason we would need both

ghost commented 2 years ago

Maybe offer dmg since it different than .zip and .tar.gz?

ryanccn commented 2 years ago

Maybe offer dmg since it different than .zip and .tar.gz?

.dmg would require an extra step in installing dependencies for creating DMGs (e.g. https://www.npmjs.com/package/create-dmg), and it doesn't provide that much of a benefit.