Hi – Apologies if this has been discussed elsewhere. My classic-confinement snap will not build because:
Failed to load extension 'gnome-3-34': this extension does not support 'classic' confinement.
Okay, fine. Its been a while since I’ve visited the desktop-integration in snapcraft. Does anyone have a good example of a classic-confinement snap and integrated gnome somewhere done the “right way” for me to stare at?
Previously, I’d been using source: https://github.com/ubuntu/snapcraft-desktop-helpers.git, but it’s been awhile and I figure the world may have moved on since then.
Classic snaps can not have interfaces/plugs … All extensions are designed for strict confinement and seed plugs into your snapcraft.yaml (you can check what an extension does to the file with snapcraft expand-extensions)
You will likely need to resort to the old desktop helpers or simply implement your own thing, classic is in general way harder to package and requires a lot of knowledge to keep the environments separated…
Devmode is still fully confined but all actual blockers are disabled and turned into “complain mode” so that you can debug confinement before switching your package to strict mode… You will note that a devmode snap spams your logs a lot with info about confinement…
Classic snaps are completely unconfined, but they still need to be packaged in a way that they can run on any distribution out there, so they need to be fully self contained and must not use anything external to achieve their basic default functionality…
This makes packaging them really hard since you need to make sure the snap runs fine (like a VM or container image) but additionally has full access to all system resources without leaking them into your environment (or the other way around)…
Devmode snaps can also not be released to stable channels and do not get auto-updated on user systems…