setup.exe: Invalid or unsupported tar format

Thrall, Bryan bryan.thrall@flightsafety.com
Mon May 5 20:24:00 GMT 2008


I've built setup.exe from source (updated today), and the ChangeLog says
Brian Dessent fixed the "Invalid or unsupported tar format" problem with
empty tar.bz2 files, but I am still seeing the error popup.

I have an empty meta-package to pull in other packages copied from one
of the _obsolete packages. I understand these are created via 'tar -T
/dev/null -cjf foo.tar.bz2' (see
http://cygwin.com/ml/cygwin-apps/2008-04/msg00105.html), and diff
reports the results identical; the file size is the expected 46 bytes.

The setup.exe source (install.cc, Installer::installOne) looks like it
expects an error peeking from try_decompress in this situation, but
running in the debugger shows try_decompress->peek() successfully
reading '0'. Note that if you bunzip2 the empty package, you get a 10K
tarball which is all zeroes, so success isn't completely unexpected...

$ cygcheck -cd | grep 'bzip\|tar\|cygwin'
bzip2                   1.0.3-2
cygwin                  1.5.25-7
mingw-bzip2             1.0.3-2
tar                     1.19-1

Am I missing anything? I'm not sure the best way to fix this; the
following patch worked, but seems unlikely to actually be correct in all
cases.

Is an empty tarball the only case where the peek value will be zero?

Index: install.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/install.cc,v
retrieving revision 2.83
diff -u -p -w -r2.83 install.cc
--- install.cc  9 Apr 2008 02:25:27 -0000       2.83
+++ install.cc  5 May 2008 20:15:13 -0000
@@ -259,7 +259,7 @@ Installer::installOne (packagemeta &pkgm
           /* Decompression succeeded but we couldn't grok it as a valid
tar
              archive.  */
           char c;
-          if (try_decompress->peek (&c, 1) < 0)
+          if (try_decompress->peek (&c, 1) < 0 || !c) // assume 0
indicates empty tarball
             /* In some cases, maintainers have uploaded bzipped
                0-byte files as dummy packages instead of empty tar
files.
                This is common enough that we should not treat this as
an

--
Bryan Thrall
FlightSafety International
Bryan.Thrall@flightsafety.com 



More information about the Cygwin-apps mailing list