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