Bug#929171: unblock: espeakup/1:0.80-15

Samuel Thibault sthibault at debian.org
Sat May 18 16:10:55 BST 2019


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

Hello,

As reported on Bug#929169, “the Linux kernel in Buster seems to take
much longer (as much as 12s!) to detect some sound card such as the
widespread Intel HDA. The current timeout in espeakup-udeb is thus way
too short, and makes the Debian installer useless for blind people
having such audio cards.”

In version 1:0.80-15 (debdiff attached) I have thus made the timeout
longer. A proper solution would be to make espeakup startup event-based,
but that would be very involved at this stage of development.

This version was confirmed to be fixing the issue on a few user systems.

Samuel

unblock espeakup/1:0.80-15

-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'stable-debug'), (500, 'proposed-updates-debug'), (500, 'proposed-updates'), (500, 'oldoldstable'), (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 5.1.0 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

-- 
Samuel
Be warned that typing \fBkillall \fIname\fP may not have the desired
effect on non-Linux systems, especially when done by a privileged user.
(From the killall manual page)
-------------- next part --------------
diff -Nru espeakup-0.80/debian/changelog espeakup-0.80/debian/changelog
--- espeakup-0.80/debian/changelog	2019-03-29 17:03:23.000000000 +0100
+++ espeakup-0.80/debian/changelog	2019-05-18 16:37:19.000000000 +0200
@@ -1,3 +1,9 @@
+espeakup (1:0.80-15) unstable; urgency=medium
+
+  * debian/espeakup-udeb.start: Wait longer for sound cards...
+
+ -- Samuel Thibault <sthibault at debian.org>  Sat, 18 May 2019 16:37:19 +0200
+
 espeakup (1:0.80-14) unstable; urgency=medium
 
   * rules: Restart espeakup after upgrade (Closes: Bug#925973).
diff -Nru espeakup-0.80/debian/espeakup-udeb.start espeakup-0.80/debian/espeakup-udeb.start
--- espeakup-0.80/debian/espeakup-udeb.start	2019-03-29 17:03:23.000000000 +0100
+++ espeakup-0.80/debian/espeakup-udeb.start	2019-05-18 16:35:42.000000000 +0200
@@ -7,14 +7,39 @@
 
 if lsmod | grep -q speakup_soft; then
 	# Give drivers some time to detect boards :/
-	sleep 2
-	IDS=$(echo $BASE/card*/id)
-	N=$(echo $IDS | wc -w)
-	case $N in
-		0)
-			echo No sound card detected, can not do software speech synthesis... Press enter to continue anyway.
-			read
-			;;
+	sleep 1
+	S=1
+	while true
+	do
+		IDS=$(echo $BASE/card*/id)
+		if [ "$IDS" = "$BASE/card*/id" ]; then
+			if [ "$S" -ge 3 ]; then
+				echo "No sound card detected after $S seconds..."
+			fi
+			if [ "$S" -lt 30 ]; then
+				# We have seen cards taking as much as 12s to get initialized...
+				sleep 1
+				S=$((S+1))
+				continue
+			else
+				echo "Can not do software speech synthesis... Press enter to continue anyway."
+				read
+				break
+			fi
+		fi
+
+		# Sleep again as much, in case more cards are to come :/
+		echo "Waiting for $S more seconds for any other card..."
+		sleep $S
+
+		. /usr/share/alsa/utils.sh
+		preinit_levels all
+		sanify_levels all
+
+		IDS=$(echo $BASE/card*/id)
+		N=$(echo $IDS | wc -w)
+
+		case $N in
 		1)
 			# Just one card, can not be wrong
 			echo $(strip $IDS) > /var/run/espeakup.card
@@ -51,5 +76,8 @@
 			done
 			echo "$CARD" > /var/run/espeakup.card
 			ALSA_CARD=$(cat /sys/class/sound/card$CARD/id) /usr/bin/espeakup -V en >> /var/log/espeakup.log 2>&1
-	esac
+		esac
+
+		break
+	done
 fi


More information about the Pkg-a11y-devel mailing list