[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#782743: unblock: brltty/5.2~20141018-5

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


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

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.


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)

*** 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 -+-

<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?

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

Reply to: