Subject: [PATCH] gnu: octave: Add audio and Qt GUI support.
From: Kei Kebreau <[email-masked]>
To: [email-masked]
Cc: Kei Kebreau <[email-masked]>
Date: Fri, 26 Jan 2018 10:13:11 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/maths.scm (octave)[inputs]: Add qscintilla, qt, suitesparse,
libsndfile, portaudio and alsa-lib.
[native-inputs]: Add qttools.
[arguments]: Add 'patch-qscintilla-library-name' phase.
---
 gnu/packages/maths.scm | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index bce662737..172f1da07 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -52,6 +52,7 @@
   #:use-module (guix build-system ocaml)
   #:use-module (guix build-system r)
   #:use-module (gnu packages algebra)
+  #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages boost)
@@ -74,6 +75,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages java)
   #:use-module (gnu packages less)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages lisp)
   #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
@@ -91,8 +93,10 @@
   #:use-module (gnu packages popt)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages tbb)
   #:use-module (gnu packages scheme)
@@ -1310,12 +1314,19 @@ can solve two kinds of problems:
        ("zlib" ,zlib)
        ("curl" ,curl)
        ("texinfo" ,texinfo)
-       ("graphicsmagick" ,graphicsmagick)))
+       ("graphicsmagick" ,graphicsmagick)
+       ("qscintilla", qscintilla)
+       ("qt", qtbase)
+       ("suitesparse" ,suitesparse)
+       ("libsndfile" ,libsndfile)
+       ("portaudio" ,portaudio)
+       ("alsa-lib" ,alsa-lib)))
     (native-inputs
      `(("lzip" ,lzip)
        ("gfortran" ,gfortran)
        ("pkg-config" ,pkg-config)
        ("perl" ,perl)
+       ("qttools" ,qttools) ;for lrelease
        ;; The following inputs are not actually used in the build process.
        ;; However, the ./configure gratuitously tests for their existence and
        ;; assumes that programs not present at build time are also not, and
@@ -1333,6 +1344,16 @@ can solve two kinds of problems:
                             "/bin/sh"))
        #:phases
        (modify-phases %standard-phases
+         (add-before 'configure 'patch-qscintilla-library-name
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; The QScintilla library that the Octave configure script tries
+             ;; to link with should be named libqscintilla-qt5.so, but the
+             ;; QScintilla input provides the shared library as
+             ;; libqscintilla2_qt5.so.
+             (substitute* "configure"
+               (("qscintilla2-qt5")
+                "qscintilla2_qt5"))
+             #t))
          (add-after 'configure 'configure-makeinfo
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "libinterp/corefcn/help.cc"
-- 
2.16.1