I make debs, rpm, zst (packman) and, to be sure also distribute a tgz ball containing the binary and few extra files along with a text file about how to manually install. x86_64, i686, armhf and aarch64 (Raspi and Apple).
I also make Windows and MacOS packages but Linux is where the issues lay ! Recently, I added AppImage because people kept asking for 'bundled apps' (and I don't like Snaps, Flatpack more demanding). I have started documenting the AppImage process at
https://wiki.freepascal.org/AppImage_Packaging . Its not hard but makes a 35Meg bundle.
And I makes a source package I submit to debian.
Don't forget you will almost certainly need to distribute more than just the binary. An icon, desktop file, man page, config files etc ....
I strongly recommend you don't do your final build on your working machine, I use a VM for the following reasons.
- The glibc issue, a binary made on eg Ubuntu 22.04 will not run on Ubuntu 20.04. Visa versa is fine.
- Having a relatively untouched building platform alerts you to any new library dependencies that may have crept into your dependency list.
- Its easier to have a single script that pulls a snapshot of src from github and builds most of the above in one run. Script as much as you can.
Davo