diff --git a/tar-1.27-sparse-stat-detection.patch b/tar-1.27-sparse-stat-detection.patch new file mode 100644 index 0000000..3eb3fb8 --- /dev/null +++ b/tar-1.27-sparse-stat-detection.patch @@ -0,0 +1,22 @@ +diff --git a/lib/system.h b/lib/system.h +index ef46267..e7f531c 100644 +--- a/lib/system.h ++++ b/lib/system.h +@@ -389,9 +389,16 @@ extern int errno; + # define ST_NBLOCKSIZE 512 + #endif + ++/* Network Appliance file systems store small files directly in the ++ inode if st_size <= 64; in this case the number of blocks can be ++ zero. Perhaps other file systems have similar problems; so, ++ somewhat arbitrarily, do not consider a file to be sparse if ++ it has no blocks but st_size < ST_NBLOCKSIZE. */ + #define ST_IS_SPARSE(st) \ + (ST_NBLOCKS (st) \ +- < ((st).st_size / ST_NBLOCKSIZE + ((st).st_size % ST_NBLOCKSIZE != 0))) ++ < ((st).st_size / ST_NBLOCKSIZE \ ++ + ((st).st_size % ST_NBLOCKSIZE != 0 \ ++ && (st).st_size / ST_NBLOCKSIZE != 0))) + + /* Declare standard functions. */ + diff --git a/tar.spec b/tar.spec index 606b0e6..8b71352 100644 --- a/tar.spec +++ b/tar.spec @@ -5,7 +5,7 @@ Summary: A GNU file archiving program Name: tar Epoch: 2 Version: 1.27 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ Group: Applications/Archiving URL: http://www.gnu.org/software/tar/ @@ -64,6 +64,12 @@ Patch7: tar-1.26-docu-xattrs.patch Patch8: tar-1.26-xattrs-include-implies-xattrs.patch +# If the 'st_size' != 0 && count(blocks) == 0 && st_size < size(block), this +# does not necessarily must be a sparse file. +# ~> upstream (paxutils): 986382a0bb3261 +# ~> #1024095 +Patch9: tar-1.27-sparse-stat-detection.patch + # run "make check" by default %bcond_without check @@ -105,6 +111,7 @@ the rmt package on the remote box. %patch6 -p1 -b .print-xattrs-fix %patch7 -p1 -b .xattrs-documentation %patch8 -p1 -b .xattrs-if-xattrs-include +%patch9 -p1 -b .sparse-stat-detection autoreconf -v @@ -163,6 +170,9 @@ fi %{_infodir}/tar.info* %changelog +* Tue Oct 29 2013 Pavel Raiskup - 1.27-2 +- sparse file detection based on fstat() fix (#1024095) + * Wed Oct 09 2013 Ondrej Vasik - 1.27-1 - new upstream release 1.27 (#1016288)