Package: release.debian.org
Severity: normal
X-Debbugs-Cc: speech-dispatc...@packages.debian.org
Control: affects -1 + src:speech-dispatcher
User: release.debian....@packages.debian.org
Usertags: unblock

Hello,

I have uploaded speech-dispatcher/0.12.0-4 for inclusion in Trixie.
(it is a key package)

[ Reason ]
As reported upstream on
https://github.com/brailcom/speechd/issues/1025

running a mere

spd-say -o espeak-ng-mbrola-generic ". . ."

makes speech-dispatcher then stay stuck and require getting killed,
because of confusing an empty uterance (there is nothing to speak here)
with an error.

[ Impact ]
If a blind user happens to try to read e.g. a webpage containing ". . ."
on a single line with a generic-based synthesizer (such as dtk, epos,
mary, mimic3, swift), the speech synthesis will stay stuck, and the user
is essentially left with having to reboot.

[ Tests ]
This was tested by the reporting user on github

[ Risks ]
The code is very trivial, coming from upstream.

[ Checklist ]
  [X] all changes are documented in the d/changelog
  [X] I reviewed all changes and I approve them
  [X] attach debdiff against the package in testing

[ Other info ]
This also fixes closing a previous debian bug report.

unblock speech-dispatcher/0.12.0-4

Thanks!
Samuel
diff -Nru speech-dispatcher-0.12.0/debian/changelog 
speech-dispatcher-0.12.0/debian/changelog
--- speech-dispatcher-0.12.0/debian/changelog   2025-04-06 16:27:20.000000000 
+0200
+++ speech-dispatcher-0.12.0/debian/changelog   2025-05-06 21:23:58.000000000 
+0200
@@ -1,9 +1,15 @@
+speech-dispatcher (0.12.0-4) unstable; urgency=medium
+
+  * patches/git-generic-empty: Fix hang on empty uterances.
+
+ -- Samuel Thibault <sthiba...@debian.org>  Tue, 06 May 2025 21:23:58 +0200
+
 speech-dispatcher (0.12.0-3) unstable; urgency=medium
 
   [ Samuel Thibault ]
   * rules: Explicitly disable the pico module.
   * patches/output-stuck: Fix speechd getting stuck on some reply/event
-    dispatch situations.
+    dispatch situations (Closes: Bug#1101805)
 
   [ Alessandro Astone]
   * tests: Require isolation-container.
diff -Nru speech-dispatcher-0.12.0/debian/patches/git-generic-empty 
speech-dispatcher-0.12.0/debian/patches/git-generic-empty
--- speech-dispatcher-0.12.0/debian/patches/git-generic-empty   1970-01-01 
01:00:00.000000000 +0100
+++ speech-dispatcher-0.12.0/debian/patches/git-generic-empty   2025-05-06 
21:20:14.000000000 +0200
@@ -0,0 +1,52 @@
+commit e22a7bd407482234c0b11e43c37d3456e69eb357
+Author: Samuel Thibault <samuel.thiba...@ens-lyon.org>
+Date:   Wed Apr 9 01:23:44 2025 +0200
+
+    Fix value returned by module_speak
+    
+    It was never documented as returning the number of bytes. If that
+    happens to be zero, it would wrongly believed to be failing.
+    
+    Fixes #1025
+    
+    (cherry picked from commit fb3f571d65224070419973f0c52455031af04d01)
+
+diff --git a/src/modules/cicero.c b/src/modules/cicero.c
+index 24c957a5..363ff8d7 100644
+--- a/src/modules/cicero.c
++++ b/src/modules/cicero.c
+@@ -281,7 +281,7 @@ int module_speak(gchar * data, size_t bytes, 
SPDMessageType msgtype)
+       sem_post(cicero_semaphore);
+ 
+       DBG("Cicero: leaving module_speak() normally\n\r");
+-      return bytes;
++      return 1;
+ }
+ 
+ int module_stop(void)
+diff --git a/src/modules/dummy.c b/src/modules/dummy.c
+index b1fc3bfc..549cf719 100644
+--- a/src/modules/dummy.c
++++ b/src/modules/dummy.c
+@@ -124,7 +124,7 @@ int module_speak(gchar * data, size_t bytes, 
SPDMessageType msgtype)
+       sem_post(dummy_semaphore);
+ 
+       DBG("Dummy: leaving write() normally\n\r");
+-      return bytes;
++      return 1;
+ }
+ 
+ int module_stop(void)
+diff --git a/src/modules/generic.c b/src/modules/generic.c
+index 3743acac..8f1672cb 100644
+--- a/src/modules/generic.c
++++ b/src/modules/generic.c
+@@ -295,7 +295,7 @@ int module_speak(gchar * data, size_t bytes, 
SPDMessageType msgtype)
+       sem_post(generic_semaphore);
+ 
+       DBG("Generic: leaving write() normally\n\r");
+-      return bytes;
++      return 1;
+ }
+ 
+ int module_stop(void)
diff -Nru speech-dispatcher-0.12.0/debian/patches/series 
speech-dispatcher-0.12.0/debian/patches/series
--- speech-dispatcher-0.12.0/debian/patches/series      2025-04-06 
16:17:40.000000000 +0200
+++ speech-dispatcher-0.12.0/debian/patches/series      2025-05-06 
21:20:14.000000000 +0200
@@ -2,3 +2,4 @@
 systemd-debian
 mbrola-paths
 output-stuck
+git-generic-empty

Reply via email to