Hacker News new | ask | show | jobs
by aroman 1253 days ago
Why not offer this as a universal binary? Seems like a bunch of extra work to generate two separate DMGs and try to point users to the right one...

Regardless, congrats to the team! Though, I'll note this blog post is from almost 6 weeks ago now.

8 comments

If the GIMP team's experience is anything like ours (Wireshark), it's because a significant percentage of your dependencies are pathologically blind to the concept of fat binaries, so you'd end up having to do the grunt work of supporting fat binaries in both your application and your dependencies. It's a lot easier to just add a CI builder for each architecture and ship separate packages.
GIMP is already a pretty big download (~240MB), so saving users another significant fraction of that is nice. Also helps keep their mirrors' costs down.
I actually appreciate not having universal binaries. I almost always prefer to have a smaller footprint and the current app for arm64 is 874.4 MB according to Finder.
Along with the other answers here, using a newer Xcode and macOS SDK in order to build for M1 can limit compatibility with old macOS (OS X) versions.
hmm as a user I really don't like downloading binaries that are almost twice the size needed and of which I won't use half of
Mac users are well adjusted to having to pick the correct binary by now and the consequences of getting it wrong are fairly minor.
I'm not affiliated with Gimp and don't know why they didn't support fat binaries in the end; but I did look into compiling Gimp as a Universal Binary on my own at one point. My experience matches those of another comment, which is that not all dependencies supported compiling to fat binaries (i.e. you couldn't just add a bunch of flags and get a fat binary at the end). The only solution I thought of was to compile for both platforms and then lipo all the built files. The main problem is I couldn't figure out a strategy to do this without making the build scripts into a gigantic mess.
I wouldn't be surprised to find they're using a build tool chain that can't produce a universal build ... I've run into that before ...