about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorАлександр Цамутали <astsmtl@yandex.ru>2013-02-03 20:22:43 +0400
committerАлександр Цамутали <astsmtl@yandex.ru>2013-02-03 20:22:43 +0400
commit5406828d76e1803b66293287aaa67bc4ad750e58 (patch)
treec11c8b740a6aac03bb62dbf9c6cf03e750771969 /pkgs
parent5784dbb095f44f17b7a7139e524be2a820ac2641 (diff)
downloadnixlib-5406828d76e1803b66293287aaa67bc4ad750e58.tar
nixlib-5406828d76e1803b66293287aaa67bc4ad750e58.tar.gz
nixlib-5406828d76e1803b66293287aaa67bc4ad750e58.tar.bz2
nixlib-5406828d76e1803b66293287aaa67bc4ad750e58.tar.lz
nixlib-5406828d76e1803b66293287aaa67bc4ad750e58.tar.xz
nixlib-5406828d76e1803b66293287aaa67bc4ad750e58.tar.zst
nixlib-5406828d76e1803b66293287aaa67bc4ad750e58.zip
jackaudio/default.nix: Update to 1.9.9.5.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/misc/jackaudio/default.nix14
-rw-r--r--pkgs/misc/jackaudio/ffado_setbuffsize-jack2.patch140
2 files changed, 7 insertions, 147 deletions
diff --git a/pkgs/misc/jackaudio/default.nix b/pkgs/misc/jackaudio/default.nix
index 77d3c2f35ab9..826924b8e8e2 100644
--- a/pkgs/misc/jackaudio/default.nix
+++ b/pkgs/misc/jackaudio/default.nix
@@ -1,19 +1,18 @@
 { stdenv, fetchurl, alsaLib, dbus, expat, libsamplerate
 , libsndfile, makeWrapper, pkgconfig, python, pythonDBus
-, firewireSupport ? false, ffado ? null }:
+, firewireSupport ? false, ffado ? null, bash }:
 
 assert firewireSupport -> ffado != null;
 
 stdenv.mkDerivation rec {
   name = "jackdbus-${version}";
-  version = "1.9.8";
+  version = "1.9.9.5";
 
   src = fetchurl {
     urls = [
-      "http://pkgs.fedoraproject.org/lookaside/pkgs/jack-audio-connection-kit/jack-1.9.8.tgz/1dd2ff054cab79dfc11d134756f27165/jack-1.9.8.tgz"
-      "http://www.grame.fr/~letz/jack-1.9.8.tgz"
+      https://dl.dropbox.com/u/28869550/jack-1.9.9.5.tar.bz2
     ];
-    sha256 = "0788092zxrivcfnfg15brpjkf14x8ma8cwjz4k0b9xdxajn2wwac";
+    sha256 = "1ggba69jsfg7dmjzlyqz58y2wa92lm3vwdy4r15bs7mvxb65mvv5";
   };
 
   buildInputs =
@@ -21,10 +20,11 @@ stdenv.mkDerivation rec {
       pkgconfig python pythonDBus
     ] ++ (stdenv.lib.optional firewireSupport ffado);
 
-  patches = ./ffado_setbuffsize-jack2.patch;
+  patchPhase = ''
+    substituteInPlace svnversion_regenerate.sh --replace /bin/bash ${bash}/bin/bash
+  '';
 
   configurePhase = ''
-    cd jack-1.9.8
     python waf configure --prefix=$out --dbus --alsa ${if firewireSupport then "--firewire" else ""}
   '';
 
diff --git a/pkgs/misc/jackaudio/ffado_setbuffsize-jack2.patch b/pkgs/misc/jackaudio/ffado_setbuffsize-jack2.patch
deleted file mode 100644
index 7771639280d8..000000000000
--- a/pkgs/misc/jackaudio/ffado_setbuffsize-jack2.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-https://projects.archlinux.org/svntogit/community.git/tree/trunk?h=packages/jack2
-
-From 96e0251234a29a1360c05d5d7dc98b83436b8183 Mon Sep 17 00:00:00 2001
-From: Adrian Knoth <adi@drcomp.erfurt.thur.de>
-Date: Sat, 17 Mar 2012 22:36:30 +0100
-Subject: [PATCH] [firewire] Allow FFADO backend to change the buffer size
-
-This is a port of Jonathan Woithe's patch from jackd1.
-With sufficiently recent versions of FFADO, it allows to change
-the buffersize at runtime.
----
- linux/firewire/JackFFADODriver.cpp |   65 ++++++++++++++++++++++++++++++++----
- linux/firewire/JackFFADODriver.h   |    6 ++++
- 2 files changed, 65 insertions(+), 6 deletions(-)
-
-diff --git a/jack-1.9.8/linux/firewire/JackFFADODriver.cpp b/jack-1.9.8/linux/firewire/JackFFADODriver.cpp
-index b33e1cd..085b78a 100644
---- a/jack-1.9.8/linux/firewire/JackFFADODriver.cpp
-+++ b/jack-1.9.8/linux/firewire/JackFFADODriver.cpp
-@@ -3,6 +3,7 @@
- Copyright (C) 2004 Grame
- Copyright (C) 2007 Pieter Palmers
- Copyright (C) 2009 Devin Anderson
-+Copyright (C) 2012 Jonathan Woithe, Adrian Knoth
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
-@@ -48,7 +49,10 @@
- namespace Jack
- {
-
-+// Basic functionality requires API version 8.  If version 9 or later
-+// is present the buffers can be resized at runtime.
- #define FIREWIRE_REQUIRED_FFADO_API_VERSION 8
-+#define FIREWIRE_REQUIRED_FFADO_API_VERSION_FOR_SETBUFSIZE 9
-
- #define jack_get_microseconds GetMicroSeconds
-
-@@ -281,19 +285,68 @@
- int
- JackFFADODriver::SetBufferSize (jack_nframes_t nframes)
- {
--    printError("Buffer size change requested but not supported!!!");
-+    ffado_driver_t* driver = (ffado_driver_t*)fDriver;
-+    signed int chn;
-+
-+    // The speed of this function isn't critical; we can afford the
-+    // time to check the FFADO API version.
-+    if (ffado_get_api_version() < FIREWIRE_REQUIRED_FFADO_API_VERSION_FOR_SETBUFSIZE ||
-+		    ffado_streaming_set_period_size == NULL) {
-+	    printError("unsupported on current version of FFADO; please upgrade FFADO");
-+	    return -1;
-+    }
-
--    /*
-     driver->period_size = nframes;
-     driver->period_usecs =
-             (jack_time_t) floor ((((float) nframes) / driver->sample_rate)
-                                  * 1000000.0f);
--    */
-+
-+
-+    // Reallocate the null and scratch buffers.
-+    driver->nullbuffer = (ffado_sample_t*) calloc(driver->period_size, sizeof(ffado_sample_t));
-+    if(driver->nullbuffer == NULL) {
-+	    printError("could not allocate memory for null buffer");
-+	    return -1;
-+    }
-+    driver->scratchbuffer = (ffado_sample_t*) calloc(driver->period_size, sizeof(ffado_sample_t));
-+    if(driver->scratchbuffer == NULL) {
-+	    printError("could not allocate memory for scratch buffer");
-+	    return -1;
-+    }
-+
-+    // MIDI buffers need reallocating
-+    for (chn = 0; chn < driver->capture_nchannels; chn++) {
-+	    if(driver->capture_channels[chn].stream_type == ffado_stream_type_midi) {
-+		    // setup the midi buffer
-+		    if (driver->capture_channels[chn].midi_buffer != NULL)
-+			    free(driver->capture_channels[chn].midi_buffer);
-+		    driver->capture_channels[chn].midi_buffer = (ffado_sample_t*) calloc(driver->period_size, sizeof(uint32_t));
-+	    }
-+    }
-+    for (chn = 0; chn < driver->playback_nchannels; chn++) {
-+	    if(driver->playback_channels[chn].stream_type == ffado_stream_type_midi) {
-+		    if (driver->playback_channels[chn].midi_buffer != NULL)
-+			    free(driver->playback_channels[chn].midi_buffer);
-+		    driver->playback_channels[chn].midi_buffer = (ffado_sample_t*) calloc(driver->period_size, sizeof(uint32_t));
-+	    }
-+    }
-+
-+    // Notify FFADO of the period size change
-+    if (ffado_streaming_set_period_size(driver->dev, nframes) != 0) {
-+	    printError("could not alter FFADO device period size");
-+	    return -1;
-+    }
-+
-+    // This is needed to give the shadow variables a chance to
-+    // properly update to the changes.
-+    sleep(1);
-
-     /* tell the engine to change its buffer size */
--    //driver->engine->set_buffer_size (driver->engine, nframes);
-+    JackAudioDriver::SetBufferSize(nframes);  // Generic change, never fails
-
--    return -1; // unsupported
-+    UpdateLatencies();
-+
-+    return 0;
- }
-
- typedef void (*JackDriverFinishFunction) (jack_driver_t *);
-@@ -306,7 +359,7 @@
-
-     assert(params);
-
--    if (ffado_get_api_version() != FIREWIRE_REQUIRED_FFADO_API_VERSION) {
-+    if (ffado_get_api_version() < FIREWIRE_REQUIRED_FFADO_API_VERSION) {
-         printError("Incompatible libffado version! (%s)", ffado_get_version());
-         return NULL;
-     }
-diff --git a/jack-1.9.8/linux/firewire/JackFFADODriver.h b/jack-1.9.8/linux/firewire/JackFFADODriver.h
-index cb2a45d..790f4dd 100644
---- a/jack-1.9.8/linux/firewire/JackFFADODriver.h
-+++ b/jack-1.9.8/linux/firewire/JackFFADODriver.h
-@@ -82,6 +82,12 @@ class JackFFADODriver : public JackAudioDriver
-         int Read();
-         int Write();
-
-+        // BufferSize can be changed
-+        bool IsFixedBufferSize()
-+        {
-+            return false;
-+        }
-+
-         int SetBufferSize(jack_nframes_t nframes);
- };
-
---
-1.7.10