summary refs log tree commit diff
path: root/pkgs/development/libraries/speechd
diff options
context:
space:
mode:
authorBert Moens <bert.moens@gmail.com>2017-12-20 23:52:42 +0100
committerJan Tojnar <jtojnar@gmail.com>2017-12-22 22:40:16 +0100
commit857a71cbc51017ad660316f860a6fccf1a700c67 (patch)
tree0c19b937846941aa5eb99ef904c88fdaf8d11c7c /pkgs/development/libraries/speechd
parente0a356d1c79fa811ec493e3ac408c00c324d75d7 (diff)
downloadnixpkgs-857a71cbc51017ad660316f860a6fccf1a700c67.tar
nixpkgs-857a71cbc51017ad660316f860a6fccf1a700c67.tar.gz
nixpkgs-857a71cbc51017ad660316f860a6fccf1a700c67.tar.bz2
nixpkgs-857a71cbc51017ad660316f860a6fccf1a700c67.tar.lz
nixpkgs-857a71cbc51017ad660316f860a6fccf1a700c67.tar.xz
nixpkgs-857a71cbc51017ad660316f860a6fccf1a700c67.tar.zst
nixpkgs-857a71cbc51017ad660316f860a6fccf1a700c67.zip
speechd: 0.8.5 -> 0.8.8, refactored
Diffstat (limited to 'pkgs/development/libraries/speechd')
-rw-r--r--pkgs/development/libraries/speechd/default.nix72
1 files changed, 57 insertions, 15 deletions
diff --git a/pkgs/development/libraries/speechd/default.nix b/pkgs/development/libraries/speechd/default.nix
index ee45c0d1c65..b27fd0843bc 100644
--- a/pkgs/development/libraries/speechd/default.nix
+++ b/pkgs/development/libraries/speechd/default.nix
@@ -1,29 +1,70 @@
-{ fetchurl, lib, stdenv, intltool, libtool, pkgconfig, glib, dotconf, libsndfile
-, libao, python3Packages
-, withEspeak ? false, espeak
+{ stdenv, pkgconfig, fetchurl, python3Packages
+, intltool, itstool, libtool, texinfo, autoreconfHook
+, glib, dotconf, libsndfile
+, withLibao ? true, libao
+, withPulse ? false, libpulseaudio
+, withAlsa ? false, alsaLib
+, withOss ? false
+, withFlite ? true, flite
+# , withFestival ? false, festival-freebsoft-utils
+, withEspeak ? true, espeak, sonic, pcaudiolib
 , withPico ? true, svox
+# , withIvona ? false, libdumbtts
 }:
 
-stdenv.mkDerivation rec {
+let
+  inherit (stdenv.lib) optional optionals;
+  inherit (python3Packages) python pyxdg wrapPython;
+
+  # speechd hard-codes espeak, even when built without support for it.
+  selectedDefaultModule =
+    if withEspeak then
+      "espeak-ng"
+    else if withPico then
+      "pico"
+    else if withFlite then
+      "flite"
+    else
+      throw "You need to enable at least one output module.";
+in stdenv.mkDerivation rec {
   name = "speech-dispatcher-${version}";
-  version = "0.8.5";
+  version = "0.8.8";
 
   src = fetchurl {
     url = "http://www.freebsoft.org/pub/projects/speechd/${name}.tar.gz";
-    sha256 = "18jlxnhlahyi6njc6l6576hfvmzivjjgfjyd2n7vvrvx9inphjrb";
+    sha256 = "1wvck00w9ixildaq6hlhnf6wa576y02ac96lp6932h3k1n08jaiw";
   };
 
-  buildInputs = [ intltool libtool glib dotconf libsndfile libao python3Packages.python ]
-             ++ lib.optional withEspeak espeak
-             ++ lib.optional withPico svox;
-  nativeBuildInputs = [ pkgconfig python3Packages.wrapPython ];
+  nativeBuildInputs = [ pkgconfig autoreconfHook intltool libtool itstool texinfo wrapPython ];
+
+  buildInputs = [ glib dotconf libsndfile libao libpulseaudio alsaLib python ]
+    ++ optionals withEspeak [ espeak sonic pcaudiolib ]
+    ++ optional withFlite flite
+    ++ optional withPico svox
+    # TODO: add flint/festival support with festival-freebsoft-utils package
+    # ++ optional withFestival festival-freebsoft-utils
+    # TODO: add Ivona support with libdumbtts package
+    # ++ optional withIvona libdumbtts
+  ;
 
-  hardeningDisable = [ "format" ];
+  pythonPath = [ pyxdg ];
 
-  pythonPath = with python3Packages; [ pyxdg ];
+  configureFlags = [
+    # Audio method falls back from left to right.
+    "--with-default-audio-method=\"libao,pulse,alsa,oss\""
+  ] ++ optional withPulse "--with-pulse"
+    ++ optional withAlsa "--with-alsa"
+    ++ optional withLibao "--with-libao"
+    ++ optional withOss "--with-oss"
+    ++ optional withEspeak "--with-espeak-ng"
+    ++ optional withPico "--with-pico"
+    # ++ optional withFestival "--with-flint"
+    # ++ optional withIvona "--with-ivona"
+  ;
 
-  postPatch = lib.optionalString withPico ''
-    sed -i 's,/usr/share/pico/lang/,${svox}/share/pico/lang/,g' src/modules/pico.c
+  postPatch = ''
+    substituteInPlace config/speechd.conf --replace "DefaultModule espeak" "DefaultModule ${selectedDefaultModule}"
+    substituteInPlace src/modules/pico.c --replace "/usr/share/pico/lang" "${svox}/share/pico/lang"
   '';
 
   postInstall = ''
@@ -32,8 +73,9 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Common interface to speech synthesis";
-    homepage = http://www.freebsoft.org/speechd;
+    homepage = https://devel.freebsoft.org/speechd;
     license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ berce ];
     platforms = platforms.linux;
   };
 }