[arch-commits] Commit in tar/repos (4 files)
Allan McRae
allan at archlinux.org
Sun Nov 4 01:57:07 UTC 2018
Date: Sunday, November 4, 2018 @ 01:57:07
Author: allan
Revision: 337798
archrelease: copy trunk to testing-x86_64
Added:
tar/repos/testing-x86_64/
tar/repos/testing-x86_64/PKGBUILD
(from rev 337797, tar/trunk/PKGBUILD)
tar/repos/testing-x86_64/tar-1.30-tests-difflink.patch
(from rev 337797, tar/trunk/tar-1.30-tests-difflink.patch)
tar/repos/testing-x86_64/tar-1.30-tests-dirrem.patch
(from rev 337797, tar/trunk/tar-1.30-tests-dirrem.patch)
-------------------------------+
PKGBUILD | 60 +++++++++++++++++++++++++
tar-1.30-tests-difflink.patch | 15 ++++++
tar-1.30-tests-dirrem.patch | 93 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 168 insertions(+)
Copied: tar/repos/testing-x86_64/PKGBUILD (from rev 337797, tar/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD (rev 0)
+++ testing-x86_64/PKGBUILD 2018-11-04 01:57:07 UTC (rev 337798)
@@ -0,0 +1,60 @@
+# Mainainer: Sébastien "Seblu" Luttringer <seblu at archlinux.org>
+# Contributor: Allan McRae <allan at archlinux.org>
+# Contributor: Andreas Radke <andyrtr at archlinux.org>
+
+pkgname=tar
+pkgver=1.30
+pkgrel=2
+pkgdesc='Utility used to store, backup, and transport files'
+arch=('x86_64')
+url='https://www.gnu.org/software/tar/'
+license=('GPL3')
+groups=('base')
+depends=('glibc' 'acl' 'attr')
+options=('!emptydirs')
+validpgpkeys=('325F650C4C2B6AD58807327A3602B07F55D0C732') # Sergey Poznyakoff
+source=("https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz"{,.sig}
+ "tar-1.30-tests-difflink.patch"
+ "tar-1.30-tests-dirrem.patch")
+md5sums=('2d01c6cd1387be98f57a0ec4e6e35826'
+ 'SKIP'
+ '03a5a69df0dc6bfc8a5aa312f7535173'
+ '4ebab6318576ada4b244690f7acb134c')
+
+prepare() {
+ cd $pkgname-$pkgver
+ # apply patch from the source array (should be a pacman feature)
+ local filename
+ for filename in "${source[@]}"; do
+ if [[ "$filename" =~ \.patch$ ]]; then
+ msg2 "Applying patch ${filename##*/}"
+ patch -p1 -N -i "$srcdir/${filename##*/}"
+ fi
+ done
+ :
+
+ autoreconf -if
+}
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --libexecdir=/usr/lib/tar
+ make
+}
+
+check() {
+ cd $pkgname-$pkgver
+
+ # need to update testsuite script after patching
+ rm tests/testsuite
+ make -C tests/ testsuite
+
+ make check
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
Copied: tar/repos/testing-x86_64/tar-1.30-tests-difflink.patch (from rev 337797, tar/trunk/tar-1.30-tests-difflink.patch)
===================================================================
--- testing-x86_64/tar-1.30-tests-difflink.patch (rev 0)
+++ testing-x86_64/tar-1.30-tests-difflink.patch 2018-11-04 01:57:07 UTC (rev 337798)
@@ -0,0 +1,15 @@
+Per https://www.mail-archive.com/bug-tar@gnu.org/msg05440.html
+
+diff --git a/tests/difflink.at b/tests/difflink.at
+index eadfb08..4e01176 100644
+--- a/tests/difflink.at
++++ b/tests/difflink.at
+@@ -21,7 +21,7 @@ mkdir a
+ genfile -f a/x
+ ln -s x a/y
+ ln a/y a/z
+-tar cf a.tar a
++tar cf a.tar a/x a/y a/z
+ rm a/z
+ ln -s x a/z
+ tar df a.tar
Copied: tar/repos/testing-x86_64/tar-1.30-tests-dirrem.patch (from rev 337797, tar/trunk/tar-1.30-tests-dirrem.patch)
===================================================================
--- testing-x86_64/tar-1.30-tests-dirrem.patch (rev 0)
+++ testing-x86_64/tar-1.30-tests-dirrem.patch 2018-11-04 01:57:07 UTC (rev 337798)
@@ -0,0 +1,93 @@
+From 298cfc4743b9cca6cc0c685b9fce5b34827bec1b Mon Sep 17 00:00:00 2001
+From: Pavel Raiskup <praiskup at redhat.com>
+Date: Thu, 4 Jan 2018 18:21:27 +0100
+Subject: [PATCH] tests: fix race in dirrem01 and dirrem02
+
+Proposal:
+https://www.mail-archive.com/bug-tar@gnu.org/msg05451.html
+
+Previously the '--checkpoint-action=echo' was triggered after
+'--checkpoint-action=sleep=1' - so the order of events *usually*
+was (for --format='gnu'):
+
+ ...
+ 1. checkpoint handler before write of 'dir/sub' member
+ 2. one-second delay
+ 3. stderr write: 'tar: Write checkpoint 3'
+ 4. write the member 'dir/sub' into the archive
+ 5. check that the member's ctime has not been changed
+ 6. genfile's detecting 'Write checkpoint', doing unlink
+ ...
+
+But sometimes, the genfile was fast enough to win the race and
+unlinked the directory before the member was written into the
+archive (IOW, the order was 1-2-3-6-4-5). This led to the
+occasional warning 'tar: dir/sub: file changed as we read it'.
+
+Swap the order of 'sleep=1' and 'echo' actions so the genfile
+utility has (hopefully) enough time to do the unlink before
+writing the file into the archive (enforce 1-2-3-6-4-5 order).
+
+* tests/dirrem01.at: Swap 'sleep=1' and 'echo' actions.
+* tests/dirrem02.at: Likewise.
+---
+ tests/dirrem01.at | 5 +++--
+ tests/dirrem02.at | 7 ++++---
+ 2 files changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/tests/dirrem01.at b/tests/dirrem01.at
+index 40344dc..dabc206 100644
+--- a/tests/dirrem01.at
++++ b/tests/dirrem01.at
+@@ -47,14 +47,15 @@ gnu) CPT=3;;
+ esac
+
+ genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \
+- tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
+- --checkpoint-action='echo' -c -f archive.tar \
++ tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='echo' \
++ --checkpoint-action='sleep=1' -c -f archive.tar \
+ --listed-incremental db -v dir >/dev/null
+ ],
+ [1],
+ [ignore],
+ [tar: dir: Directory is new
+ tar: dir/sub: Directory is new
++tar: dir/sub: file changed as we read it
+ tar: dir/sub: File removed before we read it
+ ],[],[],[gnu,posix])
+
+diff --git a/tests/dirrem02.at b/tests/dirrem02.at
+index e1cf9ef..924454f 100644
+--- a/tests/dirrem02.at
++++ b/tests/dirrem02.at
+@@ -20,7 +20,7 @@
+
+ # Description:
+ #
+-# When an explicitley named directory disappears during creation
++# When an explicitly named directory disappears during creation
+ # of incremental dump, tar should still exit with TAREXIT_FAILURE (2).
+ #
+ # For further details see dirrem01.at
+@@ -44,14 +44,15 @@ gnu) CPT=3;;
+ esac
+
+ genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \
+- tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \
+- --checkpoint-action='echo' -c -f archive.tar \
++ tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='echo' \
++ --checkpoint-action='sleep=1' -c -f archive.tar \
+ --listed-incremental db -v dir dir/sub >/dev/null
+ ],
+ [2],
+ [ignore],
+ [tar: dir: Directory is new
+ tar: dir/sub: Directory is new
++tar: dir/sub: file changed as we read it
+ tar: dir/sub: Cannot open: No such file or directory
+ tar: Exiting with failure status due to previous errors
+ ],[],[],[gnu,posix])
+--
+2.14.3
+
More information about the arch-commits
mailing list