~jkraehemann/+junk/gsequencer-4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
name: gsequencer-4 # you probably want to 'snapcraft register <name>'
version: '4.4.2' # just for humans, typically '1.2+git' or '1.3.2'
summary: Advanced Gtk+ Sequencer # 79 char long summary
description: |
  GSequencer is intended to be use for music composition. It features
  notation, automation and wave form editor. Supporting LADSPA, DSSI
  and LV2 plugins.
icon: snap/local/ags.png

base: core22
grade: stable # must be 'stable' to release into candidate/stable channels
confinement: strict
#passthrough:
#  confinement: next-generation # use 'strict' once you have the right plugs and slots

parts:
  gsequencer-4:
    source: http://download-mirror.savannah.gnu.org/releases/gsequencer/4.4.x/gsequencer-4.4.2.tar.gz # See 'snapcraft plugins'
    plugin: autotools
    build-packages: [wget,fop,gstreamer1.0-plugins-base,gstreamer1.0-plugins-good,gstreamer1.0-plugins-bad,libgstreamer1.0-dev,libgstreamer-plugins-base1.0-dev,libgtk-4-dev,libinstpatch-dev,libsndfile-dev,libsamplerate-dev,libsoup2.4-dev,libxml2-dev,libpoppler-glib-dev,gobject-introspection,libgmp-dev,ladspa-sdk,dssi-dev,lv2-dev,fftw3-dev,libasound2-dev,libjack-jackd2-dev,libpulse-dev,uuid-dev,libcunit1-dev,docbook-xsl,docbook-xml,gtk-doc-tools,xsltproc]
    stage-packages: [libatk-bridge2.0-0,libatspi2.0-0,libbrotli1,libcairo-gobject2,libdrm2,libegl1,libenchant-2-2,libepoxy0,libfftw3-double3,libgbm1,libgl1,libglvnd0,libglx0,libgstreamer-gl1.0-0,gstreamer1.0-plugins-base,gstreamer1.0-plugins-good,libgstreamer-plugins-base1.0-0,libgstreamer1.0-0,libgtk-4-1,libgudev-1.0-0,libharfbuzz-icu0,libhyphen0,libinstpatch-1.0-2,libnotify4,liborc-0.4-0,libsecret-1-0,libsoup2.4-1,libpoppler-glib8,libwayland-client0,libwayland-cursor0,libwayland-egl1,libwayland-server0,libwebp7,libwebpdemux2,libwoff1,libx11-xcb1,libxkbcommon0,libxslt1.1,ubuntustudio-audio-plugins,cmt,xsynth-dssi,calf-plugins,invada-studio-plugins-lv2,mda-lv2,swh-plugins,hydrogen-drumkits,fluid-soundfont-gm,fluid-soundfont-gs]
    override-build: |
      ./configure --prefix=/usr --libdir=/usr/lib/$SNAPCRAFT_ARCH_TRIPLET --enable-public-libgsequencer --with-poppler --disable-introspection
      make -j $SNAPCRAFT_PARALLEL_BUILD_COUNT
      make -j1 pdf
      DESTDIR=$SNAPCRAFT_PART_INSTALL make -j1 install
      DESTDIR=$SNAPCRAFT_PART_INSTALL make -j1 install-pdf-mkdir
      DESTDIR=$SNAPCRAFT_PART_INSTALL make -j1 install-pdf
      rm -rf $SNAPCRAFT_PART_INSTALL/usr/include
    override-pull: |
      snapcraftctl pull
      wget https://xn--krhemann-1za.com/snap/gsequencer-4-shortcuts.patch
      patch -p0 < gsequencer-4-shortcuts.patch
      autoreconf -fi

slots:
  dbus-daemon:
    interface: dbus
    bus: session
    name: org.nongnu.gsequencer.gsequencer

apps:
  gsequencer-4:
    command: usr/bin/gsequencer
    extensions: [gnome]
    desktop: usr/share/applications/gsequencer.desktop
    environment:
      XDG_DATA_DIRS: $SNAP/usr/share:$XDG_DATA_DIRS
      LADSPA_PATH: $SNAP/usr/lib/ladspa
      DSSI_PATH: $SNAP/usr/lib/dssi
      LV2_PATH: $SNAP/usr/lib/lv2
      AGS_SNAP_PATH: $SNAP
      AGS_ANIMATION_FILENAME: $SNAP/usr/share/gsequencer/images/gsequencer-800x450.png
      AGS_LOGO_FILENAME: $SNAP/usr/share/gsequencer/images/ags.png
      AGS_CSS_FILENAME: $SNAP/usr/share/gsequencer/styles/ags.css
      AGS_ONLINE_HELP_PDF_FILENAME: $SNAP/usr/share/doc/gsequencer/pdf/user-manual-a4.pdf
    slots:
      - dbus-daemon
    plugs:
      - x11
      - wayland
      - desktop
      - alsa
      - pulseaudio
      - gsettings
      - home
      - content
      - openvswitch

plugs:
  icon-themes:
    interface: content
    target: $SNAP/usr/share/icons
    default-provider: gtk-common-themes:icon-themes

#passthrough:
#  layout:
#    /usr/share/sounds:
#      bind: $SNAP/usr/share/sounds
#    /usr/share/hydrogen:
#      bind: $SNAP/usr/share/hydrogen