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