1{ stdenv
2, lib
3
4, fetchFromGitHub
5
6, pkg-config
7, meson
8, ninja
9
10, jack
11, alsa-lib
12, libopus
13, libsamplerate
14, libsndfile
15, readline
16, zita-alsa-pcmi
17, zita-resampler
18
19, enableAlsa ? stdenv.isLinux
20}:
21
22stdenv.mkDerivation (final: {
23 pname = "jack-example-tools";
24 version = "4";
25
26 src = fetchFromGitHub {
27 owner = "jackaudio";
28 repo = "jack-example-tools";
29 rev = "tags/${final.version}";
30 hash = "sha256-5jmynNxwNVLxEZ1MaqQUG6kRwipDkjhrdDCbZHtmAHk=";
31 };
32
33 postPatch = ''
34 patchShebangs scripts
35 '';
36
37 nativeBuildInputs = [ pkg-config meson ninja ];
38 buildInputs = [
39 jack
40 libopus
41 libsamplerate
42 libsndfile
43 readline
44 ] ++ lib.optionals enableAlsa [
45 alsa-lib
46 zita-alsa-pcmi
47 zita-resampler
48 ];
49
50 mesonFlags = [
51 (lib.mesonEnable "alsa_in_out" enableAlsa)
52 (lib.mesonEnable "zalsa" enableAlsa)
53 ];
54
55 # no tests defined, but prepare for some in the future.
56 doCheck = true;
57
58 meta = with lib; {
59 description = "Official examples and tools from the JACK project";
60 homepage = "https://jackaudio.org";
61 license = licenses.gpl2Plus;
62 platforms = platforms.unix;
63 maintainers = with maintainers; [ pennae ];
64 };
65})