From e6c63e9fc7abda96d657618ffc159fe317786f20 Mon Sep 17 00:00:00 2001 From: SLNOS Date: Thu, 1 Mar 2018 00:00:00 +0000 Subject: [PATCH 1/6] flite: 2.0 -> 2.1, switch to fetchFromGitHub, enable ALSA --- pkgs/development/libraries/flite/default.nix | 19 ++++++++++++------- .../libraries/flite/fix-rpath.patch | 5 ----- 2 files changed, 12 insertions(+), 12 deletions(-) delete mode 100644 pkgs/development/libraries/flite/fix-rpath.patch diff --git a/pkgs/development/libraries/flite/default.nix b/pkgs/development/libraries/flite/default.nix index 31dad5e255af..0b4172cdc764 100644 --- a/pkgs/development/libraries/flite/default.nix +++ b/pkgs/development/libraries/flite/default.nix @@ -1,16 +1,21 @@ -{ stdenv, fetchurl }: +{ stdenv, fetchFromGitHub, alsaLib }: stdenv.mkDerivation rec { - name = "flite-2.0.0"; + name = "flite-2.1.0"; - src = fetchurl { - url = "http://www.festvox.org/flite/packed/flite-2.0/${name}-release.tar.bz2"; - sha256 = "04g4r83jh4cl0irc8bg7njngcah7749956v9s6sh552kzmh3i337"; + src = fetchFromGitHub { + owner = "festvox"; + repo = "flite"; + rev = "d673f65b2c4a8cd3da7447079309a6dc4bcf1a5e"; + sha256 = "1kx43jvdln370590gfjhxxz3chxfi6kq18504wmdpljib2l0grjq"; }; - patches = [ ./fix-rpath.patch ]; + buildInputs = [ alsaLib ]; - configureFlags = [ "--enable-shared" ]; + configureFlags = [ + "--enable-shared" + "--with-audio=alsa" + ]; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/flite/fix-rpath.patch b/pkgs/development/libraries/flite/fix-rpath.patch deleted file mode 100644 index be774147c3f0..000000000000 --- a/pkgs/development/libraries/flite/fix-rpath.patch +++ /dev/null @@ -1,5 +0,0 @@ ---- a/main/Makefile -+++ b/main/Makefile -@@ -81 +80,1 @@ ifdef SHFLAGS --flite_LIBS_flags += -Wl,-rpath $(LIBDIR) -+flite_LIBS_flags += -Wl,-rpath,$(INSTALLLIBDIR) From 507d96d35e091f4b5ce751b8f2aedc479e44cf24 Mon Sep 17 00:00:00 2001 From: SLNOS Date: Thu, 1 Mar 2018 00:00:00 +0000 Subject: [PATCH 2/6] speech-tools: 2.1 -> 2.4, unbreak --- pkgs/development/libraries/speech-tools/default.nix | 11 ++++------- pkgs/top-level/all-packages.nix | 3 ++- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/pkgs/development/libraries/speech-tools/default.nix b/pkgs/development/libraries/speech-tools/default.nix index fba354213556..9113a1efb15c 100644 --- a/pkgs/development/libraries/speech-tools/default.nix +++ b/pkgs/development/libraries/speech-tools/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "speech_tools-${version}"; - version = "2.1"; + version = "2.4"; src = fetchurl { url = "http://www.festvox.org/packed/festival/${version}/${name}-release.tar.gz"; - sha256 = "1s9bkfgdgyas8v2cr7x3dg0ck1xf9mn1q6a73gwy524sjb6nfqgz"; + sha256 = "043h4fxfiiqxgwvyyyasylypjkpfzajxd6g5s9wsl69r8hn4ihpv"; }; buildInputs = [ alsaLib ncurses ]; @@ -27,15 +27,12 @@ stdenv.mkDerivation rec { ''; meta = with stdenv.lib; { - broken = true; description = "Text-to-speech engine"; - maintainers = with maintainers; - [ - raskin - ]; + maintainers = with maintainers; [ raskin ]; platforms = platforms.linux; license = licenses.free; }; + passthru = { updateInfo = { downloadPage = "http://www.festvox.org/packed/festival/"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e501b1d92069..cd14c1890b0a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11400,7 +11400,8 @@ with pkgs; speechd = callPackage ../development/libraries/speechd { }; - speech_tools = callPackage ../development/libraries/speech-tools {}; + speech-tools = callPackage ../development/libraries/speech-tools {}; + speech_tools = speech-tools; speex = callPackage ../development/libraries/speex { fftw = fftwFloat; From 77864f7346bbf105eed29d59fd3c1e3c00e8a4a3 Mon Sep 17 00:00:00 2001 From: SLNOS Date: Thu, 1 Mar 2018 00:00:00 +0000 Subject: [PATCH 3/6] eflite: cleanup expression, switch to fetchpatching from debian --- .../audio/eflite/buf-overflow.patch | 22 ----- .../audio/eflite/cvs-update.patch | 98 ------------------- pkgs/applications/audio/eflite/default.nix | 31 ++++-- pkgs/applications/audio/eflite/link.patch | 11 --- 4 files changed, 25 insertions(+), 137 deletions(-) delete mode 100644 pkgs/applications/audio/eflite/buf-overflow.patch delete mode 100644 pkgs/applications/audio/eflite/cvs-update.patch delete mode 100644 pkgs/applications/audio/eflite/link.patch diff --git a/pkgs/applications/audio/eflite/buf-overflow.patch b/pkgs/applications/audio/eflite/buf-overflow.patch deleted file mode 100644 index 8873aa77b0e6..000000000000 --- a/pkgs/applications/audio/eflite/buf-overflow.patch +++ /dev/null @@ -1,22 +0,0 @@ -Fix buffer overflow - ---- eflite-0.4.1.orig/es.c -+++ eflite-0.4.1/es.c -@@ -329,7 +329,7 @@ - char *p; - - p = getenv("HOME"); -- sprintf(buf, "%s/.es.conf", p); -+ snprintf(buf, sizeof(buf), "%s/.es.conf", p); - fp = fopen(buf, "r"); - if (!fp) fp = fopen("/etc/es.conf", "r"); - if (!fp) return 1; -@@ -438,7 +438,7 @@ - char logname[200]; - - if ((flags & 0xffff) > DEBUG) return; -- sprintf(logname, "%s/es.log", getenv("HOME")); -+ snprintf(logname, sizeof(logname), "%s/es.log", getenv("HOME")); - va_start(arg, text); - vsnprintf(buf, 200, text, arg); - va_end(arg); diff --git a/pkgs/applications/audio/eflite/cvs-update.patch b/pkgs/applications/audio/eflite/cvs-update.patch deleted file mode 100644 index 1ceace83aa5d..000000000000 --- a/pkgs/applications/audio/eflite/cvs-update.patch +++ /dev/null @@ -1,98 +0,0 @@ ---- eflite-0.4.1.orig/fs.c -+++ eflite-0.4.1/fs.c -@@ -9,7 +9,7 @@ - * GNU General Public License, as published by the Free Software - * Foundation. Please see the file COPYING for details. - * -- * $Id: fs.c,v 1.19 2007/01/18 23:58:42 mgorse Exp $ -+ * $Id: fs.c,v 1.22 2008/03/05 15:21:43 mgorse Exp $ - * - * Notes: - * -@@ -505,19 +505,6 @@ - } - } - -- -- --static void play_audio_close(void *cancel) --{ -- if (audiodev) -- { -- audio_drain(audiodev); -- close_audiodev(); -- // usleep(5000); -- } --} -- -- - static inline void determine_playlen(int speed, cst_wave *wptr, int type, int *pl, int *s) - { - int playlen, skip; -@@ -573,12 +560,12 @@ - type = ac[ac_head].type; - WAVE_UNLOCK; - pthread_testcancel(); -- pthread_cleanup_push(play_audio_close, NULL); -- -+ - es_log(2, "Opening audio device."); - /* We abuse the wave mutex here to avoid being canceled - * while the audio device is being openned */ - WAVE_LOCK; -+ assert(audiodev == NULL); - audiodev = audio_open(wptr->sample_rate, wptr->num_channels, CST_AUDIO_LINEAR16); - WAVE_UNLOCK; - if (audiodev == NULL) -@@ -606,8 +593,8 @@ - #ifdef DEBUG - start_time = get_ticks_count(); - #endif -- pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); - audio_write(audiodev, wptr->samples + skip, playlen * 2); -+ pthread_testcancel(); - es_log(2, "Write took %.2f seconds.", get_ticks_count() - start_time); - } - es_log(2, "play: syncing."); -@@ -617,16 +604,16 @@ - audio_flush(audiodev); - pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL); - es_log(2, "Flush took %.2f seconds.", get_ticks_count() - start_time); -- es_log(2, "play: Closing audio device"); -- close_audiodev(); -- pthread_cleanup_pop(0); -- pthread_testcancel(); -- TEXT_LOCK; -+ pthread_testcancel(); -+ -+ TEXT_LOCK; - time_left -= ((float)playlen) / wptr->sample_rate; - pthread_cond_signal(&text_condition); - TEXT_UNLOCK; - - WAVE_LOCK; -+ es_log(2, "play: Closing audio device"); -+ close_audiodev(); - ac_destroy(&ac[ac_head]); - ac_head++; - if (ac_head == ac_tail) -@@ -894,6 +881,7 @@ - WAVE_LOCK_NI; - pthread_cond_signal(&wave_condition); // necessary because we inhibit cancellation while waiting - pthread_cancel(wave_thread); -+ if (audiodev != NULL) audio_drain(audiodev); - WAVE_UNLOCK_NI; - } - -@@ -917,7 +905,10 @@ - } - - /* At this point, no thread is running */ -- -+ -+ // Make sure audio device is closed -+ close_audiodev(); -+ - /* Free any wave data */ - es_log(2, "s_clear: freeing wave data: %d", ac_tail); - for (i = 0; i < ac_tail; i++) diff --git a/pkgs/applications/audio/eflite/default.nix b/pkgs/applications/audio/eflite/default.nix index 36fbdbc2cc9e..4138a07ec067 100644 --- a/pkgs/applications/audio/eflite/default.nix +++ b/pkgs/applications/audio/eflite/default.nix @@ -1,21 +1,40 @@ -{stdenv,fetchurl,flite,alsaLib,debug ? false}: +{ stdenv, fetchurl, fetchpatch, flite, alsaLib, debug ? false }: stdenv.mkDerivation rec { name = "eflite-${version}"; version = "0.4.1"; + src = fetchurl { url = "https://sourceforge.net/projects/eflite/files/eflite/${version}/${name}.tar.gz"; sha256 = "088p9w816s02s64grfs28gai3lnibzdjb9d1jwxzr8smbs2qbbci"; }; + buildInputs = [ flite alsaLib ]; - configureFlags = "flite_dir=${flite} --with-audio=alsa --with-vox=cmu_us_kal16"; + + configureFlags = [ + "flite_dir=${flite}" + "--with-audio=alsa" + "--with-vox=cmu_us_kal16" + ]; + patches = [ - ./buf-overflow.patch - ./cvs-update.patch - ./link.patch + (fetchpatch { + url = "https://sources.debian.org/data/main/e/eflite/0.4.1-8/debian/patches/cvs-update"; + sha256 = "0r631vzmky7b7qyhm152557y4fr0xqrpi3y4w66fcn6p4rj03j05"; + }) + (fetchpatch { + url = "https://sources.debian.org/data/main/e/eflite/0.4.1-8/debian/patches/buf-overflow"; + sha256 = "071qk133kb7n7bq6kxgh3p9bba6hcl1ixsn4lx8vp8klijgrvkmx"; + }) + (fetchpatch { + url = "https://sources.debian.org/data/main/e/eflite/0.4.1-8/debian/patches/link"; + sha256 = "0p833dp4pdsya72bwh3syvkq85927pm6snxvx13lvcppisbhj0fc"; + }) ./format.patch - ]; # Patches are taken from debian. + ]; + CFLAGS = stdenv.lib.optionalString debug " -DDEBUG=2"; + meta = { homepage = http://eflite.sourceforge.net; description = "EFlite is a speech server for screen readers"; diff --git a/pkgs/applications/audio/eflite/link.patch b/pkgs/applications/audio/eflite/link.patch deleted file mode 100644 index 73c69da965c3..000000000000 --- a/pkgs/applications/audio/eflite/link.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- eflite-0.4.1/Makefile.in 2007-01-19 01:01:09.000000000 +0100 -+++ eflite-0.4.1-new/Makefile.in 2017-03-01 23:25:34.223615492 +0100 -@@ -34,7 +34,7 @@ - $(CC) $(LDFLAGS) -o $@ $^ -lm $(LIBS) $(FLITE_LIBS) $(AUDIOLIBS) - - fs.o: fs.c -- $(CC) $(CFLAGS) @AUDIODEFS@ -I. -I$(flite_include_dir) -DREGISTER_VOX=register_$(subst cmu_us_kal16,cmu_us_kal,$(FL_VOX)) -DSTANDALONE -DEFLITE -c -o $@ $< -+ $(CC) $(CFLAGS) @AUDIODEFS@ -I. -I$(flite_include_dir) -DREGISTER_VOX=register_$(FL_VOX) -DSTANDALONE -DEFLITE -c -o $@ $< - - tone.o: tone.c - $(CC) $(CFLAGS) -I$(flite_include_dir) -DEFLITE -c -o $@ $< From ce8649053099a47e033d7811fde9ee3abfedd9ef Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Thu, 15 Mar 2018 01:11:10 -0500 Subject: [PATCH 4/6] speech-tools: 2.4 -> 2.5.0 --- pkgs/development/libraries/speech-tools/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/speech-tools/default.nix b/pkgs/development/libraries/speech-tools/default.nix index 9113a1efb15c..11f8ee469697 100644 --- a/pkgs/development/libraries/speech-tools/default.nix +++ b/pkgs/development/libraries/speech-tools/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, gawk, alsaLib, ncurses }: stdenv.mkDerivation rec { - name = "speech_tools-${version}"; - version = "2.4"; + name = "speech_tools-${version}.0"; + version = "2.5"; src = fetchurl { url = "http://www.festvox.org/packed/festival/${version}/${name}-release.tar.gz"; - sha256 = "043h4fxfiiqxgwvyyyasylypjkpfzajxd6g5s9wsl69r8hn4ihpv"; + sha256 = "1k2xh13miyv48gh06rgsq2vj25xwj7z6vwq9ilsn8i7ig3nrgzg4"; }; buildInputs = [ alsaLib ncurses ]; From 92bd681de18ef4f1998bd357183bc499749289c7 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Thu, 15 Mar 2018 01:23:22 -0500 Subject: [PATCH 5/6] speech-tools: is __isnanf, use portable isnan (c99) --- pkgs/development/libraries/speech-tools/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/speech-tools/default.nix b/pkgs/development/libraries/speech-tools/default.nix index 11f8ee469697..8e5ee80b0bf2 100644 --- a/pkgs/development/libraries/speech-tools/default.nix +++ b/pkgs/development/libraries/speech-tools/default.nix @@ -14,6 +14,10 @@ stdenv.mkDerivation rec { preConfigure = '' sed -e s@/usr/bin/@@g -i $( grep -rl '/usr/bin/' . ) sed -re 's@/bin/(rm|printf|uname)@\1@g' -i $( grep -rl '/bin/' . ) + + # c99 makes isnan valid for float and double + substituteInPlace include/EST_math.h \ + --replace '__isnanf(X)' 'isnan(X)' ''; installPhase = '' From e6ff717b569a4690e8088c86d975aee558e35c6a Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Thu, 15 Mar 2018 01:23:54 -0500 Subject: [PATCH 6/6] speech-tools: run tests --- pkgs/development/libraries/speech-tools/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/speech-tools/default.nix b/pkgs/development/libraries/speech-tools/default.nix index 8e5ee80b0bf2..22d66b7e71d1 100644 --- a/pkgs/development/libraries/speech-tools/default.nix +++ b/pkgs/development/libraries/speech-tools/default.nix @@ -30,6 +30,10 @@ stdenv.mkDerivation rec { done ''; + doCheck = true; + + checkTarget = "test"; + meta = with stdenv.lib; { description = "Text-to-speech engine"; maintainers = with maintainers; [ raskin ];