Store assertion for wayland interface slots?


On classic systems, if there is a snap providing the wayland interface then when installing snaps that plug this interface will not autoconnect because of the ambiguity. Some snaps that provide this slot are:

  • mir-kiosk
  • mir-test-tools
  • egmde-confined-desktop

Following some discussion I think we need store assertions to add slots-per-plug: * to the plug providers. That includes the above snaps and, potentially, on classic systems the system (AIUI if providers disagree then that’s another source of ambiguity).


There are enough gaps in my knowledge that I’m not sure if it is possible, or how to try this approach locally to confirm it addresses the problem.

Is this possible?

I can probably copy and edit an existing assertion, but is the format defined somewhere? And how to sign it? How to install it?

How to create an assertion for the system slot? Is that needed?

In general, what should I do next to explore this solution further?

Because as designed the mechanism requires all the candidate slots to agree about being greedy, yes we need something for the system slot too. But to approach that is probably best to change the built-in rule in the base-declaration shipped with snapd itself.

Given that, the best way to test this would be try appropriate changes with corresponding tests in snapd.

After that is proven viable, the actual snap-declarations for the relevant non-system snaps would need to changed (which is something done via the store) together with releasing the new snapd.