From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39991) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ef9Zf-00082H-Id for guix-patches@gnu.org; Fri, 26 Jan 2018 14:22:09 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ef9Za-0002sz-CN for guix-patches@gnu.org; Fri, 26 Jan 2018 14:22:07 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:36154) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ef9Za-0002sb-7M for guix-patches@gnu.org; Fri, 26 Jan 2018 14:22:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ef9ZZ-0001pu-UD for guix-patches@gnu.org; Fri, 26 Jan 2018 14:22:01 -0500 Subject: [bug#30259] [PATCH] gnu: octave: Add audio and Qt GUI support. Resent-Message-ID: From: ng0+guixpatches@n0.is In-Reply-To: <87wp04fpjs.fsf@abyayala.i-did-not-set--mail-host-address--so-tickle-me> (ng0's message of "Fri, 26 Jan 2018 18:22:31 +0000") References: <20180126151311.9049-1-kkebreau@posteo.net> <87wp04fpjs.fsf@abyayala.i-did-not-set--mail-host-address--so-tickle-me> Date: Fri, 26 Jan 2018 19:20:53 +0000 Message-ID: <87po5wfmui.fsf@abyayala.i-did-not-set--mail-host-address--so-tickle-me> MIME-Version: 1.0 Content-Type: text/plain List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: ng0+guixpatches@n0.is Cc: Kei Kebreau , 30259@debbugs.gnu.org On Fri, 26 Jan 2018, ng0+guixpatches@n0.is wrote: > On Fri, 26 Jan 2018, Kei Kebreau 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. > >> --- >> 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" Build, compiled, installed, LGTM and works for me. At least the minimal basics I've tested. 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. -- ng0 :: https://ea.n0.is A88C8ADD129828D7EAC02E52E22F9BBFEE348588 :: https://ea.n0.is/keys/