+++ /dev/null
-tests: fix race in dirrem01 and dirrem02
-
-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.
-
-Origin: https://lists.gnu.org/archive/html/bug-tar/2018-01/msg00000.html
----
- 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])
---
-cgit v1.0-41-gc330
-
+++ /dev/null
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit flag-o-matic
-
-DESCRIPTION="Use this to make tarballs :)"
-HOMEPAGE="https://www.gnu.org/software/tar/"
-SRC_URI="mirror://gnu/tar/${P}.tar.bz2
- mirror://gnu-alpha/tar/${P}.tar.bz2"
-
-LICENSE="GPL-3+"
-SLOT="0"
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="acl elibc_glibc minimal nls selinux static userland_GNU xattr"
-
-RDEPEND="acl? ( virtual/acl )
- selinux? ( sys-libs/libselinux )"
-DEPEND="${RDEPEND}
- nls? ( >=sys-devel/gettext-0.10.35 )
- xattr? ( elibc_glibc? ( sys-apps/attr ) )"
-
-PATCHES=(
- "${FILESDIR}"/${P}-fix-test-92.patch
- "${FILESDIR}"/${P}-fix-test-117-and-118.patch
-)
-
-src_prepare() {
- default
-
- if ! use userland_GNU ; then
- sed -i \
- -e 's:/backup\.sh:/gbackup.sh:' \
- scripts/{backup,dump-remind,restore}.in \
- || die "sed non-GNU"
- fi
-}
-
-src_configure() {
- use static && append-ldflags -static
- local myeconfargs=(
- --bindir="${EPREFIX}"/bin
- --enable-backup-scripts
- --libexecdir="${EPREFIX}"/usr/sbin
- $(usex userland_GNU "" "--program-prefix=g")
- $(use_with acl posix-acls)
- $(use_enable nls)
- $(use_with selinux)
- $(use_with xattr xattrs)
- )
- FORCE_UNSAFE_CONFIGURE=1 econf "${myeconfargs[@]}"
-}
-
-src_install() {
- default
-
- local p=$(usex userland_GNU "" "g")
- if [[ -z ${p} ]] ; then
- # a nasty yet required piece of baggage
- exeinto /etc
- doexe "${FILESDIR}"/rmt
- fi
-
- # autoconf looks for gtar before tar (in configure scripts), hence
- # in Prefix it is important that it is there, otherwise, a gtar from
- # the host system (FreeBSD, Solaris, Darwin) will be found instead
- # of the Prefix provided (GNU) tar
- if use prefix ; then
- dosym tar /bin/gtar
- fi
-
- mv "${ED%/}"/usr/sbin/${p}backup{,-tar} || die
- mv "${ED%/}"/usr/sbin/${p}restore{,-tar} || die
-
- if use minimal ; then
- find "${ED}"/etc "${ED}"/*bin/ "${ED}"/usr/*bin/ \
- -type f -a '!' '(' -name tar -o -name ${p}tar ')' \
- -delete || die
- fi
-}