Hello @Juuliuus, thanks for your post here and for giving some context.
What is always surprising me is why some developers choose to develop (and build) on the latest-and-greatest systems, rather than on the “least common denominator” that one can expect all users to have.
You are saying you have 40 years programming background. Then I am sure that you understand the concept of “backward compatibility”.
I cannot go back to ubuntu 16.04 because due to various bugs in my programming platform and needs of my program as regards today, it is not feasible/possible to compile it under 16.04 and also not under 18.04!
This argument I personally always find a bit hard to believe, I guess that some developers just use whatever happens to be installed on their private development machine, only to discover after the fact that they have inadvertently introduced dependencies on the latest-and-greatest… or maybe this is what you mean by “needs of my program as regards today”. Or are you saying that you would have been unable to write your software in 2016 because the tools available at that time were just not sufficient?
In any case, like so many things in engineering, this is all about trade-offs.
With my tools, I want to enable people to build binaries that will run on all still-supported mainstream Linux distributions. I have no interest in putting out tools that allow developers to make binaries that will run only on the very latest Linux distributions.
This means that either the binaries are compiled on the oldest still-supported mainstream Linux distribution (= currently Ubuntu xenial), or that we bundle everything privately inside the AppImage (all libraries, including those which can be expected to come with all Linux distributions).
Generally I have been recommending the former, but in your use case you could use the latter.
I am working on a new tool that allows you to do that - but be aware that it is still in the early stages so you might run into bugs, in which case I’d ask you to file an issue on GitHub.
Thanks!
Especially check out the -s deploy
switch. It causes the libraries in the excludelist to be not excluded. In other words, you will get a larger AppDir/AppImage with all libraries.
./appimagetool-*.AppImage -s deploy appdir/usr/share/applications/*.desktop # Bundle EVERYTHING