[SOLVED] No sound in the Remmina snap

I spun up a fresh Ubuntu 20.04 VM and tried the following,

snap run --shell remmina
paplay $example.mp3
source $SNAP/bin/pawrapper
paplay $example.mp3

Both paplay failed.

I cloned the Remmina master branch, removed LD_LIBRARY_PATH, removed the wrapper from the command (but kept the part), but importantly, removed the instances of stage: and prime:. Rerunning the paplay above, the audio worked fine (and presumably Remmina proper would too, but I’m a bit strapped for time to setup a proper RDP server to test fully with right now).

Unfortunately, the snap inflates from 40MB to 170MB in size.

The most obvious explaination to me right now would be the use of stage and prime to trim the size of the snap down is probably being too aggressive and is stripping away some files needed to keep Pulse functional, and I wouldn’t expect alsa-mixin to fix this (it proxies through pulse anyway, more indirection won’t help).

git diff below for reference

diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index d247acfd..0a77ad06 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -7,7 +7,6 @@ base: core18
 
 environment:
   DISABLE_WAYLAND: "1"
-  LD_LIBRARY_PATH: $LD_LIBRARY_PATH:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pulseaudio
 
 layout:
   /usr/lib/$SNAPCRAFT_ARCH_TRIPLET/webkit2gtk-4.0:
@@ -21,9 +20,7 @@ slots:
 
 apps:
   remmina:
-    # desktop-launch (used under the covers in gnome-3-28 extension) seems to
-    # be broken when setting up wayland env so we disable it
-    command: bin/pawrap $SNAP/usr/bin/remmina
+    command: bin/remmina
     extensions: [gnome-3-28]
     common-id: org.remmina.Remmina.desktop
     plugs:
@@ -66,8 +63,6 @@ parts:
   pulse-utils:
     plugin: nil
     stage-packages:
-      - pulseaudio
-      - pulseaudio-utils
       - libsndfile1
       - libxcb1
       - libasyncns0
@@ -78,19 +73,6 @@ parts:
       - libogg0
       - libvorbis0a
       - libpulse0
-    prime:
-      - usr/lib/*/pulseaudio/libpulsecommon-8.0.so*
-      - usr/lib/*/libpulse.so*
-      - usr/lib/*/libpulse-simple.so*
-      - usr/lib/*/libsndfile.so*
-      - usr/lib/*/libxcb.so*
-      - usr/lib/*/libasyncns.so*
-      - usr/lib/*/libFLAC.so*
-      - usr/lib/*/libvorbisenc.so*
-      - usr/lib/*/libXau.so*
-      - usr/lib/*/libXdmcp.so*
-      - usr/lib/*/libogg.so*
-      - usr/lib/*/libvorbis.so.*
   freerdp:
     after:
       - pulse-utils
@@ -319,70 +301,3 @@ parts:
       - gstreamer1.0-libav
       - dbus-x11
       - xdg-user-dirs
-
-    override-build: |
-      set -ex
-      snapcraftctl build
-    stage:
-      - usr/bin/gtk3-demo
-      - usr/lib/*/libFLAC.so*
-      - usr/lib/*/libXau.so*
-      - usr/lib/*/libXdmcp.so*
-      - usr/lib/*/libappindicator3.so.*
-      - usr/lib/*/libasyncns.so*
-      - usr/lib/*/libavahi*.so.*
-      - usr/lib/*/libavcodec.so.*
-      - usr/lib/*/libavutil.so.*
-      - usr/lib/*/libcacard.so.*
-      - usr/lib/*/libcrystalhd.so.*
-      - usr/lib/*/libdbusmenu-glib.so.*
-      - usr/lib/*/libdbusmenu-gtk3.so.*
-      - usr/lib/*/libgdbm.so.*
-      - usr/lib/*/libgomp.so.*
-      - usr/lib/*/libgsm.so.*
-      - usr/lib/*/libindicator3.so.*
-      - usr/lib/*/libmp3lame.so.*
-      - usr/lib/*/libnspr4.so
-      - usr/lib/*/libnss3.so
-      - usr/lib/*/libnssutil3.so
-      - usr/lib/*/libnuma.so.*
-      - usr/lib/*/libogg.so*
-      - usr/lib/*/libopenjp2.so.*
-      - usr/lib/*/libopus.so.*
-      - usr/lib/*/libphodav-2.0.so.*
-      - usr/lib/*/libplc4.so
-      - usr/lib/*/libplds4.so
-      - usr/lib/*/libpulse-mainloop-glib.so.*
-      - usr/lib/*/libpulse-simple.so*
-      - usr/lib/*/libpulse.so*
-      - usr/lib/*/libshine.so.*
-      - usr/lib/*/libsnappy.so.*
-      - usr/lib/*/libsndfile.so*
-      - usr/lib/*/libsodium.so.*
-      - usr/lib/*/libsoxr.so.*
-      - usr/lib/*/libspeex.so.*
-      - usr/lib/*/libspice-client-glib-2.0.so.*
-      - usr/lib/*/libspice-client-gtk-3.0.so.*
-      - usr/lib/*/libswresample.so.*
-      - usr/lib/*/libthai.so.*
-      - usr/lib/*/libtheoradec.so.*
-      - usr/lib/*/libtheoraenc.so.*
-      - usr/lib/*/libtwolame.so.*
-      - usr/lib/*/libusbredirhost.so.*
-      - usr/lib/*/libusbredirparser.so.*
-      - usr/lib/*/libva-drm.so.*
-      - usr/lib/*/libva-x11.so.*
-      - usr/lib/*/libva.so.*
-      - usr/lib/*/libvdpau.so.*
-      - usr/lib/*/libvncclient.so.*
-      - usr/lib/*/libvorbis.so.*
-      - usr/lib/*/libvorbisenc.so*
-      - usr/lib/*/libvpx.so.*
-      - usr/lib/*/libwavpack.so.*
-      - usr/lib/*/libwebpmux.so.*
-      - usr/lib/*/libx264.so.*
-      - usr/lib/*/libx265.so.*
-      - usr/lib/*/libxcb.so*
-      - usr/lib/*/libxkbfile.so.*
-      - usr/lib/*/libxvidcore.so.*
-      - usr/lib/*/pulseaudio/libpulsecommon-8.0.so*
2 Likes