Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Hello, We have just received a report from a blind user saying that braille auto-detection in the debian-installer does not work any more for his device. This is reported as bug report #782732. I could reproduce the issue, and fix it. This is pretty bad because it matters for 4 brands (Albatross, Cebra, HumanWare and HandyTech) of braille devices of the 30 supported brands, among which HumanWare and HandyTech are AIUI very commonly found. The price of such device makes it unaffordable for their user to use a replacement device, so they really have no way install debian 8.0 by themselves. What happens is that these braille devices use the same USB ID, 0403:6001, because their manufacturers were too lazy to change the USB-to-serial chip ID. So when one of these is connected, brltty has to try the 4 different drivers for these various devices, which happens to work fine because the protocols are different enough for this to be safe. However, the probing function of one of those drivers, Albatross, actually uses an infinite loop, keeping trying between 19200 bauds and 9600 bauds. As a result, when brltty tries it, it gets stuck inside that probing loop. It happens that in the past the driver would get an open error at some point, thus breaking its loop and letting other drivers try their protocol. This open error has apparently been fixed in the latest version of brltty, and thus the probing gets stuck inside the Albatross driver. In the attached change which I have uploaded to unstable, I change this infinite loop into a simple loop over the two 19200 and 9600 bauds values, i.e. the driver will just try them both, and if they both fail, notice the end of available baud possibilities, thus abort, and thus let the brltty core give other drivers a chance to do their probing, before the brltty core tries Albatross again. This infinite loop inside the Albatross driver was indeed spurious since the brltty core already performs it. I'm Cc-ing debian-boot for udeb confirmation. Thanks, Samuel unblock brltty/5.2~20141018-5 -- System Information: Debian Release: 8.0 APT prefers buildd-unstable APT policy: (500, 'buildd-unstable'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (500, 'oldstable'), (1, 'buildd-experimental'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.0.0 (SMP w/8 CPU cores) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Init: systemd (via /run/systemd/system) -- Samuel *** s has joined channel #ens-mim <N> re <s> pfff <s> mare de la pfp. <s> pas commencer et j'en ai deja marre. <s> bon ct juste un cou de gueule ++ *** s has left channel #ens-mim (s) -+- #ens-mim et la peufeupeu -+- -- Samuel <xterm> The problem with America is stupidity. I'm not saying there should be a capital punishment for stupidity, but why don't we just take the safety labels off of everything and let the problem solve itself? -- Samuel "I once witnessed a long-winded, month-long flamewar over the use of mice vs. trackballs...It was very silly." (By Matt Welsh)
diff -Nru brltty-5.2~20141018/debian/changelog brltty-5.2~20141018/debian/changelog --- brltty-5.2~20141018/debian/changelog 2015-02-15 02:25:15.000000000 +0100 +++ brltty-5.2~20141018/debian/changelog 2015-04-16 23:20:11.000000000 +0200 @@ -1,3 +1,10 @@ +brltty (5.2~20141018-5) unstable; urgency=high + + * patches/60-albatross.patch: Fix probing loop stuck inside the albatross + driver (Closes: #782732). + + -- Samuel Thibault <sthiba...@debian.org> Thu, 16 Apr 2015 23:19:16 +0200 + brltty (5.2~20141018-4) unstable; urgency=medium * patches/git-9337089: Fix xbrlapi into really not writing anything when diff -Nru brltty-5.2~20141018/debian/patches/60-albatross.patch brltty-5.2~20141018/debian/patches/60-albatross.patch --- brltty-5.2~20141018/debian/patches/60-albatross.patch 1970-01-01 01:00:00.000000000 +0100 +++ brltty-5.2~20141018/debian/patches/60-albatross.patch 2015-04-16 22:40:26.000000000 +0200 @@ -0,0 +1,13 @@ +diff --git a/Drivers/Braille/Albatross/braille.c b/Drivers/Braille/Albatross/braille.c +index e15d32b..27c504c 100644 +--- a/Drivers/Braille/Albatross/braille.c ++++ b/Drivers/Braille/Albatross/braille.c +@@ -478,7 +478,7 @@ brl_construct (BrailleDisplay *brl, char **parameters, const char *device) { + if (afterTimePeriod(&period, NULL)) break; + } + +- if (!*++baud) baud = baudTable; ++ if (!*++baud) break; + } + + io->closePort(); diff -Nru brltty-5.2~20141018/debian/patches/series brltty-5.2~20141018/debian/patches/series --- brltty-5.2~20141018/debian/patches/series 2015-02-11 19:59:38.000000000 +0100 +++ brltty-5.2~20141018/debian/patches/series 2015-04-16 22:41:19.000000000 +0200 @@ -6,3 +6,4 @@ git-a7123d7 git-2421eda git-9337089 +60-albatross.patch