Bug#857506: unblock: mbrola/3.01h+2-3
Package: release.debian.org
Severity: normal
User: release.debian.org@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 <sthibault@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 to: