barbara wrote: ↑Sat Jan 01 2022 1:54 am
I am not sure what issues you have experienced deploying on Linux in the past, however we have found the process to be manageable. We deploy three CopperSpice applications: KitchenSink, DoxyPress, and Diamond on a Windows, OS X, and twelve different Linux/Unix platforms. If you need assistance with this process we are happy to help. We do encourage developers to build and deploy separately for each platform.
Lets start with your numbers: 1 x Win, 1 x Mac, 12(!) x Linux. That is troublesome enough. For both building and testing.
I read about building standard packages and gave up. For an
application programmer who doesn't know much about the insides of Linux and about Linux specific build chains, their complexity is a huge hurdle. I simply didn't had the time to dig into that matter.
And - tell me if I am wrong - standard packages can only use frameworks and libraries versions that are available on the supported distributions. That isn't a good prerequisite for using bleeding edge Qt/CS, newest C++ standard library, etc.
I want to develop and test my code with exactly one arbitrary version of each library and I want to be able to deploy it with exactly those versions. And the installation should be as safe and simple as the de-installation. I can live with the slower startup in case of snaps as well with the additional memory consumption of snaps and AppImages.
There is actually no way to provide a generic setup since every developer would have different requirements. Like one person might want to support an older version of Ubuntu or a newer version of Arch.
Well there are tools that can help. E.g. linuxdeployqt, snapcraft and appimage-builder are very interesting. I played around with appimage-builder but it turned out that it boils down to manual configuration since the recipe generator produces rubbish. linuxdeployqt (at least an older release) was pretty easy to use and did a good job in collecting the needed Qt libraries. The only pain was related to Qt plug-ins. I was able to produce an (almost) generic AppImage that included everything except C++ standard library pretty fast.
Snapcraft also is very interesting but there is no base snap newer than Ubuntu 20.04. And unfortunately it is not Qt aware.
So my question actually was: Is there a CS aware tool that can help generating AppImages or snaps for CS applications? (I guess there isn't one)
I never understood why Qt didn't deliver an easy to use tool for that purpose. Since I started using Linux (and coding on Linux) I learned that deployment is the most troublesome step for application developers that are new to that OS. It would have been a unique selling point for Qt and Qt Creator. Read the web. It is full of people having the same problem desperately looking for an easy solution.
Deployment on Windows is one day (maybe two days) of work for an absolute beginner. At least I was able to create my first fully featured generic installer for a Qt application within a single day at the very first try. That was 15 years ago. Today windows tools are even better. On Linux an average developer seems to require one day of reading only to understand how awfully many different ways of deployment there are and that none of them solves all problems
Even deploying a Unix (!) application on Windows (built via MSYS2) is easier than on the original OS because it so simple to build a perfectly working and generic InnoSetup based installer. I did this before and the entire porting process of a Linux application to windows (including installer creation!) required a fraction of the time I have invested in reading about Linux packaging without a satisfying result.
(I am not a specialized Windows developer, I'm a RTOS embedded developer, so my Windows know-how is comparable to my Linux know-how)
We are not currently supporting static linking at this time. There are license issues, especially on OS X.
Ok, thanks a lot for your answer.