The lists.gnu.org archive renamed the message's attachments, so here's direct links to download GSApp2AppImage.sh & the two helper scripts with the correct filenames:
I'm the developer of PikoPixel, a cross-platform Mac/Linux/BSD pixel-art editor.
PikoPixel was initially written for Mac, and GNUstep saved me a huge amount of work from having to completely rewrite it for Linux/BSD.
However, it was still a significant effort:
* GNUstep's an implementation of the Cocoa framework only, it doesn't include any other macOS frameworks.
* The same source-code & UI resources can produce different behaviors & visuals between the different platforms. This is due to different Cocoa implementations, some missing functionality on GNUstep, different system fonts, different window managers & desktop environments (Linux/BSD have many of them, each with their own quirks), etc.
A cross-platform Mac/GNUstep app is definitely doable - PikoPixel is now available in many Linux distro repositories (Ubuntu Studio even preinstalls it as a default graphics app) - but expect to spend significant effort correcting platform differences (depending on the app).
I'd suggest getting started by spinning up a VM, installing a GNUstep dev environment on it, then downloading some GNUstep app sources & building them.
PikoPixel's homepage links some build scripts for Debian & Fedora that will install both a GNUstep dev environment and PikoPixel:
https://twilightedge.com/mac/pikopixel/
About 95-99% of the program logic remained the same, however, there's naming differences (functions, classes, selectors), type changes (NeXTSTEP APIs used C strings & floats, Cocoa uses NSStrings & CGFloats), and missing functionality that had to be reimplemented (Display PostScript functions, Storage class).
I originally expected to have to recreate the NeXTSTEP UI resources by hand in Cocoa, as Xcode's Interface Builder can't read NeXTSTEP nib files. However, Xcode's IB does read OpenStep nib files (as of Xcode 2.5 & earlier - not sure if recent versions can still do this), and OpenStep's Interface Builder can read NeXTSTEP nibs, so it just took opening & saving the NeXTSTEP nibs to OpenStep nibs in an OpenStep VM.
I had to tweak PP's packaging to get it to appear in the Ubuntu Software app, so I can provide a bit of info about this part of the article:
My assumption for now is that the Ubuntu Software application only shows updates for packages that were installed through it. Further, the list of installed applications that it shows is very clearly a subset of those that are actually installed on the system. Color me befuddled.
The Ubuntu Software app (& similar software-center apps, such as GNOME Software, KDE Discover, etc.) only shows distro packages which have valid AppStream metadata:
https://en.wikipedia.org/wiki/AppStream
The AppStream metadata is generated automatically by running appstream-generator (https://github.com/ximion/appstream-generator ) on Ubuntu's repositories. However, on some packages the metadata can't be generated, due to an error - either the package has missing info, incorrect formatting, or possibly it's an issue with appstream-generator.
With a bit of practice, you can train your hand to do ⌘-W as a 3-finger "chord" by touching your middle finger to the 'Q' key before allowing your index finger to depress the 'W'.
https://twilightedge.com/downloads/GSApp2AppImage.sh
https://twilightedge.com/downloads/Make_GMines-AppImage.sh
https://twilightedge.com/downloads/Make_AddressManager-AppIm...