I have made a snap based on the yaml below. It’s a command line spotify music application which uses mpris to show up in the various desktop integration points.
The binary when run outside snap works as expected, and registers via mpris so I can change tracks. I can see it register the correct name under dfeet.
However, when snapped, it does this:
snap "ncspot" has bad plugs or slots: ncspot-mpris (invalid name element: "org.mpris.MediaPlayer2.ncspot")
What am I doing wrong?
name: ncspot
base: core18
version: '0.1.2'
summary: Cross-platform ncurses Spotify client written in Rust
description: |
ncurses Spotify client written in Rust using librespot. It is heavily
inspired by ncurses MPD clients, such as ncmpc. My motivation was to
provide a simple and resource friendly alternative to the official
client as well as to support platforms that currently don't have a
Spotify client, such as the *BSDs.
grade: stable
confinement: strict
apps:
ncspot:
environment:
LD_LIBRARY_PATH: "$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pulseaudio:$LD_LIBRARY_PATH"
LC_ALL: "C.UTF-8"
command: ncspot
plugs:
- network
- network-bind
- audio-playback
- config-ncspot
slots:
- ncspot-mpris
slots:
ncspot-mpris:
interface: mpris
name: org.mpris.MediaPlayer2.ncspot
plugs:
config-ncspot:
interface: personal-files
write:
- $HOME/.config/ncspot
parts:
ncspot:
plugin: rust
source: https://github.com/hrkfdn/ncspot.git
source-tag: $SNAPCRAFT_PROJECT_VERSION
build-packages:
- libasound2-dev
- libncurses-dev
- libncursesw5-dev
- libssl-dev
- libdbus-1-dev
- pkg-config
- libpulse-dev
- libxcb1-dev
- libxcb-render0-dev
- libxcb-shape0-dev
- libxcb-xfixes0-dev
stage-packages:
- libpulse0
- libncursesw5
- libasound2
- libdbus-1-3
- libgcc1
- libgcrypt20
- libgpg-error0
- liblz4-1
- liblzma5
- libssl1.1
- libsystemd0
- libtinfo5
- libxcb-render0
- libxcb-shape0
- libxcb-xfixes0