about summary refs log tree commit diff
path: root/pkgs/applications/audio/eflite
diff options
context:
space:
mode:
authorSLNOS <anonymous@wired>2018-03-01 00:00:00 +0000
committerJan Malakhovski <oxij@oxij.org>2018-03-15 05:09:18 +0000
commit77864f7346bbf105eed29d59fd3c1e3c00e8a4a3 (patch)
tree8d0670b9581445ebeff57a37f0eba49982933cca /pkgs/applications/audio/eflite
parent507d96d35e091f4b5ce751b8f2aedc479e44cf24 (diff)
downloadnixlib-77864f7346bbf105eed29d59fd3c1e3c00e8a4a3.tar
nixlib-77864f7346bbf105eed29d59fd3c1e3c00e8a4a3.tar.gz
nixlib-77864f7346bbf105eed29d59fd3c1e3c00e8a4a3.tar.bz2
nixlib-77864f7346bbf105eed29d59fd3c1e3c00e8a4a3.tar.lz
nixlib-77864f7346bbf105eed29d59fd3c1e3c00e8a4a3.tar.xz
nixlib-77864f7346bbf105eed29d59fd3c1e3c00e8a4a3.tar.zst
nixlib-77864f7346bbf105eed29d59fd3c1e3c00e8a4a3.zip
eflite: cleanup expression, switch to fetchpatching from debian
Diffstat (limited to 'pkgs/applications/audio/eflite')
-rw-r--r--pkgs/applications/audio/eflite/buf-overflow.patch22
-rw-r--r--pkgs/applications/audio/eflite/cvs-update.patch98
-rw-r--r--pkgs/applications/audio/eflite/default.nix31
-rw-r--r--pkgs/applications/audio/eflite/link.patch11
4 files changed, 25 insertions, 137 deletions
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 $@ $<