Bug#879011: diffoscope: zipinfo diff shows warning differences that are due to temporary file names
Mike Hommey
mh at glandium.org
Thu Oct 19 09:27:07 UTC 2017
On Thu, Oct 19, 2017 at 04:41:04PM +0900, Mike Hommey wrote:
> On Thu, Oct 19, 2017 at 03:57:29PM +0900, Mike Hommey wrote:
> > On Wed, Oct 18, 2017 at 09:27:29PM +0900, Mike Hommey wrote:
> > > Package: diffoscope
> > > Version: 87
> > > Severity: normal
> > >
> > > While diffing firefox, zipinfo is run on omni.ja, and issues warnings
> > > like:
> > > warning [/tmp/tmplgigxgm__diffoscope/0/24]: 17283883 extra bytes at beginning or within zipfile
> > >
> > > Now, when both ends have the same warning, as expected, the diff still
> > > shows a difference because of the /tmp/tmp*__diffoscope/0/fd path.
> >
> > Note these messages are sent to stderr, and I noticed that for readelf,
> > stderr is not part of the diff. It seems it would make sense to do the
> > same for zipinfo.
>
> The code actually does the same thing as for readelf. The problem is
> that zipinfo is not consistently sending its warning to stderr.
>
> $ zipinfo omni.ja > /dev/null
> warning [omni.ja]: 17283876 extra bytes at beginning or within zipfile
> (attempting to process anyway)
> error [omni.ja]: reported length of central directory is
> -17283876 bytes too long (Atari STZip zipfile? J.H.Holm ZIPSPLIT 1.1
> zipfile?). Compensating...
>
> ^ means the warnings are on stderr, right? Nope
>
> $ zipinfo omni.ja 2> /dev/null | grep -v 10-Jan-01
> Archive: omni.ja
> Zip file size: 17400328 bytes, number of entries: 1313
> warning [omni.ja]: 17283876 extra bytes at beginning or within zipfile
> (attempting to process anyway)
> error [omni.ja]: reported length of central directory is
> -17283876 bytes too long (Atari STZip zipfile? J.H.Holm ZIPSPLIT 1.1
> zipfile?). Compensating...
> 1313 files, 17188436 bytes uncompressed, 17188436 bytes compressed: 0.0%
>
> It looks like it only sends those messages to stderr when it's a tty.
I haven't found a way to make things work with zipinfo's crazy behavior,
however, I was able to get the zip comparator to work by using
libarchive, like for other archive formats. I still need to do some more
cleanup of the code, adjust the apk comparator, and adjust tests.
Mike
More information about the Reproducible-builds
mailing list