@@ -1,8 +1,8 @@
1−{ lib, stdenv
1+{ stdenv
2+, lib
23, substituteAll
34, pkg-config
45, fetchurl
5−, fetchpatch
66, python3Packages
77, gettext
88, itstool
@@ -18,33 +18,20 @@
1818, withAlsa ? false, alsa-lib
1919, withOss ? false
2020, withFlite ? true, flite
21−# , withFestival ? false, festival-freebsoft-utils
2221, withEspeak ? true, espeak, sonic, pcaudiolib
22+, mbrola
2323, withPico ? true, svox
24−# , withIvona ? false, libdumbtts
2524}:
2625
2726let
28− inherit (lib) optional optionals;
2927 inherit (python3Packages) python pyxdg wrapPython;
30−
31− # speechd hard-codes espeak, even when built without support for it.
32− selectedDefaultModule =
33− if withEspeak then
34− "espeak-ng"
35− else if withPico then
36− "pico"
37− else if withFlite then
38− "flite"
39− else
40− throw "You need to enable at least one output module.";
4128in stdenv.mkDerivation rec {
4229 pname = "speech-dispatcher";
43− version = "0.10.2";
30+ version = "0.11.1";
4431
4532 src = fetchurl {
4633 url = "https://github.com/brailcom/speechd/releases/download/${version}/${pname}-${version}.tar.gz";
47− sha256 = "sha256-sGMZ8gHhXlbGKWZTr1vPwwDLNI6XLVF9+LBurHfq4tw=";
34+ sha256 = "sha256-0doS7T2shPE3mbai7Dm6LTyiGoST9E3BhVvQupbC3cY=";
4835 };
4936
5037 patches = [
@@ -52,12 +39,11 @@ in stdenv.mkDerivation rec {
5239 src = ./fix-paths.patch;
5340 utillinux = util-linux;
5441 })
55−
56− # Fix build with Glib 2.68
57− # https://github.com/brailcom/speechd/pull/462
58− (fetchpatch {
59− url = "https://github.com/brailcom/speechd/commit/a2faab416e42cbdf3d73f98578a89eb7a235e25a.patch";
60− sha256 = "8Q7tUdKKBBtgXZZnj59OcJOkrCNeBR9gkBjhKlpW0hQ=";
42+ ] ++ lib.optionals espeak.mbrolaSupport [
43+ # Replace FHS paths.
44+ (substituteAll {
45+ src = ./fix-mbrola-paths.patch;
46+ inherit espeak mbrola;
6147 })
6248 ];
6349
@@ -79,36 +65,39 @@ in stdenv.mkDerivation rec {
7965 libpulseaudio
8066 alsa-lib
8167 python
82− ] ++ optionals withEspeak [
68+ ] ++ lib.optionals withEspeak [
8369 espeak
8470 sonic
8571 pcaudiolib
86− ] ++ optional withFlite flite
87− ++ optional withPico svox
88− # TODO: add flint/festival support with festival-freebsoft-utils package
89− # ++ optional withFestival festival-freebsoft-utils
90− # TODO: add Ivona support with libdumbtts package
91− # ++ optional withIvona libdumbtts
92− ;
72+ ] ++ lib.optional withFlite [
73+ flite
74+ ] ++ lib.optional withPico [
75+ svox
76+ ];
9377
94− pythonPath = [ pyxdg ];
78+ pythonPath = [
79+ pyxdg
80+ ];
9581
9682 configureFlags = [
9783 # Audio method falls back from left to right.
9884 "--with-default-audio-method=\"libao,pulse,alsa,oss\""
9985 "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
100− ] ++ optional withPulse "--with-pulse"
101− ++ optional withAlsa "--with-alsa"
102− ++ optional withLibao "--with-libao"
103− ++ optional withOss "--with-oss"
104− ++ optional withEspeak "--with-espeak-ng"
105− ++ optional withPico "--with-pico"
106− # ++ optional withFestival "--with-flint"
107− # ++ optional withIvona "--with-ivona"
108− ;
86+ ] ++ lib.optional withPulse [
87+ "--with-pulse"
88+ ] ++ lib.optional withAlsa [
89+ "--with-alsa"
90+ ] ++ lib.optional withLibao [
91+ "--with-libao"
92+ ] ++ lib.optional withOss [
93+ "--with-oss"
94+ ] ++ lib.optional withEspeak [
95+ "--with-espeak-ng"
96+ ] ++ lib.optional withPico [
97+ "--with-pico"
98+ ];
10999
110100 postPatch = ''
111− substituteInPlace config/speechd.conf --replace "DefaultModule espeak" "DefaultModule ${selectedDefaultModule}"
112101 substituteInPlace src/modules/pico.c --replace "/usr/share/pico/lang" "${svox}/share/pico/lang"
113102 '';
114103
@@ -122,7 +111,10 @@ in stdenv.mkDerivation rec {
122111 description = "Common interface to speech synthesis";
123112 homepage = "https://devel.freebsoft.org/speechd";
124113 license = licenses.gpl2Plus;
125− maintainers = with maintainers; [ berce ];
114+ maintainers = with maintainers; [
115+ berce
116+ jtojnar
117+ ];
126118 platforms = platforms.linux;
127119 };
128120}