nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchurl,
5 fetchpatch,
6 pkg-config,
7 alsa-lib,
8 audiofile,
9 libjack2,
10 liblo,
11 liboil,
12 libsamplerate,
13 libsndfile,
14 lilv,
15 lv2,
16 ncurses,
17 readline,
18}:
19
20# TODO: fix python. See configure log.
21# fix -Dnullptr=0 cludge below.
22# The error is
23# /nix/store/*-lilv-0.24.10/include/lilv-0/lilv/lilvmm.hpp:272:53: error: 'nullptr' was not declared in this scope
24
25stdenv.mkDerivation rec {
26 pname = "ecasound";
27 version = "2.9.3";
28
29 src = fetchurl {
30 url = "https://ecasound.seul.org/download/ecasound-${version}.tar.gz";
31 sha256 = "1m7njfjdb7sqf0lhgc4swihgdr4snkg8v02wcly08wb5ar2fr2s6";
32 };
33
34 patches = [
35 # Pull patch pending upstream inclusion for ncurses-6.3:
36 # https://sourceforge.net/p/ecasound/bugs/54/
37 (fetchpatch {
38 name = "ncursdes-6.3.patch";
39 url = "https://sourceforge.net/p/ecasound/bugs/54/attachment/0001-ecasignalview.cpp-always-use-s-style-format-for-prin.patch";
40 sha256 = "1x1gsjzd43lh19mhpmwrbq269h56s8bxgyv0yfi5yf0sqjf9vaq0";
41 })
42 ];
43
44 nativeBuildInputs = [
45 pkg-config
46 ];
47
48 buildInputs = [
49 alsa-lib
50 audiofile
51 libjack2
52 liblo
53 liboil
54 libsamplerate
55 libsndfile
56 lilv
57 lv2
58 ncurses
59 readline
60 ];
61
62 strictDeps = true;
63
64 CXXFLAGS = "-std=c++11";
65 configureFlags = [
66 "--enable-liblilv"
67 "--with-extra-cppflags=-Dnullptr=0"
68 ];
69
70 postPatch = ''
71 sed -i -e '
72 s@^#include <readline.h>@#include <readline/readline.h>@
73 s@^#include <history.h>@#include <readline/history.h>@
74 ' ecasound/eca-curses.cpp
75 '';
76
77 meta = {
78 description = "Software package designed for multitrack audio processing";
79 license = with lib.licenses; [
80 gpl2
81 lgpl21
82 ];
83 homepage = "http://nosignal.fi/ecasound/";
84 };
85}