First Snapcraft - Trying to build darkradiant 2.14.0

I’ve been trying to learn how to create snap packages, and thought a good way to start would be to build a well documented program that lacked a snap package, and had a non-working snapcraft.yaml in the git repository as a base.

I’ve got it building and opening, but when I try and open the file browser in the program, it crashes with this error:

Gtk:ERROR:../../../../gtk/gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /org/gtk/libgtk/icons/16x16/status/i
mage-missing.png: Unrecognized image file format (gdk-pixbuf-error-quark, 3)
Bail out! Gtk:ERROR:../../../../gtk/gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /org/gtk/libgtk/icons/16x1
6/status/image-missing.png: Unrecognized image file format (gdk-pixbuf-error-quark, 3)
zsh: abort (core dumped)  darkradiant

here’s the snapcraft.yaml:

name: darkradiant
version: '2.14.0' # just for humans, typically '1.2+git' or '1.3.2'
summary: Level editing tool for The Dark Mod and Doom 3
description: |
  DarkRadiant is a level editing tool for the open source stealth game The Dark
  Mod, which is available separately from http://www.thedarkmod.com. It is also
  possible to edit levels for Doom 3 and possibly other games using a similar
  engine, such as Quake 4, although these are not officially supported.
base: core20
grade: stable
confinement: strict
#confinement: devmode
apps:
  darkradiant:
    extensions: [gnome-3-38]
    command: usr/local/bin/darkradiant
    desktop: usr/local/share/applications/darkradiant.desktop
    plugs: [desktop, gsettings, home, removable-media, opengl, pulseaudio, x11]
parts:
  darkradiant:
    plugin: cmake
    source: .
    source-type: local
    #make-parameters: ["FLAVOR=gtk2"]
    cmake-parameters:
      - -DCMAKE_INSTALL_PREFIX=/usr/local
    #   - --enable-debug
    #   - -ENABLE_DM_PLUGINS
    #   - -ENABLE_RELOCATION
    build-packages:
      - build-essential
      - libgtk2.0-dev
      - pkg-config
      - zlib1g-dev
      - libjpeg-dev
      - libwxgtk3.0-gtk3-dev
      - libxml2-dev
      - libsigc++-2.0-dev
      - libpng-dev
      - libftgl-dev
      - libglew-dev
      - libalut-dev
      - libvorbis-dev
      - python3-dev
      - libgtest-dev
      - libeigen3-dev
      - libgit2-dev
    stage-packages:
      - libasound2
      - libatk-bridge2.0-0
      - libatk1.0-0
      - libatspi2.0-0
      - libcairo-gobject2
      - libcairo2
      - libdatrie1
      - libepoxy0
      - libfontconfig1
      - libfreetype6
      - libfribidi0
      - libftgl2
      - libgdk-pixbuf2.0-0
      - libgit2-28
      - libgl1
      - libglew2.1
      - libglu1-mesa
      - libglvnd0
      - libglx0
      - libgraphite2-3
      - libgtk-3-0
      - libharfbuzz0b
      - libhttp-parser2.9
      - libice6
      - libicu66
      - libjbig0
      - libjpeg-turbo8
      - libmbedcrypto3
      - libmbedtls12
      - libmbedx509-0
      - libnotify4
      - libogg0
      - libopenal1
      - libpango-1.0-0
      - libpangocairo-1.0-0
      - libpangoft2-1.0-0
      - libpixman-1-0
      - libpng16-16
      - libpython3.8
      - libsigc++-2.0-0v5
      - libsm6
      - libsndio7.0
      - libssh2-1
      - libthai0
      - libtiff5
      - libvorbis0a
      - libvorbisfile3
      - libwayland-client0
      - libwayland-cursor0
      - libwayland-egl1
      - libwebp6
      - libwxbase3.0-0v5
      - libwxgtk3.0-gtk3-0v5
      - libx11-6
      - libxau6
      - libxcb-render0
      - libxcb-shm0
      - libxcb1
      - libxcomposite1
      - libxcursor1
      - libxdamage1
      - libxdmcp6
      - libxext6
      - libxfixes3
      - libxi6
      - libxinerama1
      - libxkbcommon0
      - libxml2
      - libxrandr2
      - libxrender1

I found this fix: https://source.puri.sm/Librem5/OS-issues/-/issues/17

but I don’t know how to implement it on snap packages, running it in my console didn’t fix the crash.

I was able to fix it by adding extensions: [gnome-3-38] to the snapcraft.yaml, but i’m having issues enabling access to the home, media, and mnt folders on the system. I’ve found where it talks about adding it in the documentation:

but it doesn’t explain HOW to do it. (honestly how does that happen?)

EDIT: I was able to get it working by adding removable-media to plugs and running “snap connect darkradiant:removable-media” after installing the snap.

still baffles me it doesn’t explain how to do that on the documentation page.