CMake 2.4.7-1 ready
Bill Hoffman
bill.hoffman@kitware.com
Mon Jul 30 17:15:00 GMT 2007
Brian Dessent wrote:
>
> No, nothing's changed in the untar code in forever. I debugged it and
> the problem is that setup does not recognise the file as a valid tar
> archive. What version of tar did you use to create it?
>
> The problem is the 'magic' field of the tar header (offset 257). Setup
> expects this to contain "ustar" followed by two spaces and a trailing
> NUL:
>
> 62 if (original->peek (magic, longest_magic) > 0)
> 63 {
> 64 if (memcmp (&magic[257], "ustar\040\040\0", 8) == 0)
> 65 {
> 66 /* tar */
> 67 archive_tar *rv = new archive_tar (original);
> 68 if (!rv->error ())
> 69 return rv;
> 70 return NULL;
> 71 }
>
OK, I looked at the libtar code and found this:
if (t->options & TAR_GNU)
strncpy(t->th_buf.magic, "ustar ", 8);
else
{
strncpy(t->th_buf.version, TVERSION, TVERSLEN);
strncpy(t->th_buf.magic, TMAGIC, TMAGLEN);
}
#define TMAGIC "ustar" /* ustar and a null */
#define TMAGLEN 6
#define TVERSION "00" /* 00 and no null */
#define TVERSLEN 2
So, that explains why the tar file works, it is just not a gnu tar file.
Something must have changed in my code because the 2.4.6 version
has the gnu style header and the 2.4.7 version has the other header.
I will try and figure out what changed and create a new release.
-Bill
More information about the Cygwin-apps
mailing list