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 "$@"