about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/audio/espeak/edit.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/audio/espeak/edit.nix')
-rw-r--r--nixpkgs/pkgs/applications/audio/espeak/edit.nix60
1 files changed, 60 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/audio/espeak/edit.nix b/nixpkgs/pkgs/applications/audio/espeak/edit.nix
new file mode 100644
index 000000000000..0b9fa3dfbe54
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/espeak/edit.nix
@@ -0,0 +1,60 @@
+{ lib, stdenv, fetchurl, pkg-config, unzip, portaudio, wxGTK, sox }:
+
+stdenv.mkDerivation rec {
+  name = "espeakedit-1.48.03";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/espeak/${name}.zip";
+    sha256 = "0x8s7vpb7rw5x37yjzy1f98m4f2csdg89libb74fm36gn8ly0hli";
+  };
+
+  nativeBuildInputs = [ pkg-config unzip ];
+  buildInputs = [ portaudio wxGTK ];
+
+  # TODO:
+  # Uhm, seems like espeakedit still wants espeak-data/ in $HOME, even thought
+  # it should use $espeak/share/espeak-data. Have to contact upstream to get
+  # this fixed.
+  #
+  # Workaround:
+  #  cp -r $(nix-build -A espeak)/share/espeak-data ~
+  #  chmod +w ~/espeak-data
+
+  patches = [
+    ./gcc6.patch
+    ./espeakedit-fix-makefile.patch
+    ./espeakedit-configurable-sox-path.patch
+    ./espeakedit-configurable-path-espeak-data.patch
+    ./espeakedit-gcc6.patch
+  ];
+
+  postPatch = ''
+    # Disable -Wall flag because it's noisy
+    sed -i "s/-Wall//g" src/Makefile
+
+    # Fixup paths (file names from above espeak-configurable* patches)
+    for file in src/compiledata.cpp src/readclause.cpp src/speech.h; do
+        sed -e "s|@sox@|${sox}/bin/sox|" \
+            -e "s|@prefix@|$out|" \
+            -i "$file"
+    done
+  '' + lib.optionalString (portaudio.api_version == 19) ''
+    cp src/portaudio19.h src/portaudio.h
+  '';
+
+  buildPhase = ''
+    make -C src
+  '';
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    cp src/espeakedit "$out/bin"
+  '';
+
+  meta = with lib; {
+    description = "Phoneme editor for espeak";
+    homepage = "http://espeak.sourceforge.net/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}