tags 455589 + patch stop Looking through the recent revision history for mksquashfs.c in the upstream CVS, changeset 1.47 of /squashfs/squashfs-tools/mksquashfs.c: http://squashfs.cvs.sourceforge.net/squashfs/squashfs/squashfs-tools/mksquashfs.c?r1=1.46&r2=1.47&view=patch caught my eyes. Applying it to 1:3.3-1 succeeds and fixes the previously mentioned regression in mksquashfs:
[EMAIL PROTECTED]:/tmp/pkg/CHROOT-i386$ cat /proc/version Linux version 2.6.23.9-slh64-smp-15 ([EMAIL PROTECTED]) (gcc version 4.2.3 20071123 (prerelease) (Debian 4.2.2-4)) #1 SMP PREEMPT Fri Dec 7 01:38:56 CET 2007 [EMAIL PROTECTED]:/tmp/pkg/CHROOT-i386$ dpkg -l | grep squashfs-tools ii squashfs-tools 1:3.3-1+c0.sidux.1 Tool to create and append to squashfs filesystems [EMAIL PROTECTED]:/tmp/pkg/CHROOT-i386$ mksquashfs . ../squashfs-tools_3.3-1+c0.sidux.1_amd64.lzma.squashfs -no-progress -info Parallel mksquashfs: Using 2 processors Creating little endian 3.1 filesystem on ../squashfs-tools_3.3-1+c0.sidux.1_amd64.lzma.squashfs, block size 131072. lzmadic 131072 mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/abzeichen.wav, uncompressed size 441044 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/auge.wav, uncompressed size 441044 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/augenbraue.wav, uncompressed size 81274 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/brille.wav, uncompressed size 63044 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/fliege.wav, uncompressed size 71158 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/haare.wav, uncompressed size 49122 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/hut.wav, uncompressed size 441044 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/ohr.wav, uncompressed size 441044 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/ohrring.wav, uncompressed size 441044 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/schnurrbart.wav, uncompressed size 190076 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/uhr.wav, uncompressed size 57198 bytes mksquashfs: directory ./usr/share/apps/ktuberling/sounds/de inode 0x1b8 mksquashfs: directory ./usr/share/apps/ktuberling/sounds inode 0x1d4 mksquashfs: directory ./usr/share/apps/ktuberling inode 0x1f0 mksquashfs: directory ./usr/share/apps inode 0x20c mksquashfs: file ./usr/share/hplip/installer/__init__.py, uncompressed size 799 bytes mksquashfs: file ./usr/share/hplip/installer/core_install.py, uncompressed size 49651 bytes mksquashfs: file ./usr/share/hplip/installer/dcheck.py, uncompressed size 5906 bytes mksquashfs: file ./usr/share/hplip/installer/distros.dat, uncompressed size 58642 bytes mksquashfs: directory ./usr/share/hplip/installer inode 0x2a8 mksquashfs: file ./usr/share/hplip/scan/__init__.py, uncompressed size 799 bytes DUPLICATE mksquashfs: file ./usr/share/hplip/scan/sane.py, uncompressed size 21634 bytes mksquashfs: directory ./usr/share/hplip/scan inode 0x304 mksquashfs: directory ./usr/share/hplip inode 0x320 mksquashfs: directory ./usr/share inode 0x33c mksquashfs: directory ./usr inode 0x358 mksquashfs: directory . inode 0x374 Exportable Little endian filesystem, data block size 131072, compressed data, compressed metadata, compressed fragments, duplicates are removed lzmadic 131072 Filesystem size 582.26 Kbytes (0.57 Mbytes) 20.88% of uncompressed filesystem size (2789.07 Kbytes) Inode table size 375 bytes (0.37 Kbytes) 41.03% of uncompressed inode table size (914 bytes) Directory table size 321 bytes (0.31 Kbytes) 72.13% of uncompressed directory table size (445 bytes) Number of duplicate files found 1 Number of inodes 27 Number of files 17 Number of fragments 5 Number of symbolic links 0 Number of device nodes 0 Number of fifo nodes 0 Number of socket nodes 0 Number of directories 10 Number of uids 1 slh (1000) Number of gids 0 [EMAIL PROTECTED]:/tmp/pkg/CHROOT-i386$ mksquashfs . ../squashfs-tools_3.3-1+c0.sidux.1_amd64.zlib.squashfs -no-progress -info -nolzma Parallel mksquashfs: Using 2 processors Creating little endian 3.1 filesystem on ../squashfs-tools_3.3-1+c0.sidux.1_amd64.zlib.squashfs, block size 131072. mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/abzeichen.wav, uncompressed size 441044 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/auge.wav, uncompressed size 441044 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/augenbraue.wav, uncompressed size 81274 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/brille.wav, uncompressed size 63044 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/fliege.wav, uncompressed size 71158 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/haare.wav, uncompressed size 49122 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/hut.wav, uncompressed size 441044 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/ohr.wav, uncompressed size 441044 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/ohrring.wav, uncompressed size 441044 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/schnurrbart.wav, uncompressed size 190076 bytes mksquashfs: file ./usr/share/apps/ktuberling/sounds/de/uhr.wav, uncompressed size 57198 bytes mksquashfs: directory ./usr/share/apps/ktuberling/sounds/de inode 0x1b8 mksquashfs: directory ./usr/share/apps/ktuberling/sounds inode 0x1d4 mksquashfs: directory ./usr/share/apps/ktuberling inode 0x1f0 mksquashfs: directory ./usr/share/apps inode 0x20c mksquashfs: file ./usr/share/hplip/installer/__init__.py, uncompressed size 799 bytes mksquashfs: file ./usr/share/hplip/installer/core_install.py, uncompressed size 49651 bytes mksquashfs: file ./usr/share/hplip/installer/dcheck.py, uncompressed size 5906 bytes mksquashfs: file ./usr/share/hplip/installer/distros.dat, uncompressed size 58642 bytes mksquashfs: directory ./usr/share/hplip/installer inode 0x2a8 mksquashfs: file ./usr/share/hplip/scan/__init__.py, uncompressed size 799 bytes DUPLICATE mksquashfs: file ./usr/share/hplip/scan/sane.py, uncompressed size 21634 bytes mksquashfs: directory ./usr/share/hplip/scan inode 0x304 mksquashfs: directory ./usr/share/hplip inode 0x320 mksquashfs: directory ./usr/share inode 0x33c mksquashfs: directory ./usr inode 0x358 mksquashfs: directory . inode 0x374 Exportable Little endian filesystem, data block size 131072, compressed data, compressed metadata, compressed fragments, duplicates are removed Filesystem size 582.26 Kbytes (0.57 Mbytes) 20.88% of uncompressed filesystem size (2789.07 Kbytes) Inode table size 375 bytes (0.37 Kbytes) 41.03% of uncompressed inode table size (914 bytes) Directory table size 321 bytes (0.31 Kbytes) 72.13% of uncompressed directory table size (445 bytes) Number of duplicate files found 1 Number of inodes 27 Number of files 17 Number of fragments 5 Number of symbolic links 0 Number of device nodes 0 Number of fifo nodes 0 Number of socket nodes 0 Number of directories 10 Number of uids 1 slh (1000) Number of gids 0 [EMAIL PROTECTED]:/tmp/pkg/CHROOT-i386$ Regards Stefan Lippers-Hollmann
--- a/squashfs-tools/mksquashfs.c 2007/11/14 10:54:45 1.46 +++ b/squashfs-tools/mksquashfs.c 2007/11/26 02:16:45 1.47 @@ -1578,7 +1578,7 @@ char *buffer; int block; - if(memcmp(*block_list, dupl_ptr->block_list, blocks) != 0) + if(memcmp(*block_list, dupl_ptr->block_list, blocks * sizeof(unsigned int)) != 0) continue; if(checksum_flag == FALSE) { @@ -2153,6 +2153,8 @@ } block_list[block] = read_buffer->c_byte; + buffer_list[block].start = bytes; + buffer_list[block].size = read_buffer->size; if(read_buffer->c_byte) { read_buffer->block = bytes; @@ -2167,8 +2169,6 @@ buffer_list[block].read_buffer = NULL; alloc_free(read_buffer); } - buffer_list[block].start = read_buffer->block; - buffer_list[block].size = read_buffer->size; progress_bar(++cur_uncompressed, estimated_uncompressed, columns); } @@ -2188,7 +2188,8 @@ if(dupl_ptr) { *duplicate_file = FALSE; for(block = thresh; block < blocks; block ++) - queue_put(to_writer, buffer_list[block].read_buffer); + if(buffer_list[block].read_buffer) + queue_put(to_writer, buffer_list[block].read_buffer); fragment = get_and_fill_fragment(read_buffer); dupl_ptr->fragment = fragment; } else {
signature.asc
Description: This is a digitally signed message part.