view snap/snapcraft.yaml @ 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
line wrap: on
line source

name: octave
base: core18
version: '5.1.0'
summary: Interactive programming environment for numerical computations
description: |
  GNU Octave is a high-level interpreted language, primarily intended for
  numerical computations. It provides capabilities for the numerical
  solution of linear and nonlinear problems, and for performing other
  numerical experiments. It also provides extensive graphics capabilities
  for data visualization and manipulation. Octave is normally used through
  its interactive command line interface, but it can also be used to write
  non-interactive programs. The Octave language is quite similar to
  Matlab so that most programs are easily portable.

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: usr/bin/octave
    environment:
      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: usr/bin/octave-cli
    environment:
      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
      - libopenblas-dev
      - 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
      - libccolamd2
      - libcholmod3
      - libcolamd2
      - libcurl3-gnutls
      - libcxsparse3
      - libfftw3-double3
      - libfftw3-single3
      - libfltk-gl1.3
      - libfltk1.3
      - libfontconfig1
      - libgl2ps1.4
      - libglpk40
      - libglu1-mesa
      - libgraphicsmagick++-q16-12
      - libhdf5-100
      - libopenblas-base
      - libpcre3
      - 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