From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: [PATCH 4/4] gnu: Add ingen. Date: Mon, 28 Nov 2016 20:10:41 +0100 Message-ID: <20161128191041.27483-5-rekado@elephly.net> References: <20161128191041.27483-1-rekado@elephly.net> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:48499) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cBRKW-0002hf-V9 for guix-devel@gnu.org; Mon, 28 Nov 2016 14:11:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cBRKV-0002JO-Ac for guix-devel@gnu.org; Mon, 28 Nov 2016 14:11:08 -0500 Received: from sender163-mail.zoho.com ([74.201.84.163]:21316) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cBRKV-0002Ii-0E for guix-devel@gnu.org; Mon, 28 Nov 2016 14:11:07 -0500 In-Reply-To: <20161128191041.27483-1-rekado@elephly.net> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org * gnu/packages/audio.scm (ingen): New variable. --- gnu/packages/audio.scm | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index a3069b4..5bc9f59 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2787,3 +2787,88 @@ code, used in @code{libtoxcore}.") 06.10 RPE-LTP lossy speech compression algorithm.") (home-page "http://quut.com/gsm/") (license (license:non-copyleft "file://COPYRIGHT")))) + +(define-public ingen + (let ((commit "fd147d0b888090bfb897505852c1f25dbdf77e18") + (revision "1")) + (package + (name "ingen") + (version (string-append "0.0.0-" revision "." + (string-take commit 9))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "http://git.drobilla.net/ingen.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1qmg79962my82c43vyrv5sxbqci9c7gc2s9bwaaqd0fcf08xcz1z")))) + (build-system waf-build-system) + (arguments + `(#:tests? #f ; no "check" target + #:configure-flags (list "--no-webkit") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-wscript + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "wscript" + ;; FIXME: Our version of lv2specgen.py does not behave as + ;; expected. Maybe this requires a development version of + ;; LV2. + (("lv2specgen.py") "touch ingen.lv2/ingen.html; echo") + ;; Add libraries to RUNPATH. + (("^(.+)target.*= 'src/ingen/ingen'," line prefix) + (string-append prefix + "linkflags=[\"-Wl,-rpath=" + out "/lib" "\"]," line))) + (substitute* '("src/wscript" + "src/server/wscript") + ;; Add libraries to RUNPATH. + (("bld.env.PTHREAD_LINKFLAGS" line) + (string-append line + " + [\"-Wl,-rpath=" out "/lib" "\"]"))) + (substitute* "src/client/wscript" + ;; Add libraries to RUNPATH. + (("^(.+)target.*= 'ingen_client'," line prefix) + (string-append prefix + "linkflags=[\"-Wl,-rpath=" + out "/lib" "\"]," line))) + (substitute* "src/gui/wscript" + ;; Add libraries to RUNPATH. + (("^(.+)target.* = 'ingen_gui.*" line prefix) + (string-append prefix + "linkflags=[\"-Wl,-rpath=" + out "/lib" "\"]," line)))) + #t))))) + (inputs + `(("boost" ,boost) + ("python-rdflib" ,python-rdflib) + ("python" ,python) + ("jack" ,jack-1) + ("lv2" ,lv2) + ("lilv" ,lilv) + ("raul" ,raul-devel) + ("ganv" ,ganv-devel) + ("suil" ,suil) + ("serd" ,serd) + ("sord" ,sord) + ("sratom" ,sratom) + ("gtkmm" ,gtkmm-2))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("python-pygments" ,python-pygments))) + (home-page "http://drobilla.net/software/ingen") + (synopsis "Modular audio processing system") + (description "Ingen is a modular audio processing system for JACK and +LV2 based systems. Ingen is built around LV2 technology and a strict +separation of engine from user interface. The engine is controlled +exclusively through a protocol, and can execute as a headless process, with an +in-process GUI, or as an LV2 plugin. The GUI can run as a program which +communicates over a Unix or TCP/IP socket, or as an embeddable LV2 GUI which +communicates via LV2 ports. Any saved Ingen graph can be loaded as an LV2 +plugin on any system where Ingen is installed. This allows users to visually +develop custom plugins for use in other applications without programming.") + (license license:agpl3+)))) -- 2.10.2