Description of problem: inkscape will not run when trying to start due to an error of xml declaration. I am sure which package has that bug but I assumed it is Inkscape until someone reproduce it. Version-Release number of selected component (if applicable): 0.47-0.16.pre2.20090907svn How reproducible: always Steps to Reproduce: 1. run inkscape from terminal 2. 3. Actual results: Traceback ** (inkscape:15276): CRITICAL **: Inkscape::Extension::Extension* Inkscape::Extension::build_from_reprdoc(Inkscape::XML::Document*, Inkscape::Extension::Implementation::Implementation*): assertion `doc != NULL' failed ** (inkscape:15276): WARNING **: Unable to create extension from definition file /usr/share/inkscape/extensions/foldablebox.inx. /usr/share/inkscape/extensions/handles.inx:1: parser error : XML declaration allowed only at the start of the document <?xml version="1.0" encoding="UTF-8"?> Expected results: Additional info:
Hi Luya, thanks for your report. I can not reproduce the issue you have described. Do you run Fedora 11? Which architecture? Could you please run these commands (and paste eventual errors)? $ rpm -V inkscape $ tidy -xml /usr/share/inkscape/extensions/handles.inx >/dev/null $ tidy -xml /usr/share/inkscape/extensions/foldablebox.inx >/dev/null
Yes on i586 architecture. (In reply to comment #1) > Hi Luya, > > thanks for your report. I can not reproduce the issue you have described. Do > you run Fedora 11? Which architecture? Yes on i586 architecture. > Could you please run these commands (and paste eventual errors)? > > $ rpm -V inkscape Return nothing > $ tidy -xml /usr/share/inkscape/extensions/handles.inx >/dev/null No warnings or errors were found. > $ tidy -xml /usr/share/inkscape/extensions/foldablebox.inx >/dev/null No warnings or errors were found.
The same problem with inkscape-0.47-0.15.pre1.20090810svn.fc11.x86_64 from updates-testing.
Created attachment 360854 [details] error output inkscape 2> inkscape.log and after 5sec Ctrl+C
Same bug here. Inkscape 0.47-0.16.pre2.20090907svn.fc11 (Downloaded from koji).
Thank you for your responses. Could someone please attach outputs of "rpm -qa" and log file from "strace -f -o inkscape.log inkscape"?
Created attachment 360859 [details] rpm -qa and strace
Created attachment 360867 [details] rpm -qa | strace log report compressed to lzma
I downgraded libxml2 to testing purpose. Inkscape will start without a problem. I think the bug is from lbixml2. Can anyone reproduce it?
Which packages exactly did you downgrade?
only libxml2. Be warned it removes setroubleshoot, gnome-packagekit and system-config-printer.
It works, but if the x86_64 and i586 are installed, both have to be downgraded. Works with libxml2-2.7.3-3.fc11.{i586,x86_64}
Yes, upgrading libxml2 indeed makes it possible to reproduce the problem. Daniel, I'm wondering if you recognize the problem (if it's a known issue with libxml2 or obvious bug in inkscape)?
I don't know. I don't see the XML file, provide it as an attachment and I will able to make a diagnostic. Note that tidy -xml is not an XML parser, or not used to. Run xmllint on the resource to get a proper diagnostic ! Daniel
Okay I reproduced the problem, but /usr/share/inkscape/extensions/ai_input.inx:1: parser error : XML declaration allowed only at the start of the document <?xml version="1.0" encoding="UTF-8"?> those errors seems to indocate the parser is being fed by a data flow with *something* before the start of the document. paphio:~ -> xmllint --version xmllint: using libxml version 20704 compiled with: Threads Tree Output Push Reader Patterns Writer SAXv1 FTP HTTP DTDValid HTML Legacy C14N Catalog XPath XPointer XInclude Iconv ISO8859X Unicode Regexps Automata Expr Schemas Schematron Modules Debug Zlib paphio:~ -> xmllint --noout /usr/share/inkscape/extensions/ai_output.inx paphio:~ -> the resource is correct XML, libxml2-2.7.4 parses it just fine, it's UTF-8 there is no DTD or other things which could influence parsing, so my guess is that the regression is due to the way inkscape launches the parser and feeds it. I don't know that code, and I have no idea what they are doing in the parser wrapper classes but there is something funky there. Daniel
Thanks a lot, Daniel! I'll take a look.
The way the loader for the extension works in inkskape is rather funky it starts with no data at all for the parser to consume, then when the parser requests some data it feeds only 4 bytes enough to make a pre encoding detection but not enough for detecting <?xml indicative of the XMLDecl: 10086 xmlParseDocument(xmlParserCtxtPtr ctxt) { (gdb) n 10090 xmlInitParser(); (gdb) p *ctxt->input $7 = {buf = 0x14716b0, filename = 0x14bc340 "/usr/share/inkscape/extensions/printing-marks.inx", directory = 0x0, base = 0x11e3440 "", cur = 0x11e3440 "", end = 0x11e3440 "", length = 0, line = 1, col = 1, consumed = 0, free = 0, encoding = 0x0, version = 0x0, standalone = -1, id = 65} (gdb) n 10092 if ((ctxt == NULL) || (ctxt->input == NULL)) (gdb) 10095 GROW; (gdb) 10100 xmlDetectSAX2(ctxt); (gdb) p *ctxt->input $8 = {buf = 0x14716b0, filename = 0x14bc340 "/usr/share/inkscape/extensions/printing-marks.inx", directory = 0x0, base = 0x11e3440 "<?xm", cur = 0x11e3440 "<?xm", end = 0x11e3444 "", length = 0, line = 1, col = 1, consumed = 0, free = 0, encoding = 0x0, version = 0x0, standalone = -1, id = 65} (gdb) n 10105 if ((ctxt->sax) && (ctxt->sax->setDocumentLocator)) [...] (gdb) 10126 if (CUR == 0) { (gdb) 10135 if ((CMP5(CUR_PTR, '<', '?', 'x', 'm', 'l')) && (IS_BLANK_CH(NXT(5)) I will provide a patch and work around this but the loader is fairly strange in the first place they should just use the xmlReadFile or something similar. Daniel
The source of the problem http://git.gnome.org/cgit/libxml2/commit/?id=7e385bd4e28a0cc12b6b26ed178c620e3c3ab8d8 a fix for libxml2 http://git.gnome.org/cgit/libxml2/commit/?id=9d3d141c412baa5c713ad3df48f1a4d179e07b05 I will make a new build for testing
libxml2-2.7.4-2.fc11 built in dist-f11-updates-candidate, Daniel
libxml2-2.7.4-2.fc11 has been submitted as an update for Fedora 11. http://admin.fedoraproject.org/updates/libxml2-2.7.4-2.fc11
libxml2-2.7.4-2.fc10 has been submitted as an update for Fedora 10. http://admin.fedoraproject.org/updates/libxml2-2.7.4-2.fc10
Inkscape is now running with this new version of libxml2 from i586 architecture. Thank you for fix, Daniel.
*** Bug 523530 has been marked as a duplicate of this bug. ***
The x86_64 architecture is also working well.
libxml2-2.7.4-2.fc10 has been pushed to the Fedora 10 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update libxml2'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F10/FEDORA-2009-9668
libxml2-2.7.4-2.fc11 has been pushed to the Fedora 11 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update libxml2'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F11/FEDORA-2009-9670
Rawhide x86_64 here. Inkscape now works (with libxml2-2.7.4-2.fc12.x86_64).