98d2e091d0c437fdd6c2681730c811c0ce23c1c2
[dragonfly.git] / contrib / file / magic / Magdir / compress
1 #------------------------------------------------------------------------------
2 # $File: compress,v 1.47 2011/03/08 00:39:46 christos Exp $
3 # compress:  file(1) magic for pure-compression formats (no archives)
4 #
5 # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc.
6 #
7 # Formats for various forms of compressed data
8 # Formats for "compress" proper have been moved into "compress.c",
9 # because it tries to uncompress it to figure out what's inside.
10
11 # standard unix compress
12 0       string          \037\235        compress'd data
13 !:mime  application/x-compress
14 !:apple LZIVZIVU
15 >2      byte&0x80       >0              block compressed
16 >2      byte&0x1f       x               %d bits
17
18 # gzip (GNU zip, not to be confused with Info-ZIP or PKWARE zip archiver)
19 #   Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
20 #       * Original filename is only at offset 10 if "extra field" absent
21 #       * Produce shorter output - notably, only report compression methods
22 #         other than 8 ("deflate", the only method defined in RFC 1952).
23 0       string          \037\213        gzip compressed data
24 !:mime  application/x-gzip
25 >2      byte            <8              \b, reserved method
26 >2      byte            >8              \b, unknown method
27 >3      byte            &0x01           \b, ASCII
28 >3      byte            &0x02           \b, has CRC
29 >3      byte            &0x04           \b, extra field
30 >3      byte&0xC        =0x08
31 >>10    string          x               \b, was "%s"
32 >3      byte            &0x10           \b, has comment
33 >9      byte            =0x00           \b, from FAT filesystem (MS-DOS, OS/2, NT)
34 >9      byte            =0x01           \b, from Amiga
35 >9      byte            =0x02           \b, from VMS
36 >9      byte            =0x03           \b, from Unix
37 >9      byte            =0x04           \b, from VM/CMS
38 >9      byte            =0x05           \b, from Atari
39 >9      byte            =0x06           \b, from HPFS filesystem (OS/2, NT)
40 >9      byte            =0x07           \b, from MacOS
41 >9      byte            =0x08           \b, from Z-System
42 >9      byte            =0x09           \b, from CP/M
43 >9      byte            =0x0A           \b, from TOPS/20
44 >9      byte            =0x0B           \b, from NTFS filesystem (NT)
45 >9      byte            =0x0C           \b, from QDOS
46 >9      byte            =0x0D           \b, from Acorn RISCOS
47 >3      byte            &0x10           \b, comment
48 >3      byte            &0x20           \b, encrypted
49 >4      ledate          >0              \b, last modified: %s
50 >8      byte            2               \b, max compression
51 >8      byte            4               \b, max speed
52
53 # packed data, Huffman (minimum redundancy) codes on a byte-by-byte basis
54 0       string          \037\036        packed data
55 !:mime  application/octet-stream
56 >2      belong          >1              \b, %d characters originally
57 >2      belong          =1              \b, %d character originally
58 #
59 # This magic number is byte-order-independent.
60 0       short           0x1f1f          old packed data
61 !:mime  application/octet-stream
62
63 # XXX - why *two* entries for "compacted data", one of which is
64 # byte-order independent, and one of which is byte-order dependent?
65 #
66 0       short           0x1fff          compacted data
67 !:mime  application/octet-stream
68 # This string is valid for SunOS (BE) and a matching "short" is listed
69 # in the Ultrix (LE) magic file.
70 0       string          \377\037        compacted data
71 !:mime  application/octet-stream
72 0       short           0145405         huf output
73 !:mime  application/octet-stream
74
75 # bzip2
76 0       string          BZh             bzip2 compressed data
77 !:mime  application/x-bzip2
78 >3      byte            >47             \b, block size = %c00k
79
80 # lzip
81 0       string          LZIP            lzip compressed data
82 !:mime application/x-lzip
83 >4      byte            x               \b, version: %d
84
85 # squeeze and crunch
86 # Michael Haardt <michael@cantor.informatik.rwth-aachen.de>
87 0       beshort         0x76FF          squeezed data,
88 >4      string          x               original name %s
89 0       beshort         0x76FE          crunched data,
90 >2      string          x               original name %s
91 0       beshort         0x76FD          LZH compressed data,
92 >2      string          x               original name %s
93
94 # Freeze
95 0       string          \037\237        frozen file 2.1
96 0       string          \037\236        frozen file 1.0 (or gzip 0.5)
97
98 # SCO compress -H (LZH)
99 0       string          \037\240        SCO compress -H (LZH) data
100
101 # European GSM 06.10 is a provisional standard for full-rate speech
102 # transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse
103 # excitation/long term prediction) coding at 13 kbit/s.
104 #
105 # There's only a magic nibble (4 bits); that nibble repeats every 33
106 # bytes.  This isn't suited for use, but maybe we can use it someday.
107 #
108 # This will cause very short GSM files to be declared as data and
109 # mismatches to be declared as data too!
110 #0      byte&0xF0       0xd0            data
111 #>33    byte&0xF0       0xd0
112 #>66    byte&0xF0       0xd0
113 #>99    byte&0xF0       0xd0
114 #>132   byte&0xF0       0xd0            GSM 06.10 compressed audio
115
116 # bzip  a block-sorting file compressor
117 #       by Julian Seward <sewardj@cs.man.ac.uk> and others
118 #
119 #0      string          BZ              bzip compressed data
120 #>2     byte            x               \b, version: %c
121 #>3     string          =1              \b, compression block size 100k
122 #>3     string          =2              \b, compression block size 200k
123 #>3     string          =3              \b, compression block size 300k
124 #>3     string          =4              \b, compression block size 400k
125 #>3     string          =5              \b, compression block size 500k
126 #>3     string          =6              \b, compression block size 600k
127 #>3     string          =7              \b, compression block size 700k
128 #>3     string          =8              \b, compression block size 800k
129 #>3     string          =9              \b, compression block size 900k
130
131 # lzop from <markus.oberhumer@jk.uni-linz.ac.at>
132 0       string          \x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a    lzop compressed data
133 >9      beshort         <0x0940
134 >>9     byte&0xf0       =0x00           - version 0.
135 >>9     beshort&0x0fff  x               \b%03x,
136 >>13    byte            1               LZO1X-1,
137 >>13    byte            2               LZO1X-1(15),
138 >>13    byte            3               LZO1X-999,
139 ## >>22 bedate          >0              last modified: %s,
140 >>14    byte            =0x00           os: MS-DOS
141 >>14    byte            =0x01           os: Amiga
142 >>14    byte            =0x02           os: VMS
143 >>14    byte            =0x03           os: Unix
144 >>14    byte            =0x05           os: Atari
145 >>14    byte            =0x06           os: OS/2
146 >>14    byte            =0x07           os: MacOS
147 >>14    byte            =0x0A           os: Tops/20
148 >>14    byte            =0x0B           os: WinNT
149 >>14    byte            =0x0E           os: Win32
150 >9      beshort         >0x0939
151 >>9     byte&0xf0       =0x00           - version 0.
152 >>9     byte&0xf0       =0x10           - version 1.
153 >>9     byte&0xf0       =0x20           - version 2.
154 >>9     beshort&0x0fff  x               \b%03x,
155 >>15    byte            1               LZO1X-1,
156 >>15    byte            2               LZO1X-1(15),
157 >>15    byte            3               LZO1X-999,
158 ## >>25 bedate          >0              last modified: %s,
159 >>17    byte            =0x00           os: MS-DOS
160 >>17    byte            =0x01           os: Amiga
161 >>17    byte            =0x02           os: VMS
162 >>17    byte            =0x03           os: Unix
163 >>17    byte            =0x05           os: Atari
164 >>17    byte            =0x06           os: OS/2
165 >>17    byte            =0x07           os: MacOS
166 >>17    byte            =0x0A           os: Tops/20
167 >>17    byte            =0x0B           os: WinNT
168 >>17    byte            =0x0E           os: Win32
169
170 # 4.3BSD-Quasijarus Strong Compression
171 # http://minnie.tuhs.org/Quasijarus/compress.html
172 0       string          \037\241        Quasijarus strong compressed data
173
174 # From: Cory Dikkers <cdikkers@swbell.net>
175 0       string          XPKF            Amiga xpkf.library compressed data
176 0       string          PP11            Power Packer 1.1 compressed data
177 0       string          PP20            Power Packer 2.0 compressed data,
178 >4      belong          0x09090909      fast compression
179 >4      belong          0x090A0A0A      mediocre compression
180 >4      belong          0x090A0B0B      good compression
181 >4      belong          0x090A0C0C      very good compression
182 >4      belong          0x090A0C0D      best compression
183
184 # 7-zip archiver, from Thomas Klausner (wiz@danbala.tuwien.ac.at)
185 # http://www.7-zip.org or DOC/7zFormat.txt
186 #
187 0       string          7z\274\257\047\034      7-zip archive data,
188 >6      byte            x                       version %d
189 >7      byte            x                       \b.%d
190 !:mime  application/x-7z-compressed
191
192 # Type: LZMA
193 0       lelong          0x8000005d              LZMA compressed data,
194 >5      lequad          =0xffffffffffffffff     streamed
195 >5      lequad          !0xffffffffffffffff     non-streamed, size %lld
196 !:mime  application/x-lzma
197
198 # http://tukaani.org/xz/xz-file-format.txt
199 0       ustring         \xFD7zXZ\x00            XZ compressed data
200 !:mime  application/x-xz
201
202 # https://github.com/ckolivas/lrzip/blob/master/doc/magic.header.txt
203 0       string          LRZI                    LRZIP compressed data
204 >4      byte            x                       - version %d
205 >5      byte            x                       \b.%d
206 !:mime  application/x-lrzip
207
208 # AFX compressed files (Wolfram Kleff)
209 2       string          -afx-           AFX compressed file data
210
211 # Supplementary magic data for the file(1) command to support
212 # rzip(1).  The format is described in magic(5).
213 #
214 # Copyright (C) 2003 by Andrew Tridgell.  You may do whatever you want with
215 # this file.
216 #
217 0       string          RZIP            rzip compressed data
218 >4      byte            x               - version %d
219 >5      byte            x               \b.%d
220 >6      belong          x               (%d bytes)
221
222 0       string          ArC\x01         FreeArc archive <http://freearc.org>
223
224 # Type: DACT compressed files
225 0       long    0x444354C3      DACT compressed data
226 >4      byte    >-1             (version %i.
227 >5      byte    >-1             %i.
228 >6      byte    >-1             %i)
229 >7      long    >0              , original size: %i bytes
230 >15     long    >30             , block size: %i bytes