[Fedora-packaging] rpmlint file-size-mismatch and github source URLs
James Laska
jlaska at redhat.com
Wed Aug 24 12:45:20 UTC 2011
Greetings,
While performing a package review, I noticed that rpmlint doesn't like
Source URL's that point to github. Rpmlint emits a 'file-size-mismatch'
warning for the package I am reviewing, and a quick google search
highlights additional package reviews with github source URL's having
the same issue. I've not yet seen a recommended resolution in the other
package reviews, so I thought this might be appropriate for the list.
I see the following warning ...
> $ rpmlint -i nagios-plugins-rhev-1.0.0-2.fc16.src.rpm
> nagios-plugins-rhev.src: W: file-size-mismatch nagios-plugins-rhev-1.0.0.tar.gz = 9941, https://github.com/dougsland/nagios-plugins-rhev/raw/master/nagios-plugins-rhev-1.0.0.tar.gz = 1
> The size of the file in the package does not match the size indicated by
> peeking at its URL. Verify that the file in the package has the intended
> contents.
A quick inspection of --verbose output from curl made me believe that a
redirect might be confusing rpmlint ...
> < HTTP/1.1 302 Found
> < Server: nginx/1.0.4
> < Date: Wed, 24 Aug 2011 12:10:07 GMT
> < Content-Type: text/html; charset=utf-8
> < Connection: keep-alive
> < Status: 302 Found
> < X-RateLimit-Limit: 100
> < Location:
> https://raw.github.com/dougsland/nagios-plugins-rhev/master/nagios-plugins-rhev-1.0.0.tar.gz
> < X-RateLimit-Remaining: 100
> < X-Runtime: 108ms
> < Content-Length: 158
I adjusted the SourceURL in the spec file to the redirected URL, but the
original problem remains.
I'm confused, curl seems to think everything matches (size=9941)...
> $ curl -v
> https://raw.github.com/dougsland/nagios-plugins-rhev/master/nagios-plugins-rhev-1.0.0.tar.gz > /dev/null
> <snip>
> < HTTP/1.1 200 OK
> <snip>
> < Content-Length: 9941
But rpmlint is still upset ...
> nagios-plugins-rhev.src: W: file-size-mismatch
> nagios-plugins-rhev-1.0.0.tar.gz = 9941,
> https://raw.github.com/dougsland/nagios-plugins-rhev/master/nagios-plugins-rhev-1.0.0.tar.gz = 1
Looking into rpmlint a bit further, abstractCheck::check_url() is
discovering a content-length of 1. When I check the value of
'Content-Length' using urllib2.urlopen ... I get the expected value.
> >>> urllib2.urlopen('https://raw.github.com/dougsland/nagios-plugins-rhev/master/nagios-plugins-rhev-1.0.0.tar.gz').info().get('Content-Length')
> '9941'
I suspect something is amiss with rpmlint abstractCheck and the custom
_HeadRequest.get_method(). Removing it, resolves the problem. Perhaps
I should take this to the rpmlint development list as it seems related
to an intentional upstream fix
(http://rpmlint.zarb.org/cgi-bin/trac.cgi/ticket/165).
Any thoughts/suggestions?
Thanks,
James
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
Url : http://lists.fedoraproject.org/pipermail/packaging/attachments/20110824/47a39e10/attachment.bin
More information about the packaging
mailing list