I have an gstreamer based application which could play video streams by URL link. Atm I’m trying to pack it into Snap package. My snapcraft.yaml
:
name: hello
version: '1.0'
base: core20
summary: Your application summary
description: Your application description
confinement: devmode
grade: stable
plugs:
network:
interface: network
apps:
hello:
command: ./bin/hello
plugs:
- home
- desktop
- desktop-legacy
- wayland
- unity7
- alsa
- audio-playback
- network
- screen-inhibit-control
environment:
LD_LIBRARY_PATH: $SNAP/usr/lib/x86_64-linux-gnu/pulseaudio:$LD_LIBRARY_PATH
GST_PLUGIN_SCANNER: $SNAP/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner
GST_PLUGIN_SYSTEM_PATH: $SNAP/usr/lib/x86_64-linux-gnu/gstreamer-1.0
parts:
hello:
plugin: cmake
source-type: git
source: https://github.com/hello
override-build: |
cd ../src
cmake -S . -B build
cmake --build build
mkdir $SNAPCRAFT_PART_INSTALL/bin
cp -p build/hello$SNAPCRAFT_PART_INSTALL/bin
cd ..
rm -rf .src
build-packages:
- build-essential
- pkg-config
- libgstreamer-plugins-base1.0-dev
- libglib2.0-dev
stage-packages:
- gstreamer1.0-libav
- gstreamer1.0-alsa
- gstreamer1.0-pulseaudio
- gstreamer1.0-plugins-bad
- gstreamer1.0-plugins-good
- gstreamer1.0-plugins-ugly
- gstreamer1.0-plugins-base
- libgl1
- libglvnd0
- libglx0
- libpulse0
- libjson-glib-1.0-0
- libasound2
- alsa-utils
- alsa-oss
- xserver-xorg-legacy
- libdrm2
- libdrm-dev
But then I run this hello
snap package I’m getting this message:
0:00:06.380954713 60423 0x55687d6262a0 WARN kmssink gstkmssink.c:1670:gst_kms_sink_show_frame:<video-sink-actual-sink-kms> error: drmModeSetPlane failed: Permission denied (-13)
I understand that my Snap package has no some DRM permissions but could it be work arounded?