GNOME Bugzilla – Bug 550717
orca-brld-patch - enable orca to use brld for brl-output
Last modified: 2009-11-06 14:38:44 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
Created attachment 117953 [details] [review] orca-brld-patch to enable brld support in orca
Since I am using Suse-Blinux all the time I would really appreciate SBL support in Orca. Henning
I am another sbl user and would also like to see brld support in orca.
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); + } + } + }
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!
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
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
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?
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
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. :-)
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.
Hi everyone, I support the integration of the SBL patch. It would be good if orca could be operated with SBL as well. Simon
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.
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.
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
Info was provided :-)
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.
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. :-(