From: Ricardo Wurmus <rekado@elephly.net>
To: guix-devel <guix-devel@gnu.org>
Subject: [PATCH v2]: Add Ardour.
Date: Sat, 31 Jan 2015 20:41:54 +0100 [thread overview]
Message-ID: <87sieqyby5.fsf@mango.localdomain> (raw)
[-- Attachment #1: Type: text/plain, Size: 965 bytes --]
Hi Guix,
This is a new version of my previous patch series towards Ardour. The
attached patches replace (and partially repeat) those contained in the
following emails:
* waf build system (unchanged):
http://lists.gnu.org/archive/html/guix-devel/2015-01/msg00439.html
* JACK2, aubio, liblo, LV2
http://lists.gnu.org/archive/html/guix-devel/2015-01/msg00446.html
* serd, sord, sratom, lilv, suil
http://lists.gnu.org/archive/html/guix-devel/2015-01/msg00461.html
On top of that, the patch set adds the following packages:
- Vamp SDK
- LADSPA (a little ugly)
- rubberband
- libgnomecanvasmm (deprecated and old, but used by Ardour)
- and finally: Ardour
I decided to replace the previous patches because of an error in the
'jack-2' package whose fix made it difficult to apply subsequent
patches. Now everything is in context and the dependencies between the
patches is clearer now that Ardour has also been packaged.
~~ Ricardo
[-- Attachment #2: 0001-Add-waf-build-system.patch --]
[-- Type: text/x-patch, Size: 9875 bytes --]
From b60b5718c35db62d471df63168bc3da4c11bbc32 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Wed, 28 Jan 2015 22:39:03 +0100
Subject: [PATCH 01/15] Add 'waf-build-system'.
* guix/build-system/waf.scm, guix/build/waf-build-system.scm: New files.
* Makefile.am (MODULES): Add them.
---
Makefile.am | 2 +
guix/build-system/waf.scm | 128 ++++++++++++++++++++++++++++++++++++++++
guix/build/waf-build-system.scm | 86 +++++++++++++++++++++++++++
3 files changed, 216 insertions(+)
create mode 100644 guix/build-system/waf.scm
create mode 100644 guix/build/waf-build-system.scm
diff --git a/Makefile.am b/Makefile.am
index 67367d6..6a4a09b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -53,6 +53,7 @@ MODULES = \
guix/build-system/gnu.scm \
guix/build-system/perl.scm \
guix/build-system/python.scm \
+ guix/build-system/waf.scm \
guix/build-system/ruby.scm \
guix/build-system/trivial.scm \
guix/ftp-client.scm \
@@ -71,6 +72,7 @@ MODULES = \
guix/build/perl-build-system.scm \
guix/build/python-build-system.scm \
guix/build/ruby-build-system.scm \
+ guix/build/waf-build-system.scm \
guix/build/store-copy.scm \
guix/build/utils.scm \
guix/build/union.scm \
diff --git a/guix/build-system/waf.scm b/guix/build-system/waf.scm
new file mode 100644
index 0000000..494cb95
--- /dev/null
+++ b/guix/build-system/waf.scm
@@ -0,0 +1,128 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix build-system waf)
+ #:use-module (guix store)
+ #:use-module (guix utils)
+ #:use-module (guix packages)
+ #:use-module (guix derivations)
+ #:use-module (guix build-system)
+ #:use-module (guix build-system gnu)
+ #:use-module ((guix build-system python)
+ #:select (default-python default-python2))
+ #:use-module (ice-9 match)
+ #:use-module (srfi srfi-26)
+ #:export (waf-build
+ waf-build-system))
+
+;; Commentary:
+;;
+;; Standard build procedure for applications using 'waf'. This is very
+;; similar to the 'python-build-system' and is implemented as an extension of
+;; 'gnu-build-system'.
+;;
+;; Code:
+
+(define* (lower name
+ #:key source inputs native-inputs outputs system target
+ (python (default-python))
+ #:allow-other-keys
+ #:rest arguments)
+ "Return a bag for NAME."
+ (define private-keywords
+ '(#:source #:target #:python #:inputs #:native-inputs))
+
+ (and (not target) ;XXX: no cross-compilation
+ (bag
+ (name name)
+ (system system)
+ (host-inputs `(,@(if source
+ `(("source" ,source))
+ '())
+ ,@inputs
+
+ ;; Keep the standard inputs of 'gnu-build-system'.
+ ,@(standard-packages)))
+ (build-inputs `(("python" ,python)
+ ,@native-inputs))
+ (outputs outputs)
+ (build waf-build) ; only change compared to 'lower' in python.scm
+ (arguments (strip-keyword-arguments private-keywords arguments)))))
+
+(define* (waf-build store name inputs
+ #:key
+ (tests? #t)
+ (test-target "check")
+ (configure-flags ''())
+ (phases '(@ (guix build waf-build-system)
+ %standard-phases))
+ (outputs '("out"))
+ (search-paths '())
+ (system (%current-system))
+ (guile #f)
+ (imported-modules '((guix build waf-build-system)
+ (guix build gnu-build-system)
+ (guix build utils)))
+ (modules '((guix build waf-build-system)
+ (guix build utils))))
+ "Build SOURCE with INPUTS. This assumes that SOURCE provides a 'waf' file
+as its build system."
+ (define builder
+ `(begin
+ (use-modules ,@modules)
+ (waf-build #:name ,name
+ #:source ,(match (assoc-ref inputs "source")
+ (((? derivation? source))
+ (derivation->output-path source))
+ ((source)
+ source)
+ (source
+ source))
+ #:configure-flags ,configure-flags
+ #:system ,system
+ #:test-target ,test-target
+ #:tests? ,tests?
+ #:phases ,phases
+ #:outputs %outputs
+ #:search-paths ',(map search-path-specification->sexp
+ search-paths)
+ #:inputs %build-inputs)))
+
+ (define guile-for-build
+ (match guile
+ ((? package?)
+ (package-derivation store guile system #:graft? #f))
+ (#f ; the default
+ (let* ((distro (resolve-interface '(gnu packages commencement)))
+ (guile (module-ref distro 'guile-final)))
+ (package-derivation store guile system #:graft? #f)))))
+
+ (build-expression->derivation store name builder
+ #:inputs inputs
+ #:system system
+ #:modules imported-modules
+ #:outputs outputs
+ #:guile-for-build guile-for-build))
+
+(define waf-build-system
+ (build-system
+ (name 'waf)
+ (description "The standard waf build system")
+ (lower lower)))
+
+;;; waf.scm ends here
diff --git a/guix/build/waf-build-system.scm b/guix/build/waf-build-system.scm
new file mode 100644
index 0000000..e64b51a
--- /dev/null
+++ b/guix/build/waf-build-system.scm
@@ -0,0 +1,86 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix build waf-build-system)
+ #:use-module ((guix build gnu-build-system) #:prefix gnu:)
+ #:use-module (guix build utils)
+ #:use-module (ice-9 match)
+ #:use-module (ice-9 ftw)
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
+ #:export (%standard-phases
+ waf-build))
+
+;; Commentary:
+;;
+;; Builder-side code of the standard waf build procedure.
+;;
+;; Code:
+
+
+(define (call-waf command params)
+ (if (file-exists? "waf")
+ (begin
+ (format #t "running \"python waf\" with command ~s and parameters ~s~%"
+ command params)
+ (zero? (apply system* "python" "waf" command params)))
+ (error "no waf found")))
+
+(define* (configure #:key target native-inputs inputs outputs
+ (configure-flags '())
+ #:allow-other-keys)
+ "Build a given waf application."
+ (let* ((prefix (assoc-ref outputs "out"))
+ (flags `(,(string-append "--prefix=" prefix)
+ ,@configure-flags)))
+ (call-waf "configure" flags)))
+
+(define* (build #:rest empty)
+ "Build a given waf application."
+ (call-waf "build" '()))
+
+(define* (check #:key tests? test-target #:allow-other-keys)
+ "Run the test suite of a given waf application."
+ (if tests?
+ (call-waf test-target '())
+ #t))
+
+(define* (install #:key outputs inputs (configure-flags '())
+ #:allow-other-keys)
+ "Install a given waf application."
+ (let* ((out (assoc-ref outputs "out"))
+ (params (append (list (string-append "--prefix=" out))
+ configure-flags)))
+ (call-waf "install" params)))
+
+(define %standard-phases
+ (alist-replace
+ 'configure configure
+ (alist-replace
+ 'build build
+ (alist-replace
+ 'check check
+ (alist-replace 'install install
+ gnu:%standard-phases)))))
+
+(define* (waf-build #:key inputs (phases %standard-phases)
+ #:allow-other-keys #:rest args)
+ "Build the given waf application, applying all of PHASES in order."
+ (apply gnu:gnu-build #:inputs inputs #:phases phases args))
+
+;;; waf-build-system.scm ends here
--
2.1.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-gnu-Add-JACK2.patch --]
[-- Type: text/x-patch, Size: 2427 bytes --]
From 192f5e5204924abd473d82dd3b9602e4a3e88fc6 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Thu, 29 Jan 2015 10:00:56 +0100
Subject: [PATCH 02/15] gnu: Add JACK2.
* gnu/packages/audio.scm (jack-2): New variable.
---
gnu/packages/audio.scm | 39 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 38 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index daf7feb..d5b862f 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -22,9 +22,16 @@
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system waf)
#:use-module (gnu packages)
#:use-module (gnu packages databases)
- #:use-module (gnu packages linux))
+ #:use-module (gnu packages glib) ;dbus
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
+ #:use-module (gnu packages readline)
+ #:use-module (gnu packages xiph)
+ #:use-module (gnu packages xml))
(define-public jack-1
(package
@@ -55,3 +62,33 @@ synchronous execution of all clients, and low latency operation.")
;; Most files are licensed under the GPL. However, the libjack/ tree is
;; licensed under the LGPL in order to allow for proprietary usage.
(license (list license:gpl2+ license:lgpl2.1+))))
+
+(define-public jack-2
+ (package (inherit jack-1)
+ (name "jack")
+ (version "1.9.10")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/jackaudio/jack2/archive/v"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "03b0iiyk3ng3vh5s8gaqwn565vik7910p56mlbk512bw3dhbdwc8"))))
+ (build-system waf-build-system)
+ (arguments
+ `(#:tests? #f ; no check target
+ #:configure-flags '("--dbus"
+ "--alsa")))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("dbus" ,dbus)
+ ("expat" ,expat)
+ ("libsamplerate" ,libsamplerate)
+ ("opus" ,opus)
+ ("readline" ,readline)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ ;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
+ (license (list license:gpl2+ license:lgpl2.1+))))
--
2.1.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0003-gnu-Add-liblo.patch --]
[-- Type: text/x-patch, Size: 1628 bytes --]
From d1262e7694e6485aee5a2ea7e776b9576a915a08 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Sat, 31 Jan 2015 09:22:04 +0100
Subject: [PATCH 03/15] gnu: Add liblo.
* gnu/packages/audio.scm (liblo): New variable.
---
gnu/packages/audio.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index d5b862f..e8bcd82 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -92,3 +92,28 @@ synchronous execution of all clients, and low latency operation.")
`(("pkg-config" ,pkg-config)))
;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
(license (list license:gpl2+ license:lgpl2.1+))))
+
+(define-public liblo
+ (package
+ (name "liblo")
+ (version "0.28")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/liblo/liblo-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "02drgnpirvl2ihvzgsmn02agr5sj3vipzzw9vma56qlkgfvak56s"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(;; liblo test FAILED
+ ;; liblo server error 19 in setsockopt(IP_ADD_MEMBERSHIP): No such device
+ #:tests? #f))
+ (home-page "http://liblo.sourceforge.net")
+ (synopsis "Implementation of the Open Sound Control protocol")
+ (description
+ "liblo is a lightweight library that provides an easy to use
+implementation of the Open Sound Control (OSC) protocol.")
+ (license license:lgpl2.1+)))
--
2.1.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #5: 0004-gnu-Add-aubio.patch --]
[-- Type: text/x-patch, Size: 2446 bytes --]
From a518d4329f9775f7e84e6e67a04a4b2117936cf1 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Sat, 31 Jan 2015 09:22:56 +0100
Subject: [PATCH 04/15] gnu: Add aubio.
* gnu/packages/audio.scm (aubio): New variable.
---
gnu/packages/audio.scm | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index e8bcd82..8db5cff 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -24,15 +24,56 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system waf)
#:use-module (gnu packages)
+ #:use-module (gnu packages algebra)
#:use-module (gnu packages databases)
#:use-module (gnu packages glib) ;dbus
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
+ #:use-module (gnu packages python)
#:use-module (gnu packages readline)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml))
+(define-public aubio
+ (package
+ (name "aubio")
+ (version "0.4.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://aubio.org/pub/aubio-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "15f6nf76y7iyl2kl4ny7ky0zpxfxr8j3902afvd6ydnnkh5dzmr5"))))
+ (build-system waf-build-system)
+ (arguments
+ `(#:tests? #f ; no check target
+ #:configure-flags
+ '("--enable-fftw3f"
+ "--enable-jack"
+ "--enable-sndfile"
+ "--enable-samplerate"
+ ;; enable compilation with avcodec once available
+ "--disable-avcodec")
+ #:python ,python-2))
+ (inputs
+ `(("jack" ,jack-1)
+ ("libuuid" ,util-linux)
+ ("libsndfile" ,libsndfile)
+ ("libsamplerate" ,libsamplerate)
+ ("fftwf" ,fftwf)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://aubio.org/")
+ (synopsis "A library for audio labelling")
+ (description
+ "aubio is a tool designed for the extraction of annotations from audio
+signals. Its features include segmenting a sound file before each of its
+attacks, performing pitch detection, tapping the beat and producing midi
+streams from live audio.")
+ (license license:gpl3+)))
+
(define-public jack-1
(package
(name "jack")
--
2.1.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #6: 0005-gnu-Add-LV2.patch --]
[-- Type: text/x-patch, Size: 1832 bytes --]
From d64ae3ff11bf6ddcc7d37eeef4497fc5d8602202 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Thu, 29 Jan 2015 10:12:00 +0100
Subject: [PATCH 05/15] gnu: Add LV2.
* gnu/packages/audio.scm (lv2): New variable.
---
gnu/packages/audio.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 8db5cff..1911f6f 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -158,3 +158,32 @@ synchronous execution of all clients, and low latency operation.")
"liblo is a lightweight library that provides an easy to use
implementation of the Open Sound Control (OSC) protocol.")
(license license:lgpl2.1+)))
+
+(define-public lv2
+ (package
+ (name "lv2")
+ (version "1.10.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://lv2plug.in/spec/lv2-"
+ version
+ ".tar.bz2"))
+ (sha256
+ (base32
+ "1md41x9snrp4mcfyli7lyfpvcfa78nfy6xkdy84kppnl8m5qw378"))))
+ (build-system waf-build-system)
+ (arguments
+ `(#:tests? #f ; no check target
+ #:configure-flags '("--lv2-system")))
+ (inputs
+ ;; Leaving off cairo and gtk+-2.0 which are needed for example plugins
+ `(("libsndfile" ,libsndfile)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://lv2plug.in/")
+ (synopsis "LV2 audio plugin standard")
+ (description
+ "LV2 is an open standard for audio plugins and host applications. At its
+core, LV2 is a simple stable interface, accompanied by extensions which add
+functionality to support the needs of increasingly powerful audio software.")
+ (license license:isc)))
--
2.1.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #7: 0006-gnu-Add-serd.patch --]
[-- Type: text/x-patch, Size: 1875 bytes --]
From e1cea746dbf9999b202c97dfed014e95a1640bb4 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Thu, 29 Jan 2015 23:08:34 +0100
Subject: [PATCH 06/15] gnu: Add serd.
* gnu/packages/audio.scm (serd): New variable.
---
gnu/packages/audio.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 1911f6f..b039212 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -187,3 +187,28 @@ implementation of the Open Sound Control (OSC) protocol.")
core, LV2 is a simple stable interface, accompanied by extensions which add
functionality to support the needs of increasingly powerful audio software.")
(license license:isc)))
+
+(define-public serd
+ (package
+ (name "serd")
+ (version "0.20.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://download.drobilla.net/serd-"
+ version
+ ".tar.bz2"))
+ (sha256
+ (base32
+ "1gxbzqsm212wmn8qkdd3lbl6wbv7fwmaf9qh2nxa4yxjbr7mylb4"))))
+ (build-system waf-build-system)
+ (arguments `(#:tests? #f)) ; no check target
+ (home-page "http://drobilla.net/software/serd/")
+ (synopsis "Library for RDF syntax supporting Turtle and NTriples")
+ (description
+ "Serd is a lightweight C library for RDF syntax which supports reading
+and writing Turtle and NTriples. Serd is not intended to be a swiss-army
+knife of RDF syntax, but rather is suited to resource limited or performance
+critical applications (e.g. converting many gigabytes of NTriples to Turtle),
+or situations where a simple reader/writer with minimal dependencies is
+ideal (e.g. in LV2 implementations or embedded applications).")
+ (license license:isc)))
--
2.1.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #8: 0007-gnu-Add-sord.patch --]
[-- Type: text/x-patch, Size: 1583 bytes --]
From 4856227a3ee42294dca9c394b9fbbe71b63a55ed Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Thu, 29 Jan 2015 23:09:19 +0100
Subject: [PATCH 07/15] gnu: Add sord.
* gnu/packages/audio.scm (sord): New variable.
---
gnu/packages/audio.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index b039212..986b071 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -212,3 +212,27 @@ critical applications (e.g. converting many gigabytes of NTriples to Turtle),
or situations where a simple reader/writer with minimal dependencies is
ideal (e.g. in LV2 implementations or embedded applications).")
(license license:isc)))
+
+(define-public sord
+ (package
+ (name "sord")
+ (version "0.12.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://download.drobilla.net/sord-"
+ version
+ ".tar.bz2"))
+ (sha256
+ (base32
+ "0rq7vafdv4vsxi6xk9zf5shr59w3kppdhqbj78185rz5gp9kh1dx"))))
+ (build-system waf-build-system)
+ (arguments `(#:tests? #f)) ; no check target
+ (inputs
+ `(("serd" ,serd)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://drobilla.net/software/sord/")
+ (synopsis "C library for storing RDF data in memory")
+ (description
+ "Sord is a lightweight C library for storing RDF data in memory.")
+ (license license:isc)))
--
2.1.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #9: 0008-gnu-Add-sratom.patch --]
[-- Type: text/x-patch, Size: 1613 bytes --]
From 0f2609618b484ce84be22744b4084a89cb3e8d1d Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Thu, 29 Jan 2015 23:10:01 +0100
Subject: [PATCH 08/15] gnu: Add sratom.
* gnu/packages/audio.scm (sratom): New variable.
---
gnu/packages/audio.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 986b071..721dd6b 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -236,3 +236,30 @@ ideal (e.g. in LV2 implementations or embedded applications).")
(description
"Sord is a lightweight C library for storing RDF data in memory.")
(license license:isc)))
+
+(define-public sratom
+ (package
+ (name "sratom")
+ (version "0.4.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://download.drobilla.net/sratom-"
+ version
+ ".tar.bz2"))
+ (sha256
+ (base32
+ "080jjiyxjnj7hf25844hd9rb01grvzz1rk8mxcdnakywmspbxfd4"))))
+ (build-system waf-build-system)
+ (arguments `(#:tests? #f)) ; no check target
+ (inputs
+ `(("lv2" ,lv2)
+ ("serd" ,serd)
+ ("sord" ,sord)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://drobilla.net/software/sratom/")
+ (synopsis "Library for serialising LV2 atoms to/from RDF")
+ (description
+ "Sratom is a library for serialising LV2 atoms to/from RDF, particularly
+the Turtle syntax.")
+ (license license:isc)))
--
2.1.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #10: 0009-gnu-Add-lilv.patch --]
[-- Type: text/x-patch, Size: 1770 bytes --]
From 6a96e2d4d7e82247ed8e02c99d976bec9315549e Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Thu, 29 Jan 2015 23:10:31 +0100
Subject: [PATCH 09/15] gnu: Add lilv.
* gnu/packages/audio.scm (lilv): New variable.
---
gnu/packages/audio.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 721dd6b..401429e 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -159,6 +159,35 @@ synchronous execution of all clients, and low latency operation.")
implementation of the Open Sound Control (OSC) protocol.")
(license license:lgpl2.1+)))
+(define-public lilv
+ (package
+ (name "lilv")
+ (version "0.20.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://download.drobilla.net/lilv-"
+ version
+ ".tar.bz2"))
+ (sha256
+ (base32
+ "0aj2plkx56iar8vzjbq2l7hi7sp0ml99m0h44rgwai2x4vqkk2j2"))))
+ (build-system waf-build-system)
+ (arguments `(#:tests? #f)) ; no check target
+ (inputs
+ `(("lv2" ,lv2)
+ ("serd" ,serd)
+ ("sord" ,sord)
+ ("sratom" ,sratom)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://drobilla.net/software/lilv/")
+ (synopsis "Library to simplify use of LV2 plugins in applications")
+ (description
+ "Lilv is a C library to make the use of LV2 plugins as simple as possible
+for applications. Lilv is the successor to SLV2, rewritten to be
+significantly faster and have minimal dependencies.")
+ (license license:isc)))
+
(define-public lv2
(package
(name "lv2")
--
2.1.0
[-- Attachment #11: 0010-gnu-Add-suil.patch --]
[-- Type: text/x-patch, Size: 2728 bytes --]
From cae7a61f645ff5b5e8458f5b3bcd0d6029e43b22 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Thu, 29 Jan 2015 23:11:30 +0100
Subject: [PATCH 10/15] gnu: Add suil.
* gnu/packages/audio.scm (suil): New variable.
---
gnu/packages/audio.scm | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 401429e..736a708 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -27,6 +27,8 @@
#:use-module (gnu packages algebra)
#:use-module (gnu packages databases)
#:use-module (gnu packages glib) ;dbus
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages qt)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
@@ -292,3 +294,41 @@ ideal (e.g. in LV2 implementations or embedded applications).")
"Sratom is a library for serialising LV2 atoms to/from RDF, particularly
the Turtle syntax.")
(license license:isc)))
+
+(define-public suil
+ (package
+ (name "suil")
+ (version "0.8.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://download.drobilla.net/suil-"
+ version
+ ".tar.bz2"))
+ (sha256
+ (base32
+ "1s3adyiw7sa5gfvm5wasa61qa23629kprxyv6w8hbxdiwp0hhxkq"))))
+ (build-system waf-build-system)
+ (arguments `(#:tests? #f)) ; no check target
+ (inputs
+ `(("lv2" ,lv2)
+ ("gtk+-2" ,gtk+-2)
+ ("qt-4" ,qt-4)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://drobilla.net/software/suil/")
+ (synopsis "Library for loading and wrapping LV2 plugin UIs")
+ (description
+ "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs.
+
+Suil makes it possible to load a UI of any toolkit in a host using any other
+toolkit (assuming the toolkits are both supported by Suil). Hosts do not need
+to build against or link to foreign toolkit libraries to use UIs written with
+that toolkit; all the necessary magic is performed by dynamically loaded
+modules. The API is designed such that hosts do not need to explicitly support
+specific toolkits at all – if Suil supports a particular toolkit, then UIs in
+that toolkit will work in all hosts that use Suil automatically.
+
+Suil currently supports every combination of Gtk 2, Qt 4, and X11, e.g. with
+Suil a Gtk program can embed a Qt plugin UI without depending on Qt, and a Qt
+program can embed a Gtk plugin UI without depending on Gtk.")
+ (license license:isc)))
--
2.1.0
[-- Attachment #12: 0011-gnu-Add-Vamp-SDK.patch --]
[-- Type: text/x-patch, Size: 1875 bytes --]
From a13f49d293eebf5d6de5170a4dfc0b9885a90c26 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Fri, 30 Jan 2015 18:14:00 +0100
Subject: [PATCH 11/15] gnu: Add Vamp SDK.
* gnu/packages/audio.scm (vamp): New variable.
---
gnu/packages/audio.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 736a708..fdc488b 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -332,3 +332,33 @@ Suil currently supports every combination of Gtk 2, Qt 4, and X11, e.g. with
Suil a Gtk program can embed a Qt plugin UI without depending on Qt, and a Qt
program can embed a Gtk plugin UI without depending on Gtk.")
(license license:isc)))
+
+(define-public vamp
+ (package
+ (name "vamp")
+ (version "2.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://code.soundsoftware.ac.uk"
+ "/attachments/download/690/vamp-plugin-sdk-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "178kfgq08cmgdzv7g8dwyjp4adwx8q04riimncq4nqkm8ng9ywbv"))))
+ (build-system gnu-build-system)
+ (arguments `(#:tests? #f)) ; no check target
+ (inputs
+ `(("libsndfile" ,libsndfile)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://vamp-plugins.org")
+ (synopsis "Vamp audio plugin SDK")
+ (description
+ "Vamp is an audio processing plugin system for plugins that extract
+descriptive information from audio data — typically referred to as audio
+analysis plugins or audio feature extraction plugins.")
+ (license
+ (license:bsd-style
+ "https://code.soundsoftware.ac.uk/projects/vamp-plugin-sdk/repository/entry/COPYING"))))
--
2.1.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #13: 0012-gnu-Add-LADSPA.patch --]
[-- Type: text/x-patch, Size: 2282 bytes --]
From 59b721c970278230bfc9c12588a3e671b264acd4 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Fri, 30 Jan 2015 18:15:03 +0100
Subject: [PATCH 12/15] gnu: Add LADSPA.
* gnu/packages/audio.scm (ladspa): New variable.
---
gnu/packages/audio.scm | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index fdc488b..24e4b01 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -136,6 +136,43 @@ synchronous execution of all clients, and low latency operation.")
;; Most files are under GPLv2+, but some headers are under LGPLv2.1+
(license (list license:gpl2+ license:lgpl2.1+))))
+(define-public ladspa
+ (package
+ (name "ladspa")
+ (version "1.13")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.ladspa.org/download/ladspa_sdk_"
+ version
+ ".tgz"))
+ (sha256
+ (base32
+ "0srh5n2l63354bc0srcrv58rzjkn4gv8qjqzg8dnq3rs4m7kzvdm"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; the "test" target is a listening test only
+ #:phases
+ (alist-replace
+ 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
+ (chdir "src")
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "makefile"
+ (("/usr/lib/ladspa/") (string-append out "/lib/ladspa/"))
+ (("/usr/include/") (string-append out "/include/"))
+ (("/usr/bin/") (string-append out "/bin/"))
+ (("-mkdirhier") "mkdir -p")
+ (("^CC.*") "CC = gcc\n")
+ (("^CPP.*") "CPP = g++\n"))))
+ (alist-delete 'build %standard-phases))))
+ (home-page "http://ladspa.org")
+ (synopsis "Linux Audio Developer's Simple Plugin API (LADSPA)")
+ (description
+ "LADSPA is a standard that allows software audio processors and effects
+to be plugged into a wide range of audio synthesis and recording packages.")
+ (license license:lgpl2.1+)))
+
(define-public liblo
(package
(name "liblo")
--
2.1.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #14: 0013-gnu-Add-rubberband.patch --]
[-- Type: text/x-patch, Size: 1791 bytes --]
From 94f5649f1310c9080c1bbbcfa92920831e056c7d Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Fri, 30 Jan 2015 18:15:50 +0100
Subject: [PATCH 13/15] gnu: Add rubberband.
* gnu/packages/audio.scm (rubberband): New variable.
---
gnu/packages/audio.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 24e4b01..76fcbfb 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -256,6 +256,34 @@ core, LV2 is a simple stable interface, accompanied by extensions which add
functionality to support the needs of increasingly powerful audio software.")
(license license:isc)))
+(define-public rubberband
+ (package
+ (name "rubberband")
+ (version "1.8.1")
+ (source (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://bitbucket.org/breakfastquay/rubberband/get/v"
+ version
+ ".tar.bz2"))
+ (sha256
+ (base32
+ "05amrbrxx0da3w7m237q51799r8xgs4ffqabi2qv06hq8dpcj386"))))
+ (build-system gnu-build-system)
+ (arguments `(#:tests? #f)) ; no check target
+ (inputs
+ `(("ladspa" ,ladspa)
+ ("libsamplerate" ,libsamplerate)
+ ("vamp" ,vamp)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://breakfastquay.com/rubberband/")
+ (synopsis "Audio time-stretching and pitch-shifting library")
+ (description
+ "Rubber Band is a library and utility program that permits changing the
+tempo and pitch of an audio recording independently of one another.")
+ (license license:gpl2)))
+
(define-public serd
(package
(name "serd")
--
2.1.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #15: 0014-gnu-Add-libgnomecanvasmm.patch --]
[-- Type: text/x-patch, Size: 1621 bytes --]
From 199620c5fe4021084e15d7876aeabc2535854ae6 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Sat, 31 Jan 2015 00:04:20 +0100
Subject: [PATCH 14/15] gnu: Add libgnomecanvasmm.
* gnu/packages/gnome.scm (libgnomecanvasmm): New variable.
---
gnu/packages/gnome.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index c42092d..663912b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -994,6 +994,28 @@ high-quality vector-based 2D library with antialiasing and alpha composition.")
creating interactive structured graphics.")
(license license:lgpl2.0+)))
+(define-public libgnomecanvasmm
+ (package
+ (name "libgnomecanvasmm")
+ (version "2.26.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0679hcnpam2gkag2i63sm0wdm35gwvzafnz1354mg6j5gzwpfrcr"))))
+ (build-system gnu-build-system)
+ (propagated-inputs `(("libgnomecanvas" ,libgnomecanvas)))
+ (native-inputs
+ `(("gtkmm-2" ,gtkmm-2)
+ ("pkg-config" ,pkg-config)))
+ (home-page "http://gtkmm.org")
+ (synopsis "C++ bindings to the GNOME Canvas library")
+ (description "C++ bindings to the GNOME Canvas library.")
+ (license license:lgpl2.0+)))
+
(define-public libgnomeui
(package
(name "libgnomeui")
--
2.1.0
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #16: 0015-gnu-Add-ardour.patch --]
[-- Type: text/x-patch, Size: 4054 bytes --]
From 537ce664730cac73bbf3889fb4b53d20aa763292 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Sat, 31 Jan 2015 00:07:57 +0100
Subject: [PATCH 15/15] gnu: Add ardour.
* gnu/packages/audio.scm (ardour): New variable.
---
gnu/packages/audio.scm | 81 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 80 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 76fcbfb..f2e65dc 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -25,14 +25,20 @@
#:use-module (guix build-system waf)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages curl)
#:use-module (gnu packages databases)
- #:use-module (gnu packages glib) ;dbus
+ #:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
+ #:use-module (gnu packages gnome)
#:use-module (gnu packages qt)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages mp3) ;taglib
+ #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
#:use-module (gnu packages python)
+ #:use-module (gnu packages rdf)
#:use-module (gnu packages readline)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml))
@@ -76,6 +82,79 @@ attacks, performing pitch detection, tapping the beat and producing midi
streams from live audio.")
(license license:gpl3+)))
+(define-public ardour
+ (package
+ (name "ardour")
+ (version "3.5.403")
+ (source (origin
+ ;; The project only provides tarballs upon individual request
+ ;; (or after payment) so we take the code from git.
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://git.ardour.org/ardour/ardour.git")
+ (commit version)))
+ (snippet
+ '(call-with-output-file
+ "libs/ardour/revision.cc"
+ (lambda (port)
+ (format port "#include \"ardour/revision.h\"
+namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }"))))
+ (sha256
+ (base32
+ "01b0wxh0wlxjfz5j8gcwwqhxc6q2kn4njz2fcmzv9fr3xaya5dbp"))
+ (file-name (string-append name "-" version))))
+ (build-system waf-build-system)
+ (arguments
+ `(#:tests? #f ; no check target
+ #:python ,python-2))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("aubio" ,aubio)
+ ("lrdf" ,lrdf)
+ ("boost" ,boost)
+ ("atkmm" ,atkmm)
+ ("cairomm" ,cairomm)
+ ("gtkmm" ,gtkmm-2)
+ ("glibmm" ,glibmm)
+ ("libart-lgpl" ,libart-lgpl)
+ ("libgnomecanvasmm" ,libgnomecanvasmm)
+ ("pangomm" ,pangomm)
+ ("liblo" ,liblo)
+ ("libsndfile" ,libsndfile)
+ ("libsamplerate" ,libsamplerate)
+ ("libxml2" ,libxml2)
+ ("libogg" ,libogg)
+ ("libvorbis" ,libvorbis)
+ ("flac" ,flac)
+ ("lv2" ,lv2)
+ ("vamp" ,vamp)
+ ("curl" ,curl)
+ ("libuuid" ,util-linux)
+ ("fftw" ,fftw)
+ ("fftwf" ,fftwf)
+ ("jack" ,jack-1)
+ ("serd" ,serd)
+ ("sord" ,sord)
+ ("sratom" ,sratom)
+ ("suil" ,suil)
+ ("lilv" ,lilv)
+ ("rasqal" ,rasqal)
+ ("raptor2" ,raptor2)
+ ("redland" ,redland)
+ ("rubberband" ,rubberband)
+ ("taglib" ,taglib)
+ ("python-rdflib" ,python-rdflib)))
+ (native-inputs
+ `(("perl" ,perl)
+ ("pkg-config" ,pkg-config)))
+ (home-page "http://ardour.org")
+ (synopsis "Digital audio workstation")
+ (description
+ "Ardour is a multi-channel digital audio workstation, allowing users to
+record, edit, mix and master audio and MIDI projects. It is targeted at audio
+engineers, musicians, soundtrack editors and composers.")
+ (license license:gpl2+)))
+
(define-public jack-1
(package
(name "jack")
--
2.1.0
next reply other threads:[~2015-01-31 19:42 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-31 19:41 Ricardo Wurmus [this message]
2015-02-11 10:03 ` [PATCH v2]: Add Ardour Ludovic Courtès
2015-02-11 22:51 ` Ricardo Wurmus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87sieqyby5.fsf@mango.localdomain \
--to=rekado@elephly.net \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.