diff --git a/tar-1.26-remove_O_NONBLOCK.patch b/tar-1.26-remove_O_NONBLOCK.patch new file mode 100644 index 0000000..2f594ae --- /dev/null +++ b/tar-1.26-remove_O_NONBLOCK.patch @@ -0,0 +1,21 @@ +Index: tar-1.26/src/tar.c +=================================================================== +--- tar-1.26.orig/src/tar.c ++++ tar-1.26/src/tar.c +@@ -2467,10 +2467,14 @@ decode_options (int argc, char **argv) + + /* Flags for accessing files to be read from or copied into. POSIX says + O_NONBLOCK has unspecified effect on most types of files, but in +- practice it never harms and sometimes helps. */ ++ practice it never harms and sometimes helps. ++ ++ It seems in fact that in practice it never helps and sometimes harms. ++ Removing again. ++ */ + { + int base_open_flags = +- (O_BINARY | O_CLOEXEC | O_NOCTTY | O_NONBLOCK ++ (O_BINARY | O_CLOEXEC | O_NOCTTY + | (dereference_option ? 0 : O_NOFOLLOW) + | (atime_preserve_option == system_atime_preserve ? O_NOATIME : 0)); + open_read_flags = O_RDONLY | base_open_flags; diff --git a/tar.changes b/tar.changes index 68d2d90..662f59b 100644 --- a/tar.changes +++ b/tar.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Mon Dec 19 13:43:45 UTC 2011 - tcech@suse.cz + +- tar-1.26-remove_O_NONBLOCK.patch: + don't use O_NONBLOCK as a flag for read, + when file is offline, read with O_NONBLOCK returns EAGAIN, + but tar doesn't handle it + (bnc#737331) + ------------------------------------------------------------------- Sun Oct 30 23:16:20 CET 2011 - dmueller@suse.de diff --git a/tar.spec b/tar.spec index d958f3b..5aba053 100644 --- a/tar.spec +++ b/tar.spec @@ -15,21 +15,21 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # - # minimum suse version where the full featured package builds %define min_suse_ver 1010 Name: tar Version: 1.26 -Release: 1 -License: GPL-3.0+ +Release: 0 Summary: GNU implementation of tar ((t)ape (ar)chiver) -Url: http://www.gnu.org/software/tar/ +License: GPL-3.0+ Group: System/Base +Url: http://www.gnu.org/software/tar/ Source0: %{name}-%{version}.tar.bz2 # Patch3: tar-wildcards.patch Patch6: tar-backup-spec-fix-paths.patch +Patch7: tar-1.26-remove_O_NONBLOCK.patch %if 0%{?suse_version} >= %min_suse_ver BuildRequires: help2man Recommends: tar-lang = %{version} @@ -49,7 +49,6 @@ provided by tar you have to also install the 'dump' or the 'star' package. %package backup-scripts -License: GPL-3.0+ Summary: Backup scripts Group: Productivity/Archiving/Backup Requires: %{name} = %{version} @@ -63,6 +62,7 @@ Shell scripts for system backup/restore %setup -q %patch3 -p1 %patch6 -p1 +%patch7 -p1 %build %define my_cflags -W -Wall -Wpointer-arith -Wstrict-prototypes -Wformat-security -Wno-unused-parameter