xref: /aosp_15_r20/external/squashfs-tools/CHANGES (revision 79398b2563bcbbbab54656397863972d8fa68df1)
1*79398b25SAndroid Build Coastguard Worker			SQUASHFS CHANGE LOG
2*79398b25SAndroid Build Coastguard Worker
3*79398b25SAndroid Build Coastguard Worker4.3	12 MAY 2014	New compressor options, new Mksquashfs/Unsquashfs
4*79398b25SAndroid Build Coastguard Worker			functionality, duplicate checking optimisations,
5*79398b25SAndroid Build Coastguard Worker			stability improvements (option/file parsing,
6*79398b25SAndroid Build Coastguard Worker			buffer/memory overflow checks, filesystem hardening
7*79398b25SAndroid Build Coastguard Worker			on corrupted filesystems), CVE fixes.
8*79398b25SAndroid Build Coastguard Worker
9*79398b25SAndroid Build Coastguard Worker	Too many changes to do the traditional custom changelog.  But, this
10*79398b25SAndroid Build Coastguard Worker	is now unnecessary, so instead list most significant 15% of commits
11*79398b25SAndroid Build Coastguard Worker	from git changelog in chronological order.
12*79398b25SAndroid Build Coastguard Worker
13*79398b25SAndroid Build Coastguard Worker	- unsquashfs: add checks for corrupted data in opendir functions
14*79398b25SAndroid Build Coastguard Worker	- unsquashfs: completely empty filesystems incorrectly generate an error
15*79398b25SAndroid Build Coastguard Worker	- unsquashfs: fix open file limit
16*79398b25SAndroid Build Coastguard Worker	- mksquashfs: Use linked list to store directory entries rather
17*79398b25SAndroid Build Coastguard Worker	- mksquashfs: Remove qsort and add a bottom up linked list merge sort
18*79398b25SAndroid Build Coastguard Worker	- mksquashfs: optimise lookup_inode2() for dirs
19*79398b25SAndroid Build Coastguard Worker	- pseudo: fix handling of modify pseudo files
20*79398b25SAndroid Build Coastguard Worker	- pseudo: fix handling of directory pseudo files
21*79398b25SAndroid Build Coastguard Worker	- xattr: Fix ERROR() so that it is synchronised with the progress bar
22*79398b25SAndroid Build Coastguard Worker	- mksquashfs/sort: Fix INFO() so that it is synced with the progress bar
23*79398b25SAndroid Build Coastguard Worker	- mksquashfs: Add -progress to force progress bar when using -info
24*79398b25SAndroid Build Coastguard Worker	- error.h: consolidate the various error macros into one header file
25*79398b25SAndroid Build Coastguard Worker	- mksquashfs: fix stack overflow in write_fragment_table()
26*79398b25SAndroid Build Coastguard Worker	- mksquashfs: move list allocation from off the stack
27*79398b25SAndroid Build Coastguard Worker	- unsquashfs: fix oversight in directory permission setting
28*79398b25SAndroid Build Coastguard Worker	- mksquashfs: dynamically allocate recovery_file
29*79398b25SAndroid Build Coastguard Worker	- mksquashfs: dynamically allocate buffer in subpathname()
30*79398b25SAndroid Build Coastguard Worker	- mksquashfs: dynamically allocate buffer in pathname()
31*79398b25SAndroid Build Coastguard Worker	- unsquashfs: fix CVE-2012-4024
32*79398b25SAndroid Build Coastguard Worker	- unsquashfs: fix CVE-2012-4025
33*79398b25SAndroid Build Coastguard Worker	- mksquashfs: fix potential stack overflow in get_component()
34*79398b25SAndroid Build Coastguard Worker	- mksquashfs: add parse_number() helper for numeric command line options
35*79398b25SAndroid Build Coastguard Worker	- mksquasfs: check return value of fstat() in reader_read_file()
36*79398b25SAndroid Build Coastguard Worker	- mksquashfs: dynamically allocate filename in old_add_exclude()
37*79398b25SAndroid Build Coastguard Worker	- unsquashfs: dynamically allocate pathname in dir_scan()
38*79398b25SAndroid Build Coastguard Worker	- unsquashfs: dynamically allocate pathname in pre_scan()
39*79398b25SAndroid Build Coastguard Worker	- sort: dynamically allocate filename in add_sort_list()
40*79398b25SAndroid Build Coastguard Worker	- mksquashfs: fix dir_scan() exit if lstat of source directory fails
41*79398b25SAndroid Build Coastguard Worker	- pseudo: fix memory leak in read_pseudo_def() if exec_file() fails
42*79398b25SAndroid Build Coastguard Worker	- pseudo: dynamically allocate path in dump_pseudo()
43*79398b25SAndroid Build Coastguard Worker	- mksquashfs: dynamically allocate path in display_path2()
44*79398b25SAndroid Build Coastguard Worker	- mksquashfs: dynamically allocate b_buffer in getbase()
45*79398b25SAndroid Build Coastguard Worker	- pseudo: fix potential stack overflow in get_component()
46*79398b25SAndroid Build Coastguard Worker	- pseudo: avoid buffer overflow in read_pseudo_def() using sscanf()
47*79398b25SAndroid Build Coastguard Worker	- pseudo: dynamically allocate filename in exec_file()
48*79398b25SAndroid Build Coastguard Worker	- pseudo: avoid buffer overflow in read_sort_file() using fscanf()
49*79398b25SAndroid Build Coastguard Worker	- sort: tighten up sort file parsing
50*79398b25SAndroid Build Coastguard Worker	- unsquashfs: fix name under-allocation in process_extract_files()
51*79398b25SAndroid Build Coastguard Worker	- unsquashfs: avoid buffer overflow in print_filename() using sprintf()
52*79398b25SAndroid Build Coastguard Worker	- Fix some limits in the file parsing routines
53*79398b25SAndroid Build Coastguard Worker	- pseudo: Rewrite pseudo file processing
54*79398b25SAndroid Build Coastguard Worker	- read_fs: fix small memory leaks in read_filesystem()
55*79398b25SAndroid Build Coastguard Worker	- mksquashfs: fix fclose leak in reader_read_file() on I/O error
56*79398b25SAndroid Build Coastguard Worker	- mksquashfs: fix frag struct leak in write_file_{process|blocks|frag}
57*79398b25SAndroid Build Coastguard Worker	- unsquashfs_xattr: fix memory leak in write_xattr()
58*79398b25SAndroid Build Coastguard Worker	- read_xattrs: fix xattr free in get_xattr() in error path
59*79398b25SAndroid Build Coastguard Worker	- unsquashfs: add -user-xattrs option to only extract user.xxx xattrs
60*79398b25SAndroid Build Coastguard Worker	- unsquashfs: add code to only print "not superuser" error message once
61*79398b25SAndroid Build Coastguard Worker	- unsquashfs: check for integer overflow in user input
62*79398b25SAndroid Build Coastguard Worker	- mksquashfs: check for integer overflow in user input
63*79398b25SAndroid Build Coastguard Worker	- mksquashfs: fix "new" variable leak in dir_scan1()
64*79398b25SAndroid Build Coastguard Worker	- read_fs: prevent buffer {over|under}flow in read_block() with
65*79398b25SAndroid Build Coastguard Worker	  corrupted filesystems
66*79398b25SAndroid Build Coastguard Worker	- read_fs: check metadata blocks are expected size in scan_inode_table()
67*79398b25SAndroid Build Coastguard Worker	- read_fs: check the root inode block is found in scan_inode_table()
68*79398b25SAndroid Build Coastguard Worker	- read_fs: Further harden scan_inode_table() against corrupted
69*79398b25SAndroid Build Coastguard Worker	  filesystems
70*79398b25SAndroid Build Coastguard Worker	- unsquashfs: prevent buffer {over|under}flow in read_block() with
71*79398b25SAndroid Build Coastguard Worker	  corrupted filesystems
72*79398b25SAndroid Build Coastguard Worker	- read_xattrs: harden xattr data reading against corrupted filesystems
73*79398b25SAndroid Build Coastguard Worker	- unsquash-[23]: harden frag table reading against corrupted filesystems
74*79398b25SAndroid Build Coastguard Worker	- unsquash-4.c: harden uid/gid & frag table reading against corruption
75*79398b25SAndroid Build Coastguard Worker	- unsquashfs: harden inode/directory table reading against corruption
76*79398b25SAndroid Build Coastguard Worker	- mksquashfs: improve out of space in output filesystem handling
77*79398b25SAndroid Build Coastguard Worker	- mksquashfs: flag lseek error in writer as probable out of space
78*79398b25SAndroid Build Coastguard Worker	- mksquashfs: flag lseek error in write_destination as probable out of
79*79398b25SAndroid Build Coastguard Worker	  space
80*79398b25SAndroid Build Coastguard Worker	- mksquashfs: print file being squashed when ^\ (SIGQUIT) typed
81*79398b25SAndroid Build Coastguard Worker	- mksquashfs: make EXIT_MKSQUASHFS() etc restore via new restore thread
82*79398b25SAndroid Build Coastguard Worker	- mksquashfs: fix recursive restore failure check
83*79398b25SAndroid Build Coastguard Worker	- info: dump queue and cache status if ^\ hit twice within one second
84*79398b25SAndroid Build Coastguard Worker	- mksquashfs: fix rare race condition in "locked fragment" queueing
85*79398b25SAndroid Build Coastguard Worker	- lz4: add experimental support for lz4 compression
86*79398b25SAndroid Build Coastguard Worker	- lz4: add support for lz4 "high compression"
87*79398b25SAndroid Build Coastguard Worker	- lzo_wrapper: new implementation with compression options
88*79398b25SAndroid Build Coastguard Worker	- gzip_wrapper: add compression options
89*79398b25SAndroid Build Coastguard Worker	- mksquashfs: redo -comp <compressor> parsing
90*79398b25SAndroid Build Coastguard Worker	- mksquashfs: display compressor options when -X option isn't recognised
91*79398b25SAndroid Build Coastguard Worker	- mksquashfs: add -Xhelp option
92*79398b25SAndroid Build Coastguard Worker	- mksquashfs/unsquashfs: fix mtime signedness
93*79398b25SAndroid Build Coastguard Worker	- Mksquashfs: optimise duplicate checking when appending
94*79398b25SAndroid Build Coastguard Worker	- Mksquashfs: introduce additional per CPU fragment process threads
95*79398b25SAndroid Build Coastguard Worker	- Mksquashfs: significantly optimise fragment duplicate checking
96*79398b25SAndroid Build Coastguard Worker	- read_fs: scan_inode_table(), fix memory leak on filesystem corruption
97*79398b25SAndroid Build Coastguard Worker	- pseudo: add_pseudo(), fix use of freed variable
98*79398b25SAndroid Build Coastguard Worker	- mksquashfs/unsquashfs: exclude/extract/pseudo files, fix handling of
99*79398b25SAndroid Build Coastguard Worker	  leaf name
100*79398b25SAndroid Build Coastguard Worker	- mksquashfs: rewrite default queue size so it's based on physical mem
101*79398b25SAndroid Build Coastguard Worker	- mksquashfs: add a new -mem <mbytes> option
102*79398b25SAndroid Build Coastguard Worker	- mksquashfs: fix limit on the number of dynamic pseudo files
103*79398b25SAndroid Build Coastguard Worker	- mksquashfs: make -mem take a normal byte value, optionally with a
104*79398b25SAndroid Build Coastguard Worker	  K, M or G
105*79398b25SAndroid Build Coastguard Worker
106*79398b25SAndroid Build Coastguard Worker4.2	28 FEB 2011	XZ compression, and compression options support
107*79398b25SAndroid Build Coastguard Worker
108*79398b25SAndroid Build Coastguard Worker	1. Filesystem improvements:
109*79398b25SAndroid Build Coastguard Worker
110*79398b25SAndroid Build Coastguard Worker	    1.1 Added XZ compression
111*79398b25SAndroid Build Coastguard Worker	    1.2 Added compression options support
112*79398b25SAndroid Build Coastguard Worker
113*79398b25SAndroid Build Coastguard Worker	2. Miscellaneous improvements/bug fixes
114*79398b25SAndroid Build Coastguard Worker
115*79398b25SAndroid Build Coastguard Worker	    1.1 Add missing NO_XATTR filesystem flag to indicate no-xattrs
116*79398b25SAndroid Build Coastguard Worker		option was specified and no xattrs should be stored when
117*79398b25SAndroid Build Coastguard Worker		appending.
118*79398b25SAndroid Build Coastguard Worker	    1.2 Add suppport in Unquashfs -stat option for displaying
119*79398b25SAndroid Build Coastguard Worker		NO_XATTR flag.
120*79398b25SAndroid Build Coastguard Worker	    1.3 Remove checkdata entry from Unsquashfs -stat option if a 4.0
121*79398b25SAndroid Build Coastguard Worker		filesystem - checkdata is no longer supported.
122*79398b25SAndroid Build Coastguard Worker	    1.4 Fix appending bug when appending to an empty filesystem - this
123*79398b25SAndroid Build Coastguard Worker		would be incorrectly treated as an error.
124*79398b25SAndroid Build Coastguard Worker	    1.5 Use glibc sys/xattr.h include rather than using attr/xattr.h
125*79398b25SAndroid Build Coastguard Worker		which isn't present by default on some distributions.
126*79398b25SAndroid Build Coastguard Worker	    1.6 Unsquashfs, fix block calculation error with regular files when
127*79398b25SAndroid Build Coastguard Worker		file size is between 2^32-block_size+1 and 2^32-1.
128*79398b25SAndroid Build Coastguard Worker	    1.7 Unsquashfs, fix sparse file writing when holes are larger than
129*79398b25SAndroid Build Coastguard Worker		2^31-1.
130*79398b25SAndroid Build Coastguard Worker	    1.8 Add external CFLAGS and LDFLAGS support to Makefile, and allow
131*79398b25SAndroid Build Coastguard Worker		build options to be specified on command line.  Also don't
132*79398b25SAndroid Build Coastguard Worker		over-write passed in CFLAGS definition.
133*79398b25SAndroid Build Coastguard Worker
134*79398b25SAndroid Build Coastguard Worker
135*79398b25SAndroid Build Coastguard Worker4.1	19 SEPT 2010	Major filesystem and tools improvements
136*79398b25SAndroid Build Coastguard Worker
137*79398b25SAndroid Build Coastguard Worker	1. Filesystem improvements:
138*79398b25SAndroid Build Coastguard Worker
139*79398b25SAndroid Build Coastguard Worker	    1.1 Extended attribute support
140*79398b25SAndroid Build Coastguard Worker	    1.2 New compression framework
141*79398b25SAndroid Build Coastguard Worker	    1.3 Support for LZO compression
142*79398b25SAndroid Build Coastguard Worker	    1.4 Support for LZMA compression (not yet in mainline)
143*79398b25SAndroid Build Coastguard Worker
144*79398b25SAndroid Build Coastguard Worker	2. Mksquashfs improvements:
145*79398b25SAndroid Build Coastguard Worker
146*79398b25SAndroid Build Coastguard Worker	    1.1 Enhanced pseudo file support
147*79398b25SAndroid Build Coastguard Worker	    1.2 New options for choosing compression algorithm used
148*79398b25SAndroid Build Coastguard Worker	    1.3 New options for controlling extended attributes
149*79398b25SAndroid Build Coastguard Worker	    1.4 Fix misalignment issues with memcpy etc. seen on ARM
150*79398b25SAndroid Build Coastguard Worker	    1.5 Fix floating point error in progress_bar when max == 0
151*79398b25SAndroid Build Coastguard Worker	    1.6 Removed use of get_nproc() call unavailable in ulibc
152*79398b25SAndroid Build Coastguard Worker	    1.7 Reorganised help text
153*79398b25SAndroid Build Coastguard Worker
154*79398b25SAndroid Build Coastguard Worker	3. Unsquashfs improvements:
155*79398b25SAndroid Build Coastguard Worker
156*79398b25SAndroid Build Coastguard Worker	    1.1 New options for controlling extended attributes
157*79398b25SAndroid Build Coastguard Worker	    1.2 Fix misalignment issues with memcpy etc. seen on ARM
158*79398b25SAndroid Build Coastguard Worker	    1.3 Fix floating point error in progress_bar when max == 0
159*79398b25SAndroid Build Coastguard Worker	    1.4 Removed use of get_nproc() call unavailable in ulibc
160*79398b25SAndroid Build Coastguard Worker
161*79398b25SAndroid Build Coastguard Worker
162*79398b25SAndroid Build Coastguard Worker4.0	5 APR 2009	Major filesystems improvements
163*79398b25SAndroid Build Coastguard Worker
164*79398b25SAndroid Build Coastguard Worker	1. Kernel code improvements:
165*79398b25SAndroid Build Coastguard Worker
166*79398b25SAndroid Build Coastguard Worker	    1.1 Fixed little endian layout adopted.  All swapping macros
167*79398b25SAndroid Build Coastguard Worker		removed, and in-line swapping added for big-endian
168*79398b25SAndroid Build Coastguard Worker		architectures.
169*79398b25SAndroid Build Coastguard Worker	    1.2 Kernel code substantially improved and restructured.
170*79398b25SAndroid Build Coastguard Worker	    1.3 Kernel code split into separate files along functional lines.
171*79398b25SAndroid Build Coastguard Worker	    1.4 Vmalloc usage removed, and code changed to use separately
172*79398b25SAndroid Build Coastguard Worker		allocated 4K buffers
173*79398b25SAndroid Build Coastguard Worker
174*79398b25SAndroid Build Coastguard Worker	2. Unsquashfs improvements:
175*79398b25SAndroid Build Coastguard Worker
176*79398b25SAndroid Build Coastguard Worker	    2.1 Support for 4.0 filesystems added.
177*79398b25SAndroid Build Coastguard Worker	    2.2 Swapping macros rewritten.
178*79398b25SAndroid Build Coastguard Worker	    2.3 Unsquashfs code restructured and split into separate files.
179*79398b25SAndroid Build Coastguard Worker
180*79398b25SAndroid Build Coastguard Worker	3. Mksquashfs improvements:
181*79398b25SAndroid Build Coastguard Worker
182*79398b25SAndroid Build Coastguard Worker	    3.1 Swapping macros rewritten.  Fixed little-endian layout allows
183*79398b25SAndroid Build Coastguard Worker		code to be optimised and only added at compile time for
184*79398b25SAndroid Build Coastguard Worker		big endian systems.
185*79398b25SAndroid Build Coastguard Worker	    3.2 Support for pseudo files added.
186*79398b25SAndroid Build Coastguard Worker
187*79398b25SAndroid Build Coastguard Worker3.4	26 AUG 2008	Performance improvements to Unsquashfs, Mksquashfs
188*79398b25SAndroid Build Coastguard Worker			and the kernel code.  Plus many small bug fixes.
189*79398b25SAndroid Build Coastguard Worker
190*79398b25SAndroid Build Coastguard Worker	1. Kernel code improvements:
191*79398b25SAndroid Build Coastguard Worker
192*79398b25SAndroid Build Coastguard Worker	    1.1 Internal Squashfs kernel metadata and fragment cache
193*79398b25SAndroid Build Coastguard Worker		implementations have been merged and optimised.  Spinlocks are
194*79398b25SAndroid Build Coastguard Worker		now used, locks are held for smaller periods and wakeups have
195*79398b25SAndroid Build Coastguard Worker		been minimised.  Small race condition fixed where if two or
196*79398b25SAndroid Build Coastguard Worker		more processes tried to read the same cache block
197*79398b25SAndroid Build Coastguard Worker		simultaneously they would both read and decompress it.  10-20%+
198*79398b25SAndroid Build Coastguard Worker		speed improvement has been seen on tests.
199*79398b25SAndroid Build Coastguard Worker	    1.2 NFS export code rewritten following VFS changes in
200*79398b25SAndroid Build Coastguard Worker		linux-2.6.24.
201*79398b25SAndroid Build Coastguard Worker	    1.3 New patches for linux-2.6.25, linux-2.6.26, and linux-2.6.27.
202*79398b25SAndroid Build Coastguard Worker		Fixed patch for linux-2.6.24.
203*79398b25SAndroid Build Coastguard Worker	    1.4 Fixed small buffer_head leak in squashfs_read_data when
204*79398b25SAndroid Build Coastguard Worker		handling badly corrupted filesystems.
205*79398b25SAndroid Build Coastguard Worker	    1.5 Fixed bug in get_dir_index_using_offset.
206*79398b25SAndroid Build Coastguard Worker
207*79398b25SAndroid Build Coastguard Worker	2. Unsquashfs improvements:
208*79398b25SAndroid Build Coastguard Worker
209*79398b25SAndroid Build Coastguard Worker	    2.1 Unsquashfs has been parallelised.  Filesystem reading, writing
210*79398b25SAndroid Build Coastguard Worker		and decompression is now multi-threaded.  Up to 40% speed
211*79398b25SAndroid Build Coastguard Worker		improvement seen on tests.
212*79398b25SAndroid Build Coastguard Worker	    2.2 Unsquashfs now has a progress bar.  Use -no-progress to
213*79398b25SAndroid Build Coastguard Worker		disable it.
214*79398b25SAndroid Build Coastguard Worker	    2.3 Fixed small bug where unistd.h wasn't being included on
215*79398b25SAndroid Build Coastguard Worker		some distributions, leading to lseek being used rather than
216*79398b25SAndroid Build Coastguard Worker		lseek64 - which meant on these distributions Unsquashfs
217*79398b25SAndroid Build Coastguard Worker		couldn't unsquash filesystems larger than 4GB.
218*79398b25SAndroid Build Coastguard Worker
219*79398b25SAndroid Build Coastguard Worker       3. Mksquashfs improvements:
220*79398b25SAndroid Build Coastguard Worker
221*79398b25SAndroid Build Coastguard Worker	    3.1 Removed some small remaining parallelisation bottlenecks.
222*79398b25SAndroid Build Coastguard Worker		Depending on source filesystem, up to 10%+ speed improvement.
223*79398b25SAndroid Build Coastguard Worker	    3.2 Progress bar improved, and moved to separate thread.
224*79398b25SAndroid Build Coastguard Worker	    3.3 Sparse file handling bug in Mksquashfs 3.3 fixed.
225*79398b25SAndroid Build Coastguard Worker	    3.4 Two rare appending restore bugs fixed (when ^C hit twice).
226*79398b25SAndroid Build Coastguard Worker
227*79398b25SAndroid Build Coastguard Worker
228*79398b25SAndroid Build Coastguard Worker3.3	1 NOV 2007	Increase in block size, sparse file support,
229*79398b25SAndroid Build Coastguard Worker			Mksquashfs and Unsquashfs extended to use
230*79398b25SAndroid Build Coastguard Worker			pattern matching in exclude/extract files, plus
231*79398b25SAndroid Build Coastguard Worker			many more improvements and bug fixes.
232*79398b25SAndroid Build Coastguard Worker
233*79398b25SAndroid Build Coastguard Worker	1. Filesystem improvements:
234*79398b25SAndroid Build Coastguard Worker
235*79398b25SAndroid Build Coastguard Worker	     1.1. Maximum block size has been increased to 1Mbyte, and the
236*79398b25SAndroid Build Coastguard Worker	    	  default block size has been increased to 128 Kbytes.
237*79398b25SAndroid Build Coastguard Worker		  This improves compression.
238*79398b25SAndroid Build Coastguard Worker
239*79398b25SAndroid Build Coastguard Worker	     1.2. Sparse files are now supported.  Sparse files are files
240*79398b25SAndroid Build Coastguard Worker		  which have large areas of unallocated data commonly called
241*79398b25SAndroid Build Coastguard Worker		  holes.  These files are now detected by Squashfs and stored
242*79398b25SAndroid Build Coastguard Worker		  more efficiently.  This improves compression and read
243*79398b25SAndroid Build Coastguard Worker		  performance for sparse files.
244*79398b25SAndroid Build Coastguard Worker
245*79398b25SAndroid Build Coastguard Worker	2. Mksquashfs improvements:
246*79398b25SAndroid Build Coastguard Worker
247*79398b25SAndroid Build Coastguard Worker	   2.1.  Exclude files have been extended to use wildcard pattern
248*79398b25SAndroid Build Coastguard Worker		 matching and regular expressions.  Support has also been
249*79398b25SAndroid Build Coastguard Worker		 added for non-anchored excludes, which means it is
250*79398b25SAndroid Build Coastguard Worker		 now possible to specify excludes which match anywhere
251*79398b25SAndroid Build Coastguard Worker		 in the filesystem (i.e. leaf files), rather than always
252*79398b25SAndroid Build Coastguard Worker		 having to specify exclude files starting from the root
253*79398b25SAndroid Build Coastguard Worker		 directory (anchored excludes).
254*79398b25SAndroid Build Coastguard Worker
255*79398b25SAndroid Build Coastguard Worker	   2.2.  Recovery files are now created when appending to existing
256*79398b25SAndroid Build Coastguard Worker		 Squashfs filesystems.  This allows the original filesystem
257*79398b25SAndroid Build Coastguard Worker		 to be recovered if Mksquashfs aborts unexpectedly
258*79398b25SAndroid Build Coastguard Worker		 (i.e. power failure).
259*79398b25SAndroid Build Coastguard Worker
260*79398b25SAndroid Build Coastguard Worker	3. Unsquashfs improvements:
261*79398b25SAndroid Build Coastguard Worker
262*79398b25SAndroid Build Coastguard Worker	    3.1. Multiple extract files can now be specified on the
263*79398b25SAndroid Build Coastguard Worker		 command line, and the files/directories to be extracted can
264*79398b25SAndroid Build Coastguard Worker		 now also be given in a file.
265*79398b25SAndroid Build Coastguard Worker
266*79398b25SAndroid Build Coastguard Worker	    3.2. Extract files have been extended to use wildcard pattern
267*79398b25SAndroid Build Coastguard Worker		 matching and regular expressions.
268*79398b25SAndroid Build Coastguard Worker
269*79398b25SAndroid Build Coastguard Worker	    3.3. Filename printing has been enhanced and Unquashfs can
270*79398b25SAndroid Build Coastguard Worker		 now display filenames with file attributes
271*79398b25SAndroid Build Coastguard Worker		 ('ls -l' style output).
272*79398b25SAndroid Build Coastguard Worker
273*79398b25SAndroid Build Coastguard Worker	    3.4. A -stat option has been added which displays the filesystem
274*79398b25SAndroid Build Coastguard Worker		 superblock information.
275*79398b25SAndroid Build Coastguard Worker
276*79398b25SAndroid Build Coastguard Worker	    3.5. Unsquashfs now supports 1.x filesystems.
277*79398b25SAndroid Build Coastguard Worker
278*79398b25SAndroid Build Coastguard Worker	4. Miscellaneous improvements/bug fixes:
279*79398b25SAndroid Build Coastguard Worker
280*79398b25SAndroid Build Coastguard Worker	    4.1. Squashfs kernel code improved to use SetPageError in
281*79398b25SAndroid Build Coastguard Worker		 squashfs_readpage() if I/O error occurs.
282*79398b25SAndroid Build Coastguard Worker
283*79398b25SAndroid Build Coastguard Worker	    4.2. Fixed Squashfs kernel code bug preventing file
284*79398b25SAndroid Build Coastguard Worker		 seeking beyond 2GB.
285*79398b25SAndroid Build Coastguard Worker
286*79398b25SAndroid Build Coastguard Worker	    4.3. Mksquashfs now detects file size changes between
287*79398b25SAndroid Build Coastguard Worker		 first phase directory scan and second phase filesystem create.
288*79398b25SAndroid Build Coastguard Worker		 It also deals better with file I/O errors.
289*79398b25SAndroid Build Coastguard Worker
290*79398b25SAndroid Build Coastguard Worker
291*79398b25SAndroid Build Coastguard Worker3.2-r2	15 JAN 2007	Kernel patch update and progress bar bug fix
292*79398b25SAndroid Build Coastguard Worker
293*79398b25SAndroid Build Coastguard Worker	1. Kernel patches 2.6.19/2.6.20 have been updated to use
294*79398b25SAndroid Build Coastguard Worker	   const structures and mutexes rather than older semaphores.
295*79398b25SAndroid Build Coastguard Worker	2. Minor SMP bug fixes.
296*79398b25SAndroid Build Coastguard Worker	3. Progress bar broken on x86-64.  Fixed.
297*79398b25SAndroid Build Coastguard Worker
298*79398b25SAndroid Build Coastguard Worker3.2	2 JAN 2007	NFS support, improvements to the Squashfs-tools, major
299*79398b25SAndroid Build Coastguard Worker			bug fixes, lots of small improvements/bug fixes, and new
300*79398b25SAndroid Build Coastguard Worker			kernel patches.
301*79398b25SAndroid Build Coastguard Worker
302*79398b25SAndroid Build Coastguard Worker	Improvements:
303*79398b25SAndroid Build Coastguard Worker
304*79398b25SAndroid Build Coastguard Worker	1. Squashfs filesystems can now be exported via NFS.
305*79398b25SAndroid Build Coastguard Worker	2. Unsquashfs now supports 2.x filesystems.
306*79398b25SAndroid Build Coastguard Worker	3. Mksquashfs now displays a progress bar.
307*79398b25SAndroid Build Coastguard Worker	4. Squashfs kernel code has been hardened against accidently or
308*79398b25SAndroid Build Coastguard Worker	   maliciously corrupted Squashfs filesystems.
309*79398b25SAndroid Build Coastguard Worker
310*79398b25SAndroid Build Coastguard Worker	Bug fixes:
311*79398b25SAndroid Build Coastguard Worker
312*79398b25SAndroid Build Coastguard Worker	5. Race condition occurring on S390 in readpage() fixed.
313*79398b25SAndroid Build Coastguard Worker	6. Odd behaviour of MIPS memcpy in read_data() routine worked-around.
314*79398b25SAndroid Build Coastguard Worker	7. Missing cache_flush in Squashfs symlink_readpage() added.
315*79398b25SAndroid Build Coastguard Worker
316*79398b25SAndroid Build Coastguard Worker
317*79398b25SAndroid Build Coastguard Worker3.1-r2	30 AUG 2006	Mksquashfs -sort bug fix
318*79398b25SAndroid Build Coastguard Worker
319*79398b25SAndroid Build Coastguard Worker			A code optimisation after testing unfortunately
320*79398b25SAndroid Build Coastguard Worker			broke sorting in Mksquashfs.  This has been fixed.
321*79398b25SAndroid Build Coastguard Worker
322*79398b25SAndroid Build Coastguard Worker3.1	19 AUG 2006	This release has some major improvements to
323*79398b25SAndroid Build Coastguard Worker			the squashfs-tools, a couple of major bug
324*79398b25SAndroid Build Coastguard Worker			fixes, lots of small improvements/bug fixes,
325*79398b25SAndroid Build Coastguard Worker			and new kernel patches.
326*79398b25SAndroid Build Coastguard Worker
327*79398b25SAndroid Build Coastguard Worker
328*79398b25SAndroid Build Coastguard Worker	1. Mksquashfs has been rewritten to be multi-threaded.  It
329*79398b25SAndroid Build Coastguard Worker	   has the following improvements
330*79398b25SAndroid Build Coastguard Worker
331*79398b25SAndroid Build Coastguard Worker	   1.1. Parallel compression.  By default as many compression and
332*79398b25SAndroid Build Coastguard Worker		fragment compression threads are created as there are available
333*79398b25SAndroid Build Coastguard Worker		processors.  This significantly speeds up performance on SMP
334*79398b25SAndroid Build Coastguard Worker		systems.
335*79398b25SAndroid Build Coastguard Worker	   1.2. File input and filesystem output is peformed in parallel on
336*79398b25SAndroid Build Coastguard Worker		separate threads to maximise I/O performance.  Even on single
337*79398b25SAndroid Build Coastguard Worker		processor systems this speeds up performance by at least 10%.
338*79398b25SAndroid Build Coastguard Worker	   1.3. Appending has been significantly improved, and files within the
339*79398b25SAndroid Build Coastguard Worker		filesystem being appended to are no longer scanned and
340*79398b25SAndroid Build Coastguard Worker		checksummed.  This significantly improves append time for large
341*79398b25SAndroid Build Coastguard Worker		filesystems.
342*79398b25SAndroid Build Coastguard Worker	   1.4. File duplicate checking has been optimised, and split into two
343*79398b25SAndroid Build Coastguard Worker		separate phases.  Only files which are considered possible
344*79398b25SAndroid Build Coastguard Worker		duplicates after the first phase are checksummed and cached in
345*79398b25SAndroid Build Coastguard Worker		memory.
346*79398b25SAndroid Build Coastguard Worker	   1.5	The use of swap memory was found to significantly impact
347*79398b25SAndroid Build Coastguard Worker		performance. The amount of memory used to cache files is now a
348*79398b25SAndroid Build Coastguard Worker		command line option, by default this is 512 Mbytes.
349*79398b25SAndroid Build Coastguard Worker
350*79398b25SAndroid Build Coastguard Worker	2. Unsquashfs has the following improvements
351*79398b25SAndroid Build Coastguard Worker
352*79398b25SAndroid Build Coastguard Worker	   2.1  Unsquashfs now allows you to specify the filename or the
353*79398b25SAndroid Build Coastguard Worker		directory within the Squashfs filesystem that is to be
354*79398b25SAndroid Build Coastguard Worker		extracted, rather than always extracting the entire filesystem.
355*79398b25SAndroid Build Coastguard Worker	   2.2  A new -force option has been added which forces Unsquashfs to
356*79398b25SAndroid Build Coastguard Worker		output to the destination directory even if files and directories
357*79398b25SAndroid Build Coastguard Worker		already exist in the destination directory.  This allows you to
358*79398b25SAndroid Build Coastguard Worker		update an already existing directory tree, or to Unsquashfs to
359*79398b25SAndroid Build Coastguard Worker		a partially filled directory tree.  Without the -force option
360*79398b25SAndroid Build Coastguard Worker		Unsquashfs will refuse to output.
361*79398b25SAndroid Build Coastguard Worker
362*79398b25SAndroid Build Coastguard Worker	3.  The following major bug fixes have been made
363*79398b25SAndroid Build Coastguard Worker
364*79398b25SAndroid Build Coastguard Worker	  3.1  	A fragment table rounding bug has been fixed in Mksquashfs.
365*79398b25SAndroid Build Coastguard Worker		Previously if the number of fragments in the filesystem
366*79398b25SAndroid Build Coastguard Worker		were a multiple of 512, Mksquashfs would generate an
367*79398b25SAndroid Build Coastguard Worker		incorrect filesystem.
368*79398b25SAndroid Build Coastguard Worker	  3.2  	A rare SMP bug which occurred when simultaneously acccessing
369*79398b25SAndroid Build Coastguard Worker		multiply mounted Squashfs filesystems has been fixed.
370*79398b25SAndroid Build Coastguard Worker
371*79398b25SAndroid Build Coastguard Worker	4. Miscellaneous improvements/bug fixes
372*79398b25SAndroid Build Coastguard Worker
373*79398b25SAndroid Build Coastguard Worker	  4.1	Kernel code stack usage has been reduced.  This is to ensure
374*79398b25SAndroid Build Coastguard Worker		Squashfs works with 4K stacks.
375*79398b25SAndroid Build Coastguard Worker	  4.2   Readdir (Squashfs kernel code) has been fixed to always
376*79398b25SAndroid Build Coastguard Worker		return 0, rather than the number of directories read.  Squashfs
377*79398b25SAndroid Build Coastguard Worker		should now interact better with NFS.
378*79398b25SAndroid Build Coastguard Worker	  4.3	Lseek bug in Mksquashfs when appending to larger than 4GB
379*79398b25SAndroid Build Coastguard Worker		filesystems fixed.
380*79398b25SAndroid Build Coastguard Worker	  4.4	Squashfs 2.x initrds can now been mounted.
381*79398b25SAndroid Build Coastguard Worker	  4.5	Unsquashfs exit status fixed.
382*79398b25SAndroid Build Coastguard Worker	  4.6	New patches for linux-2.6.18 and linux-2.4.33.
383*79398b25SAndroid Build Coastguard Worker
384*79398b25SAndroid Build Coastguard Worker
385*79398b25SAndroid Build Coastguard Worker3.0	15 MAR 2006	Major filesystem improvements
386*79398b25SAndroid Build Coastguard Worker
387*79398b25SAndroid Build Coastguard Worker	1. Filesystems are no longer limited to 4 GB.  In
388*79398b25SAndroid Build Coastguard Worker	   theory 2^64 or 4 exabytes is now supported.
389*79398b25SAndroid Build Coastguard Worker	2. Files are no longer limited to 4 GB.  In theory the maximum
390*79398b25SAndroid Build Coastguard Worker	   file size is 4 exabytes.
391*79398b25SAndroid Build Coastguard Worker	3. Metadata (inode table and directory tables) are no longer
392*79398b25SAndroid Build Coastguard Worker	   restricted to 16 Mbytes.
393*79398b25SAndroid Build Coastguard Worker	4. Hardlinks are now suppported.
394*79398b25SAndroid Build Coastguard Worker	5. Nlink counts are now supported.
395*79398b25SAndroid Build Coastguard Worker	6. Readdir now returns '.' and '..' entries.
396*79398b25SAndroid Build Coastguard Worker	7. Special support for files larger than 256 MB has been added to
397*79398b25SAndroid Build Coastguard Worker	   the Squashfs kernel code for faster read access.
398*79398b25SAndroid Build Coastguard Worker	8. Inode numbers are now stored within the inode rather than being
399*79398b25SAndroid Build Coastguard Worker	   computed from inode location on disk (this is not so much an
400*79398b25SAndroid Build Coastguard Worker	   improvement, but a change forced by the previously listed
401*79398b25SAndroid Build Coastguard Worker	   improvements).
402*79398b25SAndroid Build Coastguard Worker
403*79398b25SAndroid Build Coastguard Worker2.2-r2	8 SEPT 2005	Second release of 2.2, this release fixes a couple
404*79398b25SAndroid Build Coastguard Worker			of small bugs, a couple of small documentation
405*79398b25SAndroid Build Coastguard Worker			mistakes, and adds a patch for kernel 2.6.13.
406*79398b25SAndroid Build Coastguard Worker
407*79398b25SAndroid Build Coastguard Worker	1. Mksquashfs now deletes the output filesystem image file if an
408*79398b25SAndroid Build Coastguard Worker	   error occurs whilst generating the filesystem.  Previously on
409*79398b25SAndroid Build Coastguard Worker	   error the image file was left empty or partially written.
410*79398b25SAndroid Build Coastguard Worker	2. Updated mksquashfs so that it doesn't allow you to generate
411*79398b25SAndroid Build Coastguard Worker	   filesystems with block sizes smaller than 4K.  Squashfs hasn't
412*79398b25SAndroid Build Coastguard Worker	   supported block sizes less than 4K since 2.0-alpha.
413*79398b25SAndroid Build Coastguard Worker	3. Mksquashfs now ignores missing files/directories in sort files.
414*79398b25SAndroid Build Coastguard Worker	   This was the original behaviour before 2.2.
415*79398b25SAndroid Build Coastguard Worker	4. Fixed small mistake in fs/Kconfig where the version was still
416*79398b25SAndroid Build Coastguard Worker	   listed as 2.0.
417*79398b25SAndroid Build Coastguard Worker	5. Updated ACKNOWLEDGEMENTS file.
418*79398b25SAndroid Build Coastguard Worker
419*79398b25SAndroid Build Coastguard Worker
420*79398b25SAndroid Build Coastguard Worker2.2	3 JUL 2005	This release has some small improvements, bug fixes
421*79398b25SAndroid Build Coastguard Worker			and patches for new kernels.
422*79398b25SAndroid Build Coastguard Worker
423*79398b25SAndroid Build Coastguard Worker	1. Sort routine re-worked and debugged from release 2.1.  It now allows
424*79398b25SAndroid Build Coastguard Worker	   you to give Mkisofs style sort files and checks for filenames that
425*79398b25SAndroid Build Coastguard Worker	   don't match anything.  Sort priority has also been changed to
426*79398b25SAndroid Build Coastguard Worker	   conform to Mkisofs usage, highest priority files are now placed
427*79398b25SAndroid Build Coastguard Worker	   at the start of the filesystem (this means they will be on the
428*79398b25SAndroid Build Coastguard Worker	   inside of a CD or DVD).
429*79398b25SAndroid Build Coastguard Worker	2. New Configure options for embedded systems (memory constrained
430*79398b25SAndroid Build Coastguard Worker	   systems).  See INSTALL file for further details.
431*79398b25SAndroid Build Coastguard Worker	3. Directory index bug fixed where chars were treated as signed on
432*79398b25SAndroid Build Coastguard Worker           some architectures.  A file would not be found in the rare case
433*79398b25SAndroid Build Coastguard Worker	   that the filename started with a chracter greater than 127.
434*79398b25SAndroid Build Coastguard Worker	4. Bug introduced into the read_data() routine when sped up to use data
435*79398b25SAndroid Build Coastguard Worker	   block queueing fixed.  If the second or later block resulted in an
436*79398b25SAndroid Build Coastguard Worker	   I/O error this was not checked.
437*79398b25SAndroid Build Coastguard Worker	5. Append bug introduced in 2.1 fixed.  The code to compute the new
438*79398b25SAndroid Build Coastguard Worker	   compressed and uncompressed directory parts after appending was
439*79398b25SAndroid Build Coastguard Worker	   wrong.
440*79398b25SAndroid Build Coastguard Worker	6. Metadata block length read routine altered to not perform a
441*79398b25SAndroid Build Coastguard Worker	   misaligned short read.  This was to fix reading on an ARM7 running
442*79398b25SAndroid Build Coastguard Worker	   uCLinux without a misaligned read interrupt handler.
443*79398b25SAndroid Build Coastguard Worker	7. Checkdata bug introduced in 2.1 fixed.
444*79398b25SAndroid Build Coastguard Worker
445*79398b25SAndroid Build Coastguard Worker
446*79398b25SAndroid Build Coastguard Worker2.1-r2  15 DEC 2004	Code changed so it can be compiled with gcc 2.x
447*79398b25SAndroid Build Coastguard Worker
448*79398b25SAndroid Build Coastguard Worker	1.  In some of the code added for release 2.1 I unknowingly used some
449*79398b25SAndroid Build Coastguard Worker	    gcc extensions only supported by 3.x compilers.  I have received
450*79398b25SAndroid Build Coastguard Worker	    a couple of reports that the 2.1 release doesn't build on 2.x and so
451*79398b25SAndroid Build Coastguard Worker	    people are clearly still using gcc 2.x.  The code has been
452*79398b25SAndroid Build Coastguard Worker	    rewritten to remove these extensions.
453*79398b25SAndroid Build Coastguard Worker
454*79398b25SAndroid Build Coastguard Worker2.1	10 DEC 2004	Significantly improved directory handling plus numerous
455*79398b25SAndroid Build Coastguard Worker			other smaller improvements
456*79398b25SAndroid Build Coastguard Worker
457*79398b25SAndroid Build Coastguard Worker	1.  Fast indexed directories implemented.  These speed up directory
458*79398b25SAndroid Build Coastguard Worker	    operations (ls, file lookup etc.) significantly for directories
459*79398b25SAndroid Build Coastguard Worker	    larger than 8 KB.
460*79398b25SAndroid Build Coastguard Worker	2.  All directories are now sorted in alphabetical order.  This again
461*79398b25SAndroid Build Coastguard Worker	    speeds up directory operations, and in some cases it also results in
462*79398b25SAndroid Build Coastguard Worker	    a small compression improvement (greater data similarity between
463*79398b25SAndroid Build Coastguard Worker	    files with alphabetically similar names).
464*79398b25SAndroid Build Coastguard Worker	3.  Maximum directory size increased from 512 KB to 128 MB.
465*79398b25SAndroid Build Coastguard Worker	4.  Duplicate fragment checking and appending optimised in mksquashfs,
466*79398b25SAndroid Build Coastguard Worker	    depending on filesystem, this is now up to 25% faster.
467*79398b25SAndroid Build Coastguard Worker	5.  Mksquashfs help information reformatted and reorganised.
468*79398b25SAndroid Build Coastguard Worker	6.  The Squashfs version and release date is now printed at kernel
469*79398b25SAndroid Build Coastguard Worker	    boot-time or module insertion.  This addition will hopefully help
470*79398b25SAndroid Build Coastguard Worker	    to reduce the growing problem where the Squashfs version supported
471*79398b25SAndroid Build Coastguard Worker	    by a kernel is unknown and the kernel source is unavailable.
472*79398b25SAndroid Build Coastguard Worker        7.  New PERFORMANCE.README file.
473*79398b25SAndroid Build Coastguard Worker	8.  New -2.0 mksquashfs option.
474*79398b25SAndroid Build Coastguard Worker	9.  CHANGES file reorganised.
475*79398b25SAndroid Build Coastguard Worker	10. README file reorganised, clarified and updated to include the 2.0
476*79398b25SAndroid Build Coastguard Worker	    mksquashfs options.
477*79398b25SAndroid Build Coastguard Worker	11. New patch for Linux 2.6.9.
478*79398b25SAndroid Build Coastguard Worker	12. New patch for Linux 2.4.28.
479*79398b25SAndroid Build Coastguard Worker
480*79398b25SAndroid Build Coastguard Worker2.0r2	29 AUG 2004	Workaround for kernel bug in kernels 2.6.8 and newer
481*79398b25SAndroid Build Coastguard Worker			added
482*79398b25SAndroid Build Coastguard Worker
483*79398b25SAndroid Build Coastguard Worker	1. New patch for kernel 2.6.8.1.  This includes a workaround for a
484*79398b25SAndroid Build Coastguard Worker	   kernel bug introduced in 2.6.7bk14, which is present in all later
485*79398b25SAndroid Build Coastguard Worker	   versions of the kernel.
486*79398b25SAndroid Build Coastguard Worker
487*79398b25SAndroid Build Coastguard Worker	   If you're using a 2.6.8 kernel or later then you must use this
488*79398b25SAndroid Build Coastguard Worker	   2.6.8.1 patch.  If you've experienced hangs or oopses using Squashfs
489*79398b25SAndroid Build Coastguard Worker	   with a 2.6.8 or later kernel then you've hit this bug, and this
490*79398b25SAndroid Build Coastguard Worker	   patch will fix it.
491*79398b25SAndroid Build Coastguard Worker
492*79398b25SAndroid Build Coastguard Worker	   It is worth mentioning that this kernel bug potentially affects
493*79398b25SAndroid Build Coastguard Worker	   other filesystems.  If you receive odd results with other
494*79398b25SAndroid Build Coastguard Worker	   filesystems you may be experiencing this bug with that filesystem.
495*79398b25SAndroid Build Coastguard Worker	   I submitted a patch but this has not yet gone into the
496*79398b25SAndroid Build Coastguard Worker	   kernel, hopefully the bug will be fixed in later kernels.
497*79398b25SAndroid Build Coastguard Worker
498*79398b25SAndroid Build Coastguard Worker2.0	13 JULY 2004	A couple of new options, and some bug fixes
499*79398b25SAndroid Build Coastguard Worker
500*79398b25SAndroid Build Coastguard Worker	1. New mksquashfs -all-root, -root-owned, -force-uid, and -force-gid
501*79398b25SAndroid Build Coastguard Worker	   options.  These allow the uids/gids of files in the generated
502*79398b25SAndroid Build Coastguard Worker	   filesystem to be specified, overriding the uids/gids in the
503*79398b25SAndroid Build Coastguard Worker	   source filesystem.
504*79398b25SAndroid Build Coastguard Worker	2. Initrds are now supported for kernels 2.6.x.
505*79398b25SAndroid Build Coastguard Worker	3. amd64 bug fixes.  If you use an amd64, please read the README-AMD64
506*79398b25SAndroid Build Coastguard Worker	   file.
507*79398b25SAndroid Build Coastguard Worker	4. Check-data and gid bug fixes.  With 2.0-alpha when mounting 1.x
508*79398b25SAndroid Build Coastguard Worker	   filesystems in certain cases file gids were corrupted.
509*79398b25SAndroid Build Coastguard Worker	5. New patch for Linux 2.6.7.
510*79398b25SAndroid Build Coastguard Worker
511*79398b25SAndroid Build Coastguard Worker2.0-ALPHA	21 MAY 2004	Filesystem changes and compression improvements
512*79398b25SAndroid Build Coastguard Worker
513*79398b25SAndroid Build Coastguard Worker	1. Squashfs 2.0 has added the concept of fragment blocks.
514*79398b25SAndroid Build Coastguard Worker           Files smaller than the file block size and optionally the
515*79398b25SAndroid Build Coastguard Worker	   remainder of files that do not fit fully into a block (i.e. the
516*79398b25SAndroid Build Coastguard Worker	   last 32K in a 96K file) are packed into shared fragments and
517*79398b25SAndroid Build Coastguard Worker	   compressed together.  This achieves on average 5 - 20% better
518*79398b25SAndroid Build Coastguard Worker	   compression than Squashfs 1.x.
519*79398b25SAndroid Build Coastguard Worker	2. The maximum block size has been increased to 64K (in the ALPHA
520*79398b25SAndroid Build Coastguard Worker	   version of Squashfs 2.0).
521*79398b25SAndroid Build Coastguard Worker	3. The maximum number of UIDs has been increased to 256 (from 48 in
522*79398b25SAndroid Build Coastguard Worker	   1.x).
523*79398b25SAndroid Build Coastguard Worker	4. The maximum number of GIDs has been increased to 256 (from 15 in
524*79398b25SAndroid Build Coastguard Worker	   1.x).
525*79398b25SAndroid Build Coastguard Worker	5. Removal of sleep_on() function call in 2.6.x patch, to allow Squashfs
526*79398b25SAndroid Build Coastguard Worker	   to work on the Fedora rc2 kernel.
527*79398b25SAndroid Build Coastguard Worker	6. Numerous small bug fixes have been made.
528*79398b25SAndroid Build Coastguard Worker
529*79398b25SAndroid Build Coastguard Worker1.3r3	18 JAN 2004	Third release of 1.3, this adds a new mksquashfs option,
530*79398b25SAndroid Build Coastguard Worker			some bug fixes, and extra patches for new kernels
531*79398b25SAndroid Build Coastguard Worker
532*79398b25SAndroid Build Coastguard Worker	1. New mksquashfs -ef exclude option.  This option reads the exclude
533*79398b25SAndroid Build Coastguard Worker	   dirs/files from an exclude file, one exclude dir/file per line.  This
534*79398b25SAndroid Build Coastguard Worker	   avoids the command line size limit when using the -e exclude option,
535*79398b25SAndroid Build Coastguard Worker	2. When appending to existing filesystems, if mksquashfs experiences a
536*79398b25SAndroid Build Coastguard Worker	   fatal error (e.g. out of space when adding to the destination), the
537*79398b25SAndroid Build Coastguard Worker	   original filesystem is restored,
538*79398b25SAndroid Build Coastguard Worker	3. Mksquashfs now builds standalone, without the kernel needing to be
539*79398b25SAndroid Build Coastguard Worker	   patched.
540*79398b25SAndroid Build Coastguard Worker	4. Bug fix in the kernel squashfs filesystem, where the pages being
541*79398b25SAndroid Build Coastguard Worker	   filled were not kmapped.  This seems to only have caused problems
542*79398b25SAndroid Build Coastguard Worker	   on an Apple G5,
543*79398b25SAndroid Build Coastguard Worker	5. New patch for Linux 2.4.24,
544*79398b25SAndroid Build Coastguard Worker
545*79398b25SAndroid Build Coastguard Worker	6. New patch for Linux 2.6.1, this replaces the patch for 2.6.0-test7.
546*79398b25SAndroid Build Coastguard Worker
547*79398b25SAndroid Build Coastguard Worker1.3r2	14 OCT 2003	Second release of 1.3, bug fixes and extra patches for
548*79398b25SAndroid Build Coastguard Worker		        new kernels
549*79398b25SAndroid Build Coastguard Worker
550*79398b25SAndroid Build Coastguard Worker	1. Bug fix in routine that adds files to the filesystem being
551*79398b25SAndroid Build Coastguard Worker	   generated in mksquashfs.  This bug was introduced in 1.3
552*79398b25SAndroid Build Coastguard Worker	   (not enough testing...) when I rewrote it to handle files larger
553*79398b25SAndroid Build Coastguard Worker	   than available memory.  This bug caused a SEGV, so if you've ever
554*79398b25SAndroid Build Coastguard Worker	   got that, it is now fixed,
555*79398b25SAndroid Build Coastguard Worker	2. Long running bug where ls -s and du reported wrong block size
556*79398b25SAndroid Build Coastguard Worker	   fixed.  I'm pretty sure this used to work many kernel versions ago
557*79398b25SAndroid Build Coastguard Worker	   (2.4.7) but it broke somewhere along the line since then,
558*79398b25SAndroid Build Coastguard Worker	3. New patch for Linux 2.4.22,
559*79398b25SAndroid Build Coastguard Worker	4. New patch for 2.6.0-test7, this replaces the patch for 2.6.0-test1.
560*79398b25SAndroid Build Coastguard Worker
561*79398b25SAndroid Build Coastguard Worker1.3	29 JUL 2003	FIFO/Socket support added plus optimisations and
562*79398b25SAndroid Build Coastguard Worker		        improvements
563*79398b25SAndroid Build Coastguard Worker
564*79398b25SAndroid Build Coastguard Worker	1. FIFOs and Socket inodes are now supported,
565*79398b25SAndroid Build Coastguard Worker	2. Mksquashfs can now compress files larger than available
566*79398b25SAndroid Build Coastguard Worker	   memory,
567*79398b25SAndroid Build Coastguard Worker	3. File duplicate check routine optimised,
568*79398b25SAndroid Build Coastguard Worker	4. Exit codes fixed in Mksquashfs,
569*79398b25SAndroid Build Coastguard Worker	5. Patch for Linux 2.4.21,
570*79398b25SAndroid Build Coastguard Worker	6. Patch for Linux 2.6.0-test1.  Hopefully, this will work for
571*79398b25SAndroid Build Coastguard Worker	   the next few releases of 2.6.0-testx, otherwise, I'll be
572*79398b25SAndroid Build Coastguard Worker	   releasing a lot of updates to the 2.6.0 patch...
573*79398b25SAndroid Build Coastguard Worker
574*79398b25SAndroid Build Coastguard Worker1.2	13 MAR 2003	Append feature and new mksquashfs options added
575*79398b25SAndroid Build Coastguard Worker
576*79398b25SAndroid Build Coastguard Worker	Mksquashfs can now add to existing squashfs filesystems.  Three extra
577*79398b25SAndroid Build Coastguard Worker	options "-noappend", "-keep-as-directory", and "root-becomes"
578*79398b25SAndroid Build Coastguard Worker	have been added.
579*79398b25SAndroid Build Coastguard Worker
580*79398b25SAndroid Build Coastguard Worker	The append option with file duplicate detection, means squashfs can be
581*79398b25SAndroid Build Coastguard Worker	used as a simple versioning archiving filesystem. A squashfs
582*79398b25SAndroid Build Coastguard Worker	filesystem can be created with for example the linux-2.4.19 source.
583*79398b25SAndroid Build Coastguard Worker	Appending the linux-2.4.20 source will create a filesystem with the
584*79398b25SAndroid Build Coastguard Worker	two source trees, but only the changed files will take extra room,
585*79398b25SAndroid Build Coastguard Worker	the unchanged files will be detected as duplicates.
586*79398b25SAndroid Build Coastguard Worker
587*79398b25SAndroid Build Coastguard Worker	See the README file for usage changes.
588*79398b25SAndroid Build Coastguard Worker
589*79398b25SAndroid Build Coastguard Worker1.1b	16 JAN 2003	Bug fix release
590*79398b25SAndroid Build Coastguard Worker
591*79398b25SAndroid Build Coastguard Worker	Fixed readpage deadlock bug.  This was a rare deadlock bug that
592*79398b25SAndroid Build Coastguard Worker	happened when pushing pages into the page cache when using greater
593*79398b25SAndroid Build Coastguard Worker	than 4K blocks.  I never got this bug when I tested the filesystem,
594*79398b25SAndroid Build Coastguard Worker	but two people emailed me on the same day about the problem!
595*79398b25SAndroid Build Coastguard Worker	I fixed it by using a page cache function that wasn't there when
596*79398b25SAndroid Build Coastguard Worker	I originally did the work, which was nice :-)
597*79398b25SAndroid Build Coastguard Worker
598*79398b25SAndroid Build Coastguard Worker1.1	8 JAN 2003	Added features
599*79398b25SAndroid Build Coastguard Worker
600*79398b25SAndroid Build Coastguard Worker	1. Kernel squashfs can now mount different byte order filesystems.
601*79398b25SAndroid Build Coastguard Worker	2. Additional features added to mksquashfs.  Mksquashfs now supports
602*79398b25SAndroid Build Coastguard Worker	   exclude files and multiple source files/directories can be
603*79398b25SAndroid Build Coastguard Worker	   specified.  A nopad option has also been added, which
604*79398b25SAndroid Build Coastguard Worker	   informs mksquashfs not to pad filesystems to a multiple of 4K.
605*79398b25SAndroid Build Coastguard Worker	   See README for mksquashfs usage changes.
606*79398b25SAndroid Build Coastguard Worker	3. Greater than 2GB filesystems bug fix.  Filesystems greater than 2GB
607*79398b25SAndroid Build Coastguard Worker	   can now be created.
608*79398b25SAndroid Build Coastguard Worker
609*79398b25SAndroid Build Coastguard Worker1.0c 	14 NOV 2002	Bug fix release
610*79398b25SAndroid Build Coastguard Worker
611*79398b25SAndroid Build Coastguard Worker	Fixed bugs with initrds and device nodes
612*79398b25SAndroid Build Coastguard Worker
613*79398b25SAndroid Build Coastguard Worker1.0 	23 OCT 2002	Initial release
614