Subject: bug#30259: closed (Re: [bug#30259] [PATCH] gnu: octave: Add audio and Qt GUI support.)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 31 Mar 2018 18:59:02 +0000

Your bug report

#30259: [PATCH] gnu: octave: Add audio and Qt GUI support.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
30259: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=30259
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: [bug#30259] [PATCH] gnu: octave: Add audio and Qt GUI support.
From: Kei Kebreau <[email-masked]>
To: [email-masked]
Date: Sat, 31 Mar 2018 14:58:06 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Kei Kebreau <[email-masked]> writes:

> ng0 <[email-masked]> writes:
>
>> [email-masked] transcribed 2.4K bytes:
>>> On Sat, 27 Jan 2018, Kei Kebreau <[email-masked]> wrote:
>>> > [email-masked] writes:
>>> >
>>> >> On Fri, 26 Jan 2018, Kei Kebreau <[email-masked]> wrote:
>>> >>> [email-masked] writes:
>>> >>>
>>> >>>> On Fri, 26 Jan 2018, [email-masked] wrote:
>>> >>>>> On Fri, 26 Jan 2018, Kei Kebreau <[email-masked]> wrote:
>>> >>>>>> * 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.
>>> >>>>>
>>> >>>>> Woo! Nice :) I've started work on the Qt GUI a while ago but
>>> >>>>> never finished it. Do you think we should split this into octave
>>> >>>>> and octave-qt (or octave-gui)? Qt is quiet huge and not everyone
>>> >>>>> will want this I think.
>>> >>>>>
>>> >>>>> Building this now and getting back to you with results.
>>> >>>>>
>>> >> […]
>>> >>>> Build, compiled, installed, LGTM and works for me. At least the
>>> >>>> minimal basics I've tested.
>>> >>>>
>>> >>>
>>> >>> Excellent! Thanks for testing this.
>>> >>>
>>> >>>> However I still think we should split it later on. I'm not sure
>>> >>>> if other systems just provide it in one piece or if they provide
>>> >>>> octave-cli, octave-qt, etc.
>>> >>>> In my scenario we don't have substitutes for Qt all the time and
>>> >>>> someone running a
>>> >>>> machine which isn't capable of building Qt wants to use octave.
>>> >>>
>>> >>> I agree that this package should be split. Should a split be made now
>>> >>> while we leave the lighter CLI-only Octave package available on master,
>>> >>> or should it be postponed until later on?
>>> >>>
>>> >>
>>> >> It could be done later on, but if you think it wouldn't be too
>>> >> much work you could do it now.
>>> >
>>> > Done, I think!
>>> >
>>> >> Ideally this would leave 'octave' as it is and add
>>> >> 'octave-whatever' ... octave-qt? Debian calls the package (with
>>> >> just the Qt Gui) "qtoctave". octave-* should be reserved for
>>> >> extensions (which we don't have right now), so maybe qtoctave
>>> >> would fit into our naming scheme?
>>> >>
>>> >>
>>> >>  / I think I'm going to switch the subscribed address once more,
>>> >>  now that I have proper filtering I don't need the server-side
>>> >>  filtering. /
>>> >
>>> > Can you (and/or any bystanders reading this) test these?
>>> >
>>> >
>>> >
>>> 
>>> LGTM.
>>> 
>>> qtoctave worked, the normal octave should be alright.
>>> 
>>> Thank you very much for the work on this.
>>
>> Can someone push this? If nothing changed since the review I did, it's
>> good to go and just catching digital dust. Patch still applies iirc as
>> I build my active branch with it.
>
> Sorry for the delay! I've been swamped with other work. I'll be pushing
> this today as soon as I build and lint it on my computer. Thanks for
> your help!

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