Bug#879011: diffoscope: zipinfo diff shows warning differences that are due to temporary file names
Mike Hommey
mh at glandium.org
Thu Oct 19 07:41:04 UTC 2017
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.
Mike
More information about the Reproducible-builds
mailing list