I am trying to make a cross-platform application bundler for Julia GUI applications (see AppBundler.jl), and I have chosen a snap as a deployment target for Linux platforms. I have managed to run a QML and GTK application in a snap-confined environment by setting __EGL_VENDOR_LIBRARY_DIRS
and LIBGL_DRIVERS_PATH
to point to local snap store locations generated by snapcraft.
It’s somewhat unsatisfying that the bundle contains graphics drivers, which are always expected to be present in a desktop system unless the application is targeted in kiosk mode, which is a rather particular case. Also, I would like to implement snap bundling manually without using Snapcraft as I would like to make snaps for instance from macOS, which is possible as I have access to mksquashfs
on it and Julia precompilation can be delayed until configuration step or until the first run.
I noticed that there are graphics-core22
and mesa-core22
interfaces. The chatGPT was somewhat vague on how these can be used in a snap.yaml
file and what they would do. In particular, can graphics-core22
be used to access the shared libraries for libgl
drivers of the host system?