New interfaces needed for plasma-desktop-session

Hello,

As requested by @jslarraz this is a separate request to add a few interfaces as auto-connect and adjust one on the plasma-desktop-session package.

This has been already a been discussed with @cav here:

  • name: plasma-desktop-session
  • description: Snap wrapping a full fledged KDE Plasma session (binaries provided by plasma-core24-desktop content snap)
  • snapcraft: https://invent.kde.org/neon/snap-packaging/plasma-desktop-session/-/blob/master/snap/snapcraft.yaml
  • upstream: N/A
  • upstream-relation: N/A
  • interfaces:
    • systemd-user-control:
      • request-type: auto-connection
      • reasoning: the desktop session needs to talk to systemd to orchestrate the startup
    • pipewire:
      • request-type: auto-connection
      • reasoning: the desktop session needs to talk to Pipewire for the screen sharing
    • shutdown:
      • request-type: auto-connection
      • reasoning: to be able to trigger shutdown from the application menu of the session
    • system-files (shell-config-files):
      • request-type: auto-connection
      • reasoning: this is not a new interface to add, but it has been adjusted to also include /etc/security in addition to /etc/pam.d (the latter was enough in core22, but core24 pushed us to add this extra directory)

This request has been added to the queue for review by the @reviewers team.

hi @kottens - sorry for the delay!

+1 for auto-connecting pipewire, shutdown and shell-config-files (updates) given the discussion above and the previous thread.

For now we can continue to manually approve systemd-user-control until the interface is apart of reviewtools

Thanks! We need another vote at least beyond @cav I guess?

Sorry to bother but any chance to speed this up a bit? I’d like to be able to finally test the new iteration with all the blocks assembled straight from the store.

+1 for granting auto-connection to the requested interfaces, as I think those makes sense for a desktop session snap.

However, we cannot grant auto-connection to pipewire as of now and it will only be done after landing the new review-tools revision.

Also publisher vetting is needed for the shutdown interface. However, the snap is publisher under the kde verified account so we can go ahead

Could you please request manual review for you last revision in the store?

@jslarraz Thanks! I understand pipewire is under the same regime than systemd-user-control for now. Makes sense. Expect me to ask again on further revision of the package though.

I requested the manual review in the store now.

I’ve granted auto-connection to shutdown interface and requested personal-files and system-files. This is now live

Could you please request manual review just once again so I can manually approve it?

Thanks

Just did it now.

Thanks.

It is now approved. Please let me know if everything works as expected

Looks like the systemd-user-control auto-connection is missing? I’m getting this when I try to install the package from the store: installation not allowed by "systemd-user-control" plug rule of interface "systemd-user-control".

hi @kottens

I just tried installing the snap and it seemed to be successful. Does this issue still occur on your end?

$ snap install plasma-desktop-session --edge
2025-04-01T10:17:53+10:00 INFO snap "plasma-desktop-session" has bad plugs or slots: pipewire (unknown interface "pipewire"); systemd-user-control (unknown interface
"systemd-user-control")
2025-04-01T10:18:04+10:00 INFO snap "plasma-desktop-session" has bad plugs or slots: pipewire (unknown interface "pipewire"); systemd-user-control (unknown interface
"systemd-user-control")
plasma-desktop-session (edge) 20250319+gitb1c8cc7 from KDE✓ installed
WARNING: There is 1 new warning. See 'snap warnings'.

Hello @cav

Still the same here. I’m trying on an Ubuntu Core system though, is it the case on your end as well? It could make a difference IMO.

Hi again @cav

Actually I think it’s because you’re testing with a regular snapd but we have a fork on Core Desktop for now which knows the systemd-user-control and pipewire interfaces. In the case of systemd-user-control it’s by default not allowing installation, I think it needs to be overridden from the store assertion.

IIRC you did that in the past but it didn’t happen this time around.

Thanks in advance.

hi @kottens

oh true. in that case, is the version of snapd used on core desktop locally patched with the systemd-user-control override?

Hello @cav

The snapd used on core desktop provides the systemd-user-control interface, but is declared with allow-installation: false on the plug declaration side. It’s been like this for the past few months.

hi @kottens - we plan to discuss this within the review team in the next day or two and will get back to you with how to get this sorted!

This has happened a few times with various snaps: a request is made for an addition to the snap declaration, and another part of the declaration is removed without discussion. It can be incredibly disruptive, since assertion updates propagate very quickly and affect all users of the snap.

Is there any process in place to make sure that only the requested changes are made to the snap declaration?