Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian....@packages.debian.org
Usertags: pu
X-Debbugs-Cc: brl...@packages.debian.org
Control: affects -1 + src:brltty

Hello,

I have uploaded brltty/6.5-7+deb12u1 for inclusion in bookworm.

Samuel

[ Reason ]
As discussed on
https://www.freelists.org/post/orca/Braille-navigation-issues-with-Orca-441
with the brltty version installed in bookworm, if a user has the orca
and xbrlapi packages installed, but not the brltty-x11 package
installed, the braille navigation and cursor routing keys are not
working in the Orca screen reader. This is a regression in bookworm
compared to buster.

[ Impact ]
The user loses a lot of navigation convenience when e.g. browsing the
Internet, they cannot just "click" on a link (with the routing keys) to
follow it.

[ Tests ]
This was tested by hand and reported as fixed by the reporter.

[ Risks ]
The code is relatively simple.

[ Checklist ]
  [X] *all* changes are documented in the d/changelog
  [X] I reviewed all changes and I approve them
  [X] attach debdiff against the package in (old)stable
  [X] the issue is verified as fixed in unstable

[ Changes ]

The proposed fix is actually fixing the issue twice:

- it makes xbrlapi check whether the brltty-x11 package is
installed before starting brltty with the ba and a2 drivers.

- and it makes the missing of the brltty-x11 package (in case the user
started brltty by hand with the ba and a2 drivers) not consume the
braille key events out of orca's reach.
diff -Nru brltty-6.5/debian/changelog brltty-6.5/debian/changelog
--- brltty-6.5/debian/changelog 2023-04-06 01:27:28.000000000 +0200
+++ brltty-6.5/debian/changelog 2023-09-07 19:46:53.000000000 +0200
@@ -1,3 +1,12 @@
+brltty (6.5-7+deb12u1) bookworm; urgency=medium
+
+  * patches/git-xbrlapi: Fix ba+a2 load failure log flood, and failure to use
+    braille shortcuts in Orca.
+  * patches/git-base-none-quality: Set quality to low or none for base and no
+    screen drivers.
+
+ -- Samuel Thibault <sthiba...@debian.org>  Thu, 07 Sep 2023 19:46:53 +0200
+
 brltty (6.5-7) unstable; urgency=medium
 
   [ Remus-Gabriel Chelu ]
