Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Hello,

The horror story continues...

In Bug#857501, a user reports that espeak doesn't work with mbrola any
more, due to the fix uploaded previously for Bug#856331.

What happens is that to fix Bug#856331 I used a small shell script
wrapper, and espeak happens to be looking at the state of the mbrola
process it started, and notices that it goes to sleep, to wait for
dpkg-architecture's output, and thus espeak believes that mbrola is
finished with emitting the data and waiting for $deity-knows-what. And
then espeak does not find any output, and thinks mbrola is hosed, while
it actually just hasn't started yet.

Anyway, in version 3.01h+2-3 (diff attached), I simplified the script by
precomputing the multiarch path, so the script becomes trivial and does
not sleep any more, and espeak is now happy.

Short life to non-free code,
Samuel

unblock mbrola/3.01h+2-3

-- System Information:
Debian Release: 9.0
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 
'testing-debug'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'stable'), 
(500, 'oldstable'), (1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.10.0 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

-- 
Samuel
`When you say "I wrote a program that crashed Windows", people just stare at
you blankly and say "Hey, I got those with the system, *for free*".'
(By Linus Torvalds)
diff -Nru mbrola-3.01h+2/debian/changelog mbrola-3.01h+2/debian/changelog
--- mbrola-3.01h+2/debian/changelog     2017-02-28 14:26:24.000000000 +0100
+++ mbrola-3.01h+2/debian/changelog     2017-03-12 02:29:45.000000000 +0100
@@ -1,3 +1,11 @@
+mbrola (3.01h+2-3) unstable; urgency=medium
+
+  * Make mbrola wrapper for libstrongexit.so simpler. espeak seems to be
+    looking at mbrola's state, and does not like to see it sleeping, waiting
+    for dpkg-architecture's output... (Closes: 857501).
+
+ -- Samuel Thibault <sthiba...@debian.org>  Sun, 12 Mar 2017 02:29:45 +0100
+
 mbrola (3.01h+2-2) unstable; urgency=medium
 
   * Add libstrongexit.so workaround. mbrola crashes on exit() cleanup, so
diff -Nru mbrola-3.01h+2/debian/control mbrola-3.01h+2/debian/control
--- mbrola-3.01h+2/debian/control       2017-02-28 14:19:19.000000000 +0100
+++ mbrola-3.01h+2/debian/control       2017-03-12 02:29:14.000000000 +0100
@@ -10,7 +10,7 @@
 Package: mbrola
 Architecture: i386 amd64 alpha powerpc sparc armel armhf
 Multi-Arch: foreign
-Depends: ${misc:Depends}, ${shlibs:Depends} [!amd64], libc6:i386 [amd64] | 
libc6-i386 [amd64], dpkg-dev
+Depends: ${misc:Depends}, ${shlibs:Depends} [!amd64], libc6:i386 [amd64] | 
libc6-i386 [amd64]
 Suggests: mbrola-voice, espeak, cicero
 Description: Multilingual software speech synthesizer
  Mbrola is Thierry Dutoit's phonemizer for multilingual speech synthesis. The
diff -Nru mbrola-3.01h+2/debian/strongexit/Makefile 
mbrola-3.01h+2/debian/strongexit/Makefile
--- mbrola-3.01h+2/debian/strongexit/Makefile   2017-02-28 12:14:50.000000000 
+0100
+++ mbrola-3.01h+2/debian/strongexit/Makefile   2017-03-12 02:22:07.000000000 
+0100
@@ -1,9 +1,13 @@
 LIB=libstrongexit.so
 
-all: $(LIB)
+all: $(LIB) mbrola
 
 $(LIB): strongexit.c
        $(CC) $(CFLAGS) $< -o $@ -shared -fPIC $(LDFLAGS)
 
+mbrola: mbrola.in
+       sed -e 's/@DEB_HOST_MULTIARCH@/$(shell dpkg-architecture 
-qDEB_HOST_MULTIARCH)/g' < $< > $@
+       chmod +x $@
+
 clean:
-       rm -f $(LIB)
+       rm -f $(LIB) mbrola
diff -Nru mbrola-3.01h+2/debian/strongexit/mbrola 
mbrola-3.01h+2/debian/strongexit/mbrola
--- mbrola-3.01h+2/debian/strongexit/mbrola     2017-02-28 14:26:24.000000000 
+0100
+++ mbrola-3.01h+2/debian/strongexit/mbrola     1970-01-01 01:00:00.000000000 
+0100
@@ -1,5 +0,0 @@
-#!/bin/bash
-# mbrola crashes on exit() cleanup, so don't bother trying to exit cleanly,
-# mbrola does close the output file fine anyway (see #856331)
-DEB_HOST_MULTIARCH=`dpkg-architecture -qDEB_HOST_MULTIARCH`
-LD_PRELOAD=/usr/lib/$DEB_HOST_MULTIARCH/mbrola/libstrongexit.so exec 
/usr/lib/$DEB_HOST_MULTIARCH/mbrola/mbrola "$@"
diff -Nru mbrola-3.01h+2/debian/strongexit/mbrola.in 
mbrola-3.01h+2/debian/strongexit/mbrola.in
--- mbrola-3.01h+2/debian/strongexit/mbrola.in  1970-01-01 01:00:00.000000000 
+0100
+++ mbrola-3.01h+2/debian/strongexit/mbrola.in  2017-03-12 02:14:18.000000000 
+0100
@@ -0,0 +1,4 @@
+#!/bin/bash
+# mbrola crashes on exit() cleanup, so don't bother trying to exit cleanly,
+# mbrola does close the output file fine anyway (see #856331)
+LD_PRELOAD=/usr/lib/@DEB_HOST_MULTIARCH@/mbrola/libstrongexit.so exec 
/usr/lib/@DEB_HOST_MULTIARCH@/mbrola/mbrola "$@"

Reply via email to