@nila https://gist.github.com/pojntfx/bc688a887a940e3e458684df62058843
Little hacky packaging script for all of this so far - allows you to build a .dmg for a puregotk #Go #GTK app, all from Linux, code signing included. `go-gettext` still needs a way to specify where to load the `gettext` dylib from when it's not available in the default location, so I stubbed that out, but no other code changes necessary :)
@pojntfx @nila Pixi is a pretty good fit for "cross platform manifests"!
For example, the Pixi manifest for Shortwave, which both works on macOS and Windows (and Linux):
https://gitlab.gnome.org/World/Shortwave/-/blob/pixi/pixi.toml
(WIP - not merged yet)
@pojntfx @nila the most easiest / straight-forward way would be to publish the app to conda-forge, this way you don't have to deal with self-updates. It's comparable with Flathub, but cross platform.
The Pixi manifest describes the environment which you can use for development (cross platform), for the actual packaging you use a separate recipe file, which describes the needed dependencies + commands to build the app.
For example (WIP)
https://github.com/conda-forge/staged-recipes/pull/32284
@pojntfx @nila yep, that's something for which there isn't a perfect solution at the moment.
There are two options:
1) Make a "wrapper installer", which installs Pixi on the machine, and then in a second step downloads and installs the actual app from conda-forge. This way you don't have to take care of the update mechanism.
2) Wrap the Conda package and all of the dependencies in some MSIX / macOS app bundle. This way the user doesn't need some additional package manager, but you have to deal with updates (unless you publish it in MS Store / AppStore).
Oh, and you don't need Conda (the tool), Pixi can be used as global package manager, just like homebrew or winget (but is using the same Conda package format).
@mlundblad @nila Yeah, even in my simple case stuff doesn’t fully work (no D-Bus, so no notifications). WebKitGTK isn’t packaged for macOS, that’s a pretty big blocker.
I wonder if it makes sense to put more work into this? I did a bunch of work on the whole “compile for macOS and Windows” in a UNIXy way (Darling for macOS builds in Docker on Linux, MSYS2 for Windows builds on Linux) with https://github.com/pojntfx/hydrapp, but stopped a year ago bc I’d rather just focus on Linux
@pojntfx @mlundblad @nila i want this so badly.
native dev on windows and macos feels completely bananas in 2026 but the current gtk/etc tooling options meant a macos port was a small hassle (for my silly little bookmarking app) and windows wasn’t worth it at all.
i’d rewrite everything in go if it could visit all 3 cities with only minor pain. 😜