Dear everyone,

I’d like to bring up my posting from December 2014 again.

https://mail.gnome.org/archives/xml/2014-December/msg00000.htmlup a
possible regression in 2.9.2



Am 09.12.14 11:26 schrieb "Matthias Pigulla" unter <m...@webfactory.de>:

>Hi folks,
>
>I am using MacPorts (https://www.macports.org/) and suspecting a
>regression in libxml2 2.9.1 -> 2.9.2. Something with regard to handling
>absolute file paths in XML catalogs and/or mapping them to the file: URI
>scheme has changed.
>
>In more detail:
>
>When trying to parse a simple XHTML 1.0 strict file with PHP and resolving
>externals, from the underlying libxml2 I get the error:
>
>       failed to load external entity
>"file:/opt/local/share/xml/html/4/xhtml1-strict.dtd³
>
>Basically, that¹s the path given by my catalog file (maintained by another
>MacPorts package)
>
><?xml version="1.0"?>
><!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog
>V1.0//EN" 
>"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd";>
>
><catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
><public publicId="-//W3C//DTD XHTML 1.0 Strict//EN"
>uri="/opt/local/share/xml/html/4/xhtml1-strict.dtd" />
><public publicId="-//W3C//DTD XHTML 1.0 Transitional//EN"
>uri="/opt/local/share/xml/html/4/xhtml1-transitional.dtd" />
><public publicId="-//W3C//DTD XHTML 1.0 Frameset//EN"
>uri="/opt/local/share/xml/html/4/xhtml1-frameset.dtd" />
><public publicId="-//W3C//ENTITIES Latin 1 for XHTML//EN"
>uri="/opt/local/share/xml/html/4/xhtml-lat1.ent" />
><public publicId="-//W3C//ENTITIES Special for XHTML//EN"
>uri="/opt/local/share/xml/html/4/xhtml-special.ent" />
><public publicId="-//W3C//ENTITIES Symbols for XHTML//EN"
>uri="/opt/local/share/xml/html/4/xhtml-symbol.ent" />
><rewriteSystem systemIdStartString="http://www.w3.org/TR/xhtml1/DTD/";
>rewritePrefix="/opt/local/share/xml/html/4/" />
><rewriteSystem 
>systemIdStartString="http://www.w3.org/TR/2002/REC-xhtml1-20020801/DTD/";
>rewritePrefix="/opt/local/share/xml/html/4/" />
></catalog>
>
>
>Note that the URIs are given as absolute paths without a scheme name.
>
>Using dtruss, I figured out that libxml2 2.9.2 actually tries to
>stat64("file:/opt/Š³) and fails.
>
>The same occurs when running xmllint, however I don¹t get the error
>message to surface there (maybe wrong switches?). But xmllint also shows
>the difference:
>
>With libxml2 2.9.1:
>
>$ xmllint --version
>xmllint: using libxml version 20901
>   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 Lzma
>$ sudo dtruss -t stat64 xmllint --nonet --loaddtd --load-trace --noout
>--noent test.xml 2>&1 | grep opt/local/share
>Loaded URL="file:///opt/local/share/xml/html/4/xhtml-lat1.ent"
>ID="-//W3C//ENTITIES Latin 1 for XHTML//EN"
>Loaded URL="file:///opt/local/share/xml/html/4/xhtml-symbol.ent"
>ID="-//W3C//ENTITIES Symbols for XHTML//EN"
>Loaded URL="file:///opt/local/share/xml/html/4/xhtml-special.ent"
>ID="-//W3C//ENTITIES Special for XHTML//EN"
>stat64("/opt/local/share/xml/html/4/xhtml1-strict.dtd\0", 0x7FFF5CBD1948,
>0x0)            = 0 0
>stat64("/opt/local/share/xml/html/4/xhtml-lat1.ent\0", 0x7FFF5CBD18F8,
>0x0)            = 0 0
>stat64("/opt/local/share/xml/html/4/xhtml-symbol.ent\0", 0x7FFF5CBD18F8,
>0x0)            = 0 0
>stat64("/opt/local/share/xml/html/4/xhtml-special.ent\0", 0x7FFF5CBD18F8,
>0x0)            = 0 0
>(repeated lines omitted)
>
>
>With libxml2 2.9.2:
>
>$ xmllint --version
>xmllint: using libxml version 20902
>   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 Lzma
>$ sudo dtruss -t stat64 xmllint --nonet --loaddtd --load-trace --noout
>--noent test.xml 2>&1 | grep opt/local/share
>Loaded URL="file:/opt/local/share/xml/html/4/xhtml-lat1.ent"
>ID="-//W3C//ENTITIES Latin 1 for XHTML//EN"
>Loaded URL="file:/opt/local/share/xml/html/4/xhtml-symbol.ent"
>ID="-//W3C//ENTITIES Symbols for XHTML//EN"
>Loaded URL="file:/opt/local/share/xml/html/4/xhtml-special.ent"
>ID="-//W3C//ENTITIES Special for XHTML//EN"
>stat64("file:/opt/local/share/xml/html/4/xhtml1-strict.dtd\0",
>0x7FFF51174958, 0x2)            = -1 Err#2
>stat64("/opt/local/share/xml/html/4/xhtml1-strict.dtd\0", 0x7FFF51174858,
>0x0)            = 0 0
>stat64("file:/opt/local/share/xml/html/4/xhtml-lat1.ent\0",
>0x7FFF511748F8, 0x2)            = -1 Err#2
>stat64("/opt/local/share/xml/html/4/xhtml-lat1.ent\0", 0x7FFF51174728,
>0x0)            = 0 0
>stat64("file:/opt/local/share/xml/html/4/xhtml-symbol.ent\0",
>0x7FFF511748F8, 0x2)            = -1 Err#2
>stat64("/opt/local/share/xml/html/4/xhtml-symbol.ent\0", 0x7FFF51174728,
>0x0)            = 0 0
>stat64("file:/opt/local/share/xml/html/4/xhtml-special.ent\0",
>0x7FFF511748F8, 0x2)            = -1 Err#2
>stat64("/opt/local/share/xml/html/4/xhtml-special.ent\0", 0x7FFF51174728,
>0x0)            = 0 0
>
>
>Question: Is that a regression in 2.9.2 that needs to be addressed? Or is
>the way the relevant MacPorts package creates the catalog file (absolute
>paths, omitting file: scheme) wrong and just "happened" to work in the
>past?
>
>Thanks
>Matthias
>
>_______________________________________________
>xml mailing list, project page  http://xmlsoft.org/
>xml@gnome.org
>https://mail.gnome.org/mailman/listinfo/xml

_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
https://mail.gnome.org/mailman/listinfo/xml

Reply via email to