After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 550717 - orca-brld-patch - enable orca to use brld for brl-output
orca-brld-patch - enable orca to use brld for brl-output
Status: RESOLVED WONTFIX
Product: orca
Classification: Applications
Component: braille
unspecified
Other Linux
: Normal enhancement
: FUTURE
Assigned To: Orca Maintainers
Orca Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-09-03 18:44 UTC by Marco Skambraks
Modified: 2009-11-06 14:38 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
orca-brld-patch to enable brld support in orca (38.71 KB, patch)
2008-09-03 18:49 UTC, Marco Skambraks
none Details | Review

Description Marco Skambraks 2008-09-03 18:44:30 UTC
currently, orca only supports the brlapi
the old version and python-brlapi
several suse-blinux users ask for brld support in orca - I created a patch that replaces the old brltty API with the brld API
so, that means the patch will not disable python-brlapi support, but replace the old brltty API with a brld interface
the python code is almost the same as in the original orca
I only aded attribute-support and i completely replaced the C code
of the old brlapi
in the next opensuse this patch will be included by default
I hope it's possible to integrate it - the user should decide which braille-server should be used
Comment 1 Marco Skambraks 2008-09-03 18:49:29 UTC
Created attachment 117953 [details] [review]
orca-brld-patch to enable brld support in orca
Comment 2 Henning Oschwald 2008-09-03 19:38:04 UTC
Since I am using Suse-Blinux all the time I would really appreciate SBL support in Orca.

  Henning
Comment 3 Halim Sahin 2008-09-03 19:54:48 UTC
I am another sbl user and would also like to see brld support in orca.
Comment 4 Willie Walker 2008-09-03 21:33:57 UTC
Thanks for the patch!

The main issue with this patch is that it eliminates support for anyone using BrlTTY prior to the version where BrlAPI provided Python bindings.  I believe this is BrlTTY 3.7.2.  I did a poll this summer for people wanting to stick with that, and the answer was that they didn't want us to rip it out for GNOME 2.24.

We can, however, consider this for Orca for GNOME 2.26.  Given that you mention "the next opensuse this patch will be included by default", and that Henning and Halim are SUSE-BLinux users, I'm guessing they will automatically get this functionality via SUSE.  As such, at least there is an interim solution until we get to GNOME 2.26 next spring.

For specific comments on the patch, I see a number of hardcoded suse paths that probably need to be cleaned up:

+#define MYLiB "/usr/lib/suse-blinux/lib/libsbl-fhp.so.1"

+  libbrld = dlopen ("libbrld.so.1", RTLD_LAZY);
+
+  if (libbrld == NULL)
+    libbrld = dlopen ("/usr/local/lib/libbrld.so.1", RTLD_LAZY);
+
+  if (libbrld == NULL)
+    libbrld = dlopen ("/tmp/suse-blinux/libbrld.so.1", RTLD_LAZY);

+  if (!conf)
+    confread ("/etc/suse-blinux.conf");
+  else
+    confread (conf);

