changeset 4:4741a31f9936

Make Octave work with GUI, graphics, and audio
author Mike Miller <mtmiller@octave.org>
date Thu, 13 Jun 2019 10:34:45 -0400
parents b54b2d4593ac
children 54c8f3efdc38
files snap/snapcraft.yaml
diffstat 1 files changed, 92 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/snap/snapcraft.yaml	Wed Jun 12 10:02:38 2019 -0400
+++ b/snap/snapcraft.yaml	Thu Jun 13 10:34:45 2019 -0400
@@ -15,29 +15,91 @@
 grade: stable
 confinement: strict
 
+layout:
+  /usr/lib/$SNAPCRAFT_ARCH_TRIPLET/alsa-lib:
+    bind: $SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/alsa-lib
+  /etc/asound.conf:
+    bind-file: $SNAP/etc/asound.conf
+  /usr/share/alsa/alsa.conf:
+    bind-file: $SNAP/etc/asound.conf
+
 apps:
   octave:
-    command: bin/octave
+    command: usr/bin/octave
     environment:
-      LD_LIBRARY_PATH: "$SNAP/lib/octave/5.1.0:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET"
-      OCTAVE_HOME: "$SNAP"
+      LD_LIBRARY_PATH: "$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/usr/lib:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pulseaudio"
+      PERL5LIB: "$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/perl5/5.26:$SNAP/usr/share/perl5:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/perl/5.26:$SNAP/usr/share/perl/5.26"
+      QT_PLUGIN_PATH: "$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/plugins"
+      QT_XKB_CONFIG_ROOT: "$SNAP/usr/share/X11/xkb"
+    plugs:
+      - desktop
+      - desktop-legacy
+      - home
+      - pulseaudio
+      - unity7
+      - unity8
+      - wayland
+      - x11
   octave-cli:
-    command: bin/octave-cli
+    command: usr/bin/octave-cli
     environment:
-      LD_LIBRARY_PATH: "$SNAP/lib/octave/5.1.0:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET"
-      OCTAVE_HOME: "$SNAP"
+      LD_LIBRARY_PATH: "$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET:$SNAP/usr/lib:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/pulseaudio"
+      PERL5LIB: "$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/perl5/5.26:$SNAP/usr/share/perl5:$SNAP/usr/lib/$SNAPCRAFT_ARCH_TRIPLET/perl/5.26:$SNAP/usr/share/perl/5.26"
+    plugs:
+      - desktop
+      - desktop-legacy
+      - home
+      - pulseaudio
+      - unity7
+      - unity8
+      - wayland
+      - x11
 
 parts:
+  alsa:
+    plugin: nil
+    source: https://github.com/diddledan/snapcraft-alsa.git
+    override-pull: |
+      cat > asound.conf <<EOF
+      pcm.!default {
+        type pulse
+        fallback "sysdefault"
+        hint {
+          show on
+          description "Default ALSA Output (currently PulseAudio Sound Server)"
+        }
+      }
+      ctl.!default {
+        type pulse
+        fallback "sysdefault"
+      }
+      EOF
+    override-build: |
+      install -m644 -D -t $SNAPCRAFT_PART_INSTALL/etc asound.conf
+    build-packages:
+    - libasound2-dev
+    stage-packages:
+    - libasound2
+    - libasound2-plugins
+
   octave:
     plugin: autotools
     source-type: tar
     source: https://ftpmirror.gnu.org/octave/octave-5.1.0.tar.xz
+    source-checksum: sha256/87b4df6dfa28b1f8028f69659f7a1cabd50adfb81e1e02212ff22c863a29454e
+    configflags:
+      - --prefix=/snap/octave/current/usr
+    after: [alsa]
     build-packages:
       - gfortran
       - libarpack2-dev
       - libcurl4-gnutls-dev
       - libfftw3-dev
+      - libfltk1.3-dev
+      - libfontconfig1-dev
+      - libgl2ps-dev
       - libglpk-dev
+      - libglu1-mesa-dev
       - libgraphicsmagick++1-dev
       - libhdf5-dev
       - libncurses5-dev
@@ -45,12 +107,20 @@
       - libpcre3-dev
       - libqhull-dev
       - libqrupdate-dev
+      - libqscintilla2-qt5-dev
+      - libqt5opengl5-dev
       - libreadline-dev
       - libsndfile1-dev
       - libsuitesparse-dev
       - portaudio19-dev
+      - qtbase5-dev
+      - qttools5-dev
+      - qttools5-dev-tools
       - texinfo
     stage-packages:
+      - build-essential
+      - gfortran
+      - gnuplot-qt
       - libamd2
       - libarpack2
       - libcamd2
@@ -61,7 +131,12 @@
       - libcxsparse3
       - libfftw3-double3
       - libfftw3-single3
+      - libfltk-gl1.3
+      - libfltk1.3
+      - libfontconfig1
+      - libgl2ps1.4
       - libglpk40
+      - libglu1-mesa
       - libgraphicsmagick++-q16-12
       - libhdf5-100
       - libopenblas-base
@@ -69,8 +144,19 @@
       - libportaudio2
       - libqhull7
       - libqrupdate1
+      - libqscintilla2-qt5-13
+      - libqt5core5a
+      - libqt5gui5
+      - libqt5help5
+      - libqt5network5
+      - libqt5opengl5
+      - libqt5printsupport5
+      - libqt5sql5
+      - libqt5widgets5
+      - libqt5xml5
       - libsndfile1
       - libumfpack5
       - texinfo
     organize:
       usr/lib/$SNAPCRAFT_ARCH_TRIPLET/openblas: usr/lib/$SNAPCRAFT_ARCH_TRIPLET
+      snap/octave/current/usr: usr