Request install permission for pipewire snap, since it offers the pipewire slot

Now that the pipewire interface is fully available in the store and snapd, we want to request install permissions for the pipewire snap.


  • name: pipewire
  • description: the pipewire service, snapped for its use in Core and Core Desktop
  • snapcraft: GitHub - canonical/pipewire-snap: A containerized pipewire
  • upstream: https://gitlab.freedesktop.org/pipewire
  • upstream-relation: the snap is published by the canonical account
  • interfaces:
    • pipewire
      • request-type: installation
      • reasoning: this interface was specifically created for this snap, to allow it to create the pipewire socket and other required SecComp capabilities. Other snaps usually won’t require access to this interface because the pipewire snap also offers the pipewire-pulse, thus since it emulates pulseaudio, other snaps can use this just with the audio-playback and audio-record interfaces. Only desktop snaps for Ubuntu Core Desktop should require connection to this interface (as plugs).

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

Hey @SergioCostas

Thanks for the requests. Just one question from my side, do we really need/want to grant global auto-connection to pipewire snap? That would mean that any snap will auto-connect to this slot by default without any plug side declaration (#askForInfo)

@jslarraz Do you mean that we should add a plug restriction too in snapd? In pipewireBaseDeclarationPlug, preventing autoconnection too?

Because that makes sense, yes.

@jslarraz Something like this…?

const pipewireBaseDeclarationPlugs = `
  pipewire:
    allow-installation:
      slot-snap-type:
        - app
        - core
    deny-auto-connection: true
    deny-connection:
      on-classic: false
`

@jslarraz Do you mean that we should add a plug restriction too in snapd? In pipewireBaseDeclarationPlug, preventing autoconnection too?

No, it should not be needed in snapd as the slot-side base declaration should act as a fallback.

Just checking what is the expected behavior. Your request says request-type: auto-connection for the pipewire interface. However, granting auto-connection on the slot side of the snap declaration would mean that any snap would be able to auto-connect to the pipewire slot provided by this snap.

I think it is probably not desired, as it is not the way that puseaudio slot provided by the pipewire snap behaves (and I would expect those two to have equivalent installation/connection rules).

{
  "pulseaudio": {
    "allow-auto-connection": "false",
    "allow-installation": "true",
    "allow-connection": {
      "on-classic": "false"
    }
  }
}

Ok… then I don’t know where is the problem with the uploaded pipewire… sorry…

I mean: usually, only desktop snaps (like gnome shell) in Core Desktop will need to connect their plug into the pipewire slot. Everything else is already managed by the audio-playback and audio-record interfaces, and portals.

Updated the request-type field because originally it was wrong. It must be “installation”.

Thanks Sergio, so the behavior should be the same as for pulseaudio and audio-record then.

+1 from me for (#voteFor) granting pipewire slot to pipewire snap as it makes absolute sense