[Bug 1249493] [NEW] onboard keyboard crashes when started in node.js running custom layout

Brian Newberry brian.a.newberry at zoetis.com
Fri Nov 8 21:25:52 UTC 2013


Public bug reported:

lsb_release -rd:
Description:	Ubuntu 12.04.1 LTS
Release:	12.04

apt-cache policy onboard:
onboard:
  Installed: 0.99.0-0ppa~precise1
  Candidate: 0.99.0-0ppa~precise1
  Version table:
 *** 0.99.0-0ppa~precise1 0
        500 http://ppa.launchpad.net/onboard/stable/ubuntu/ precise/main amd64 Packages
        100 /var/lib/dpkg/status
     0.97.0-0ubuntu4 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
     0.97.0-0ubuntu3 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages

apt-cache policy python:
python:
  Installed: 2.7.3-0ubuntu2.2
  Candidate: 2.7.3-0ubuntu2.2
  Version table:
 *** 2.7.3-0ubuntu2.2 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     2.7.3-0ubuntu2 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages


I thought I had everything setup just the way I wanted it, but all the sudden, it started having problems on one of my three deployments.  Don't really know what happened as everyone swears they didn't do anything.  I have installed onboard 0.99 from the stable ppa onto Ubuntu 12.04.  I have python 2.7.3.

Here is my situation:
1)  When I try to open onboard with a custom layout from the console, it works fine
2)  When I try to open onboard with a non-custom layout (like Compact specifically is what I tested) programmatically from within a node.js program it works fine
3)  When I try to open onboard with a custom layout (made from Compact, not even modified yet) programmatically from within a node.js program, it crashes with the following error messages put out to stderr:

 Traceback (most recent call last):
  File "/usr/bin/onboard", line 16, in <module>
    ob = Onboard()
  File "/usr/lib/python3/dist-packages/Onboard/OnboardGtk.py", line 111, in __init__
    self.init()
  File "/usr/lib/python3/dist-packages/Onboard/OnboardGtk.py", line 180, in init
    self.reload_layout()
  File "/usr/lib/python3/dist-packages/Onboard/OnboardGtk.py", line 560, in reload_layout
    self.load_layout(layout_filename, color_scheme_filename)
  File "/usr/lib/python3/dist-packages/Onboard/OnboardGtk.py", line 581, in load_layout
    layout = LayoutLoaderSVG().load(vk, layout_filename, color_scheme)
  File "/usr/lib/python3/dist-packages/Onboard/LayoutLoaderSVG.py", line 84, in load
    os.path.dirname(layout_filename))
  File "/usr/lib/python3/dist-packages/Onboard/LayoutLoaderSVG.py", line 103, in _load
    return self._load_layout(layout_filename, parent_item)
  File "/usr/lib/python3/dist-packages/Onboard/LayoutLoaderSVG.py", line 111, in _load_layout
    dom = minidom.parse(f).documentElement
  File "/usr/lib/python3.2/xml/dom/minidom.py", line 1945, in parse
    return expatbuilder.parse(file)
  File "/usr/lib/python3.2/xml/dom/expatbuilder.py", line 928, in parse
    result = builder.parseFile(file)
  File "/usr/lib/python3.2/xml/dom/expatbuilder.py", line 207, in parseFile
    parser.Parse(buffer, 0)
xml.parsers.expat.ExpatError: syntax error: line 2, column 0

