[Pulp-dev] IBM's yum "repository" vs a normal sane repository

Sean Myers sean.myers at redhat.com
Mon Jan 22 22:20:19 UTC 2018


On 01/19/2018 02:36 PM, Will Darton wrote:
> Brian thanks for the response
> So pardon my newb question here, but I've not delved this deep in yum repo
> xmls..
> Would the formatting of the xml make a difference?

Not Brian, but the short answer is "no". Long answer below.

> In the foreman generated primary.xml I have a stanza such as this
> <?xml version="1.0" encoding="UTF-8"?>
> <metadata packages="10" xmlns="http://linux.duke.edu/metadata/common"
> xmlns:rpm="http://linux.duke.edu/metadata/rpm"><package type="rpm">
>   <name>libgomp</name>
>   <arch>ppc</arch>
>   <version epoch="0" rel="1" ver="6.3.0" />
>   <checksum pkgid="YES" type="sha256">081c485b68e30e6c3f53a3b0932f3b
> 0067d687797713303734060e6c555da745</checksum>
>   <summary>GCC OpenMP 2.5 shared support library</summary>
>   <description>This package contains GCC shared support library which is
> needed
> for OpenMP 2.5 support.
> 
> 
> if [ "0" == 1 ]
> then
> 
> Work in Progress</description>
>   <packager />
> 
> 
> And then in the direct mirrored primary.xml I have the same stanza but with
> proper formatting
> <package type="rpm">
>   <name>libgomp</name>
>   <arch>ppc</arch>
>   <version epoch="0" ver="6.3.0" rel="1"/>
>   <checksum type="sha256" pkgid="YES">081c485b68e30e6c3f53a3b0932f3b
> 0067d687797713303734060e6c555da745</checksum>
>   <summary>GCC OpenMP 2.5 shared support library</summary>
>   <description>This package contains GCC shared support library which is
> needed
> for OpenMP 2.5 support.
> 
> 
> if [ "0" == 1 ]
> then
> 
> Work in Progress</description>
>   <packager></packager>
> 
> 
> 
> I do notice also in the foreman/pulp generated primary.xml, there appears
> to be a missing <packager> stanza after the </description>  So I'm guessing
> the xml is getting misread as its ingested and regenerated by pulp

<packager /> is functionally identical to <packager></packager>[0]; the location
of the slashes matters there.

Additionally, whitespace between tags should't matter[1][2], so the newline
before "<package" doesn't matter.

I think it's unlikely that those two things are the cause of the problem here.
The original error does indicate a malformed xml document, unfortunately doesn't
go into detail about exactly where:

> TypeError: Parsing primary.xml error: Start tag expected, '<' not
> found

I suspect it's failing on the very start of the document, though, since that's
the only real place a parser can be sure it needs to see a start tag.

In your direct mirrored xml example, the xml declaration [0] and the outer
metadata tag as seen in the foreman-generated xml seem to be missing:

> <?xml version="1.0" encoding="UTF-8"?>
> <metadata ... >

It might be useful to debugging to paste that mirrored primary.xml somewhere, in
its entirety.

[0]: https://www.w3.org/TR/REC-xml/#sec-prolog-dtd

[1]: https://www.w3.org/TR/REC-xml/#NT-EmptyElemTag - Note that the definition
there implicitly supports only "<tag/>" or "<tag />", but support for
"<tag></tag>" is demonstrated in the examples.

[2]: https://www.w3.org/TR/REC-xml/#sec-white-space - "In editing XML documents,
it is often convenient to use "white space" (spaces, tabs, and blank lines) to
set apart the markup for greater readability. Such white space is *typically not
intended for inclusion in the delivered version of the document*.[emphasis mine]"

[3]: https://www.w3.org/TR/REC-xml/#sec-element-content - "An element type has
element content when elements of that type MUST contain only child elements (no
character data), *optionally separated by white space*[emphasis mine]"

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 866 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20180122/7563accb/attachment.sig>


More information about the Pulp-dev mailing list