"git archive" seems to be broken wrt zip files
> IOW, the zip file looks right. I wonder if this is actually a bug in
> "unzip".
It is. This only happens if you have more then 16k entries and when one
of the 16k entry infos is reused it happend to be previously used for a
symlink entry.
Here's a patch for unzip60 for reference:
--- process.c +++ process.c @@ -1751,6 +1751,12 @@ int process_cdir_file_hdr(__G) /* ret = (G.crec.general_purpose_bit_flag & (1 << 11)) == (1 << 11); #endif +#ifdef SYMLINKS + /* Initialize the symlink flag, may be set by the platform-specific + mapattr function. */ + G.pInfo->symlink = 0; +#endif + return PK_COOL; } /* end function process_cdir_file_hdr() */