diff --git a/orca-2.30.1.tar.bz2 b/orca-2.30.1.tar.bz2 deleted file mode 100644 index 9335f4e..0000000 --- a/orca-2.30.1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0493e0fb7a9b3e65ee0c349751d5295020aa25277a8b0545710317a1add2645b -size 2265634 diff --git a/orca-2.31.6.tar.bz2 b/orca-2.31.6.tar.bz2 new file mode 100644 index 0000000..d0ef301 --- /dev/null +++ b/orca-2.31.6.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:594c63e044339b7fa70be0925d0c23b68574ddb504836a294d770385f29ccbe6 +size 2395277 diff --git a/orca-bgo550717-brld.patch b/orca-bgo550717-brld.patch deleted file mode 100644 index 12673db..0000000 --- a/orca-bgo550717-brld.patch +++ /dev/null @@ -1,1301 +0,0 @@ -diff -ruN orca-2.22.1/src/brl/brl.h orca-brld/src/brl/brl.h ---- orca-2.22.1/src/brl/brl.h 1970-01-01 01:00:00.000000000 +0100 -+++ orca-brld/src/brl/brl.h 2008-07-02 16:58:28.019175000 +0200 -@@ -0,0 +1,125 @@ -+#ifndef _BRL_H -+#define MYLiB "/usr/lib/suse-blinux/lib/libsbl-fhp.so.1" -+#define _BRL_H -+ -+#define MAXNAMELEN 20 -+#define MAXPATHLEN 100 -+#define MAXSCRIPTS 200 -+#define NAMELEN 7 -+ -+/* orca key-bindings */ -+#define ORCA_LNUP 0x01 -+#define ORCA_LNDN 0x02 -+#define ORCA_LNLFT 0x17 -+#define ORCA_LNRGT 0x18 -+#define ORCA_TOPLEFT 0x0b -+#define ORCA_BOTLEFT 0x0c -+#define ORCA_CSRTRK 0x1d -+typedef struct -+{ -+ int brl, kbd; -+} brlkbd; -+ -+/* entries of $SBLDIR/keymap/ */ -+typedef struct -+{ -+ brlkbd resetbrl, line01, topleft, botleft; -+ brlkbd winup, windn, lnlft, lnrgt; -+ brlkbd lnup, lndn, csrtrk, syscsr, softcsr; -+ brlkbd chrlft, chrrgt, hwinlft, hwinrgt, fwinlft; -+ brlkbd fwinrgt, csrjump, csrjmpvert, keyup; -+ brlkbd keydn, keyrgt, keylft, keyenter, keyesc, csrvisoff; -+ brlkbd jmpmark1, jmpmark2, jmpmark3, jmpmark4; -+ brlkbd attr1, attr2, attr3, attr4; -+ brlkbd csrtrkoff, prof1, prof2, prof3, prof4; -+ brlkbd attroff, attrmodonoff, sixdotsonoff, csrblinkonoff; -+ brlkbd csrblockonoff, cutbegin, cutend, paste; -+ brlkbd spktocsr, spkfromcsr; -+ brlkbd spkmod, spkoff; -+ brlkbd spkcurln, spkscrtocsr, spkscrfromcsr; -+ brlkbd nextlang, prevlang; -+ brlkbd nextfrq, prevfrq; -+ brlkbd nextspd, prevspd; -+ brlkbd nextvol, prevvol; -+ brlkbd nextvoice, prevvoice; -+ brlkbd nextspec, prevspec; -+ brlkbd spkcharmod; -+ brlkbd kbdsniffon1, kbdsniffon2, kbdsniffoff; -+ brlkbd soundonoff, loadkeymap, autoprofonoff; -+ brlkbd setmark, jmptomark; -+ int lineroutend, lineroutbeg, csrroutend, csrroutbeg; -+ brlkbd scripts[MAXSCRIPTS]; -+ char scriptnames[MAXSCRIPTS][MAXNAMELEN]; -+} -+keymap_file; -+ -+/* entries of /etc/suse-blinux.conf */ -+typedef struct -+{ -+ char brlname[MAXNAMELEN]; -+ char brld_auth_key[MAXNAMELEN]; -+ char brld_host[MAXNAMELEN]; -+ int brld_port; -+ char brlport[MAXNAMELEN]; -+ char spkname[MAXNAMELEN]; -+ char spkport[MAXNAMELEN]; -+ int keydelay, repeatdelay, profdelay, sleep; -+ int debug; -+ char brltbl[MAXNAMELEN]; -+ char profile1[MAXNAMELEN]; -+ char profile2[MAXNAMELEN]; -+ char profile3[MAXNAMELEN]; -+ char profile4[MAXNAMELEN]; -+ char progpath[MAXPATHLEN]; -+} sbl_config; -+ -+/* info structure for brailledisplays */ -+struct brlinfo -+{ -+ char name[50]; -+ char fullname[80]; -+ int cols; -+ int st_cells; -+ int offvert; -+ int offhor; -+ int baud; -+}; -+ -+/* Braille information structure */ -+typedef struct -+{ -+ int brl_fd; -+ unsigned char *disp; /* display contents - allocted by the driver */ -+ int x, y; /* size of display */ -+} -+brldim; /* used for writing to a braille display */ -+ -+/* only for libs */ -+typedef struct -+{ -+ char *identifier; /* name of driver */ -+/* Routines provided by the braille driver library: */ -+ void (*setxtty) (int tty); -+ void (*setlock) (int lock); -+ int (*getxtty) (); -+ int (*getlock) (); -+ struct brlinfo (*identify) (const char *, const char *); /* print start-up messages */ -+ void (*debug) (unsigned int dbg); /* set driver debuging */ -+ void (*initialize) (brldim *, const char *); /* initialise Braille display */ -+ void (*close) (brldim *); /* close braille display */ -+ void (*write) (brldim *); /* write to braille display */ -+ int (*read) (int *); /* get key press from braille display */ -+ void (*setstatus) (const unsigned char *); /* set status cells */ -+ -+} -+braille_driver; -+ -+/* function to load the sbl configuartion files */ -+void getsblconf (sbl_config * sblconf, char *conf); -+brlkbd keytrans (char *); -+void getkeymap (sbl_config sblconf, char *profname, char *homedir); -+ -+/* helper function to parse the config files */ -+int confread (char *realname); -+char *confsearch (char *serchstring); -+#endif -diff -ruN orca-2.22.1/src/brl/brlmodule.c orca-brld/src/brl/brlmodule.c ---- orca-2.22.1/src/brl/brlmodule.c 2008-03-08 13:27:36.000000000 +0100 -+++ orca-brld/src/brl/brlmodule.c 2008-07-02 16:58:28.033159000 +0200 -@@ -19,33 +19,33 @@ - * Boston, MA 02111-1307, USA. - * - */ -+ - #include - #include - #include - #include - #include -+#include -+#include "brl.h" -+#include "libbrld.h" - -+/* global variables - config stuff */ -+static sbl_config sblconf; -+static char varvec[200][150]; -+static keymap_file keymap; - --/* BrlAPI function pointers - these map directly to BrlAPI 3.6.2 methods. -- */ --static int (*brlapi_initializeConnection)(const void *clientSettings, -- const void *usedSettings); --static void (*brlapi_closeConnection)(void); -- --static int (*brlapi_getDriverId)(unsigned char *id, unsigned int n); --static int (*brlapi_getDriverName)(unsigned char *name, unsigned int n); --static int (*brlapi_getDisplaySize)(unsigned int *x, unsigned int *y); -+static brld_interface *brld = NULL; /* filled by dynamic libbrld */ - --static int (*brlapi_getTty) (int tty, int how); --static int (*brlapi_leaveTty) (void); -+static void *libbrld = NULL; /* handle to driver */ - --static int (*brlapi_writeText) (int cursor, const unsigned char *str); --static int (*brlapi_writeDots) (const unsigned char *dots); -+static int csrvis = 1, csr_form = 1; -+static int old_csr = 0; -+static char old_text[100] = "", old_attr[100]=""; - --static int (*brlapi_readKey) (int block, unsigned int *code); -+#define BRL_SYMBOL "brld" - - /* A non-zero value indicates this module has been initialized and is -- * ready for communication with BrlTTY. -+ * ready for communication with brld. - */ - static long brl_initialized = 0; - -@@ -55,39 +55,109 @@ - static PyObject *brl_callback = NULL; - - /* The g_io_add_watch (see glib docs) that keeps track of input events -- * coming from BrlTTY. -+ * coming from brld. - */ --static gboolean brlapi_io_cb(GIOChannel *ch, -- GIOCondition condition, -- void *data) { -- -- unsigned int keypress; -- PyObject *result; -- PyObject *args; -- PyGILState_STATE gstate; -- -- while (brlapi_readKey(0, &keypress) == 1) { -- if (!brl_callback) { -- break; -- } -- args = Py_BuildValue("(i)", keypress); -- gstate = PyGILState_Ensure(); -- result = PyObject_CallObject(brl_callback, args); -- if (result != NULL) { -- Py_DECREF(result); -- } else { -- PyErr_Print(); -- } -- PyGILState_Release(gstate); -- Py_DECREF(args); -- } -- return TRUE; -+static gboolean brl_sbl_io_cb (GIOChannel * ch, -+ GIOCondition condition, void *data) -+{ -+ -+ int key, pressed; -+ static int lastkey = 0; -+ PyObject *result; -+ PyObject *args; -+ PyGILState_STATE gstate; -+ -+/* do this to avoid compiler warnings */ -+ if (ch && condition && data) -+ usleep (1); -+ -+ key = brld->getkey (&pressed); -+ { -+ if (key && !csrvis) -+ { -+ csrvis = 1; -+ brld->write (old_csr - 1, old_text, old_attr); -+ } -+ -+ if (pressed && lastkey >= 1000) -+ lastkey = 0; -+ -+ if (!lastkey && pressed) -+ lastkey = key; -+ else -+ lastkey = (lastkey * 1000) + key; -+ if (!brl_callback) -+ { -+/* break;*/ -+ } -+ if (lastkey == keymap.lnup.brl) -+ key = ORCA_LNUP; -+ else if (lastkey == keymap.lndn.brl) -+ key = ORCA_LNDN; -+ else if (lastkey == keymap.lnlft.brl) -+ key = ORCA_LNLFT; -+ else if (lastkey == keymap.lnrgt.brl) -+ key = ORCA_LNRGT; -+ else if (lastkey == keymap.topleft.brl) -+ key = ORCA_TOPLEFT; -+ else if (lastkey == keymap.botleft.brl) -+ key = ORCA_BOTLEFT; -+ else if (lastkey == keymap.csrtrk.brl) -+ key = ORCA_CSRTRK; -+ else if (lastkey == keymap.csrvisoff.brl) -+ { -+ csrvis = 0; -+ brld->write (-1, old_text, old_attr); -+ key = 0; -+ } -+ else if (lastkey == keymap.csrblockonoff.brl) -+ { -+ if (csr_form) -+ csr_form = 0; -+ else -+ csr_form = 1; -+ brld->cursor (csr_form); -+ brld->write (csrvis ? (old_csr - 1) : -1, old_text, old_attr); -+ key = 0; -+ } -+ else if (lastkey >= keymap.csrroutbeg && lastkey <= keymap.csrroutend) -+ { -+ if (pressed) -+ key = (lastkey - keymap.csrroutbeg) + 0x100; -+ -+ lastkey = 0; -+ } -+ else -+ key = 0; -+ -+ if (!pressed) -+ { -+ lastkey = 0; -+ } -+ -+ pressed = 0; -+ -+ args = Py_BuildValue ("(i)", key); -+ -+ gstate = PyGILState_Ensure (); -+ result = PyObject_CallObject (brl_callback, args); -+ if (result != NULL) -+ { -+ Py_DECREF (result); -+ } -+ else -+ { -+ PyErr_Print (); -+ } -+ PyGILState_Release (gstate); -+ Py_DECREF (args); -+ } -+ return TRUE; - } - -- - /* Initializes the brl module, connecting to BrlTTY. Returns 0 on failure or - * 1 on success. The first argument is optional and indicated the tty to -- * open. The default value for this argument is -1, which means to let BrlTTY -+ * open. The default value for this argument is -1, which means to let brld - * use its default logic. A typical value might be 7 which is usually what - * the CONTROLVT should be set to for a console running the X11 server. The - * second argument is also optional and is to be passed to brlapi_getTty and -@@ -95,316 +165,529 @@ - * BrlTTY commands (BRLCOMMANDS=0). The default value is to give us - * BRLCOMMANDS. - */ --static PyObject *brl_module_init(PyObject *self, -- PyObject *args) { -- int tty = -1; -- int how = 0; /* BRLCOMMANDS */ -- int ttyNum; -- -- void *brlapi_library; -- int brlapi_fd; -- GIOChannel *brlapi_channel; -- -- if (brl_initialized) { -- PyErr_SetString(PyExc_StandardError, "Already initialized"); -- return NULL; -- } -- -- if (!PyArg_ParseTuple (args, "|ii:init", &tty, &how)) -- return NULL; -- -- /* Open the brlapi library -- */ -- brlapi_library = dlopen("libbrlapi.so", RTLD_LAZY); -- if (!brlapi_library) { -- PyErr_SetString( -- PyExc_StandardError, -- "Failed to load libbrlapi.so"); -- return NULL; -- } -- -- /* Load the functions */ -- -- brlapi_initializeConnection = -- (int (*)(const void *, const void *)) dlsym(brlapi_library, -- "brlapi_initializeConnection"); -- if (!brlapi_initializeConnection) { -- PyErr_SetString( -- PyExc_StandardError, -- "Failed to find brlapi_initializeConnection in BrlTTY"); -- return NULL; -- } -- -- brlapi_closeConnection = -- (void (*)(void)) dlsym(brlapi_library, -- "brlapi_closeConnection"); -- if (!brlapi_closeConnection) { -- PyErr_SetString( -- PyExc_StandardError, -- "Failed to find brlapi_closeConnection in BrlTTY"); -- return NULL; -- } -- -- brlapi_getDriverId = -- (int (*)(unsigned char *, unsigned int)) dlsym(brlapi_library, -- "brlapi_getDriverId"); -- if (!brlapi_getDriverId) { -- PyErr_SetString( -- PyExc_StandardError, -- "Failed to find brlapi_getDriverId in BrlTTY"); -- return NULL; -- } -- -- brlapi_getDriverName = -- (int (*)(unsigned char *, unsigned int)) dlsym(brlapi_library, -- "brlapi_getDriverName"); -- if (!brlapi_getDriverName) { -- PyErr_SetString( -- PyExc_StandardError, -- "Failed to find brlapi_getDriverName in BrlTTY"); -- return NULL; -- } -- -- brlapi_getDisplaySize = -- (int (*)(unsigned int *, unsigned int *)) dlsym(brlapi_library, -- "brlapi_getDisplaySize"); -- if (!brlapi_getDisplaySize) { -- PyErr_SetString( -- PyExc_StandardError, -- "Failed to find brlapi_getDisplaySize in BrlTTY"); -- return NULL; -- } -- -- brlapi_getTty = -- (int (*) (int tty, int how)) dlsym(brlapi_library, -- "brlapi_getTty"); -- if (!brlapi_getTty) { -- PyErr_SetString( -- PyExc_StandardError, -- "Failed to find brlapi_getTty in BrlTTY"); -- return NULL; -- } -- -- brlapi_leaveTty = -- (int (*) (void)) dlsym(brlapi_library, -- "brlapi_leaveTty"); -- if (!brlapi_leaveTty) { -- PyErr_SetString( -- PyExc_StandardError, -- "Failed to find brlapi_leaveTty in BrlTTY"); -- return NULL; -- } -- -- brlapi_writeText = -- (int (*) (int, const unsigned char *)) dlsym(brlapi_library, -- "brlapi_writeText"); -- if (!brlapi_writeText) { -- PyErr_SetString( -- PyExc_StandardError, -- "Failed to find brlapi_writeText in BrlTTY"); -- return NULL; -- } -- -- brlapi_writeDots = -- (int (*) (const unsigned char *)) dlsym(brlapi_library, -- "brlapi_writeDots"); -- if (!brlapi_writeDots) { -- PyErr_SetString( -- PyExc_StandardError, -- "Failed to find brlapi_writeDots in BrlTTY"); -- return NULL; -- } -- -- brlapi_readKey = -- (int (*) (int, unsigned int *)) dlsym(brlapi_library, -- "brlapi_readKey"); -- if (!brlapi_readKey) { -- PyErr_SetString( -- PyExc_StandardError, -- "Failed to find brlapi_readKey in BrlTTY"); -- return NULL; -- } -- -- /* Connect to BrlTTY -- */ -- brlapi_fd = brlapi_initializeConnection(NULL, NULL); -- if (brlapi_fd >= 0) { -- /* Take over the owning tty. -- */ -- ttyNum = brlapi_getTty(tty, -- 0); /* HOW = give me BRLCOMMANDS */ -- if (ttyNum == -1) { -- PyErr_SetString( -- PyExc_StandardError, -- "Failed on call to brlapi_getTty in BrlTTY"); -- return NULL; -- } -- -- /* Setup the GIOChannel to receive notifications of Braille -- * key events -- */ -- brlapi_channel = g_io_channel_unix_new(brlapi_fd); -- g_io_add_watch(brlapi_channel, -- G_IO_IN, -- brlapi_io_cb, -- NULL); -- brl_initialized = 1; -- return PyInt_FromLong(brl_initialized); -- } else { -- PyErr_SetString( -- PyExc_StandardError, -- "Failed on call to brlapi_initializeConnection in BrlTTY"); -- return NULL; -- } --} -- -- --static PyObject *brl_module_shutdown(PyObject *self) { -- if (brl_initialized) { -- /* [[[TODO: WDW - clean up the g_io_channel here? Logged -- * as bugzilla bug 319649.]]] -- */ -- brlapi_leaveTty(); -- brlapi_closeConnection(); -- } -- brl_initialized = 0; -- return PyInt_FromLong(1); --} -- -- --static PyObject *brl_module_getDriverId (PyObject *self) { -- unsigned char id[3]; -- -- if (!brl_initialized) { -- Py_INCREF (Py_None); -- return Py_None; -- } -- -- if (brlapi_getDriverId(id, sizeof(id)) >= 0) { -- return PyString_FromString((const char *) id); -- } else { -- Py_INCREF (Py_None); -- return Py_None; -- } -- -- return Py_None; --} -- -- --static PyObject *brl_module_getDriverName(PyObject *self) { -- unsigned char name[80]; -- -- if (!brl_initialized) { -- Py_INCREF(Py_None); -- return Py_None; -- } -- -- if (brlapi_getDriverName(name, sizeof(name)) >= 0) { -- return PyString_FromString((const char *) name); -- } else { -- Py_INCREF (Py_None); -- return Py_None; -- } -- -- return Py_None; --} -- -- --static PyObject *brl_module_getDisplayWidth(PyObject *self) { -- unsigned int x, y; -- -- if (!brl_initialized) { -- return PyInt_FromLong(0); -- } -- -- brlapi_getDisplaySize(&x, &y); -- return PyInt_FromLong(x); --} -- -- --static PyObject *brl_module_getDisplayHeight(PyObject *self) { -- unsigned int x, y; -- -- if (!brl_initialized) { -- return PyInt_FromLong(0); -- } -- -- brlapi_getDisplaySize(&x, &y); -- return PyInt_FromLong(y); --} -- -- --static PyObject *brl_module_writeText(PyObject *self, -- PyObject *args) { -- int cursor; -- char *str; -- -- if (!PyArg_ParseTuple(args, "is:writeText", &cursor, &str)) { -- return NULL; -- } -- -- if (brl_initialized) { -- brlapi_writeText(cursor, (const unsigned char *) str); -- } -- -- Py_INCREF(Py_None); -- return Py_None; --} -- -- --static PyObject *brl_module_writeDots(PyObject *self, -- PyObject *args) { -- char *str; -- -- if (!PyArg_ParseTuple(args, "s:writeText", &str)) { -- return NULL; -- } -- -- if (brl_initialized) { -- brlapi_writeDots((const unsigned char *) str); -- } -- Py_INCREF(Py_None); -- return Py_None; --} -- -- --static PyObject *brl_module_registerCallback(PyObject *self, -- PyObject *args) { -- if (brl_callback) { -- Py_DECREF (brl_callback); -- } -- if (brl_initialized) { -- brl_callback = PyTuple_GetItem(args, 0); -- Py_INCREF(brl_callback); -- } -- Py_INCREF(Py_None); -- return Py_None; --} -- -- --static PyObject *brl_module_unregisterCallback(PyObject *self) { -- if (brl_callback) -- Py_DECREF(brl_callback); -- brl_callback = NULL; -- Py_INCREF(Py_None); -- return Py_None; -+static PyObject *brl_module_init (PyObject * self, PyObject * args) -+{ -+ int tty = -1; -+ int how = 0; /* BRLCOMMANDS */ -+ -+ GIOChannel *brl_channel; -+ -+ fprintf (stderr, "try to init brl\n"); -+/* just to avoid compiler warnings */ -+ if (self) -+ usleep (1); -+ if (brl_initialized) -+ { -+ PyErr_SetString (PyExc_StandardError, "Already initialized"); -+ return NULL; -+ } -+ -+ if (!PyArg_ParseTuple (args, "|ii:init", &tty, &how)) -+ return NULL; -+ -+ const char *error = NULL; -+ int sock_fd = 0; -+ -+ getsblconf (&sblconf, NULL); -+ -+ if (libbrld) -+ dlclose (libbrld); -+ -+ 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 (libbrld == NULL) -+ { -+ fprintf (stderr, "error: can't load libbrld.so.1\n"); -+ return 0; -+ } -+ -+ brld = (brld_interface *) dlsym (libbrld, BRL_SYMBOL); -+ -+ error = dlerror (); -+ -+ if (error) -+ { -+ fprintf (stderr, "%s\n", error); -+ return 0; -+ } -+ fprintf (stderr, "try to open brld-conn\n"); -+ if ((sock_fd = brld->open ("localhost", 8888)) < 0) -+ { -+ fprintf (stderr, "error: connecting brld\n"); -+ return 0; -+ } -+ -+ fprintf (stderr, "try to reg to brld\n"); -+ if (brld->reg (X11, "default")) -+ { -+ fprintf (stderr, "error: brld registration failed\n"); -+ brld->close (); -+ return 0; -+ } -+ -+ brld->getalias (sblconf.brlname); -+ -+/* set event mode to get SIGIO*/ -+ brld->seteventmode (); -+ -+ /* set translation-table to text */ -+ brld->texttbl (); -+ -+ /* set block-cursor */ -+ brld->cursor (csr_form); -+ -+ getkeymap (sblconf, NULL, NULL); -+ /* Setup the GIOChannel to receive notifications of Braille key events */ -+ brl_channel = g_io_channel_unix_new (sock_fd); -+ g_io_add_watch (brl_channel, G_IO_IN, brl_sbl_io_cb, NULL); -+ brl_initialized = 1; -+ return PyInt_FromLong (brl_initialized); -+} -+ -+static PyObject *brl_module_shutdown (PyObject * self) -+{ -+/* just to avoid compiler warnings */ -+ if (self) -+ usleep (1); -+ if (brl_initialized) -+ { -+ brld->close (); -+ } -+ brl_initialized = 0; -+ if (libbrld) -+ dlclose (libbrld); -+ return PyInt_FromLong (1); -+} -+ -+static PyObject *brl_module_getDriverId (PyObject * self) -+{ -+ -+/* just to avoid compiler warnings */ -+ if (self) -+ usleep (1); -+ -+ if (!brl_initialized) -+ { -+ Py_INCREF (Py_None); -+ return Py_None; -+ } -+ -+ return PyString_FromString ((const char *) "sbl"); -+} -+ -+static PyObject *brl_module_getDriverName (PyObject * self) -+{ -+ char name[80]; -+ -+/* just to avoid compiler warnings */ -+ if (self) -+ usleep (1); -+ if (!brl_initialized) -+ { -+ Py_INCREF (Py_None); -+ return Py_None; -+ } -+ -+ brld->getname (name); -+ if (strlen (name) > 0) -+ { -+ return PyString_FromString ((const char *) name); -+ } -+ else -+ { -+ Py_INCREF (Py_None); -+ return Py_None; -+ } -+ -+ return Py_None; -+} -+ -+static PyObject *brl_module_getDisplayWidth (PyObject * self) -+{ -+ -+ int x = 0, y = 0; -+ -+/* just to avoid compiler warnings */ -+ if (self) -+ usleep (1); -+ -+ if (!brl_initialized) -+ { -+ return PyInt_FromLong (0); -+ } -+ -+ brld->getxy (&x, &y); -+ return PyInt_FromLong (x); -+} -+ -+static PyObject *brl_module_getDisplayHeight (PyObject * self) -+{ -+ -+/* just to avoid compiler warnings */ -+ if (self) -+ usleep (1); -+ -+ if (!brl_initialized) -+ { -+ return PyInt_FromLong (0); -+ } -+ -+/* we only support displays with one line */ -+ return PyInt_FromLong (1); -+} -+ -+static PyObject *brl_module_writeText (PyObject * self, PyObject * args) -+{ -+ int cursor; -+ char *str; -+ char *attr; -+ -+/* just to avoid compiler warnings */ -+ if (self) -+ usleep (1); -+ -+ if (!PyArg_ParseTuple (args, "iss:writeText", &cursor, &str, &attr)) -+ { -+ return NULL; -+ } -+ -+ if (brl_initialized) -+ { -+ -+ if (old_csr != cursor || strcmp (old_text, str) || strcmp(old_attr, attr)) -+ { -+ brld->write (csrvis ? (cursor - 1) : -1, str, attr); -+ old_csr = cursor; -+ strcpy (old_text, str); -+ strcpy(old_attr,attr); -+ } -+ } -+ -+ Py_INCREF (Py_None); -+ return Py_None; -+} -+ -+static PyObject *brl_module_writeDots (PyObject * self, PyObject * args) -+{ -+ char *str; -+ -+/* just to avoid compiler warnings */ -+ if (self) -+ usleep (1); -+ -+ if (!PyArg_ParseTuple (args, "s:writeText", &str)) -+ { -+ return NULL; -+ } -+ -+ if (brl_initialized) -+ { -+ brld->write (-1, str, NULL); -+ } -+ Py_INCREF (Py_None); -+ return Py_None; -+} -+ -+static PyObject *brl_module_registerCallback (PyObject * self, -+ PyObject * args) -+{ -+/* just to avoid compiler warnings */ -+ if (self) -+ usleep (1); -+ if (brl_callback) -+ { -+ Py_DECREF (brl_callback); -+ } -+ if (brl_initialized) -+ { -+ brl_callback = PyTuple_GetItem (args, 0); -+ Py_INCREF (brl_callback); -+ } -+ Py_INCREF (Py_None); -+ return Py_None; -+} -+ -+static PyObject *brl_module_unregisterCallback (PyObject * self) -+{ -+/* just to avoid compiler warnings */ -+ if (self) -+ usleep (1); -+ -+ if (brl_callback) -+ { -+ Py_DECREF (brl_callback); -+ } -+ -+ brl_callback = NULL; -+ Py_INCREF (Py_None); -+ return Py_None; - } - -- - static PyMethodDef brl_methods[] = { -- {"init", (PyCFunction) brl_module_init, METH_VARARGS}, -- {"shutdown", (PyCFunction) brl_module_shutdown, METH_NOARGS}, -- {"getDriverId", (PyCFunction) brl_module_getDriverId, METH_NOARGS}, -- {"getDriverName", (PyCFunction) brl_module_getDriverName, METH_NOARGS}, -- {"getDisplayWidth", (PyCFunction) brl_module_getDisplayWidth, METH_NOARGS}, -- {"getDisplayHeight", (PyCFunction) brl_module_getDisplayWidth, METH_NOARGS}, -- {"writeText", (PyCFunction) brl_module_writeText, METH_VARARGS}, -- {"writeDots", (PyCFunction) brl_module_writeDots, METH_VARARGS}, -- {"registerCallback", (PyCFunction) brl_module_registerCallback, METH_VARARGS}, -- {"unregisterCallback", (PyCFunction) brl_module_unregisterCallback, METH_NOARGS}, -- {NULL, NULL} -+ {"init", (PyCFunction) brl_module_init, METH_VARARGS, NULL}, -+ {"shutdown", (PyCFunction) brl_module_shutdown, METH_NOARGS, NULL}, -+ {"getDriverId", (PyCFunction) brl_module_getDriverId, METH_NOARGS, NULL}, -+ {"getDriverName", (PyCFunction) brl_module_getDriverName, METH_NOARGS, -+ NULL}, -+ {"getDisplayWidth", (PyCFunction) brl_module_getDisplayWidth, METH_NOARGS, -+ NULL}, -+ {"getDisplayHeight", (PyCFunction) brl_module_getDisplayHeight, METH_NOARGS, -+ NULL}, -+ {"writeText", (PyCFunction) brl_module_writeText, METH_VARARGS, NULL}, -+ {"writeDots", (PyCFunction) brl_module_writeDots, METH_VARARGS, NULL}, -+ {"registerCallback", (PyCFunction) brl_module_registerCallback, -+ METH_VARARGS, NULL}, -+ {"unregisterCallback", (PyCFunction) brl_module_unregisterCallback, -+ METH_NOARGS, NULL}, -+ {NULL, NULL, 0, NULL} - }; - --void initbrl (void) { -- (void) Py_InitModule ("brl", brl_methods); -+void initbrl (void) -+{ -+ (void) Py_InitModule ("brl", brl_methods); -+} -+ -+/* load sbl configuration files */ -+ -+void getsblconf (sbl_config * sblconf, char *conf) -+{ -+ char str[100]; -+ -+ if (!conf) -+ confread ("/etc/suse-blinux.conf"); -+ else -+ confread (conf); -+ -+ confsearch (strcpy (sblconf->brld_host, "brld_host")); -+ confsearch (strcpy (str, "brld_port")); -+ if (atoi (str)) -+ sblconf->brld_port = atoi (str); -+ else -+ sblconf->brld_port = 8888; -+ -+ confsearch (strcpy (str, "brld_auth_key")); -+ if (str[0] != 0) -+ strcpy (sblconf->brld_auth_key, str); -+ else -+ strcpy (sblconf->brld_auth_key, "default"); -+ -+ confsearch (strcpy (sblconf->progpath, "progpath")); -+} -+ -+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); -+ } -+ } -+ } -+ -+ keymap.kbdsniffon1 = keytrans (confsearch (strcpy (str, "kbdsniffon1"))); -+ keymap.kbdsniffon2 = keytrans (confsearch (strcpy (str, "kbdsniffon2"))); -+ keymap.kbdsniffoff = keytrans (confsearch (strcpy (str, "kbdsniffoff"))); -+ keymap.resetbrl = keytrans (confsearch (strcpy (str, "resetbrl"))); -+ keymap.line01 = keytrans (confsearch (strcpy (str, "line01"))); -+ keymap.topleft = keytrans (confsearch (strcpy (str, "topleft"))); -+ keymap.botleft = keytrans (confsearch (strcpy (str, "botleft"))); -+ keymap.winup = keytrans (confsearch (strcpy (str, "winup"))); -+ keymap.windn = keytrans (confsearch (strcpy (str, "windn"))); -+ keymap.lnlft = keytrans (confsearch (strcpy (str, "lnlft"))); -+ keymap.lnrgt = keytrans (confsearch (strcpy (str, "lnrgt"))); -+ keymap.lnup = keytrans (confsearch (strcpy (str, "lnup"))); -+ keymap.lndn = keytrans (confsearch (strcpy (str, "lndn"))); -+ keymap.csrtrk = keytrans (confsearch (strcpy (str, "csrtrk"))); -+ keymap.syscsr = keytrans (confsearch (strcpy (str, "syscsr"))); -+ keymap.softcsr = keytrans (confsearch (strcpy (str, "softcsr"))); -+ keymap.chrlft = keytrans (confsearch (strcpy (str, "chrlft"))); -+ keymap.chrrgt = keytrans (confsearch (strcpy (str, "chrrgt"))); -+ keymap.hwinlft = keytrans (confsearch (strcpy (str, "hwinlft"))); -+ keymap.hwinrgt = keytrans (confsearch (strcpy (str, "hwinrgt"))); -+ keymap.fwinlft = keytrans (confsearch (strcpy (str, "fwinlft"))); -+ keymap.fwinrgt = keytrans (confsearch (strcpy (str, "fwinrgt"))); -+ keymap.csrjump = keytrans (confsearch (strcpy (str, "csrjump"))); -+ keymap.csrjmpvert = keytrans (confsearch (strcpy (str, "csrjmpvert"))); -+ keymap.keyup = keytrans (confsearch (strcpy (str, "keyup"))); -+ keymap.keydn = keytrans (confsearch (strcpy (str, "keydn"))); -+ keymap.keylft = keytrans (confsearch (strcpy (str, "keylft"))); -+ keymap.keyrgt = keytrans (confsearch (strcpy (str, "keyrgt"))); -+ keymap.keyenter = keytrans (confsearch (strcpy (str, "keyenter"))); -+ keymap.keyesc = keytrans (confsearch (strcpy (str, "keyesc"))); -+ keymap.csrvisoff = keytrans (confsearch (strcpy (str, "csrvisoff"))); -+ keymap.jmpmark1 = keytrans (confsearch (strcpy (str, "jmpmark1"))); -+ keymap.jmpmark2 = keytrans (confsearch (strcpy (str, "jmpmark2"))); -+ keymap.jmpmark3 = keytrans (confsearch (strcpy (str, "jmpmark3"))); -+ keymap.jmpmark4 = keytrans (confsearch (strcpy (str, "jmpmark4"))); -+ keymap.setmark = keytrans (confsearch (strcpy (str, "setmark"))); -+ keymap.jmptomark = keytrans (confsearch (strcpy (str, "jmptomark"))); -+ keymap.attr1 = keytrans (confsearch (strcpy (str, "attr1"))); -+ keymap.attr2 = keytrans (confsearch (strcpy (str, "attr2"))); -+ keymap.attr3 = keytrans (confsearch (strcpy (str, "attr3"))); -+ keymap.attr4 = keytrans (confsearch (strcpy (str, "attr4"))); -+ keymap.csrtrkoff = keytrans (confsearch (strcpy (str, "csrtrkoff"))); -+ keymap.prof1 = keytrans (confsearch (strcpy (str, "prof1"))); -+ keymap.prof2 = keytrans (confsearch (strcpy (str, "prof2"))); -+ keymap.prof3 = keytrans (confsearch (strcpy (str, "prof3"))); -+ keymap.prof4 = keytrans (confsearch (strcpy (str, "prof4"))); -+ keymap.attroff = keytrans (confsearch (strcpy (str, "attroff"))); -+ keymap.attrmodonoff = keytrans (confsearch (strcpy (str, "attrmodonoff"))); -+ keymap.sixdotsonoff = keytrans (confsearch (strcpy (str, "sixdotsonoff"))); -+ keymap.csrblinkonoff = -+ keytrans (confsearch (strcpy (str, "csrblinkonoff"))); -+ keymap.csrblockonoff = -+ keytrans (confsearch (strcpy (str, "csrblockonoff"))); -+ keymap.cutbegin = keytrans (confsearch (strcpy (str, "cutbegin"))); -+ keymap.cutend = keytrans (confsearch (strcpy (str, "cutend"))); -+ keymap.loadkeymap = keytrans (confsearch (strcpy (str, "loadkeymap"))); -+ keymap.paste = keytrans (confsearch (strcpy (str, "paste"))); -+ keymap.soundonoff = keytrans (confsearch (strcpy (str, "soundonoff"))); -+ keymap.autoprofonoff = -+ keytrans (confsearch (strcpy (str, "autoprofonoff"))); -+ keymap.spktocsr = keytrans (confsearch (strcpy (str, "spktocsr"))); -+ keymap.spkcurln = keytrans (confsearch (strcpy (str, "spkcurln"))); -+ keymap.spkscrtocsr = keytrans (confsearch (strcpy (str, "spkscrtocsr"))); -+ keymap.spkscrfromcsr = -+ keytrans (confsearch (strcpy (str, "spkscrfromcsr"))); -+ keymap.spkfromcsr = keytrans (confsearch (strcpy (str, "spkfromcsr"))); -+ keymap.spkmod = keytrans (confsearch (strcpy (str, "spkmod"))); -+ keymap.spkoff = keytrans (confsearch (strcpy (str, "spkoff"))); -+ keymap.nextlang = keytrans (confsearch (strcpy (str, "nextlang"))); -+ keymap.nextvol = keytrans (confsearch (strcpy (str, "nextvol"))); -+ keymap.nextvoice = keytrans (confsearch (strcpy (str, "nextvoice"))); -+ keymap.nextspec = keytrans (confsearch (strcpy (str, "nextspec"))); -+ keymap.nextfrq = keytrans (confsearch (strcpy (str, "nextfrq"))); -+ keymap.nextspd = keytrans (confsearch (strcpy (str, "nextspd"))); -+ keymap.prevlang = keytrans (confsearch (strcpy (str, "prevlang"))); -+ keymap.prevvol = keytrans (confsearch (strcpy (str, "prevvol"))); -+ keymap.prevvoice = keytrans (confsearch (strcpy (str, "prevvoice"))); -+ keymap.prevspec = keytrans (confsearch (strcpy (str, "prevspec"))); -+ keymap.prevfrq = keytrans (confsearch (strcpy (str, "prevfrq"))); -+ keymap.prevspd = keytrans (confsearch (strcpy (str, "prevspd"))); -+ keymap.spkcharmod = keytrans (confsearch (strcpy (str, "spkcharmod"))); -+ -+ keymap.csrroutbeg = atoi (confsearch (strcpy (str, "csrroutbeg")) + 1); -+ keymap.csrroutend = atoi (confsearch (strcpy (str, "csrroutend")) + 1); -+ keymap.lineroutbeg = atoi (confsearch (strcpy (str, "lineroutbeg")) + 1); -+ keymap.lineroutend = atoi (confsearch (strcpy (str, "lineroutend")) + 1); -+} -+ -+#define CKEYS 37 -+brlkbd keytrans (char *str) -+{ -+ brlkbd keys; -+ unsigned int i = 0; -+ int code = 0, kbdcode = 0; -+ char key1[10] = "", key2[10] = "", kbdstr[30] = ""; -+ -+ keys.kbd = 0; -+ keys.brl = 0; -+ -+ for (i = 0; i < strlen (str); i++) -+ if (str[i] == ',') -+ kbdcode = i; -+ if (strlen (str) < 2) -+ { -+ keys.brl = 0; -+ keys.kbd = 0; -+ return keys; -+ } -+ if (str[kbdcode] == ',') -+ { -+ str[kbdcode] = 0; -+ } -+ else -+ kbdstr[0] = 0; -+ if (strlen (str) > 3) -+ { -+ strncpy (key1, str, 4); -+ key1[4] = 0; -+ if (strlen (str) > 4) -+ strcpy (key2, str + 5); -+ key2[4] = 0; -+ code = 0; -+ code = (atoi (key1 + 1)); -+ if (strlen (key2)) -+ code = (code * 1000) + atoi (key2 + 1); -+ -+ keys.brl = code; -+ } /* if */ -+ else -+ keys.brl = 0; -+ -+ memset (key1, 0, sizeof (key1)); -+ code = 0; -+ return keys; -+ -+} -+ -+/* helper function to parse the config files */ -+int confread (char *realname) -+{ -+ FILE *pname; -+ int i = 0; -+ char row[100] = ""; -+ -+ pname = fopen (realname, "r"); -+ if (pname == NULL) -+ return 0; -+ while (!feof (pname)) -+ { -+ fgets (row, 80, pname); -+ if (row[0] != '#' && strlen (row) > 5) -+ { -+ strcpy (varvec[i], row); -+ i++; -+ } -+ if (feof (pname)) -+ break; -+ } -+ fclose (pname); -+ varvec[i][0] = 0; -+ return 1; -+} -+ -+char *confsearch (char *searchstring) -+{ -+ int i = 0, end = 0; -+ -+ strcat (searchstring, "=\0"); -+ do -+ { -+ if (strncmp (varvec[i], searchstring, strlen (searchstring)) == 0) -+ { -+ strcpy (searchstring, varvec[i] + strlen (searchstring)); -+ end = 1; -+ } -+ i++; -+ } -+ while (varvec[i][0] != 0 && !end); -+ -+ if (!end) -+ { -+ searchstring[0] = 0; -+ return searchstring; -+ } -+ -+ if (strlen (searchstring)) -+ searchstring[strlen (searchstring) - 1] = 0; -+ return searchstring; - } -diff -ruN orca-2.22.1/src/brl/libbrld.h orca-brld/src/brl/libbrld.h ---- orca-2.22.1/src/brl/libbrld.h 1970-01-01 01:00:00.000000000 +0100 -+++ orca-brld/src/brl/libbrld.h 2008-07-02 16:58:28.043145000 +0200 -@@ -0,0 +1,114 @@ -+#ifndef _LIBBRLD_H -+#define _LIBBRLD_H -+ -+#define MAX_MSG_LEN 800 -+/* registration types */ -+#define TEXT 1 -+#define X11 2 -+#define ADMIN 3 -+#define BRLD_TIMEOUT -3 -+#define BRLD_CMD_ERR -2 -+#define BRLD_NO_CONN -4 -+#define BRLD_CLIENT_TIMEOUT 20 /* in seconds */ -+ -+typedef struct -+{ -+ int (*open) (char *, int); -+ int (*reg) (int, char *); -+ void (*close) (); -+ int (*getkey) (int *); -+ int (*write) (int, char *, char *); -+ int (*reset) (); -+ int (*getname) (char *name); -+ int (*getalias) (char *alias); -+ int (*getxy) (int *x, int *y); -+ int (*cursor) (int form); -+ int (*attrtbl) (); -+ int (*texttbl) (); -+ void (*seteventmode) (); -+ int (*unseteventmode) (); -+} brld_interface; -+ -+/* connect to brld -+ * if hostname is NULL - we assume localhost -+ * if port is 0 - we assume default -+ * returns >=0 = (socket_fd) <0 = failed -+ */ -+ -+int brld_open (char *host, int port); -+ -+/* register your application */ -+int brld_reg (int type, char *authkey); -+ -+/* close connection to brld */ -+void brld_close (); -+ -+/* get a brlkey from brld -+ * retunrs the key-value or <=0 on error -+ * pressed is 1 on if key is pressed - 0 if key is released -+ */ -+int brld_getkey (int *pressed); -+ -+/* write a string to the braille-display -+ * the string will be translated in brld -+ * csrpos - is the brl-cursor positon csrpos=-1 means cursor off -+ * text - is a plain text string (zero terminated) -+ * attr - is an attribute string (zero terminated) -+ * text and attr should have the same length otherwise attr will be ignored -+ * if you want to display the string "hello wolrd" -+ * and "world" should be underlined by dot 7 and 8 -+ * do the following: -+ * brld_write(-1,"hello world"," -----"); -+ * the "-" character in attr indicates the underline -+ */ -+int brld_write (int csrpos, char *text, char *attr); -+ -+/* braille device reset */ -+int brld_reset (); -+ -+/* get the fullname of the connected brailledisplay -+ * retunrn 0= OK - not 0 = failed -+ */ -+ -+int brld_getname (char *name); -+ -+/* get the shortname of the connected brailledisplay -+ * retunr 0=OK - not 0 = failed -+ */ -+int brld_getalias (char *alias); -+ -+/* get braille-celss and lines -+ * return 0=OK - not 0=failed -+ */ -+int brld_getxy (int *x, int *y); -+ -+/* set braille-cursor form -+ * form=0 - block-cursor -+ * form=1 - underline the cursor position with dot 7 and 8 -+ * return 0=OK - not 0 failed -+ */ -+int brld_cursor (int form); -+ -+/* set braille translation table to attribute -+ * attribute mode for displaying a attribute pattern in conosle-applications -+ * return 0=OK - not 0=failed -+ */ -+int brld_attrtbl (); -+ -+/* set braille translation table to text -+ * use the normal text-translation-table -+ * return 0=OK - not 0=failed -+ */ -+int brld_texttbl (); -+ -+/* set the event-mode for incoming key-storkes -+ * needed if the connected applications wants to use SIGIO like orca -+ */ -+void brld_seteventmode (); -+ -+/* disable event-mode -+ * the application has to poll -+ * return 0=OK - not 0=failed -+ */ -+int brld_unseteventmode (); -+#endif -diff -ruN orca-2.22.1/src/orca/braille.py orca-brld/src/orca/braille.py ---- orca-2.22.1/src/orca/braille.py 2008-03-08 13:27:38.000000000 +0100 -+++ orca-brld/src/orca/braille.py 2008-07-02 17:05:17.037243000 +0200 -@@ -936,7 +936,7 @@ - if brlAPIRunning: - brlAPI.writeText("", 0) - else: -- brl.writeText(0, "") -+ brl.writeText(0, "", "") - return - - # Now determine the location of the cursor. First, we'll figure -@@ -1027,7 +1027,13 @@ - - brlAPI.write(writeStruct) - else: -- brl.writeText(cursorCell, substring) -+ attr_str="" -+ if attributeMask: -+ attr_str=attributeMask[startPos:endPos].replace('\x00',' ') -+ if len(attr_str) < len(substring): -+ attr_str+=' ' * (len(substring) - len(attr_str)) -+ -+ brl.writeText(cursorCell, substring, attr_str) - - if settings.enableBrailleMonitor: - if not monitor: diff --git a/orca.changes b/orca.changes index 6682b86..c1a182d 100644 --- a/orca.changes +++ b/orca.changes @@ -1,3 +1,112 @@ +------------------------------------------------------------------- +Fri Aug 6 15:05:18 CEST 2010 - vuntz@opensuse.org + +- Update to version 2.31.6: + + General: + - bgo#596108 - Use XDG locations for storing configuration + files + - bgo#625737, bgo#625719, bgo#624640 + + Gecko: bgo#616650, bgo#625458, bgo#624979 + + OpenOffice.org: bgo#620109, bgo#624641, bgo#624628 + + GCalctool: bgo#625729 + + Eclipse: bgo#624243 + + Updated translations. +- Changes from version 2.31.5: + + General: + - bgo#373387 - Users should be able to lock/unlock the "Lock" + modifier even if Caps Lock is the Orca modifier + - bgo#536827 - Provide configuration GUI option to set the + Orca key/modifier + - bgo#624153, bgo#616585, bgo#623099, bgo#621535, bgo#623414, + bgo#622739 + + Magnification: + - bgo#621330 - Setting screen position of magnifier reverts to + "Full Screen" upon closing prefs dialog (gs-mag) + + Gecko: bgo#623825, bgo#623561 + + gnome-terminal: bgo#623897 + + Updated translations. +- Changes from version 2.31.4: + + General: + - bgo#606975 - Move to SpeechDispatcher for GNOME 3 + - bgo#621020 - Fix DBus interface to GNOME Shell Magnifier + - bgo#591925 - Give scripts a means by which to filter out + events which are no longer relevant + - bgo#622755, bgo#622752, bgo#606978, bgo#622042, bgo#622120, + bgo#621800, bgo#619809, bgo#621675, bgo#611576, bgo#621000, + bgo#621325 + + Gecko: bgo#622812, bgo#622811, bgo#622821, bgo#618484, + bgo#620299, bgo#621158 + + Eclipse: bgo#620018, bgo#621873 + + Chat: + - bgo#615489 - Migrate Pidgin script to new chat.py + - bgo#621469 - The chat-only-if-focused options aren't + respected when another script is active + + Updated translations. +- Changes from version 2.31.3: + + General: + - bgo#618927 - Need to add Open TTS to speech servers + - bgo#615968, bgo#620671, bgo#619306, bgo#620320, bgo#620163, + bgo#619332 + + OpenOffice: bgo#620205, bgo#619648, bgo#620156, bgo#619574, + bgo#620098, bgo#620097, bgo#620055, bgo#620045, bgo#619949, + bgo#613299 + + Eclipse: bgo#619486 + + Pidgin: bgo#619473 + + Updated translations. +- Changes from version 2.31.2: + + General: bgo#619046, bgo#619047, bgo#591034, bgo#618285, + bgo#618334, bgo#618464, bgo#618381, bgo#618311, bgo#618192, + bgo#609175, bgo#618165, bgo#618166 + + New Commands: + - bgo#619383 - Need unbound keybinding for cycling through + key echo options. + - bgo#616820 - There is no command to present the list of + available Orca keyboard shortcuts. + - bgo#617420 - Need unbound keybinding for rotating through + punctuation levels. + + Braille: bgo#618728, bgo#618337, bgo#618291, bgo#618288, + bgo#533660, bgo#618800, bgo#617976 + + Gecko: bgo#618981, bgo#619139, bgo#618863, bgo#618806, + bgo#618827, bgo#618801, bgo#618633 + + OpenOffice: bgo#619101, bgo#538050, bgo#618790, bgo#618794, + bgo#617603 + + Eclipse: + - bgo#618303 - orca needs a custom script for eclipse + - bgo#618589 + + Rhythmbox: bgo#618774 + + Clutter/Cally: + - bgo#616206 - Add new specific toolkit script CALLY + + Updated translations. +- Changes from version 2.31.1: + + General: bgo#616848, bgo#617345, bgo#617204, bgo#617113, + bgo#617118, bgo#615969, bgo#616459, bgo#615966, bgo#614844, + bgo#614826, bgo#594152, bgo#614218 + + Chat: + - bgo#557009 - Orca should provide access to Empathy + - bgo#615485 - Orca should support the Instantbird chat + client + - bgo#607663 - Create a script for Gajim + - bgo#589925 - Need to generalize chat support + + Firefox: bgo#616945, bgo#615304 + + Java: bgo#616691, bgo#483222, bgo#616637, bgo#616618, + bgo#616587, bgo#483212, bgo#616464 + + OpenOffice: bgo#364772 + + Updated translations. +- Move to brlapi instead of sbl for braille support: + + Add python-brlapi BuildRequires and Requires. + + Drop orca-bgo550717-brld.patch. +- Add gnome-python-desktop BuildRequires and Recommends, since the + mouse review support requires wnck. +- Add python-speechd Suggests, for speech-dispatcher support. +- Update description. + +------------------------------------------------------------------- +Mon Jun 14 15:16:53 CEST 2010 - vuntz@opensuse.org + +- Do not add categories to orca.desktop: they were already there + (GNOME) or completely wrong (Lockdown, + X-SuSE-ControlCenter-LookAndFeel) + ------------------------------------------------------------------- Thu Apr 29 14:33:15 CEST 2010 - dimstar@opensuse.org diff --git a/orca.spec b/orca.spec index c2bf97b..39969e4 100644 --- a/orca.spec +++ b/orca.spec @@ -1,5 +1,5 @@ # -# spec file for package orca (Version 2.30.1) +# spec file for package orca (Version 2.31.6) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -15,48 +15,48 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -# norootforbuild Name: orca +Version: 2.31.6 +Release: 1 +License: LGPLv2.1+ +Summary: Screen reader for GNOME +Url: http://www.gnome.org/ +Group: System/GUI/GNOME +Source: %{name}-%{version}.tar.bz2 BuildRequires: at-spi-devel BuildRequires: dbus-1-python-devel BuildRequires: fdupes BuildRequires: glib2-devel BuildRequires: gnome-common BuildRequires: gnome-mag-devel +BuildRequires: gnome-python-desktop BuildRequires: gnome-speech-devel BuildRequires: intltool BuildRequires: liblouis-devel -BuildRequires: python # pyatspi is a virtual name that is provided by the default at-spi stack BuildRequires: pyatspi -BuildRequires: python-louis +BuildRequires: python +BuildRequires: python-brlapi BuildRequires: python-gnome-devel BuildRequires: python-gtk-devel +BuildRequires: python-louis BuildRequires: update-desktop-files -Version: 2.30.1 -Release: 1 -Url: http://www.gnome.org/ -Group: System/GUI/GNOME -License: LGPLv2.1+ -Summary: Screen reader for GNOME -Source: %{name}-%{version}.tar.bz2 -# PATCH-NEEDS-REBASE orca-bgo550717-brld.patch bgo550717 -Patch: orca-bgo550717-brld.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-build -Recommends: gnome-mag -Recommends: gnome-speech +Requires: %{name}-lang = %{version} Requires: dbus-1-python # pyatspi is a virtual name that is provided by the default at-spi stack Requires: pyatspi -Requires: python-louis +Requires: python-brlapi Requires: python-gnome Requires: python-gstreamer-0_10 Requires: python-gtk -# Needed only when orca-bgo550717-brld.patch is rebased -#Requires: sbl -Requires: %{name}-lang = %{version} +Requires: python-louis +Recommends: gnome-mag +Recommends: gnome-python-desktop +Recommends: gnome-speech +Suggests: python-speechd +BuildRoot: %{_tmppath}/%{name}-%{version}-build %if %suse_version <= 1110 %define python_sitearch %{py_sitedir} %endif @@ -65,32 +65,24 @@ Requires: %{name}-lang = %{version} %description Orca is a free, open source, flexible, and extensible screen reader that provides access to the graphical desktop via user-customizable -combinations of speech, braille, and/or magnification. Under -development by the Sun Microsystems, Inc., Accessibility Program Office -since 2004, Orca has been created with early input from and continued -engagement with its end users. In fact, the user interface designer -for Orca is also a user. +combinations of speech, braille, and/or magnification. %lang_package %prep -%setup -# need rebase -#%patch0 -p1 +%setup -q %build -#autoreconf -f -i -# FIXME: enable brltty support %configure -make %{?jobs:-j%jobs} +make %{?_smp_mflags} %install %makeinstall -%suse_update_desktop_file orca GNOME Lockdown X-SuSE-ControlCenter-LookAndFeel +%suse_update_desktop_file orca %find_lang %{name} -%fdupes $RPM_BUILD_ROOT +%fdupes %{buildroot} %clean -rm -rf $RPM_BUILD_ROOT +rm -rf %{buildroot} %files %defattr (-, root, root) @@ -100,7 +92,7 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/orca.png %{_datadir}/icons/hicolor/scalable/apps/*.svg %{_datadir}/orca -%{_datadir}/man/man1/orca.1.gz +%{_mandir}/man1/orca.1.gz %{python_sitearch}/orca %files lang -f %{name}.lang