We haven’t made any changes to our snapcraft.yaml file for more than 9 months, and from last 4-5 days the snap build failed once. So we ran snapcraft clean
and then build the package successfully.
But when we launch the app, it crashes with the following error message:
libEGL fatal: did not find extension DRI_Mesa version 1
It is flutter app that uses python based opencv. Any help would be appreciated. Here is the snapcraft.yaml file:
name: appname
version: git
summary: App
description: App
confinement: strict
base: core22
grade: stable
compression: lzo
license: GPL-3.0+
icon: snap/gui/app-name.png
architectures:
- build-on: amd64
slots:
dbus:
interface: dbus
name: com.app.app_name
bus: session
parts:
flutter-git:
source: https://github.com/flutter/flutter.git
source-branch: stable
source-depth: 1
plugin: nil
override-build: |
mkdir -p $CRAFT_PART_INSTALL/usr/bin
mkdir -p $CRAFT_PART_INSTALL/usr/libexec
cp -r $CRAFT_PART_SRC $CRAFT_PART_INSTALL/usr/libexec/flutter
ln -s $CRAFT_PART_INSTALL/usr/libexec/flutter/bin/flutter $CRAFT_PART_INSTALL/usr/bin/flutter
ln -s $CRAFT_PART_INSTALL/usr/libexec/flutter/bin/dart $CRAFT_PART_INSTALL/usr/bin/dart
build-packages:
- clang
- cmake
- curl
- ninja-build
- unzip
- xz-utils
- zip
override-prime: ""
alsa-mixin:
after: [flutter-git]
plugin: dump
source: https://github.com/diddlesnaps/snapcraft-alsa.git
source-subdir: snapcraft-assets
build-packages:
- libasound2-dev
stage-packages:
- libasound2
- libasound2-plugins
- yad
stage:
# restrict to only audio-related files - you need to ensure
# that gtk3 is staged for yad to work correctly, to prompt
# users to connect the alsa plug or proceed with pulseaudio.
#
# This helps prevent symbol conflicts in situations where
# you're using a non-default library, such as those that the
# gnome-3-34 extension for core18 provides.
- etc/asound.conf
- snap/command-chain/alsa-launch
- usr/bin/yad*
- usr/lib/$SNAPCRAFT_ARCH_TRIPLET/alsa-lib
- usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libasound*
- usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libdnsfile*
- usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libFLAC*
- usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libjack*
- usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libpulse*
- usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libsamplerate*
- usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libspeex*
- usr/lib/$SNAPCRAFT_ARCH_TRIPLET/libvorbis*
- usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pulseaudio
app-name:
after: [alsa-mixin]
plugin: python
source: .
build-environment:
- SNAPCRAFT_PYTHON_INTERPRETER: python3.10
override-build: |
set -eux
flutter channel stable
flutter upgrade
flutter config --enable-linux-desktop
flutter doctor
flutter clean
flutter pub get
flutter build linux --release -v
mkdir -p $CRAFT_PART_INSTALL/bin/
cp -r build/linux/*/release/bundle/* $CRAFT_PART_INSTALL/bin/
build-packages:
- libgl1
- vlc
- libvlc-dev
- python3-dev
- python3-pip
- pulseaudio
- libgtk-3-0
stage-packages:
- libgl1
- vlc
- libvlc-dev
- python3-dev
- python3-pip
- libgtk-3-0
- pulseaudio
- chromium-browser
override-prime: |
mkdir -p usr/lib/python3.10/site-packages
python3 -m pip install autopep8 numpy opencv-python==4.6.0.66 pandas pycodestyle python-dateutil pytz six toml -t usr/lib/python3.10/site-packages/
snapcraftctl prime
prime:
- -usr/lib/python3.10
desktop-resources:
plugin: dump
source: snap/gui/
organize:
app-name.desktop: usr/share/applications/app-name.desktop
app-name.png: usr/share/icons/app-name.png
stage:
- usr/share/applications/app-name.desktop
- usr/share/icons/app-name.png
layout:
/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/alsa-lib:
bind: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/alsa-lib
/usr/share/alsa:
bind: $SNAP/usr/share/alsa
apps:
app-name:
command: bin/app_name
command-chain: ["snap/command-chain/alsa-launch"]
environment:
ALWAYS_USE_PULSEAUDIO: "1"
# setup path to find and use packaged python3 in snap
PATH: "$SNAP/usr/lib:$SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH:/snap/core22/current/usr/bin:/snap/bin"
# # fixup pythonpath to find modules, for some reason
# # 'lib/python3.10/site-packages' is not added by default
# # add two more host paths for users to install modules in
PYTHONPATH: "$SNAP/lib/python3.10/site-packages:\
$HOME/.local/lib/python3.10/site-packages:\
$SNAP/usr/lib/python3.10/site-packages:\
/lib/python3.10/site-packages"
desktop: usr/share/applications/app-name.desktop
autostart: app-name.desktop
extensions: [gnome]
plugs:
- alsa
- audio-playback
- camera
- desktop
- desktop-legacy
- gsettings
- home
- network
- pulseaudio
- x11