summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2016-11-27 23:34:37 +0100
committerRicardo Wurmus <rekado@elephly.net>2016-12-04 11:24:24 +0100
commit951581a2d6ff5681e55affadb7f3151e7ef51ffe (patch)
tree78e755787d9a1f7ea59eae9d5a0c9bba8ef29351
parentf91d0d08ddfebc3285d315002712359801c1624c (diff)
gnu: Add ingen.
* gnu/packages/music.scm (ingen): New variable.
-rw-r--r--gnu/packages/music.scm85
1 files changed, 85 insertions, 0 deletions
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index f5322b47af..7a9cb5f6de 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -2481,6 +2481,91 @@ filters, crossovers, simple gain plugins without zipper noise, switch box
plugins, a switch trigger, a toggle switch, and a peakmeter.")
(license license:gpl2+))))
+(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+))))
+
(define-public python-discogs-client
(package
(name "python-discogs-client")