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

Bug#857559: marked as done (unblock: brltty/5.4-7)



Your message dated Sun, 12 Mar 2017 16:02:00 +0000
with message-id <78e9d487-27b1-e1ee-34ca-204aba01e7b6@thykier.net>
and subject line Re: Bug#857559: unblock: brltty/5.4-7
has caused the Debian Bug report #857559,
regarding unblock: brltty/5.4-7
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
857559: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=857559
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Hello,

As documented in Bug#857558, the blind users which use Vario Ultra
devices (which are becoming more and more popular) report that if they
type too fast, brltty restarts its driver, thus incurring a spurious
delay, which prevents from working for several seconds while the restart
is done, thus making working very tedious, and thus Vario Ultra unusable
with Debian.

We have investigated with upstream, what happens is that the device
is very slow to send key press events, and it's easy to actually type
faster than what the device can send, and in that case the device does
not even have the opportunity to acknowledge the braille output updates
that brltty sends, and thus brltty gets impatient and restarts the
driver.  There is nothing we can really do about it, the device is just
too slow, so in the attached uploaded changes, upstream has made the
driver ignore time out errors. This was tested by various Vario Ultra
users.

Additionally, as documented in Bug#854295, it seems espeak-ng crashes
while being used by brltty. What we found is that this happens because
of a callback that brltty sets to follow the progress of the speech
synthesis.  In the attached uploaded change, I have just disabled this
feature (which is not really used by users, only for demos), which
avoids the encountered crashes.  We'll have to see with upstream brltty
and espeak-ng how this can be properly fixed, but that will probably be
quite involved, while we can just disable this feature for Stretch.

Samuel

unblock brltty/5.4-7

-- 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
<d> bah à défaut de ligne TGV, ils ont un GR
 -+- #ens-mim - comment ça, paumé ?! -+-
diff -Nru brltty-5.4/debian/changelog brltty-5.4/debian/changelog
--- brltty-5.4/debian/changelog	2017-01-24 03:10:25.000000000 +0100
+++ brltty-5.4/debian/changelog	2017-03-12 15:31:57.000000000 +0100
@@ -1,3 +1,12 @@
+brltty (5.4-7) unstable; urgency=medium
+
+  * git-vario-ultra-restart.patch: Fix baum driver restarting when typing too
+    fast on Vario Ultra device (Closes: Bug#857558).
+  * disable-synth-callback.patch: Disable synth callback from espeak-ng to
+    avoid crashes (Closes: Bug#854295).
+
+ -- Samuel Thibault <sthibault@debian.org>  Sun, 12 Mar 2017 15:31:57 +0100
+
 brltty (5.4-6) unstable; urgency=medium
 
   * patches/xbrlapi-nospam.patch: Prevent xbrlapi from retrying to connect to
diff -Nru brltty-5.4/debian/patches/disable-synth-callback.patch brltty-5.4/debian/patches/disable-synth-callback.patch
--- brltty-5.4/debian/patches/disable-synth-callback.patch	1970-01-01 01:00:00.000000000 +0100
+++ brltty-5.4/debian/patches/disable-synth-callback.patch	2017-03-12 15:31:57.000000000 +0100
@@ -0,0 +1,13 @@
+diff --git a/Drivers/Speech/eSpeak/speech.c b/Drivers/Speech/eSpeak/speech.c
+index 6c303c759..9b58bc58b 100644
+--- a/Drivers/Speech/eSpeak/speech.c
++++ b/Drivers/Speech/eSpeak/speech.c
+@@ -167,7 +189,7 @@ static int spk_construct(volatile SpeechSynthesizer *spk, char **parameters)
+ 		if (val > espeakRATE_MINIMUM) maxrate = val;
+ 	}
+ 
+-	espeak_SetSynthCallback(SynthCallback);
++	//espeak_SetSynthCallback(SynthCallback);
+ 
+ 	return 1;
+ }
diff -Nru brltty-5.4/debian/patches/git-vario-ultra-restart.patch brltty-5.4/debian/patches/git-vario-ultra-restart.patch
--- brltty-5.4/debian/patches/git-vario-ultra-restart.patch	1970-01-01 01:00:00.000000000 +0100
+++ brltty-5.4/debian/patches/git-vario-ultra-restart.patch	2017-03-12 15:19:19.000000000 +0100
@@ -0,0 +1,55 @@
+commit 587004a914d572e6481d0a810e1b3af8cf8afaf2
+Author: Dave Mielke <dave@mielke.cc>
+Date:   Sat Mar 11 21:03:18 2017 -0500
+
+    USB write timeouts should be ignored for the Vario Ultra. (dm)
+
+diff --git a/Drivers/Braille/Baum/braille.c b/Drivers/Braille/Baum/braille.c
+index a571d319d..f137bdbe3 100644
+--- a/Drivers/Braille/Baum/braille.c
++++ b/Drivers/Braille/Baum/braille.c
+@@ -3104,6 +3104,7 @@ connectResource (BrailleDisplay *brl, const char *identifier) {
+   descriptor.serial.options.applicationData = &baumEscapeOperations;
+ 
+   descriptor.usb.channelDefinitions = usbChannelDefinitions;
++  descriptor.usb.options.ignoreWriteTimeouts = 1;
+ 
+   descriptor.bluetooth.channelNumber = 1;
+   descriptor.bluetooth.discoverChannel = 1;
+diff --git a/Headers/gio_types.h b/Headers/gio_types.h
+index 481bb0fd0..11110d5c9 100644
+--- a/Headers/gio_types.h
++++ b/Headers/gio_types.h
+@@ -32,6 +32,7 @@ typedef struct {
+   int inputTimeout;
+   int outputTimeout;
+   int requestTimeout;
++  unsigned ignoreWriteTimeouts:1;
+ } GioOptions;
+ 
+ typedef ssize_t GioUsbWriteDataMethod (
+diff --git a/Programs/gio.c b/Programs/gio.c
+index 123f188a2..f370c3f34 100644
+--- a/Programs/gio.c
++++ b/Programs/gio.c
+@@ -228,8 +228,18 @@ gioWriteData (GioEndpoint *endpoint, const void *data, size_t size) {
+     return -1;
+   }
+ 
+-  return method(endpoint->handle, data, size,
+-                endpoint->options.outputTimeout);
++  ssize_t result = method(endpoint->handle, data, size,
++                          endpoint->options.outputTimeout);
++
++  if (endpoint->options.ignoreWriteTimeouts) {
++    if (result == -1) {
++      if (errno == ETIMEDOUT) {
++        result = size;
++      }
++    }
++  }
++
++  return result;
+ }
+ 
+ int
diff -Nru brltty-5.4/debian/patches/series brltty-5.4/debian/patches/series
--- brltty-5.4/debian/patches/series	2017-01-24 03:09:49.000000000 +0100
+++ brltty-5.4/debian/patches/series	2017-03-12 15:31:57.000000000 +0100
@@ -13,3 +13,5 @@
 git-braillenote.patch
 git-manufacturer.patch
 xbrlapi-nospam.patch
+git-vario-ultra-restart.patch
+disable-synth-callback.patch

--- End Message ---
--- Begin Message ---
Samuel Thibault:
> Hello,
> 
> Cyril Brulebois, on dim. 12 mars 2017 16:22:58 +0100, wrote:
>> Assuming Samuel has already tested it in d-i, or will fix any issues
>> found there, fine with me.
> 
> I have just tested it, the fix works there too.
> 
> Samuel
> 

Excellent, I have unblocked brltty as well.

Thanks,
~Niels

--- End Message ---

Reply to: