all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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


             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.