diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..654a0ff --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/squashfs4.3.tar.gz diff --git a/.squashfs-tools.metadata b/.squashfs-tools.metadata new file mode 100644 index 0000000..896d13b --- /dev/null +++ b/.squashfs-tools.metadata @@ -0,0 +1 @@ +4ac7aba0f434699c34b6c5b63addbd9882702136 SOURCES/squashfs4.3.tar.gz diff --git a/SOURCES/mksquashfs.1 b/SOURCES/mksquashfs.1 new file mode 100644 index 0000000..e495b8c --- /dev/null +++ b/SOURCES/mksquashfs.1 @@ -0,0 +1,124 @@ +.TH MKSQUASHFS 1 "2012\-06\-30" "4.2" "create and append squashfs filesystems" + +.SH NAME +mksquashfs \- tool to create and append to squashfs filesystems + +.SH SYNOPSIS +\fBmksquashfs\fR \fISOURCE\fR [\fISOURCE2\fR \fI...\fR] \fIDESTINATION\fR [\fIOPTIONS\fR] + +.SH DESCRIPTION +Squashfs is a highly compressed read\-only filesystem for Linux. It uses zlib compression to compress both files, inodes and directories. Inodes in the system are very small and all blocks are packed to minimize data overhead. Block sizes greater than 4K are supported up to a maximum of 64K. +.PP +Squashfs is intended for general read\-only filesystem use, for archival use (i.e. in cases where a .tar.gz file may be used), and in constrained block device/memory systems (e.g. embedded systems) where low overhead is needed. + +.SH OPTIONS + +.SS Filesystem build options +.IP "\-comp \fICOMPRESSION\fR" 4 +select \fICOMPRESSION\fR compression. Compressors available: gzip (default), lzo, xz. +.IP "\-b \fIBLOCK_SIZE\fR" +set data block to \fIBLOCK_SIZE\fR. Default 131072 bytes. +.IP "\-no\-exports" 4 +don't make the filesystem exportable via NFS. +.IP "\-no\-sparse" 4 +don't detect sparse files. +.IP "\-no\-xattrs" 4 +don't store extended attributes. +.IP "\-xattrs" 4 +store extended attributes (default). +.IP "\-noI" 4 +do not compress inode table. +.IP "\-noD" 4 +do not compress data blocks. +.IP "\-noF" 4 +do not compress fragment blocks. +.IP "\-noX" 4 +do not compress extended attributes. +.IP "\-no\-fragments" 4 +do not use fragments. +.IP "\-always\-use\-fragments" 4 +use fragment blocks for files larger than block size. +.IP "\-no\-duplicates" 4 +do not perform duplicate checking. +.IP "\-all\-root" 4 +make all files owned by root. +.IP "\-force\-uid uid" 4 +set all file uids to uid. +.IP "\-force\-gid gid" 4 +set all file gids to gid. +.IP "\-nopad" 4 +do not pad filesystem to a multiple of 4K. +.IP "\-keep\-as\-directory" 4 +if one source directory is specified, create a root directory containing that directory, rather than the contents of the directory. + +.SS Filesystem filter options +.IP "\-p \fIPSEUDO_DEFINITION\fR" 4 +Add pseudo file definition. +.IP "\-pf \fIPSEUDO_FILE\fR" 4 +Add list of pseudo file definitions. +.IP "\-sort \fISORT_FILE\fR" 4 +sort files according to priorities in \fISORT_FILE\fR. One file or dir with priority per line. Priority \-32768 to 32767, default priority 0. +.IP "\-ef \fIEXCLUDE_FILE\fR" 4 +list of exclude dirs/files. One per line. +.IP "\-wildcards" 4 +Allow extended shell wildcards (globbing) to be used in exclude dirs/files +.IP "\-regex" 4 +Allow POSIX regular expressions to be used in exclude dirs/files. + +.SS Filesystem append options +.IP "\-noappend" 4 +do not append to existing filesystem. +.IP "\-root\-becomes \fINAME\fR" 4 +when appending source files/directories, make the original root become a subdirectory in the new root called \fINAME\fR, rather than adding the new source items to the original root. + +.SS Mksquashfs runtime options: +.IP "\-version" 4 +print version, licence and copyright message. +.IP "\-recover \fINAME\fR" 4 +recover filesystem data using recovery file \fINAME\fR. +.IP "\-no\-recovery" 4 +don't generate a recovery file. +.IP "\-info" 4 +print files written to filesystem. +.IP "\-no\-progress" 4 +don't display the progress bar. +.IP "\-processors \fINUMBER\fR" 4 +Use \fINUMBER\fR processors. By default will use number of processors available. +.IP "\-read\-queue \fISIZE\fR" 4 +Set input queue to \fISIZE\fR Mbytes. Default 64 Mbytes. +.IP "\-write\-queue \fISIZE\fR" 4 +Set output queue to \fISIZE\fR Mbytes. Default 512 Mbytes. +.IP "\-fragment\-queue \fISIZE\fR" 4 +Set fragment queue to \fISIZE\fR Mbytes. Default 64 Mbytes. + +.SS Miscellaneous options +.IP "\-root\-owned" 4 +alternative name for \-all\-root. +.IP "\-noInodeCompression" 4 +alternative name for \-noI. +.IP "\-noDataCompression" 4 +alternative name for \-noD. +.IP "\-noFragmentCompression" 4 +alternative name for \-noF. +.IP "\-noXattrCompression" 4 +alternative name for \-noX. + +.SS Compressors available and compressor specific options +.IP "gzip (no options) (default)" +.IP "lzo (no options)" +.IP "xz" +.IP "\-Xbcj filter1,filter2,...,filterN" 4 +Compress using filter1,filter2,...,filterN in turn (in addition to no filter), and choose the best compression. Available filters: x86, arm, armthumb, powerpc, sparc, ia64. +.IP "\-Xdict\-size \fIDICT_SIZE\fR" 4 +Use \fIDICT_SIZE\fR as the XZ dictionary size. The dictionary size can be specified as a percentage of the block size, or as an absolute value. The dictionary size must be less than or equal to the block size and 8192 bytes or larger. It must also be storable in the xz header as either 2^n or as 2^n+2^(n+1). Example dict\-sizes are 75%, 50%, 37.5%, 25%, or 32K, 16K, 8K etc. + +.SH SEE ALSO +unsquashfs(1) + +.SH HOMEPAGE +More information about mksquashfs and the squashfs filesystem can be found at <\fIhttp://squashfs.sourceforge.net/\fR>. + +.SH AUTHOR +squashfs was written by Phillip Lougher <\fIplougher@users.sourceforge.net\fR>. +.PP +This manual page was written by Daniel Baumann <\fIdaniel.baumann@progress\-technologies.net\fR>. diff --git a/SOURCES/squashfs-tools-file_size-fix.patch b/SOURCES/squashfs-tools-file_size-fix.patch new file mode 100644 index 0000000..650333d --- /dev/null +++ b/SOURCES/squashfs-tools-file_size-fix.patch @@ -0,0 +1,13 @@ +Index: squashfs4.3/squashfs-tools/mksquashfs.c +=================================================================== +--- squashfs4.3.orig/squashfs-tools/mksquashfs.c ++++ squashfs4.3/squashfs-tools/mksquashfs.c +@@ -1946,7 +1946,7 @@ struct file_info *duplicate(long long fi + + inline int is_fragment(struct inode_info *inode) + { +- int file_size = inode->buf.st_size; ++ off_t file_size = inode->buf.st_size; + + /* + * If this block is to be compressed differently to the diff --git a/SOURCES/unsquashfs.1 b/SOURCES/unsquashfs.1 new file mode 100644 index 0000000..2b29371 --- /dev/null +++ b/SOURCES/unsquashfs.1 @@ -0,0 +1,62 @@ +.TH UNSQUASHFS 1 "2012\-06\-30" "4.2" "uncompress squashfs filesystems" + +.SH NAME +mksquashfs \- tool to uncompress squashfs filesystems + +.SH SYNOPSIS +\fBunsquashfs\fR [\fIOPTIONS\fR] \fIFILESYSTEM\fR [\fIdirectories or files to extract\fR] + +.SH DESCRIPTION +Squashfs is a highly compressed read\-only filesystem for Linux. It uses zlib compression to compress both files, inodes and directories. Inodes in the system are very small and all blocks are packed to minimize data overhead. Block sizes greater than 4K are supported up to a maximum of 64K. +.PP +Squashfs is intended for general read\-only filesystem use, for archival use (i.e. in cases where a .tar.gz file may be used), and in constrained block device/memory systems (e.g. embedded systems) where low overhead is needed. + +.SH OPTIONS +.IP "\-v, \-version" 4 +print version, licence and copyright information. +.IP "\-d \fIPATHNAME\fR, \-dest \fIPATHNAME\fR" 4 +unsquash to \fIPATHNAME\fR, default "squashfs\-root". +.IP "\-n, \-no\-progress" 4 +don't display the progress bar. +.IP "\-no, \-no\-xattrs" 4 +don't extract xattrs in file system. +.IP "\-x, \-xattrs" 4 +extract xattrs in file system (default). +.IP "\-p \fINUMBER\fR, \-processors \fINUMBER\fR" 4 +use \fINUMBER\fR processors. By default will use number of processors available. +.IP "\-i, \-info" 4 +print files as they are unsquashed. +.IP "\-li, \-linfo" 4 +print files as they are unsquashed with file attributes (like ls \-l output). +.IP "\-l, \-ls" 4 +list filesystem, but don't unsquash. +.IP "\-ll, \-lls" 4 +list filesystem with file attributes (like ls \-l output), but don't unsquash. +.IP "\-f, \-force" 4 +if file already exists then overwrite. +.IP "\-s, \-stat" 4 +display filesystem superblock information. +.IP "\-e \fIEXTRACT_FILE\fR, \-ef \fIEXTRACT_FILE\fR" 4 +list of directories or files to extract. One per line. +.IP "\-da \fISIZE\fR, \-data-queue \fISIZE\fR" 4 +Set data queue to \fISIZE\fR Mbytes. Default 256 Mbytes. +.IP "\-fr \fISIZE\fR, \-frag\-queue \fISIZE\fR" 4 +Set fragment queue to \fISIZE\fR Mbytes. Default 256 Mbytes. +.IP "\-r, \-regex" 4 +treat extract names as POSIX regular expressions rather than use the default shell wildcard expansion (globbing). + +.SS Decompressors available +.IP "gzip" 4 +.IP "lzo" 4 +.IP "xz" 4 + +.SH SEE ALSO +mksquashfs(1) + +.SH HOMEPAGE +More information about unsquashfs and the squashfs filesystem can be found at <\fIhttp://squashfs.sourceforge.net/\fR>. + +.SH AUTHOR +squashfs was written by Phillip Lougher <\fIplougher@users.sourceforge.net\fR>. +.PP +This manual page was written by Daniel Baumann <\fIdaniel.baumann@progress\-technologies.net\fR>. diff --git a/SPECS/squashfs-tools.spec b/SPECS/squashfs-tools.spec new file mode 100644 index 0000000..0864def --- /dev/null +++ b/SPECS/squashfs-tools.spec @@ -0,0 +1,288 @@ +Summary: Utility for the creation of squashfs filesystems +Name: squashfs-tools +Version: 4.3 +Release: 0.21.gitaae0aff4%{?dist} +License: GPLv2+ +Group: System Environment/Base +URL: http://squashfs.sourceforge.net/ +# For now I am using a prerelease version obtained by: +# git clone git://git.kernel.org/pub/scm/fs/squashfs/squashfs-tools.git +# cd squashfs-tools +# git archive --format=tar --prefix=squashfs4.3/ aae0aff4f0b3081bd1dfc058c867033a89c11aac | gzip > squashfs4.3.tar.gz +Source0: squashfs%{version}.tar.gz +#Source0: http://downloads.sourceforge.net/squashfs/squashfs%{version}.tar.gz +# manpages from http://ftp.debian.org/debian/pool/main/s/squashfs-tools/squashfs-tools_4.2+20121212-1.debian.tar.xz +Source1: mksquashfs.1 +Source2: unsquashfs.1 +Patch1: squashfs-tools-file_size-fix.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root +BuildRequires: zlib-devel +BuildRequires: xz-devel +BuildRequires: lzo-devel +BuildRequires: libattr-devel + +%description +Squashfs is a highly compressed read-only filesystem for Linux. This package +contains the utilities for manipulating squashfs filesystems. + +%prep +%setup -q -n squashfs%{version} +%patch1 -p1 -b .file_size + +%build +pushd squashfs-tools +CFLAGS="%{optflags}" XZ_SUPPORT=1 LZO_SUPPORT=1 LZMA_XZ_SUPPORT=1 make %{?_smp_mflags} + +%install +mkdir -p %{buildroot}%{_sbindir} %{buildroot}%{_mandir}/man1 +install -m 755 squashfs-tools/mksquashfs %{buildroot}%{_sbindir}/mksquashfs +install -m 755 squashfs-tools/unsquashfs %{buildroot}%{_sbindir}/unsquashfs +install -m 644 %{SOURCE1} %{buildroot}%{_mandir}/man1/mksquashfs.1 +install -m 644 %{SOURCE2} %{buildroot}%{_mandir}/man1/unsquashfs.1 + +%clean +rm -rf %{buildroot} + +%files +%defattr(-,root,root,-) +# Until there is a real release only READ is available +#%doc README ACKNOWLEDGEMENTS DONATIONS PERFORMANCE.README README-4.2 CHANGES pseudo-file.example COPYING +%doc README +%{_mandir}/man1/* + +%{_sbindir}/mksquashfs +%{_sbindir}/unsquashfs + +%changelog +* Wed Oct 08 2014 Jarod Wilson - 4.3-0.21.gitaae0aff4 +- Fix corruption of last block of squashed images (rhbz 1052175) + +* Fri Jan 24 2014 Daniel Mach - 4.3-0.20.gitaae0aff4 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 4.3-0.19.gitaae0aff4 +- Mass rebuild 2013-12-27 + +* Sat Jun 22 2013 Bruno Wolff III - 4.3-0.18.gitaae0aff4 +- Latest pre 4.3 stable snapshot +- A few minor bug fixes +- Improvements in getting status info while running unsquashfs + +* Tue Jun 04 2013 Bruno Wolff III - 4.3-0.17.git5c6f0024 +- Latest pre 4.3 snapshot +- Includes fix for mksquashfs hangs +- Switch to get pre-release updates from the stable branch at kernel.org + +* Thu May 23 2013 Bruno Wolff III - 4.3-0.16.git84d8ae5c +- Latest pre 4.3 snapshot +- Fix for a rare race condition + +* Sun May 19 2013 Bruno Wolff III - 4.3-0.15.git27d7c14b +- Latest pre 4.3 snapshot +- queue fragment and empty file buffers directly to main thread + +* Wed May 15 2013 Bruno Wolff III - 4.3-0.14.git8ce5585e +- Latest pre 4.3 snapshot +- Includes upstream bugfix introduced with the sequential queue change + +* Sat May 11 2013 Bruno Wolff III - 4.3-0.13.gitc2362556 +- Latest pre 4.3 snapshot +- Sequential queue change + +* Mon May 06 2013 Bruno Wolff III - 4.3-0.12.git9353c998 +- Latest pre 4.3 snapshot + +* Sun Mar 31 2013 Bruno Wolff III - 4.3-0.11.git8228a3e8 +- Latest pre 4.3 snapshot +- SIGQUIT now displays the file being squashed + +* Wed Mar 06 2013 Bruno Wolff III - 4.3-0.10.git6a103792 +- Latest pre 4.3 snapshot +- Pick up some more error handling improvements + +* Sun Mar 03 2013 Kyle McMartin +- Move mksquashfs to /usr/sbin, as per UsrMove. + +* Sun Mar 03 2013 Kyle McMartin +- Add mksquashfs.1 and unsquashfs.1 manpages from Debian. + +* Mon Feb 18 2013 Bruno Wolff III - 4.3-0.9.git3ec9c8f7 +- Latest pre 4.3 snapshot +- Better error handling when space runs out + +* Wed Feb 13 2013 Bruno Wolff III - 4.3-0.8.gitca6a1c90 +- Latest pre 4.3 snapshot +- New option to display compression options used +- Some error message improvements + +* Fri Feb 01 2013 Bruno Wolff III - 4.3-0.7.gitb10063a9 +- Latest pre 4.3 snapshot +- More checks for bad data + +* Sun Jan 13 2013 Bruno Wolff III - 4.3-0.6.git6c0f229d +- Latest pre 4.3 snapshot +- Quote and backslash parsing for lexical analyzer + +* Mon Dec 31 2012 Bruno Wolff III - 4.3-0.5.gitc11af515 +- Latest pre 4.3 snapshot +- A few memory leak fixes +- Additional checks for handling bad data + +* Sun Dec 23 2012 Bruno Wolff III - 4.3-0.4.git99a009c8 +- Better checking of data in psuedo files + +* Fri Dec 21 2012 Bruno Wolff III - 4.3-0.3.git7ec6bd7a +- Better checking of data in sort, extract and exclude files + +* Thu Dec 13 2012 Bruno Wolff III - 4.3-0.2.git54719971 +- Pick up a few more changes to better handle bad data + +* Sat Dec 01 2012 Bruno Wolff III - 4.3-0.1.git0be606be +- Pre-release of 4.3 to get early testing +- This update includes a bit of internal code infrastructure changes +- There are lots of fixes to better handle bad data +- The final release is expected sometime in December +- Until the release only the README doc file is available + +* Sun Nov 25 2012 Bruno Wolff III - 4.2-5 +- Backported fix for bz 842460 (CVE-2012-4025) + +* Thu Nov 22 2012 Bruno Wolff III - 4.2-4 +- Backported fix for bz 842458 (CVE-2012-4024) + +* Sat Jul 21 2012 Fedora Release Engineering - 4.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat Jan 14 2012 Fedora Release Engineering - 4.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Mar 01 2011 Bruno Wolff III - 4.2-1 +- 4.2 is released. +- Bugfix for bad data causing crash. +- Include doc files added for release. +- Big endian patch is now upstream. +- Buildroot tag isn't needed any more. +- We can now specify CFLAGS on the make call. +- Compressor options are now passed with the make call. + +* Wed Feb 09 2011 Fedora Release Engineering - 4.2-0.4.20101231 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Jan 11 2011 Dan Horák - 4.2-0.3.20101231 +- Add fixes for big-endian machines + +* Sat Jan 01 2011 Bruno Wolff III - 4.2-0.2.20101231 +- Pull latest upstream snapshot +- Includes check for matching compression type when adding to an existing image +- Sample cvs command now includes timezone and specifies when on the date to use for the snapshot + +* Fri Dec 24 2010 Bruno Wolff III - 4.2-0.1.20101223 +- Switch to 4.2 development snapshot to get new XZ support +- LZMA and XZ (LZMA2) support are now different + +* Wed Oct 27 2010 Bruno Wolff III - 4.1-3 +- Rebuild for xz soname bump + +* Wed Sep 29 2010 jkeating - 4.1-2 +- Rebuilt for gcc bug 634757 + +* Tue Sep 21 2010 Bruno Wolff III - 4.1-1 +- Update to 4.1 final. +- Byte swap patch is now upstream. +- LZO compression type is now supported. + +* Mon Sep 6 2010 Dan Horák - 4.1-0.5.20100827 +- Add fixes for big-endian machines + +* Sat Aug 28 2010 Bruno Wolff III - 4.1-0.4.20100827 +- Rebase to latest upstream. +- The main reason is to pick up a fix for large xattr similar to the large inode fix. This doesn't need to get backported as 4.0 doesn't have xattr support. +- An option was added to build without xattr support. +- Various source cleanups have been done as well. + +* Tue Aug 03 2010 Bruno Wolff III - 4.1-0.3.20100803 +- Rebase to latest upstream +- Prevent warning message for xattr for virtual directory +- Fix issue with large inodes - BZ 619020 + +* Tue Jul 27 2010 Bruno Wolff III - 4.1-0.2.20100727 +- Rebase to latest upstream devel state. Mostly xattr fixes and cleanup. + +* Tue Jun 08 2010 Bruno Wolff III - 4.1-0.1.20100607 +- Rebase to 4.1 prerelease with xz wrapper +- Provides lzma compression as an option. +- squashfs-fix-unsquashing-v3.patch is part of the 4.1 prerelease + +* Wed May 5 2010 Kyle McMartin 4.0-4 +- squashfs-fix-unsquashing-v3.patch: pull in fix from cvs. Thanks pkl! + (rhbz#523504) + +* Thu Feb 18 2010 Kyle McMartin 4.0-3 +- Update to release tarball as opposed to cvs snapshot. +- Add dist tag. + +* Sun Jul 26 2009 Fedora Release Engineering - 4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Sun Apr 05 2009 Kyle McMartin - 4.0-1 +- Update to release 4.0 + +* Mon Mar 16 2009 Kyle McMartin - 4.0-0.20090316 +- update to cvs snap from 2009-03-16. + +* Wed Feb 25 2009 Fedora Release Engineering - 4.0-0.20090126 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Jan 26 2009 Kyle McMartin - 4.0-0.20090125 +- update to cvs snap that should unbreak big endian machines creating + little endian fs. + +* Mon Jan 12 2009 - 4.0-0.20090112 +- update to cvs snap that generates v4.0 images + +* Tue Sep 30 2008 Jeremy Katz - 3.4-1 +- update to 3.4 + +* Tue Feb 19 2008 Fedora Release Engineering - 3.3-2 +- Autorebuild for GCC 4.3 + +* Fri Dec 14 2007 Jeremy Katz - 3.3-1 +- Update to 3.3 + +* Wed Sep 5 2007 Jeremy Katz - 3.2-2 +- fixes from package review (#226430) + +* Tue Mar 20 2007 Jeremy Katz - 3.2-1 +- update to 3.2r2 + +* Sun Oct 01 2006 Jesse Keating - 3.0-4 +- rebuilt for unwind info generation, broken in gcc-4.1.1-21 + +* Mon Sep 18 2006 Jeremy Katz - 3.0-3 +- updated fragment size patch (#204638) + +* Wed Aug 16 2006 Jeremy Katz - 3.0-2 +- add upstream patch for fragment size problem (#202663) + +* Wed Jul 12 2006 Jesse Keating - 3.0-1.1 +- rebuild + +* Fri Jun 23 2006 Jeremy Katz - 3.0-1 +- update to 3.0 +- include unsquashfs + +* Tue May 16 2006 Jeremy Katz +- add BR on zlib-devel (Andreas Thienemann, #191880) + +* Fri Feb 10 2006 Jesse Keating - 2.2r2-2.2.1 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 2.2r2-2.2 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Thu Dec 1 2005 Jeremy Katz - 2.2r2-1 +- Initial build +