+void getkeymap (sbl_config sblconf, char *profname, char *homedir)
+{
+  char str[120];
+
+  sprintf (str, "%s/.suse-blinux/keymap/%s.map.%s", homedir, sblconf.brlname,
+           profname);
+  if (!confread (str))
+   {
+     sprintf (str, "%s/.suse-blinux/keymap/%s.map", homedir, sblconf.brlname);
+     if (!confread (str))
+      {
+        sprintf (str, "%s/keymap/%s.map.%s", sblconf.progpath,
+                 sblconf.brlname, profname);
+        if (!confread (str))
+         {
+           sprintf (str, "%s/keymap/%s.map", sblconf.progpath,
+                    sblconf.brlname);
+           confread (str);
+         }
+      }
+   }
Comment 5 Halim Sahin 2008-09-03 21:43:22 UTC
Will, 
Sbl is part of suse-blinux but I am not using suse any more.
So it will be nice to have this patchin orca.
Build sbl under gentoo or debian is easy but patching and building orca every time takes long time!
Comment 6 Henning Oschwald 2008-09-04 07:39:08 UTC
Thank you Will for considdering to include the patch. I don't use Suse as well, I'm using Debian and Gentoo. I use Orca trunk on all my boxes, so it's no problem for me to apply the patch manually until it gets included, although i'ld love if I could use braille in Orca without needing to patch the sources.

thanks

  Henning
Comment 7 Marco Skambraks 2008-09-04 23:21:21 UTC
Will, thanks for your reply
it should not be a problem to optimize the code and remove the hardcoded strings
I'll try to cleanup the patch during the next two weeks
Comment 8 Hermann 2008-09-15 18:39:40 UTC
I use the latest Orca, Brltty 3.11dev and Gutsy:
Supposed I've understood everything right, there is no more need to 
uninstall python-brlapi in order to use Orca with SBL. I tried it this 
afternoon without success.
I aplied the patch to the Orca source and recompiled it. Before doing this 
I made sure that SBL is running on my laptop, which was successfull.
When I start Orca after having started SBL, i have no braille. Brltty 
continues to work with Orca.
Did I miss something?
Comment 9 Marco Skambraks 2008-09-15 19:01:46 UTC
Hermann, if you have both installed brltty and sbl
you have to remove the brlapi bindings first, because orca will look first for the python brlapi
if this API is not installed orca will fallback to the old API
Comment 10 Hermann 2008-09-16 08:26:53 UTC
I uninstalled python-orca-brlapi, which seems to be the package instead of 
python-brlapi, and I recompiled brltty without the python bindings: No 
chance to make SBL work.
There are also two libraries installed, libbrlapi1 and libbrlapi1-dev, which 
I didn't uninstall.
It seems there's a solid mariage between Orca and Brltty, :-( and 
breaking it may leave me with a screwed up system.
So I quit it until there's an easier solution one fine day. :-)
Comment 11 Hermann 2008-09-17 09:19:19 UTC
Finally I managed to solve this, and it turned out to be simpler than I've 
thought:
If one renames/moves brlapi.so in
/usr/lib/python2.5/site-packages
and then starts SBL's braille daemon and Orca, the braille daemon is 
handling the braille output.
Note: The brlapi.so may live in a different directory, so check out where 
it is.
Comment 12 Simon Bienlein 2008-09-18 15:56:13 UTC
Hi everyone,

I support the integration of the SBL patch. It would be good if orca could be operated with SBL as well.

Simon
Comment 13 Willie Walker 2008-09-18 16:27:25 UTC
Can someone provide a pointer to the SBL documentation as well as brld?  I'd like to learn more about the differences between these and BrlTTY and why BrlTTY is not a desired solution.
Comment 14 Halim Sahin 2008-10-07 16:36:51 UTC
Brltty is not a desired solution because it doesn't offer important functions on textconsole,
Wich sbl does!
1. hardcoded keybindings in brltty. I can define my own Keybindings in sbl
2. limited speech-support (only usable with brailledisplay and not with keyboard /speech only) Sbl supports this.
3. no application based profiles Sbl is able to load application based profiles automatically. 
4. Brlltty supports only systemcursor. Sbl supports also softcursor/collorcursor tracking in complex applications like mc.

Brld is only a brailleserver and does not need sbl running.
Brlapi is not an standalone brailleserver. So you have to use /run brltty. 
Comment 15 Marco Skambraks 2008-10-07 23:43:37 UTC
Willi, you can find additional information about brld/sbl here:
http://en.opensuse.org/SUSE_Blinux
unfortunatelly, the docs need an update
the list of suported hardware (braille) and speech is not complete

if you want more technical information look at:
http://download.opensuse.org/repositories/home:/marco
the sbl package contains some additional information

Halim, thanks for the nice brld/sbl overview
Comment 16 Vincent Untz 2009-01-22 22:15:01 UTC
Info was provided :-)
Comment 17 Willie Walker 2009-05-06 13:33:56 UTC
BrlTTY currently remains the only supported braille solution for Orca.

For GNOME 2.27.x, the Orca brl module for BrlAPI has been removed in favor of talking directly to BrlAPI's python bindings.  This was necessary to simplify the code and to enable other features people have been requesting.  As a result of this, the brld patch supplied is no longer compatible with the Orca code base.

IMO, the supplied patch was also kind of a quick fix in that it basically just replaced the 3.7.2 BrlTTY support with brld support.  This would have made it incompatible with any system that still shipped the BrlTTY 3.7.2 and was thus somewhat a questionable patch.

A more common way to solve the problem where two similar systems are available (e.g., BrlTTY and brld) is to create a layer that provides a single API.  If you create a patch that is compatible with both BrlTTY and brld, I will happily review it.
Comment 18 Willie Walker 2009-11-06 14:38:44 UTC
I'm going to close this as WONTFIX with the position that Orca currently supports brlapi and the brld project should provide a brlapi compatibility layer.  Sorry.  :-(