diff -Nru brltty-6.5/debian/patches/git-base-none-quality 
brltty-6.5/debian/patches/git-base-none-quality
--- brltty-6.5/debian/patches/git-base-none-quality     1970-01-01 
01:00:00.000000000 +0100
+++ brltty-6.5/debian/patches/git-base-none-quality     2023-09-07 
19:46:53.000000000 +0200
@@ -0,0 +1,42 @@
+commit aadd8a93de29fb1d7d47dbe91b815655e76ef5f8
+Author: Samuel Thibault <samuel.thiba...@ens-lyon.org>
+Date:   Tue Sep 5 00:00:56 2023 +0200
+
+    screen: Set quality to low or none for base and no
+    
+    When e.g. brltty cannot load a screen driver, but can load the BrlAPI
+    driver, we have to make sure to know that we have a low screen reading
+    quality, otherwise the BrlAPI driver would consume braille keyboard
+    events, without being able to do anything about them.
+    
+    This notably fixes cursor routing and braille panning in Orca when
+    xbrlapi is installed but the a2 screen driver is not installed.
+
+diff --git a/Programs/scr_base.c b/Programs/scr_base.c
+index 23c7e4d1f..de867a7d5 100644
+--- a/Programs/scr_base.c
++++ b/Programs/scr_base.c
+@@ -149,6 +149,7 @@ refresh_BaseScreen (void) {
+ 
+ static void
+ describe_BaseScreen (ScreenDescription *description) {
++  description->quality = SCQ_NONE;
+   description->rows = 1;
+   description->cols = strlen(text_BaseScreen);
+   description->posx = 0;
+diff --git a/Programs/scr_driver.c b/Programs/scr_driver.c
+index 57e602b0b..416487471 100644
+--- a/Programs/scr_driver.c
++++ b/Programs/scr_driver.c
+@@ -81,6 +81,11 @@ describe_NoScreen (ScreenDescription *description) {
+     screenMessage = message;
+   }
+ 
++  if (screenMessage)
++    description->quality = SCQ_LOW;
++  else
++    description->quality = SCQ_NONE;
++
+   description->rows = 1;
+   description->cols = strlen(screenMessage);
+   description->posx = 0;
diff -Nru brltty-6.5/debian/patches/git-xbrlapi 
brltty-6.5/debian/patches/git-xbrlapi
--- brltty-6.5/debian/patches/git-xbrlapi       1970-01-01 01:00:00.000000000 
+0100
+++ brltty-6.5/debian/patches/git-xbrlapi       2023-09-07 19:46:53.000000000 
+0200
@@ -0,0 +1,35 @@
+https://github.com/brltty/brltty/pull/419
+
+commit 898350dcbe11bd46d2e3babffe0764169d0a0457
+Author: Samuel Thibault <samuel.thiba...@ens-lyon.org>
+Date:   Sat Jun 17 22:52:42 2023 +0200
+
+    xbrlapi: Do not try to start brltty with ba+a2 when unavailable
+    
+    When a distribution ships them separately they may not be available, and
+    brltty would then flood logs with driver load failure warning every 5
+    seconds.
+
+diff --git a/Autostart/X11/90xbrlapi.in b/Autostart/X11/90xbrlapi.in
+index ecb2f5e57..cb3e3e5b3 100644
+--- a/Autostart/X11/90xbrlapi.in
++++ b/Autostart/X11/90xbrlapi.in
+@@ -2,6 +2,7 @@
+ 
+ prefix="@prefix@"
+ exec_prefix="@exec_prefix@"
++drivers_directory="@drivers_directory@"
+ program_directory="@program_directory@"
+ xbrlapi="$program_directory/xbrlapi"
+ brltty="$program_directory/brltty"
+@@ -9,7 +10,9 @@ brltty="$program_directory/brltty"
+ if [ -x "${xbrlapi}" ]; then
+   if "${xbrlapi}" 2>/dev/null ; then
+     # xbrlapi could connect to BrlAPI, try to start brltty with AtSpi2 driver.
+-    if [ -x "${brltty}" ]; then
++    if [ -x "${brltty}" -a \
++         -e "$drivers_directory/libbrlttybba.so" -a \
++         -e "$drivers_directory/libbrlttyxa2.so" ]; then
+       "${brltty}" -b ba -s no -x a2 -N 2>/dev/null
+     fi
+   fi
diff -Nru brltty-6.5/debian/patches/series brltty-6.5/debian/patches/series
--- brltty-6.5/debian/patches/series    2023-04-06 01:26:36.000000000 +0200
+++ brltty-6.5/debian/patches/series    2023-09-07 19:46:53.000000000 +0200
@@ -3,3 +3,5 @@
 41-java-bytecode-compat.patch
 disable-synth-callback.patch
 atspi2-routing-crash.patch
+git-xbrlapi
+git-base-none-quality
diff -Nru brltty-6.5/debian/salsa-ci.yml brltty-6.5/debian/salsa-ci.yml
--- brltty-6.5/debian/salsa-ci.yml      2022-12-15 18:06:06.000000000 +0100
+++ brltty-6.5/debian/salsa-ci.yml      2023-09-07 19:46:53.000000000 +0200
@@ -7,6 +7,7 @@
   # Disable reprotest until salsa-ci-team/pipeline#26 is resolved
   # as well as #988999
   SALSA_CI_DISABLE_REPROTEST: 1
+  RELEASE: bookworm
 
   SALSA_CI_REPROTEST_ENABLE_DIFFOSCOPE: 1
 

Reply via email to