tar/add_forgotten-tests.patch
Marcus Meissner d8cbce283c Accepting request 1131478 from home:smolsheep:upgrades
- GNU tar 1.34:
  * Fail when building GNU tar if the platform supports 64-bit
    time_t but the build only uses 32-bit time_t.
  * Leave the devmajor and devminor fields empty (rather than
    zero) for non-special files, as this is more compatible with
    traditional tar.
  Fixes:
  * Fix interaction of --update with --wildcards.
  * When extracting archives into an empty directory, do not create
    hard links to files outside that directory.
  * Handle partial reads from regular files.
  * Warn file changed as we read it less often. Formerly, tar
    warned if the file's size or ctime changed. However, this
    generated a false positive if tar read a file while another
    process hard-linked to it, changing its ctime. Now, tar warns
    if the file's size, mtime, user ID, group ID, or mode changes.
    Although neither heuristic is perfect, the new one should work
    better in practice.
  * Fix --ignore-failed-read to ignore file-changed read errors
    as far as exit status is concerned. You can now suppress
    file-changed issues entirely with --ignore-failed-read
    --warning=no-file-changed.
  * Fix --remove-files to not remove a file that changed while we
    read it.
  * Fix --atime-preserve=replace to not fail if there was no need
    to replace, either because we did not read the file, or the
    atime did not change.
  * Fix race when creating a parent directory while another process
    is also doing so.
  * Fix handling of prefix keywords not followed by "." in pax
    headers.
  * Fix handling of out-of-range sparse entries in pax headers.
  * Fix handling of --transform='s/s/@/2'.
  * Fix treatment of options ending in slash in files-from list.
  * Fix crash on tar --checkpoint-action exec=\".
  * Fix low-memory crash when reading incremental dumps.
  * Fix --exclude-vcs-ignores memory allocation misuse.
- Update patch:
  * tar-backup-spec-fix-paths.patch: upstream fixed 2/3rd of paths
  * tar-fix-extract-unlink.patch
    some of this is overwritten by bsc1202436-1 and some was fixed
    upstream
  * add_readme-tests.patch as Makefile.in no longer exists
- Removed:
  * tar-fix-race-condition.patch
  * tar-avoid-overflow-in-symlinks-tests.patch
  * bsc1200657.patch
  * bsc1202436-2.patch
  * bsc1202436-1.patch

OBS-URL: https://build.opensuse.org/request/show/1131478
OBS-URL: https://build.opensuse.org/package/show/Base:System/tar?expand=0&rev=128
2023-12-07 15:47:00 +00:00

157 lines
4.0 KiB
Diff

From 7fac753fb6e6c0459788ee9015b984dba1de5402 Mon Sep 17 00:00:00 2001
From: Lukas Javorsky <ljavorsk@redhat.com>
Date: Tue, 18 Jul 2023 14:10:12 +0000
Subject: [PATCH] Add exclude17 and exclude18 tests which were forgotten by
upstream
Sources:
*https://git.savannah.gnu.org/cgit/tar.git/tree/tests/exclude17.at
*https://git.savannah.gnu.org/cgit/tar.git/tree/tests/exclude18.at
Repoted to upstream in ML:
*https://lists.gnu.org/archive/html/bug-tar/2023-07/msg00002.html
---
tests/exclude17.at | 35 +++++++++++++++++++
tests/exclude18.at | 87 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 122 insertions(+)
create mode 100644 tests/exclude17.at
create mode 100644 tests/exclude18.at
diff --git a/tests/exclude17.at b/tests/exclude17.at
new file mode 100644
index 0000000..5539ef3
--- /dev/null
+++ b/tests/exclude17.at
@@ -0,0 +1,35 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+#
+# Test suite for GNU tar.
+# Copyright 2013-2023 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# GNU tar is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+AT_SETUP([--exclude-vcs-ignores memory allocation])
+AT_KEYWORDS([exclude exclude17])
+
+AT_TAR_CHECK([
+mkdir dir
+cd dir
+echo '*.o' >.cvsignore
+tar -cf - --exclude-vcs-ignores . | tar -tf -
+],
+[0],
+[./
+./.cvsignore
+])
+
+AT_CLEANUP
diff --git a/tests/exclude18.at b/tests/exclude18.at
new file mode 100644
index 0000000..64aaa52
--- /dev/null
+++ b/tests/exclude18.at
@@ -0,0 +1,87 @@
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+
+# Test suite for GNU tar.
+# Copyright 2004-2023 Free Software Foundation, Inc.
+
+# This file is part of GNU tar.
+
+# GNU tar is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# GNU tar is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Test --exclude-vcs option with subcommands: EXTRACT, LIST, DIFF.
+# Check VCS directory with files, and empty.
+#
+# Ref: https://savannah.gnu.org/bugs/?62859
+# Wed 03 Aug 2022 04:06:28 PM UTC, original submission: Quote
+# Mohamed Akram <mohdakram>
+# > The --exclude-vcs flag seems to exclude .gitignore but not .git when
+# extracting.
+
+AT_SETUP([--exclude-vcs extract list compare])
+AT_KEYWORDS([exclude-vcs extract list compare exclude18])
+
+AT_TAR_CHECK([
+AT_SORT_PREREQ
+mkdir gitrepo
+cd gitrepo
+
+# Make an empty VCS directory:
+mkdir .svn
+
+# Make a VCS directory with a file:
+mkdir .git
+touch .git/_A
+
+# Make a VCS file:
+touch .gitignore
+
+# Make non-VCS files:
+touch .git_B
+touch _C
+
+# Create an archive, include VCS:
+cd ..
+tar -cf gitrepo.tar gitrepo
+rm -r gitrepo
+
+echo Extract:
+tar -xvf gitrepo.tar --exclude-vcs | sort
+
+echo
+echo List:
+tar -tf gitrepo.tar --exclude-vcs | sort
+
+echo
+echo Diff:
+tar -dvf gitrepo.tar --exclude-vcs gitrepo | sort
+
+],
+[0],
+[Extract:
+gitrepo/
+gitrepo/.git_B
+gitrepo/_C
+
+List:
+gitrepo/
+gitrepo/.git_B
+gitrepo/_C
+
+Diff:
+gitrepo/
+gitrepo/.git_B
+gitrepo/_C
+],
+[])
+
+AT_CLEANUP
--
2.41.0