After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 743161 - xmllint should not download the DTD from the web
xmllint should not download the DTD from the web
Status: RESOLVED INVALID
Product: bluefish
Classification: Other
Component: build system
2.2.4
Other Linux
: Normal major
: 2.2.7
Assigned To: Daniel Leidert
Daniel Leidert
Depends on:
Blocks:
 
 
Reported: 2015-01-19 08:27 UTC by Fiable.biz
Modified: 2015-01-19 16:39 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Fiable.biz 2015-01-19 08:27:31 UTC
Hello.

I'm on Mageia 4 KDE. Before I installed the packages w3c-markup-validator and w3c-markup-validator-libs, using BlueFish tools → Outputbox → xmllint XML checker to check my XHTML files used to produce systematically a "failed to load external entity http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" error message.

BlueFish should not try to download these public DTDs. Please see
http://www.w3.org/blog/systeam/2008/02/08/w3c_s_excessive_dtd_traffic

In other words, the W3C's DTDs should probably be included in Bluefish or in libxml2, and Bluefish call of libxml2 should use a local copy of the DTD.

Thank you.
Comment 1 Daniel Leidert 2015-01-19 16:39:19 UTC
Hi. Bluefish doesn't download anything. Xmllint is trying to get a DTD by its public or system identifier. Often the online resources are used in XML documents to declare them, because local paths can differ between machines and the online resources are unique. This is useful and necessary.

It won't be useful to bundle all DTDs, RNGs, entitity declarations etc. Consider that e.g. Docbook alone AFAIK has four major versions and between them also subversions, release candidates, beta version etc. Further it would make us responsible to keep track on all these files and possible bugs in them. For this usually every Linux distribution provides separate packages. E.g. on Debian Linux there is docbook, docbook-xml, docbook5-xml, w3c*dtd ... So bundling this stuff is a no-go.

To reduze the traffic there is an XML catalog system, which rewrites the online location to the local path, where the DTD can be found. This catalog also is shipped with the package on (almost?) all Linux distributions. The solution to your issue is to either make use of this system or to customize the xmllint command in Bluefish and add the --nonet switch. In the latter case you'll loose the ability to check an XML document against a DTD if you don't have the DTDs, entity declarations etc. in a local path or if you have them, but don't use the catalog system.

HTH