* Christoph Biedl <debian.a...@manchmal.in-ulm.de> [2022-12-29 16:39]:
> Chris Lamb wrote...
> > However, this "extra data prepended" doesn't fit well under the rubric
> > of "data". Yes, this "#!/usr/bin/python3\n" shebang is definitely
> > "data" of a kind, but a shebang isn't really data in that way given
> > the special-treatment afforded to it by UNIX systems. Even if this
> > noun was replaced by the more general "bytes", the magic nature of the
> > shebang would still remain… as would the desire to discriminate
> > between pyzip files and other ZIP files with prepended data.
> >
> > Could another — different — string be emitted in the case that these
> > prepended bytes are a shebang? We could potentially look for the file
> > starting with #! and for that to take precedence over this new case.
> 
> After some more thinking: I suggest you do nothing for the time being
> while I take this to upstream. If all else fails, I'll revert the change
> for the next upload. By the way, that will be 1:5.44-1, but the changes
> to 1:5.43-3 are minimal.

FWIW I've attached a patch that makes it discriminate between ZIP
files with prepended data with or without a shebang:

  $ file -b zipfile-with-data-prepended
  Zip archive, with extra data prepended
  $ file -b pyzip
  a /usr/bin/python3 script executable (Zip archive)

I'm not sure that completely solves the issue, because there could be
other (executable) file formats affected, not just pyzip and other
formats using a shebang.  So perhaps reverting the change completely
is better after all.  We probably need upstream to figure that out.

- FC
Index: file-5.43/magic/Magdir/archive
===================================================================
--- file-5.43.orig/magic/Magdir/archive	2022-12-31 00:33:43.000000000 +0100
+++ file-5.43/magic/Magdir/archive	2022-12-31 01:05:17.245343109 +0100
@@ -1876,9 +1876,14 @@
 # https://en.wikipedia.org/wiki/ZIP_(file_format)#End_of_central_directory_record_(EOCD)
 # by Michal Gorny <mgo...@gentoo.org>
 -2	uleshort	0
->&-22	string	PK\005\006	Zip archive, with extra data prepended
+>&-22	string	PK\005\006
+# without #!
+>>0	string	!#!	Zip archive, with extra data prepended
 !:mime	application/zip
 !:ext zip/cbz
+# with #!
+>>0	string/w	#!\ 	a
+>>>&-1	string/T	x	%s script executable (Zip archive)
 
 # ACE archive (from http://www.wotsit.org/download.asp?f=ace)
 # by Stefan `Sec` Zehl <s...@42.org>
_______________________________________________
Reproducible-builds mailing list
Reproducible-builds@alioth-lists.debian.net
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/reproducible-builds

Reply via email to