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