Hi, there is no short way to do this right now traditional way would be compiling qt 5.14 by writing steps in your snapcraft.yaml but it will take a long time and resources.
So, instead of going this route, you can deploy your version yourself from your system install and dump it to your snap package.
I have packaged Qt 5.13 before and deployed it using qtlinuxdeploy. You can make a content snap of qt5.14 if you want to use it with your future applications, as I did with my qt513 snap.
Hi, thanks for the suggestion. I tried with that , but it does not work on Ubuntu 18.04.
I get following error.
linuxdeployqt 6 (commit d41e234), build 724 built on 2020-07-31 15:51:47 UTC
ERROR: The host system is too new.
Please run on a system with a glibc version no newer than what comes with the oldest
currently still-supported mainstream distribution (xenial), which is glibc 2.23.
This is so that the resulting bundle will work on most still-supported Linux distributions.
while i bet there is a flag to override this check, if you do not find it, you could always remove base: core18 from your yaml … that should then make it switch automatically to base: core which is xenial based and uses the older glibc …
even if I simply run command “./linuxdeployqt-7-x86_64.AppImage” on terminal I get that error.
ERROR: The host system is too new.
Please run on a system with a glibc version no newer than what comes with the oldest
currently still-supported mainstream distribution (xenial), which is glibc 2.23.
This is so that the resulting bundle will work on most still-supported Linux distributions.
while running above command , do I need to pass any commandline parameters?
Hi, there is another way to achieve this. There is a PPA available for QT 5.14 on launchpad here. All you have to do is override your pull step and add PPA in your build container like this. Now you can install Qt 5.14 components like qt514base in stage-packages.
If you are not able to use linuxdeployqt , The other nice alternative can be https://github.com/QuasarApp/CQtDeployer . This utility is also used to deploy Qt applications. There is a snap package available too.
Thanks for the input. I am able to see the library path in the Makefile. But at the runtime it takes the default path of the Qt5.9.5. How do I ask the application to take 5.14.2/lib path instead of x86_64_linux_gnu/lib path. I kept 5.14.2/lib in /usr/share and bind it using layouts but could not succed. Also I tried to give 5.14.2/lib path in defailt.cf file at location /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf but still it was taking qt5.9.5 path.
To set lib paths and other paths you can use qt.conf file in the bin directory like this or you can also use this desktop-launchscript with modified paths.
Thanks a lot , cqtdeployer worked well with hello world app and I was able to run it with 5.14.2 library. I am now trying to run it as a daemon, following is my snapcraft.yaml.
name: cs-alto # you probably want to 'snapcraft register ’
base: core18 # the base snap is the execution environment for this snap
version: ‘0.1’ # just for humans, typically ‘1.2+git’ or ‘1.3.2’
summary: Control software example for packing with cqtdeployer # 79 char long summary
description: |
Control software example for packing with cqtdeployer
grade: stable # must be ‘stable’ to release into candidate/stable channels
confinement: strict # use ‘strict’ once you have the right plugs and slots