Package: release.debian.org
Severity: normal
Tags: trixie
X-Debbugs-Cc: [email protected]
Control: affects -1 + src:brltty
User: [email protected]
Usertags: pu

Hello,

I have uploaded brltty 6.7-3.1+deb13u3 for inclusion in Trixie

[ Reason ]
Blind people have reported that when they use gnome on wayland with a
braille device and the Orca screen reader, if they switch to a textual
VT with ctrl-alt-Fn, the orca output remains stuck on the braille
device, instead of getting the text from the text console.

This is due to the move of orca into getting started in its own systemd
session, introduced in Orca 49, which is available in stable-backports.

[ Impact ]
Blind users cannot use both graphical and text sessions with a braille
device.

[ Tests ]
This was tested manually.

[ Risks ]
The code is very trivial and upstreamed.

[ 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 ]
brltty already had everything to get output corrected routed by making
orca determine which VT number it is running on:

          chosen = -1
          for (i = 0; i < nsessions; i++) {
            if (/*...*/) {
                /*...*/
                chosen = i;
            }
          }

but there was a typo:

          if (chosen >= 0) sd_session_get_vt(sessions[i], &vtnr);

instead of using the 'chosen' variable computed in the loop, it used
'i', which is the iterator of the loop, thus an erroneous value which
fails to get the vtnr.

Samuel
diff -Nru brltty-6.7/debian/changelog brltty-6.7/debian/changelog
--- brltty-6.7/debian/changelog 2025-09-10 23:44:02.000000000 +0200
+++ brltty-6.7/debian/changelog 2026-01-21 19:00:18.000000000 +0100
@@ -1,3 +1,9 @@
+brltty (6.7-3.1+deb13u3) trixie; urgency=medium
+
+  * patches/systemd-vtnr: Fix getting vtnr from systemd.
+
+ -- Samuel Thibault <[email protected]>  Wed, 21 Jan 2026 19:00:18 +0100
+
 brltty (6.7-3.1+deb13u2) trixie; urgency=medium
 
   * patches/noverbose-bluetooth: Avoid verbose bluetooth spam.
diff -Nru brltty-6.7/debian/patches/series brltty-6.7/debian/patches/series
--- brltty-6.7/debian/patches/series    2025-09-10 23:44:02.000000000 +0200
+++ brltty-6.7/debian/patches/series    2026-01-21 19:00:18.000000000 +0100
@@ -7,3 +7,4 @@
 git-notext-noread
 noverbose-bluetooth
 noverbose-usbfs
+systemd-vtnr
diff -Nru brltty-6.7/debian/patches/systemd-vtnr 
brltty-6.7/debian/patches/systemd-vtnr
--- brltty-6.7/debian/patches/systemd-vtnr      1970-01-01 01:00:00.000000000 
+0100
+++ brltty-6.7/debian/patches/systemd-vtnr      2026-01-21 18:59:57.000000000 
+0100
@@ -0,0 +1,24 @@
+Forwarded: https://github.com/brltty/brltty/pull/512
+
+commit 609d32ffe404acb612e2d98bb84a0c09f0e6ab75
+Author: Samuel Thibault <[email protected]>
+Date:   Mon Jan 12 20:36:30 2026 +0100
+
+    brlapi: Fix taking the VT number from the chosen session
+    
+    The loop above was meant to decide which session to take the VT number
+    from.
+
+diff --git a/Programs/brlapi_client.c b/Programs/brlapi_client.c
+index f0fe04335..2f93ae8c8 100644
+--- a/Programs/brlapi_client.c
++++ b/Programs/brlapi_client.c
+@@ -1806,7 +1806,7 @@ int BRLAPI_STDCALL 
brlapi__enterTtyModeWithPath(brlapi_handle_t *handle, const i
+           }
+         }
+ 
+-        if (chosen >= 0) sd_session_get_vt(sessions[i], &vtnr);
++        if (chosen >= 0) sd_session_get_vt(sessions[chosen], &vtnr);
+ 
+         for (i = 0; i < nsessions; i++) free(sessions[i]);
+         free(sessions);

Reply via email to