summary refs log tree commit diff
path: root/pkgs/misc/jackaudio/jack1.nix
blob: bb11e5d5f043b0510bd1e970e2a32df4738cef4d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Perhaps we can get some ideas from here ? http://gentoo-wiki.com/HOWTO_Jack
# still much to test but it compiles now

{ composableDerivation, fetchurl, pkgconfig, alsaLib }:

let inherit (composableDerivation) edf; in

composableDerivation.composableDerivation {} {
  name = "jack-0.120.1";
  
  src = fetchurl {
    url = "http://jackaudio.org/downloads/jack-audio-connection-kit-0.120.1.tar.gz";
    sha256 = "02h8536c67059gq2vsl323kvy9jak9dp0syi1h58awlkbgzlg80d";
  };
  
  buildInputs = [ pkgconfig ];
  
  flags =
      # FIXME: tidy up
       edf { name = "posix-shm"; } #use POSIX shm API
    // edf { name = "timestamps"; }                      # allow clients to use the JACK timestamp API
    // edf { name = "capabilities"; }                   #use libcap to gain realtime scheduling priviledges
    // edf { name = "oldtrans"; }                      #remove old transport interfaces
    // edf { name = "stripped-jackd"; }                 #strip jack before computing its md5 sum
    // edf { name = "portaudio"; }                     #ignore PortAudio driver
    // edf { name = "coreaudio"; }                     #ignore CoreAudio driver
    // edf { name = "oss"; }                           #ignore OSS driver
    // edf { name = "freebob"; }                       #ignore FreeBob driver
    // edf { name = "alsa"; enable = { buildInputs = [ alsaLib ]; }; };

  cfg = {
    posix_shmSupport = true;
    timestampsSupport = true;
    alsaSupport = true;
  };
  
  # make sure the jackaudio is found by symlinking lib64 to lib
  postInstall = ''
    mkdir -p $out/lib
    ln -s $out/lib{64,}/pkgconfig
  '';
  
  meta = {
    description = "JACK audio connection kit";
    homepage = "http://jackaudio.org";
    license = "GPL";
  };
}