You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One of the prerequisites to get an application into Snap Store is that it should use a snap confined environment and only use interfaces required for the application functionality. I have made some progress in running a QML application under the snap-confined environment, though with limited success so far.
I am linking the QML application to display drivers and libGL with the snap environment. I do this by using the mesa-core22 content environment library and setting __EGL_VENDOR_LIBRARY_DIRS, LIBGL_DRIVERS_PATH and LD_LIBRARY_PATH environment variables to link to a locally mounted libGL library location resulting in a following snap.yaml configuration:
The result is an application window which opens but does not draw any content shown on the left:
The output of the session I get is:
Qt: Session management error: Could not open network socket
Qt Warning: Unrecognized OpenGL version ((null):0, (null))
Qt Warning: Unrecognized OpenGL version ((null):0, (null))
Qt Warning: Unrecognized OpenGL version ((null):0, (null))
Qt Warning: Unrecognized OpenGL version ((null):0, (null))
Qt Warning: Unrecognized OpenGL version ((null):0, (null))
Qt Warning: Unrecognized OpenGL version ((null):0, (null))
When running under Wayland with QT_QPA_PLATFORM=wayland, I get the same window but without warnings. On the right, I show how the application should look like started outside a confined environment using SNAP=. SNAP_USER_COMMON=. bin/qmlapp-strict from squashfs-root snap directory, which can be obtained from the snap with unsqaushfs.
The warnings led me to test whether OpenGL actually works. I tested that by bundling a simple window with GLAbstractions with the same setup, which draws everything as expected:
Thus, it looks like the issue is on the QML side, and I have no clue how to proceed to resolve it.
The snap is around 200 MB large, available for download from here or can be generated with AppBundler.jl by running examples/qmlapp-strict/meta/build.jl build script.
The text was updated successfully, but these errors were encountered:
One of the prerequisites to get an application into Snap Store is that it should use a snap confined environment and only use interfaces required for the application functionality. I have made some progress in running a QML application under the snap-confined environment, though with limited success so far.
I am linking the QML application to display drivers and libGL with the snap environment. I do this by using the
mesa-core22
content environment library and setting__EGL_VENDOR_LIBRARY_DIRS
,LIBGL_DRIVERS_PATH
andLD_LIBRARY_PATH
environment variables to link to a locally mountedlibGL
library location resulting in a followingsnap.yaml
configuration:The result is an application window which opens but does not draw any content shown on the left:
The output of the session I get is:
When running under Wayland with QT_QPA_PLATFORM=wayland, I get the same window but without warnings. On the right, I show how the application should look like started outside a confined environment using
SNAP=. SNAP_USER_COMMON=. bin/qmlapp-strict
fromsquashfs-root
snap directory, which can be obtained from the snap withunsqaushfs
.The warnings led me to test whether OpenGL actually works. I tested that by bundling a simple window with
GLAbstractions
with the same setup, which draws everything as expected:Thus, it looks like the issue is on the QML side, and I have no clue how to proceed to resolve it.
The snap is around 200 MB large, available for download from here or can be generated with
AppBundler.jl
by runningexamples/qmlapp-strict/meta/build.jl
build script.The text was updated successfully, but these errors were encountered: