| Summary: | repoman always says metadata.xml is bad | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Aron Griffis (RETIRED) <agriffis> |
| Component: | [OLD] Core system | Assignee: | Portage team <dev-portage> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | normal | CC: | obz, rizzo |
| Priority: | High | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
|
Description
Aron Griffis (RETIRED)
2004-02-16 14:45:52 UTC
portage/app-emacs/w3 $ xmllint --valid metadata.xml error : Operation in progress error : Operation in progress error : Operation in progress metadata.xml:2: I/O error : failed to load external entity "http://www.gentoo.org/dtd/metadata.dtd" <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> ^ metadata.xml:3: validity error : Validation failed: no DTD found ! <pkgmetadata> ^ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <herd>emacs</herd> </pkgmetadata> It would appear that xmllint is not able to contact the website and download the dtd. Is the machine allowed to connect to the outside world? What does strace tell you? The machine has access to the outside world via an http proxy. Does xmllint only work with direct connections? According to strace, it appears that xmllint is trying to connect directly to www.gentoo.org Shouldn't portage (i.e. the portage package) be installing a local DTD and a catalog mapping so that the network isn't needed for xmllint. That would make repoman faster, too! From my review of the xmllint man-page, it doesn't appear to honor proxies. Additionally it dies immediately when run under "socksify" :-( Obz, do you mind casting your xml-aware eye on this bug? Aron, you could download the DTD and add some rewrites in /etc/xml/catalog like: <rewriteURI uriStartString="http://www.gentoo.org/dtd/metadata.dtd" rewritePrefix="/usr/share/xml/gentoo/dtd/metadata.dtd"/> <rewriteSystem systemIdStartString="http://www.gentoo.org/dtd/metadata.dtd" rewritePrefix="/usr/share/xml/gentoo/dtd/metadata.dtd"/> however that won't fix it for all users behind proxies who want to run repoman (if that's the error group). Also, does portage use xmllint but not depend on libxml2?... I'm in the same boat. :p rizzo, obz gave me a possible workaround/fix in comment #5, would you mind testing that? I haven't had the chance. Worked like a champ. Had to create the /usr/share/xml/gentoo and gentoo/dtd dir, but you probably assumed that. Yeah I would think having this file locally would be a better process than having it make a net connection every time. Genone, will this be fixed in repoman eventually? It seems like an easy one... Marking as a dupe of 57210, since the fix was commited in .51 (details are in that bug). *** This bug has been marked as a duplicate of 57210 *** |