Thanks for the investigation, and yes, this three stage lookup exists for most
of Onboard's files. The problem seems to be that stage 1) is meant for absolute
paths, rather than local directories, but this isn't enforced. As you
discovered, having a file in the current directory with the same name as the
layout to be loaded triggers this bug.
I think, instead of looking at the various extensions, we can simply check for
an absolute path. I'll look into that.
Good to hear you're happy with 0.99. I appreciate the feedback, we don't
get that much for Precise.
One more suggestion: you can of course copy layouts by hand, but the
easiest way to start a new layout is by pressing the "Personalize"
button in Preferences->Layouts. This way you get copies of all the
necessary files, and the filename references in the *.onboard file are
adjusted too.
** Also affects: onboard
Importance: Undecided
Status: New
** Changed in: onboard (Ubuntu)
Status: New => Confirmed
** Changed in: onboard
Status: New => Confirmed
** Changed in: onboard
Importance: Undecided => Low
--
You received this bug notification because you are a member of Desktop
Packages, 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
Status in Onboard on-screen keyboard:
Confirmed
Status in “onboard” package in Ubuntu:
Confirmed
Bug description:
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.
To manage notifications about this bug go to:
https://bugs.launchpad.net/onboard/+bug/1249493/+subscriptions
--
Mailing list: https://launchpad.net/~desktop-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help : https://help.launchpad.net/ListHelp