Here is the xml file named NextGen.onboard that it's crashing from:
<?xml version="1.0" ?>
<keyboard id="Compact" format="3.1">

    <include file='key_defs.xml'/>

    <box border="1" spacing="1.5" orientation="vertical">

        <!--- word suggestions -->
        <panel filename='Compact-Alpha.svg' scan_priority='1'>
            <include file='word_suggestions.xml'/>
        </panel>

        <box spacing='1.5'>
            <box spacing='2'>
                <!--- keyboard, multiple layers -->
                <panel>
                    <panel layer="alpha" filename="Compact-Alpha.svg">
                        <key group="alphanumeric" id="AB01"/>
                        <key group="alphanumeric" id="AE02"/>
                        <key group="alphanumeric" id="AE03"/>
                        <key group="alphanumeric" id="AD09"/>
                        <key group="alphanumeric" id="AE01"/>
                        <key group="alphanumeric" id="AE06"/>
                        <key group="alphanumeric" id="AE07"/>
                        <key group="alphanumeric" id="AE04"/>
                        <key group="alphanumeric" id="AE05"/>
                        <key group="alphanumeric" id="AD03"/>
                        <key group="alphanumeric" id="AD02"/>
                        <key group="alphanumeric" id="AD01"/>
                        <key group="alphanumeric" id="AE09"/>
                        <key group="alphanumeric" id="AD07"/>
                        <key group="alphanumeric" id="AD06"/>
                        <key group="alphanumeric" id="AD05"/>
                        <key group="alphanumeric" id="AD04"/>
                        <key group="alphanumeric" id="AB10"/>
                        <key group="alphanumeric" id="AC11"/>
                        <key group="alphanumeric" id="AC10"/>
                        <key group="alphanumeric" id="TLDE"/>
                        <key group="alphanumeric" id="LSGT"/>
                        <key group="alphanumeric" id="BKSL"/>
                        <key group="alphanumeric" id="AD10"/>
                        <key group="alphanumeric" id="AD11"/>
                        <key group="alphanumeric" id="AD12"/>
                        <key group="alphanumeric" id="AB08"/>
                        <key group="alphanumeric" id="AE11"/>
                        <key group="alphanumeric" id="AE10"/>
                        <key group="alphanumeric" id="AE12"/>
                        <key group="alphanumeric" id="AC04"/>
                        <key group="alphanumeric" id="AC05"/>
                        <key group="alphanumeric" id="AC06"/>
                        <key group="alphanumeric" id="AC07"/>
                        <key group="alphanumeric" id="AB09"/>
                        <key group="alphanumeric" id="AC01"/>
                        <key group="alphanumeric" id="AC02"/>
                        <key group="alphanumeric" id="AC03"/>
                        <key group="alphanumeric" id="AB05"/>
                        <key group="alphanumeric" id="AB04"/>
                        <key group="alphanumeric" id="AE08"/>
                        <key group="alphanumeric" id="AB06"/>
                        <key group="alphanumeric" id="AC08"/>
                        <key group="alphanumeric" id="AC09"/>
                        <key group="alphanumeric" id="AB03"/>
                        <key group="alphanumeric" id="AB02"/>
                        <key group="alphanumeric" id="AD08"/>
                        <key group="alphanumeric" id="AB07"/>

                        <key group='misc'      id='CAPS'/>
                        <key group='shifts'    id='LFSH'/>
                        <key group='shifts'    id='RTSH'/>
                        <key group='bottomrow' id='LCTL'/>
                        <key group='bottomrow' id='LALT'/>
                        <key group='bottomrow' id='RALT'/>
                        <key group="bottomrow" id="LWIN"/>

                        <key group="bottomrow" id="SPCE"/>
                        <key group="bottomrow" id="DELE.next-to-backspace"/>
                        <key group="bottomrow" id="BKSP"/>
                        <key group="misc" id="TAB"/>
                        <key group="misc" id="RTRN"/>
                        <key group="directions_alpha" id="LEFT"/>
                        <key group="directions_alpha" id="RGHT"/>
                        <key group="directions_alpha" id="UP"/>
                        <key group="directions_alpha" id="DOWN"/>
                    </panel>
                    <panel layer="numbers" filename="Compact-Numbers.svg" border="2">
                        <key group='keypadmisc' id='NMLK' scan_priority='2'/>
                        <key group="keypadmisc" id="KPDL" scan_priority="2"/>
                        <key group="keypadmisc" id="KPEN" scan_priority="2"/>
                        <key group="keypadnumber" id="KP0" scan_priority="2"/>
                        <key group="keypadnumber" id="KP1" scan_priority="2"/>
                        <key group="keypadnumber" id="KP2" scan_priority="2"/>
                        <key group="keypadnumber" id="KP3" scan_priority="2"/>
                        <key group="keypadnumber" id="KP4" scan_priority="2"/>
                        <key group="keypadnumber" id="KP5" scan_priority="2"/>
                        <key group="keypadnumber" id="KP6" scan_priority="2"/>
                        <key group="keypadnumber" id="KP7" scan_priority="2"/>
                        <key group="keypadnumber" id="KP8" scan_priority="2"/>
                        <key group="keypadnumber" id="KP9" scan_priority="2"/>
                        <key group="keypadoperators" id="KPSU" scan_priority="2"/>
                        <key group="keypadoperators" id="KPDV" scan_priority="2"/>
                        <key group="keypadoperators" id="KPAD" scan_priority="2"/>
                        <key group="keypadoperators" id="KPMU" scan_priority="2"/>
                        <key group="directions" id="LEFT" scan_priority="1"/>
                        <key group="directions" id="RGHT" scan_priority="1"/>
                        <key group="directions" id="UP" scan_priority="1"/>
                        <key group="directions" id="DOWN" scan_priority="1"/>
                        <key group="editing" id="INS"/>
                        <key group="editing" id="DELE"  label='Del' image=''/>
                        <key group="editing" id="HOME"/>
                        <key group="editing" id="END"/>
                        <key group="editing" id="PGUP"/>
                        <key group="editing" id="PGDN"/>

                        <key group="bottomrow" id="ESC"/>
                        <key group="fkeys" id="F1.rows_of_six"/>
                        <key group="fkeys" id="F2.rows_of_six"/>
                        <key group="fkeys" id="F3.rows_of_six"/>
                        <key group="fkeys" id="F4.rows_of_six"/>
                        <key group="fkeys" id="F5.rows_of_six"/>
                        <key group="fkeys" id="F6.rows_of_six"/>
                        <key group="fkeys" id="F7.rows_of_six"/>
                        <key group="fkeys" id="F8.rows_of_six"/>
                        <key group="fkeys" id="F9.rows_of_six"/>
                        <key group="fkeys" id="F12.rows_of_six"/>
                        <key group="fkeys" id="F10.rows_of_six"/>
                        <key group="fkeys" id="F11.rows_of_six"/>
                        <key group="editing" id="Prnt" scan_priority="1"/>
                        <key group="editing" id="Pause" scan_priority="1"/>
                        <key group="editing" id="Scroll" scan_priority="1"/>
                    </panel>
                    <panel layer="utils" filename="Compact-Utils.svg" border="2">
                        <key group='snippets' id='m0'/>
                        <key group='snippets' id='m1'/>
                        <key group='snippets' id='m2'/>
                        <key group='snippets' id='m3'/>
                        <key group='snippets' id='m4'/>
                        <key group='snippets' id='m5'/>
                        <key group='snippets' id='m6'/>
                        <key group='snippets' id='m7'/>
                        <key group='snippets' id='m8'/>
                        <key group='snippets' id='m9'/>
                        <key group='snippets' id='m10'/>
                        <key group='snippets' id='m11'/>
                        <key group='snippets' id='m12'/>
                        <key group='snippets' id='m13'/>
                        <key group='snippets' id='m14'/>
                        <key group='snippets' id='m15'/>
                        <key group='bottomrow' id='quit' scan_priority="1"/>
                        <key group='bottomrow' id='settings' scan_priority="1"/>
                    </panel>
                </panel>

            </box>

            <!--- click helpers -->
            <panel id="click" filename="Compact-Alpha.svg" >
                <key group='click' id='middleclick'/>
                <key group='click' id='secondaryclick'/>
                <key group='click' id='doubleclick'/>
                <key group='click' id='dragclick'/>
                <key group='click' id='hoverclick.bottom-row' unlatch_layer="false"/>
            </panel>

            <!--- side bar -->
            <panel id="paneswitch" filename="Compact-Alpha.svg">        
                <box compact="true" orientation='vertical'>
                    <panel group='nowordlist'>
                        <key group='bottomrow' id='hide'/>
                        <box orientation='vertical'>
                            <box orientation="horizontal" expand="false">
                                <key group="bottomrow" id="showclick"/>
                                <key group="bottomrow" id="move"/>
                            </box>
                            <key group="bottomrow" id="layer0" scan_priority="3"/>
                            <key group="bottomrow" id="layer1" scan_priority="3"/>
                            <key group="bottomrow" id="layer2" scan_priority="3"/>
                        </box>
                    </panel>
                    <panel group='wordlist'>
                        <box orientation='vertical'>
                            <key group='sidebar' id='move' svg_id='move.wordlist' expand='false' label_margin='2.5'/>
                            <key group='sidebar' id='showclick' svg_id='showclick.wordlist' label_margin='2' expand='false'/>
                            <key group='bottomrow' id='layer0' svg_id='layer0.wordlist' scan_priority='3'/>
                            <key group='bottomrow' id='layer1' svg_id='layer1.wordlist' scan_priority='3'/>
                            <key group="bottomrow" id="layer2" svg_id='layer2.wordlist' scan_priority="3"/>
                        </box>
                    </panel>
                </box>
            </panel>

        </box>
    </box>
</keyboard>

I have put this file through xml validators and it comes up clean.

I googled the first error about OnboardGtk.py line 111 and found that
others fixed their problems by making sure they had librsvg2-common
installled, but I already had that installed.  Tried to install anyway
just to make sure there wasn't an upgrade problem, but it said I was on
the latest version.

This one has really got me stumped and I wonder if it's not some sort of
problem with onboard hence why I'm posting what I think is a bug.

** Affects: onboard (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of
Accessibility, which is subscribed to onboard in Ubuntu.
https://bugs.launchpad.net/bugs/1249493

Title:
  onboard keyboard crashes when started in node.js running custom layout

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/onboard/+bug/1249493/+subscriptions



More information about the Ubuntu-accessibility-bugs mailing list