Add file 4.12.
[dragonfly.git] / contrib / file-4.12 / magic / Magdir / archive
1
2 #------------------------------------------------------------------------------
3 # archive:  file(1) magic for archive formats (see also "msdos" for self-
4 #           extracting compressed archives)
5 #
6 # cpio, ar, arc, arj, hpack, lha/lharc, rar, squish, uc2, zip, zoo, etc.
7 # pre-POSIX "tar" archives are handled in the C code.
8
9 # POSIX tar archives
10 257     string          ustar\0         POSIX tar archive
11 257     string          ustar\040\040\0 GNU tar archive
12
13 # cpio archives
14 #
15 # Yes, the top two "cpio archive" formats *are* supposed to just be "short".
16 # The idea is to indicate archives produced on machines with the same
17 # byte order as the machine running "file" with "cpio archive", and
18 # to indicate archives produced on machines with the opposite byte order
19 # from the machine running "file" with "byte-swapped cpio archive".
20 #
21 # The SVR4 "cpio(4)" hints that there are additional formats, but they
22 # are defined as "short"s; I think all the new formats are
23 # character-header formats and thus are strings, not numbers.
24 0       short           070707          cpio archive
25 0       short           0143561         byte-swapped cpio archive
26 0       string          070707          ASCII cpio archive (pre-SVR4 or odc)
27 0       string          070701          ASCII cpio archive (SVR4 with no CRC)
28 0       string          070702          ASCII cpio archive (SVR4 with CRC)
29
30 # Debian package (needs to go before regular portable archives)
31 #
32 0       string          !<arch>\ndebian
33 >8      string          debian-split    part of multipart Debian package
34 >8      string          debian-binary   Debian binary package
35 >68     string          >\0             (format %s)
36 >81     string          bz2             \b, uses bzip2 compression
37 >84     string          gz              \b, uses gzip compression
38 #>136   ledate          x               created: %s
39
40 # other archives
41 0       long            0177555         very old archive
42 0       short           0177555         very old PDP-11 archive
43 0       long            0177545         old archive
44 0       short           0177545         old PDP-11 archive
45 0       long            0100554         apl workspace
46 0       string          =<ar>           archive
47
48 # MIPS archive (needs to go before regular portable archives)
49 #
50 0       string  !<arch>\n__________E    MIPS archive
51 >20     string  U                       with MIPS Ucode members
52 >21     string  L                       with MIPSEL members
53 >21     string  B                       with MIPSEB members
54 >19     string  L                       and an EL hash table
55 >19     string  B                       and an EB hash table
56 >22     string  X                       -- out of date
57
58 0       string          -h-             Software Tools format archive text
59
60 #
61 # XXX - why are there multiple <ar> thingies?  Note that 0x213c6172 is
62 # "!<ar", so, for new-style (4.xBSD/SVR2andup) archives, we have:
63 #
64 # 0     string          !<arch>         current ar archive
65 # 0     long            0x213c6172      archive file
66 #
67 # and for SVR1 archives, we have:
68 #
69 # 0     string          \<ar>           System V Release 1 ar archive
70 # 0     string          =<ar>           archive
71 #
72 # XXX - did Aegis really store shared libraries, breakpointed modules,
73 # and absolute code program modules in the same format as new-style
74 # "ar" archives?
75 #
76 0       string          !<arch>         current ar archive
77 >8      string          __.SYMDEF       random library
78 >0      belong          =65538          - pre SR9.5
79 >0      belong          =65539          - post SR9.5
80 >0      beshort         2               - object archive
81 >0      beshort         3               - shared library module
82 >0      beshort         4               - debug break-pointed module
83 >0      beshort         5               - absolute code program module
84 0       string          \<ar>           System V Release 1 ar archive
85 0       string          =<ar>           archive
86 #
87 # XXX - from "vax", which appears to collect a bunch of byte-swapped
88 # thingies, to help you recognize VAX files on big-endian machines;
89 # with "leshort", "lelong", and "string", that's no longer necessary....
90 #
91 0       belong          0x65ff0000      VAX 3.0 archive
92 0       belong          0x3c61723e      VAX 5.0 archive
93 #
94 0       long            0x213c6172      archive file
95 0       lelong          0177555         very old VAX archive
96 0       leshort         0177555         very old PDP-11 archive
97 #
98 # XXX - "pdp" claims that 0177545 can have an __.SYMDEF member and thus
99 # be a random library (it said 0xff65 rather than 0177545).
100 #
101 0       lelong          0177545         old VAX archive
102 >8      string          __.SYMDEF       random library
103 0       leshort         0177545         old PDP-11 archive
104 >8      string          __.SYMDEF       random library
105 #
106 # From "pdp" (but why a 4-byte quantity?)
107 #
108 0       lelong          0x39bed         PDP-11 old archive
109 0       lelong          0x39bee         PDP-11 4.0 archive
110
111 # ARC archiver, from Daniel Quinlan (quinlan@yggdrasil.com)
112 #
113 # The first byte is the magic (0x1a), byte 2 is the compression type for
114 # the first file (0x01 through 0x09), and bytes 3 to 15 are the MS-DOS
115 # filename of the first file (null terminated).  Since some types collide
116 # we only test some types on basis of frequency: 0x08 (83%), 0x09 (5%),
117 # 0x02 (5%), 0x03 (3%), 0x04 (2%), 0x06 (2%).  0x01 collides with terminfo.
118 0       lelong&0x8080ffff       0x0000081a      ARC archive data, dynamic LZW
119 0       lelong&0x8080ffff       0x0000091a      ARC archive data, squashed
120 0       lelong&0x8080ffff       0x0000021a      ARC archive data, uncompressed
121 0       lelong&0x8080ffff       0x0000031a      ARC archive data, packed
122 0       lelong&0x8080ffff       0x0000041a      ARC archive data, squeezed
123 0       lelong&0x8080ffff       0x0000061a      ARC archive data, crunched
124
125 # Acorn archive formats (Disaster prone simpleton, m91dps@ecs.ox.ac.uk)
126 # I can't create either SPARK or ArcFS archives so I have not tested this stuff
127 # [GRR:  the original entries collide with ARC, above; replaced with combined
128 #  version (not tested)]
129 #0      byte            0x1a            RISC OS archive
130 #>1     string          archive         (ArcFS format)
131 #0      string          \032archive     RISC OS archive (ArcFS format)
132 0       string          \032            RISC OS archive (spark format)
133 0       string          Archive\000     RISC OS archive (ArcFS format)
134
135 # ARJ archiver (jason@jarthur.Claremont.EDU)
136 0       leshort         0xea60          ARJ archive data
137 >5      byte            x               \b, v%d,
138 >8      byte            &0x04           multi-volume,
139 >8      byte            &0x10           slash-switched,
140 >8      byte            &0x20           backup,
141 >34     string          x               original name: %s,
142 >7      byte            0               os: MS-DOS
143 >7      byte            1               os: PRIMOS
144 >7      byte            2               os: Unix
145 >7      byte            3               os: Amiga
146 >7      byte            4               os: Macintosh
147 >7      byte            5               os: OS/2
148 >7      byte            6               os: Apple ][ GS
149 >7      byte            7               os: Atari ST
150 >7      byte            8               os: NeXT
151 >7      byte            9               os: VAX/VMS
152 >3      byte            >0              %d]
153
154 # HA archiver (Greg Roelofs, newt@uchicago.edu)
155 # This is a really bad format. A file containing HAWAII will match this...
156 #0      string          HA              HA archive data,
157 #>2     leshort         =1              1 file,
158 #>2     leshort         >1              %u files,
159 #>4     byte&0x0f       =0              first is type CPY
160 #>4     byte&0x0f       =1              first is type ASC
161 #>4     byte&0x0f       =2              first is type HSC
162 #>4     byte&0x0f       =0x0e           first is type DIR
163 #>4     byte&0x0f       =0x0f           first is type SPECIAL
164
165 # HPACK archiver (Peter Gutmann, pgut1@cs.aukuni.ac.nz)
166 0       string          HPAK            HPACK archive data
167
168 # JAM Archive volume format, by Dmitry.Kohmanyuk@UA.net
169 0       string          \351,\001JAM\           JAM archive,
170 >7      string          >\0                     version %.4s
171 >0x26   byte            =0x27                   -
172 >>0x2b  string          >\0                     label %.11s,
173 >>0x27  lelong          x                       serial %08x,
174 >>0x36  string          >\0                     fstype %.8s
175
176 # LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
177 2       string          -lh0-           LHarc 1.x archive data [lh0]
178 2       string          -lh1-           LHarc 1.x archive data [lh1]
179 2       string          -lz4-           LHarc 1.x archive data [lz4]
180 2       string          -lz5-           LHarc 1.x archive data [lz5]
181 #       [never seen any but the last; -lh4- reported in comp.compression:]
182 2       string          -lzs-           LHa 2.x? archive data [lzs]
183 2       string          -lh\40-         LHa 2.x? archive data [lh ]
184 2       string          -lhd-           LHa 2.x? archive data [lhd]
185 2       string          -lh2-           LHa 2.x? archive data [lh2]
186 2       string          -lh3-           LHa 2.x? archive data [lh3]
187 2       string          -lh4-           LHa (2.x) archive data [lh4]
188 2       string          -lh5-           LHa (2.x) archive data [lh5]
189 2       string          -lh6-           LHa (2.x) archive data [lh6]
190 2       string          -lh7-           LHa (2.x) archive data [lh7]
191 >20     byte            x               - header level %d
192
193 # RAR archiver (Greg Roelofs, newt@uchicago.edu)
194 0       string          Rar!            RAR archive data,
195 >44     byte            x               v%0x,
196 >35     byte            0               os: MS-DOS
197 >35     byte            1               os: OS/2
198 >35     byte            2               os: Win32
199 >35     byte            3               os: Unix
200
201 # SQUISH archiver (Greg Roelofs, newt@uchicago.edu)
202 0       string          SQSH            squished archive data (Acorn RISCOS)
203
204 # UC2 archiver (Greg Roelofs, newt@uchicago.edu)
205 # I can't figure out the self-extracting form of these buggers...
206 0       string          UC2\x1a         UC2 archive data
207
208 # ZIP archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
209 0       string          PK\003\004      Zip archive data
210 >4      byte            0x09            \b, at least v0.9 to extract
211 >4      byte            0x0a            \b, at least v1.0 to extract
212 >4      byte            0x0b            \b, at least v1.1 to extract
213 >4      byte            0x14            \b, at least v2.0 to extract
214
215 # Zoo archiver
216 20      lelong          0xfdc4a7dc      Zoo archive data
217 >4      byte            >48             \b, v%c.
218 >>6     byte            >47             \b%c
219 >>>7    byte            >47             \b%c
220 >32     byte            >0              \b, modify: v%d
221 >>33    byte            x               \b.%d+
222 >42     lelong          0xfdc4a7dc      \b,
223 >>70    byte            >0              extract: v%d
224 >>>71   byte            x               \b.%d+
225
226 # Shell archives
227 10      string          #\ This\ is\ a\ shell\ archive  shell archive text
228
229 #
230 # LBR. NB: May conflict with the questionable 
231 #          "binary Computer Graphics Metafile" format.
232 #
233 0       string  \0\ \ \ \ \ \ \ \ \ \ \ \0\0    LBR archive data
234 #
235 # PMA (CP/M derivative of LHA)
236 #
237 2       string          -pm0-           PMarc archive data [pm0]
238 2       string          -pm1-           PMarc archive data [pm1]
239 2       string          -pm2-           PMarc archive data [pm2]
240 2       string          -pms-           PMarc SFX archive (CP/M, DOS)
241 5       string          -pc1-           PopCom compressed executable (CP/M)
242
243 # From Rafael Laboissiere <rafael@laboissiere.net>
244 # The Project Revision Control System (see
245 # http://prcs.sourceforge.net) generates a packaged project
246 # file which is recognized by the following entry: 
247 0       leshort         0xeb81  PRCS packaged project
248
249 # Microsoft cabinets 
250 # by David Necas (Yeti) <yeti@physics.muni.cz>
251 #0      string  MSCF\0\0\0\0    Microsoft cabinet file data,
252 #>25    byte    x               v%d
253 #>24    byte    x               \b.%d
254 # MPi: All CABs have version 1.3, so this is pointless.
255 # Better magic in debian-additions.
256
257 # GTKtalog catalogs 
258 # by David Necas (Yeti) <yeti@physics.muni.cz>
259 4       string  gtktalog\       GTKtalog catalog data,
260 >13     string  3               version 3
261 >>14    beshort 0x677a          (gzipped)
262 >>14    beshort !0x677a         (not gzipped)
263 >13     string  >3              version %s
264
265 ############################################################################
266 # Parity archive reconstruction file, the 'par' file format now used on Usenet.
267 0       string          PAR\0   PARity archive data
268 >48     leshort         =0      - Index file
269 >48     leshort         >0      - file number %d
270
271 # Felix von Leitner <felix-file@fefe.de>
272 0       string  d8:announce     BitTorrent file
273
274 # Atari MSA archive - Teemu Hukkanen <tjhukkan@iki.fi>
275 0       beshort 0x0e0f          Atari MSA archive data
276 >2      beshort x               \b, %d sectors per track
277 >4      beshort 0               \b, 1 sided
278 >4      beshort 1               \b, 2 sided
279 >6      beshort x               \b, starting track: %d
280 >8      beshort x               \b, ending track: %d
281
282 # Alternate ZIP string (amc@arwen.cs.berkeley.edu)
283 0       string  PK00PK\003\004  Zip archive data
284
285 # ACE archive (from http://www.wotsit.org/download.asp?f=ace)
286 # by Stefan `Sec` Zehl <sec@42.org>
287 7       string          **ACE**         ACE compressed archive
288 >15     byte    >0              version %d
289 >16     byte    =0x00           \b, from MS-DOS
290 >16     byte    =0x01           \b, from OS/2
291 >16     byte    =0x02           \b, from Win/32
292 >16     byte    =0x03           \b, from Unix
293 >16     byte    =0x04           \b, from MacOS
294 >16     byte    =0x05           \b, from WinNT
295 >16     byte    =0x06           \b, from Primos
296 >16     byte    =0x07           \b, from AppleGS
297 >16     byte    =0x08           \b, from Atari
298 >16     byte    =0x09           \b, from Vax/VMS
299 >16     byte    =0x0A           \b, from Amiga
300 >16     byte    =0x0B           \b, from Next
301 >14     byte    x               \b, version %d to extract
302 >5      leshort &0x0080         \b, multiple volumes,
303 >>17    byte    x               \b (part %d),
304 >5      leshort &0x0002         \b, contains comment
305 >5      leshort &0x0200         \b, sfx
306 >5      leshort &0x0400         \b, small dictionary
307 >5      leshort &0x0800         \b, multi-volume
308 >5      leshort &0x1000         \b, contains AV-String
309 >>30    string\x16*UNREGISTERED\x20VERSION*     (unregistered)
310 >5      leshort &0x2000         \b, with recovery record
311 >5      leshort &0x4000         \b, locked
312 >5      leshort &0x8000         \b, solid
313 # Date in MS-DOS format (whatever that is)
314 #>18    lelong  x               Created on
315
316 # sfArk : compression program for Soundfonts (sf2) by Dirk Jagdmann
317 # <doj@cubic.org>
318 0x1A    string  sfArk           sfArk compressed Soundfont
319 >0x15   string  2
320 >>0x1   string  >\0             Version %s
321 >>0x2A  string  >\0             : %s
322