I: pbuilder: network access will be disabled during build
I: Current time: Thu Apr 17 18:23:13 +14 2025
I: pbuilder-time-stamp: 1744863794
I: Building the build Environment
I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz]
I: copying local configuration
W: --override-config is not set; not updating apt.conf Read the manpage for details.
I: mounting /proc filesystem
I: mounting /sys filesystem
I: creating /{dev,run}/shm
I: mounting /dev/pts filesystem
I: redirecting /dev/ptmx to /dev/pts/ptmx
I: policy-rc.d already exists
I: using eatmydata during job
I: Copying source file
I: copying [tar_1.34+dfsg-1.2+deb12u1.dsc]
I: copying [./tar_1.34+dfsg.orig.tar.xz]
I: copying [./tar_1.34+dfsg-1.2+deb12u1.debian.tar.xz]
I: Extracting source
gpgv: Signature made Sat Jan 20 23:35:15 2024 +14
gpgv:                using RSA key 4644409808C171E05531DDEE054CB8F31343CF44
gpgv:                issuer "carnil@debian.org"
gpgv: Can't check signature: No public key
dpkg-source: warning: cannot verify inline signature for ./tar_1.34+dfsg-1.2+deb12u1.dsc: no acceptable signature found
dpkg-source: info: extracting tar in tar-1.34+dfsg
dpkg-source: info: unpacking tar_1.34+dfsg.orig.tar.xz
dpkg-source: info: unpacking tar_1.34+dfsg-1.2+deb12u1.debian.tar.xz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying gcc-10-warnings.diff
dpkg-source: info: applying pristine-tar.diff
dpkg-source: info: applying listed03-linux-only
dpkg-source: info: applying oldgnu-unknown-mode-bits.patch
dpkg-source: info: applying proper_it_translation.patch
dpkg-source: info: applying Fix-boundary-checking-in-base-256-decoder.patch
dpkg-source: info: applying Fix-handling-of-extended-header-prefixes.patch
I: using fakeroot in build.
I: Installing the build-deps
I: user script /srv/workspace/pbuilder/59216/tmp/hooks/D01_modify_environment starting
debug: Running on ionos16-i386.
I: Changing host+domainname to test build reproducibility
I: Adding a custom variable just for the fun of it...
I: Changing /bin/sh to bash
'/bin/sh' -> '/bin/bash'
lrwxrwxrwx 1 root root 9 Apr 17 18:23 /bin/sh -> /bin/bash
I: Setting pbuilder2's login shell to /bin/bash
I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other
I: user script /srv/workspace/pbuilder/59216/tmp/hooks/D01_modify_environment finished
I: user script /srv/workspace/pbuilder/59216/tmp/hooks/D02_print_environment starting
I: set
  BASH=/bin/sh
  BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath
  BASH_ALIASES=()
  BASH_ARGC=()
  BASH_ARGV=()
  BASH_CMDS=()
  BASH_LINENO=([0]="12" [1]="0")
  BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:.
  BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment")
  BASH_VERSINFO=([0]="5" [1]="2" [2]="15" [3]="1" [4]="release" [5]="i686-pc-linux-gnu")
  BASH_VERSION='5.2.15(1)-release'
  BUILDDIR=/build/reproducible-path
  BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other'
  BUILDUSERNAME=pbuilder2
  BUILD_ARCH=i386
  DEBIAN_FRONTEND=noninteractive
  DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=15 '
  DIRSTACK=()
  DISTRIBUTION=bookworm
  EUID=0
  FUNCNAME=([0]="Echo" [1]="main")
  GROUPS=()
  HOME=/root
  HOSTNAME=i-capture-the-hostname
  HOSTTYPE=i686
  HOST_ARCH=i386
  IFS=' 	
  '
  INVOCATION_ID=9ae7c9bcbca442c19c43791163de1288
  LANG=C
  LANGUAGE=de_CH:de
  LC_ALL=C
  LD_LIBRARY_PATH=/usr/lib/libeatmydata
  LD_PRELOAD=libeatmydata.so
  MACHTYPE=i686-pc-linux-gnu
  MAIL=/var/mail/root
  OPTERR=1
  OPTIND=1
  OSTYPE=linux-gnu
  PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path
  PBCURRENTCOMMANDLINEOPERATION=build
  PBUILDER_OPERATION=build
  PBUILDER_PKGDATADIR=/usr/share/pbuilder
  PBUILDER_PKGLIBDIR=/usr/lib/pbuilder
  PBUILDER_SYSCONFDIR=/etc
  PIPESTATUS=([0]="0")
  POSIXLY_CORRECT=y
  PPID=59216
  PS4='+ '
  PWD=/
  SHELL=/bin/bash
  SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix
  SHLVL=3
  SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.atOwsqmg/pbuilderrc_oAtD --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.atOwsqmg/b2 --logfile b2/build.log tar_1.34+dfsg-1.2+deb12u1.dsc'
  SUDO_GID=112
  SUDO_UID=107
  SUDO_USER=jenkins
  TERM=unknown
  TZ=/usr/share/zoneinfo/Etc/GMT-14
  UID=0
  USER=root
  _='I: set'
  http_proxy=http://85.184.249.68:3128
I: uname -a
  Linux i-capture-the-hostname 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64 GNU/Linux
I: ls -l /bin
  total 6036
  -rwxr-xr-x 1 root root 1408088 Apr 24  2023 bash
  -rwxr-xr-x 3 root root   38404 Sep 19  2022 bunzip2
  -rwxr-xr-x 3 root root   38404 Sep 19  2022 bzcat
  lrwxrwxrwx 1 root root       6 Sep 19  2022 bzcmp -> bzdiff
  -rwxr-xr-x 1 root root    2225 Sep 19  2022 bzdiff
  lrwxrwxrwx 1 root root       6 Sep 19  2022 bzegrep -> bzgrep
  -rwxr-xr-x 1 root root    4893 Nov 28  2021 bzexe
  lrwxrwxrwx 1 root root       6 Sep 19  2022 bzfgrep -> bzgrep
  -rwxr-xr-x 1 root root    3775 Sep 19  2022 bzgrep
  -rwxr-xr-x 3 root root   38404 Sep 19  2022 bzip2
  -rwxr-xr-x 1 root root   17892 Sep 19  2022 bzip2recover
  lrwxrwxrwx 1 root root       6 Sep 19  2022 bzless -> bzmore
  -rwxr-xr-x 1 root root    1297 Sep 19  2022 bzmore
  -rwxr-xr-x 1 root root   42920 Sep 21  2022 cat
  -rwxr-xr-x 1 root root   79816 Sep 21  2022 chgrp
  -rwxr-xr-x 1 root root   67496 Sep 21  2022 chmod
  -rwxr-xr-x 1 root root   79816 Sep 21  2022 chown
  -rwxr-xr-x 1 root root  162024 Sep 21  2022 cp
  -rwxr-xr-x 1 root root  136916 Jan  6  2023 dash
  -rwxr-xr-x 1 root root  137160 Sep 21  2022 date
  -rwxr-xr-x 1 root root  100364 Sep 21  2022 dd
  -rwxr-xr-x 1 root root  108940 Sep 21  2022 df
  -rwxr-xr-x 1 root root  162152 Sep 21  2022 dir
  -rwxr-xr-x 1 root root   87760 Mar 24  2023 dmesg
  lrwxrwxrwx 1 root root       8 Dec 20  2022 dnsdomainname -> hostname
  lrwxrwxrwx 1 root root       8 Dec 20  2022 domainname -> hostname
  -rwxr-xr-x 1 root root   38760 Sep 21  2022 echo
  -rwxr-xr-x 1 root root      41 Jan 25  2023 egrep
  -rwxr-xr-x 1 root root   34664 Sep 21  2022 false
  -rwxr-xr-x 1 root root      41 Jan 25  2023 fgrep
  -rwxr-xr-x 1 root root   84272 Mar 24  2023 findmnt
  -rwsr-xr-x 1 root root   30240 Mar 23  2023 fusermount
  -rwxr-xr-x 1 root root  218680 Jan 25  2023 grep
  -rwxr-xr-x 2 root root    2346 Apr 10  2022 gunzip
  -rwxr-xr-x 1 root root    6447 Apr 10  2022 gzexe
  -rwxr-xr-x 1 root root  100952 Apr 10  2022 gzip
  -rwxr-xr-x 1 root root   21916 Dec 20  2022 hostname
  -rwxr-xr-x 1 root root   75756 Sep 21  2022 ln
  -rwxr-xr-x 1 root root   55600 Mar 24  2023 login
  -rwxr-xr-x 1 root root  162152 Sep 21  2022 ls
  -rwxr-xr-x 1 root root  214568 Mar 24  2023 lsblk
  -rwxr-xr-x 1 root root   96328 Sep 21  2022 mkdir
  -rwxr-xr-x 1 root root   84008 Sep 21  2022 mknod
  -rwxr-xr-x 1 root root   38792 Sep 21  2022 mktemp
  -rwxr-xr-x 1 root root   63016 Mar 24  2023 more
  -rwsr-xr-x 1 root root   58912 Mar 24  2023 mount
  -rwxr-xr-x 1 root root   13856 Mar 24  2023 mountpoint
  -rwxr-xr-x 1 root root  157932 Sep 21  2022 mv
  lrwxrwxrwx 1 root root       8 Dec 20  2022 nisdomainname -> hostname
  lrwxrwxrwx 1 root root      14 Apr  3  2023 pidof -> /sbin/killall5
  -rwxr-xr-x 1 root root   38792 Sep 21  2022 pwd
  lrwxrwxrwx 1 root root       4 Apr 24  2023 rbash -> bash
  -rwxr-xr-x 1 root root   51080 Sep 21  2022 readlink
  -rwxr-xr-x 1 root root   75720 Sep 21  2022 rm
  -rwxr-xr-x 1 root root   51080 Sep 21  2022 rmdir
  -rwxr-xr-x 1 root root   22308 Jul 29  2023 run-parts
  -rwxr-xr-x 1 root root  133224 Jan  6  2023 sed
  lrwxrwxrwx 1 root root       9 Apr 17 18:23 sh -> /bin/bash
  -rwxr-xr-x 1 root root   38760 Sep 21  2022 sleep
  -rwxr-xr-x 1 root root   87976 Sep 21  2022 stty
  -rwsr-xr-x 1 root root   83492 Mar 24  2023 su
  -rwxr-xr-x 1 root root   38792 Sep 21  2022 sync
  -rwxr-xr-x 1 root root  598456 Jan 20  2024 tar
  -rwxr-xr-x 1 root root   13860 Jul 29  2023 tempfile
  -rwxr-xr-x 1 root root  120776 Sep 21  2022 touch
  -rwxr-xr-x 1 root root   34664 Sep 21  2022 true
  -rwxr-xr-x 1 root root   17892 Mar 23  2023 ulockmgr_server
  -rwsr-xr-x 1 root root   30236 Mar 24  2023 umount
  -rwxr-xr-x 1 root root   38760 Sep 21  2022 uname
  -rwxr-xr-x 2 root root    2346 Apr 10  2022 uncompress
  -rwxr-xr-x 1 root root  162152 Sep 21  2022 vdir
  -rwxr-xr-x 1 root root   71216 Mar 24  2023 wdctl
  lrwxrwxrwx 1 root root       8 Dec 20  2022 ypdomainname -> hostname
  -rwxr-xr-x 1 root root    1984 Apr 10  2022 zcat
  -rwxr-xr-x 1 root root    1678 Apr 10  2022 zcmp
  -rwxr-xr-x 1 root root    6460 Apr 10  2022 zdiff
  -rwxr-xr-x 1 root root      29 Apr 10  2022 zegrep
  -rwxr-xr-x 1 root root      29 Apr 10  2022 zfgrep
  -rwxr-xr-x 1 root root    2081 Apr 10  2022 zforce
  -rwxr-xr-x 1 root root    8103 Apr 10  2022 zgrep
  -rwxr-xr-x 1 root root    2206 Apr 10  2022 zless
  -rwxr-xr-x 1 root root    1842 Apr 10  2022 zmore
  -rwxr-xr-x 1 root root    4577 Apr 10  2022 znew
I: user script /srv/workspace/pbuilder/59216/tmp/hooks/D02_print_environment finished
 -> Attempting to satisfy build-dependencies
 -> Creating pbuilder-satisfydepends-dummy package
Package: pbuilder-satisfydepends-dummy
Version: 0.invalid.0
Architecture: i386
Maintainer: Debian Pbuilder Team <pbuilder-maint@lists.alioth.debian.org>
Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder
 This package was created automatically by pbuilder to satisfy the
 build-dependencies of the package being currently built.
Depends: debhelper (>> 10), gettext, autoconf, automake, autopoint, bison, libacl1-dev, libselinux1-dev
dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'.
Selecting previously unselected package pbuilder-satisfydepends-dummy.
(Reading database ... 19563 files and directories currently installed.)
Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ...
Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ...
dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested:
 pbuilder-satisfydepends-dummy depends on debhelper (>> 10); however:
  Package debhelper is not installed.
 pbuilder-satisfydepends-dummy depends on gettext; however:
  Package gettext is not installed.
 pbuilder-satisfydepends-dummy depends on autoconf; however:
  Package autoconf is not installed.
 pbuilder-satisfydepends-dummy depends on automake; however:
  Package automake is not installed.
 pbuilder-satisfydepends-dummy depends on autopoint; however:
  Package autopoint is not installed.
 pbuilder-satisfydepends-dummy depends on bison; however:
  Package bison is not installed.
 pbuilder-satisfydepends-dummy depends on libacl1-dev; however:
  Package libacl1-dev is not installed.
 pbuilder-satisfydepends-dummy depends on libselinux1-dev; however:
  Package libselinux1-dev is not installed.

Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ...
Reading package lists...
Building dependency tree...
Reading state information...
Initializing package states...
Writing extended state information...
Building tag database...
pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0)
pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0)
The following NEW packages will be installed:
  autoconf{a} automake{a} autopoint{a} autotools-dev{a} bison{a} bsdextrautils{a} debhelper{a} dh-autoreconf{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libacl1-dev{a} libarchive-zip-perl{a} libattr1-dev{a} libdebhelper-perl{a} libelf1{a} libfile-stripnondeterminism-perl{a} libicu72{a} libmagic-mgc{a} libmagic1{a} libpcre2-16-0{a} libpcre2-32-0{a} libpcre2-dev{a} libpcre2-posix3{a} libpipeline1{a} libselinux1-dev{a} libsepol-dev{a} libsub-override-perl{a} libtool{a} libuchardet0{a} libxml2{a} m4{a} man-db{a} po-debconf{a} sensible-utils{a} 
The following packages are RECOMMENDED but will NOT be installed:
  curl libarchive-cpio-perl libltdl-dev libmail-sendmail-perl lynx wget 
0 packages upgraded, 39 newly installed, 0 to remove and 0 not upgraded.
Need to get 22.2 MB of archives. After unpacking 82.4 MB will be used.
Writing extended state information...
Get: 1 http://deb.debian.org/debian bookworm/main i386 sensible-utils all 0.0.17+nmu1 [19.0 kB]
Get: 2 http://deb.debian.org/debian bookworm/main i386 libmagic-mgc i386 1:5.44-3 [305 kB]
Get: 3 http://deb.debian.org/debian bookworm/main i386 libmagic1 i386 1:5.44-3 [114 kB]
Get: 4 http://deb.debian.org/debian bookworm/main i386 file i386 1:5.44-3 [42.5 kB]
Get: 5 http://deb.debian.org/debian bookworm/main i386 gettext-base i386 0.21-12 [162 kB]
Get: 6 http://deb.debian.org/debian bookworm/main i386 libuchardet0 i386 0.0.7-1 [67.9 kB]
Get: 7 http://deb.debian.org/debian bookworm/main i386 groff-base i386 1.22.4-10 [932 kB]
Get: 8 http://deb.debian.org/debian bookworm/main i386 bsdextrautils i386 2.38.1-5+b1 [90.3 kB]
Get: 9 http://deb.debian.org/debian bookworm/main i386 libpipeline1 i386 1.5.7-1 [40.0 kB]
Get: 10 http://deb.debian.org/debian bookworm/main i386 man-db i386 2.11.2-2 [1397 kB]
Get: 11 http://deb.debian.org/debian bookworm/main i386 m4 i386 1.4.19-3 [294 kB]
Get: 12 http://deb.debian.org/debian bookworm/main i386 autoconf all 2.71-3 [332 kB]
Get: 13 http://deb.debian.org/debian bookworm/main i386 autotools-dev all 20220109.1 [51.6 kB]
Get: 14 http://deb.debian.org/debian bookworm/main i386 automake all 1:1.16.5-1.3 [823 kB]
Get: 15 http://deb.debian.org/debian bookworm/main i386 autopoint all 0.21-12 [495 kB]
Get: 16 http://deb.debian.org/debian bookworm/main i386 bison i386 2:3.8.2+dfsg-1+b1 [1186 kB]
Get: 17 http://deb.debian.org/debian bookworm/main i386 libdebhelper-perl all 13.11.4 [81.2 kB]
Get: 18 http://deb.debian.org/debian bookworm/main i386 libtool all 2.4.7-5 [517 kB]
Get: 19 http://deb.debian.org/debian bookworm/main i386 dh-autoreconf all 20 [17.1 kB]
Get: 20 http://deb.debian.org/debian bookworm/main i386 libarchive-zip-perl all 1.68-1 [104 kB]
Get: 21 http://deb.debian.org/debian bookworm/main i386 libsub-override-perl all 0.09-4 [9304 B]
Get: 22 http://deb.debian.org/debian bookworm/main i386 libfile-stripnondeterminism-perl all 1.13.1-1 [19.4 kB]
Get: 23 http://deb.debian.org/debian bookworm/main i386 dh-strip-nondeterminism all 1.13.1-1 [8620 B]
Get: 24 http://deb.debian.org/debian bookworm/main i386 libelf1 i386 0.188-2.1 [179 kB]
Get: 25 http://deb.debian.org/debian bookworm/main i386 dwz i386 0.15-1 [118 kB]
Get: 26 http://deb.debian.org/debian bookworm/main i386 libicu72 i386 72.1-3 [9541 kB]
Get: 27 http://deb.debian.org/debian bookworm/main i386 libxml2 i386 2.9.14+dfsg-1.3~deb12u1 [720 kB]
Get: 28 http://deb.debian.org/debian bookworm/main i386 gettext i386 0.21-12 [1311 kB]
Get: 29 http://deb.debian.org/debian bookworm/main i386 intltool-debian all 0.35.0+20060710.6 [22.9 kB]
Get: 30 http://deb.debian.org/debian bookworm/main i386 po-debconf all 1.0.21+nmu1 [248 kB]
Get: 31 http://deb.debian.org/debian bookworm/main i386 debhelper all 13.11.4 [942 kB]
Get: 32 http://deb.debian.org/debian bookworm/main i386 libattr1-dev i386 1:2.5.1-4 [35.8 kB]
Get: 33 http://deb.debian.org/debian bookworm/main i386 libacl1-dev i386 2.3.1-3 [94.9 kB]
Get: 34 http://deb.debian.org/debian bookworm/main i386 libpcre2-16-0 i386 10.42-1 [243 kB]
Get: 35 http://deb.debian.org/debian bookworm/main i386 libpcre2-32-0 i386 10.42-1 [232 kB]
Get: 36 http://deb.debian.org/debian bookworm/main i386 libpcre2-posix3 i386 10.42-1 [55.4 kB]
Get: 37 http://deb.debian.org/debian bookworm/main i386 libpcre2-dev i386 10.42-1 [761 kB]
Get: 38 http://deb.debian.org/debian bookworm/main i386 libsepol-dev i386 3.4-2.1 [385 kB]
Get: 39 http://deb.debian.org/debian bookworm/main i386 libselinux1-dev i386 3.4-1+b6 [165 kB]
Fetched 22.2 MB in 1s (23.7 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package sensible-utils.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 19563 files and directories currently installed.)
Preparing to unpack .../00-sensible-utils_0.0.17+nmu1_all.deb ...
Unpacking sensible-utils (0.0.17+nmu1) ...
Selecting previously unselected package libmagic-mgc.
Preparing to unpack .../01-libmagic-mgc_1%3a5.44-3_i386.deb ...
Unpacking libmagic-mgc (1:5.44-3) ...
Selecting previously unselected package libmagic1:i386.
Preparing to unpack .../02-libmagic1_1%3a5.44-3_i386.deb ...
Unpacking libmagic1:i386 (1:5.44-3) ...
Selecting previously unselected package file.
Preparing to unpack .../03-file_1%3a5.44-3_i386.deb ...
Unpacking file (1:5.44-3) ...
Selecting previously unselected package gettext-base.
Preparing to unpack .../04-gettext-base_0.21-12_i386.deb ...
Unpacking gettext-base (0.21-12) ...
Selecting previously unselected package libuchardet0:i386.
Preparing to unpack .../05-libuchardet0_0.0.7-1_i386.deb ...
Unpacking libuchardet0:i386 (0.0.7-1) ...
Selecting previously unselected package groff-base.
Preparing to unpack .../06-groff-base_1.22.4-10_i386.deb ...
Unpacking groff-base (1.22.4-10) ...
Selecting previously unselected package bsdextrautils.
Preparing to unpack .../07-bsdextrautils_2.38.1-5+b1_i386.deb ...
Unpacking bsdextrautils (2.38.1-5+b1) ...
Selecting previously unselected package libpipeline1:i386.
Preparing to unpack .../08-libpipeline1_1.5.7-1_i386.deb ...
Unpacking libpipeline1:i386 (1.5.7-1) ...
Selecting previously unselected package man-db.
Preparing to unpack .../09-man-db_2.11.2-2_i386.deb ...
Unpacking man-db (2.11.2-2) ...
Selecting previously unselected package m4.
Preparing to unpack .../10-m4_1.4.19-3_i386.deb ...
Unpacking m4 (1.4.19-3) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../11-autoconf_2.71-3_all.deb ...
Unpacking autoconf (2.71-3) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../12-autotools-dev_20220109.1_all.deb ...
Unpacking autotools-dev (20220109.1) ...
Selecting previously unselected package automake.
Preparing to unpack .../13-automake_1%3a1.16.5-1.3_all.deb ...
Unpacking automake (1:1.16.5-1.3) ...
Selecting previously unselected package autopoint.
Preparing to unpack .../14-autopoint_0.21-12_all.deb ...
Unpacking autopoint (0.21-12) ...
Selecting previously unselected package bison.
Preparing to unpack .../15-bison_2%3a3.8.2+dfsg-1+b1_i386.deb ...
Unpacking bison (2:3.8.2+dfsg-1+b1) ...
Selecting previously unselected package libdebhelper-perl.
Preparing to unpack .../16-libdebhelper-perl_13.11.4_all.deb ...
Unpacking libdebhelper-perl (13.11.4) ...
Selecting previously unselected package libtool.
Preparing to unpack .../17-libtool_2.4.7-5_all.deb ...
Unpacking libtool (2.4.7-5) ...
Selecting previously unselected package dh-autoreconf.
Preparing to unpack .../18-dh-autoreconf_20_all.deb ...
Unpacking dh-autoreconf (20) ...
Selecting previously unselected package libarchive-zip-perl.
Preparing to unpack .../19-libarchive-zip-perl_1.68-1_all.deb ...
Unpacking libarchive-zip-perl (1.68-1) ...
Selecting previously unselected package libsub-override-perl.
Preparing to unpack .../20-libsub-override-perl_0.09-4_all.deb ...
Unpacking libsub-override-perl (0.09-4) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../21-libfile-stripnondeterminism-perl_1.13.1-1_all.deb ...
Unpacking libfile-stripnondeterminism-perl (1.13.1-1) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../22-dh-strip-nondeterminism_1.13.1-1_all.deb ...
Unpacking dh-strip-nondeterminism (1.13.1-1) ...
Selecting previously unselected package libelf1:i386.
Preparing to unpack .../23-libelf1_0.188-2.1_i386.deb ...
Unpacking libelf1:i386 (0.188-2.1) ...
Selecting previously unselected package dwz.
Preparing to unpack .../24-dwz_0.15-1_i386.deb ...
Unpacking dwz (0.15-1) ...
Selecting previously unselected package libicu72:i386.
Preparing to unpack .../25-libicu72_72.1-3_i386.deb ...
Unpacking libicu72:i386 (72.1-3) ...
Selecting previously unselected package libxml2:i386.
Preparing to unpack .../26-libxml2_2.9.14+dfsg-1.3~deb12u1_i386.deb ...
Unpacking libxml2:i386 (2.9.14+dfsg-1.3~deb12u1) ...
Selecting previously unselected package gettext.
Preparing to unpack .../27-gettext_0.21-12_i386.deb ...
Unpacking gettext (0.21-12) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../28-intltool-debian_0.35.0+20060710.6_all.deb ...
Unpacking intltool-debian (0.35.0+20060710.6) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../29-po-debconf_1.0.21+nmu1_all.deb ...
Unpacking po-debconf (1.0.21+nmu1) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../30-debhelper_13.11.4_all.deb ...
Unpacking debhelper (13.11.4) ...
Selecting previously unselected package libattr1-dev:i386.
Preparing to unpack .../31-libattr1-dev_1%3a2.5.1-4_i386.deb ...
Unpacking libattr1-dev:i386 (1:2.5.1-4) ...
Selecting previously unselected package libacl1-dev:i386.
Preparing to unpack .../32-libacl1-dev_2.3.1-3_i386.deb ...
Unpacking libacl1-dev:i386 (2.3.1-3) ...
Selecting previously unselected package libpcre2-16-0:i386.
Preparing to unpack .../33-libpcre2-16-0_10.42-1_i386.deb ...
Unpacking libpcre2-16-0:i386 (10.42-1) ...
Selecting previously unselected package libpcre2-32-0:i386.
Preparing to unpack .../34-libpcre2-32-0_10.42-1_i386.deb ...
Unpacking libpcre2-32-0:i386 (10.42-1) ...
Selecting previously unselected package libpcre2-posix3:i386.
Preparing to unpack .../35-libpcre2-posix3_10.42-1_i386.deb ...
Unpacking libpcre2-posix3:i386 (10.42-1) ...
Selecting previously unselected package libpcre2-dev:i386.
Preparing to unpack .../36-libpcre2-dev_10.42-1_i386.deb ...
Unpacking libpcre2-dev:i386 (10.42-1) ...
Selecting previously unselected package libsepol-dev:i386.
Preparing to unpack .../37-libsepol-dev_3.4-2.1_i386.deb ...
Unpacking libsepol-dev:i386 (3.4-2.1) ...
Selecting previously unselected package libselinux1-dev:i386.
Preparing to unpack .../38-libselinux1-dev_3.4-1+b6_i386.deb ...
Unpacking libselinux1-dev:i386 (3.4-1+b6) ...
Setting up libpipeline1:i386 (1.5.7-1) ...
Setting up libicu72:i386 (72.1-3) ...
Setting up bsdextrautils (2.38.1-5+b1) ...
Setting up libattr1-dev:i386 (1:2.5.1-4) ...
Setting up libmagic-mgc (1:5.44-3) ...
Setting up libarchive-zip-perl (1.68-1) ...
Setting up libdebhelper-perl (13.11.4) ...
Setting up libmagic1:i386 (1:5.44-3) ...
Setting up gettext-base (0.21-12) ...
Setting up m4 (1.4.19-3) ...
Setting up file (1:5.44-3) ...
Setting up libpcre2-16-0:i386 (10.42-1) ...
Setting up autotools-dev (20220109.1) ...
Setting up libpcre2-32-0:i386 (10.42-1) ...
Setting up autopoint (0.21-12) ...
Setting up libsepol-dev:i386 (3.4-2.1) ...
Setting up autoconf (2.71-3) ...
Setting up libpcre2-posix3:i386 (10.42-1) ...
Setting up sensible-utils (0.0.17+nmu1) ...
Setting up libuchardet0:i386 (0.0.7-1) ...
Setting up bison (2:3.8.2+dfsg-1+b1) ...
update-alternatives: using /usr/bin/bison.yacc to provide /usr/bin/yacc (yacc) in auto mode
Setting up libsub-override-perl (0.09-4) ...
Setting up libelf1:i386 (0.188-2.1) ...
Setting up libxml2:i386 (2.9.14+dfsg-1.3~deb12u1) ...
Setting up libacl1-dev:i386 (2.3.1-3) ...
Setting up automake (1:1.16.5-1.3) ...
update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode
Setting up libfile-stripnondeterminism-perl (1.13.1-1) ...
Setting up gettext (0.21-12) ...
Setting up libpcre2-dev:i386 (10.42-1) ...
Setting up libtool (2.4.7-5) ...
Setting up libselinux1-dev:i386 (3.4-1+b6) ...
Setting up intltool-debian (0.35.0+20060710.6) ...
Setting up dh-autoreconf (20) ...
Setting up dh-strip-nondeterminism (1.13.1-1) ...
Setting up dwz (0.15-1) ...
Setting up groff-base (1.22.4-10) ...
Setting up po-debconf (1.0.21+nmu1) ...
Setting up man-db (2.11.2-2) ...
Not building database; man-db/auto-update is not 'true'.
Setting up debhelper (13.11.4) ...
Processing triggers for libc-bin (2.36-9+deb12u4) ...
Reading package lists...
Building dependency tree...
Reading state information...
Reading extended state information...
Initializing package states...
Writing extended state information...
Building tag database...
 -> Finished parsing the build-deps
Reading package lists...
Building dependency tree...
Reading state information...
fakeroot is already the newest version (1.31-1.2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
I: Building the package
I: user script /srv/workspace/pbuilder/59216/tmp/hooks/A99_set_merged_usr starting
Not re-configuring usrmerge for bookworm
I: user script /srv/workspace/pbuilder/59216/tmp/hooks/A99_set_merged_usr finished
hostname: Name or service not known
I: Running cd /build/reproducible-path/tar-1.34+dfsg/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S  > ../tar_1.34+dfsg-1.2+deb12u1_source.changes
dpkg-buildpackage: info: source package tar
dpkg-buildpackage: info: source version 1.34+dfsg-1.2+deb12u1
dpkg-buildpackage: info: source distribution bookworm
dpkg-buildpackage: info: source changed by Salvatore Bonaccorso <carnil@debian.org>
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture i386
 fakeroot debian/rules clean
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
[ ! -f Makefile ] || /usr/bin/make distclean
dh_clean
 debian/rules build
dh_testdir
cp -f /usr/share/misc/config.sub build-aux/config.sub
cp -f /usr/share/misc/config.guess build-aux/config.guess
autoreconf --force -v --install
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: running: autopoint --force
Copying file build-aux/config.rpath
Copying file m4/glibc2.m4
Copying file m4/glibc21.m4
Copying file m4/iconv.m4
Copying file m4/intdiv0.m4
Copying file m4/intl.m4
Copying file m4/intldir.m4
Copying file m4/intmax.m4
Copying file m4/inttypes-pri.m4
Copying file m4/lcmessage.m4
Copying file m4/lock.m4
Copying file m4/longdouble.m4
Copying file m4/longlong.m4
Copying file m4/printf-posix.m4
Copying file m4/uintmax_t.m4
Copying file m4/ulonglong.m4
Copying file po/Makefile.in.in
Copying file po/Makevars.template
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: /usr/bin/autoconf --force
configure.ac:30: warning: The macro `AC_PROG_CC_STDC' is obsolete.
configure.ac:30: You should run autoupdate.
./lib/autoconf/c.m4:1666: AC_PROG_CC_STDC is expanded from...
configure.ac:30: the top level
configure.ac:55: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:55: You should run autoupdate.
./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from...
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
configure.ac:55: the top level
configure.ac:118: warning: The macro `AC_TRY_CPP' is obsolete.
configure.ac:118: You should run autoupdate.
./lib/autoconf/general.m4:2762: AC_TRY_CPP is expanded from...
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from...
m4/rmt.m4:2: PU_RMT is expanded from...
m4/paxutils.m4:3: tar_PAXUTILS is expanded from...
configure.ac:118: the top level
configure.ac:118: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:118: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
m4/rmt.m4:2: PU_RMT is expanded from...
m4/paxutils.m4:3: tar_PAXUTILS is expanded from...
configure.ac:118: the top level
configure.ac:118: warning: The macro `AC_HEADER_STDC' is obsolete.
configure.ac:118: You should run autoupdate.
./lib/autoconf/headers.m4:704: AC_HEADER_STDC is expanded from...
m4/system.m4:8: PU_SYSTEM is expanded from...
m4/paxutils.m4:3: tar_PAXUTILS is expanded from...
configure.ac:118: the top level
configure.ac:118: warning: The macro `AC_HEADER_TIME' is obsolete.
configure.ac:118: You should run autoupdate.
./lib/autoconf/headers.m4:743: AC_HEADER_TIME is expanded from...
m4/system.m4:8: PU_SYSTEM is expanded from...
m4/paxutils.m4:3: tar_PAXUTILS is expanded from...
configure.ac:118: the top level
configure.ac:118: warning: The macro `AC_STRUCT_ST_BLKSIZE' is obsolete.
configure.ac:118: You should run autoupdate.
./lib/autoconf/types.m4:1000: AC_STRUCT_ST_BLKSIZE is expanded from...
m4/system.m4:8: PU_SYSTEM is expanded from...
m4/paxutils.m4:3: tar_PAXUTILS is expanded from...
configure.ac:118: the top level
configure.ac:258: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:258: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
acinclude.m4:20: TAR_COMPR_PROGRAM is expanded from...
configure.ac:258: the top level
configure.ac:259: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:259: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
acinclude.m4:20: TAR_COMPR_PROGRAM is expanded from...
configure.ac:259: the top level
configure.ac:260: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:260: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
acinclude.m4:20: TAR_COMPR_PROGRAM is expanded from...
configure.ac:260: the top level
configure.ac:261: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:261: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
acinclude.m4:20: TAR_COMPR_PROGRAM is expanded from...
configure.ac:261: the top level
configure.ac:262: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:262: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
acinclude.m4:20: TAR_COMPR_PROGRAM is expanded from...
configure.ac:262: the top level
configure.ac:263: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:263: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
acinclude.m4:20: TAR_COMPR_PROGRAM is expanded from...
configure.ac:263: the top level
configure.ac:264: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:264: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
acinclude.m4:20: TAR_COMPR_PROGRAM is expanded from...
configure.ac:264: the top level
configure.ac:265: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:265: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
acinclude.m4:20: TAR_COMPR_PROGRAM is expanded from...
configure.ac:265: the top level
configure.ac:346: warning: The macro `AC_TRY_LINK' is obsolete.
configure.ac:346: You should run autoupdate.
./lib/autoconf/general.m4:2920: AC_TRY_LINK is expanded from...
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from...
m4/iconv.m4:20: AM_ICONV_LINK is expanded from...
m4/iconv.m4:75: AM_ICONV is expanded from...
configure.ac:346: the top level
configure.ac:346: warning: The macro `AC_TRY_COMPILE' is obsolete.
configure.ac:346: You should run autoupdate.
./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from...
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
m4/iconv.m4:75: AM_ICONV is expanded from...
configure.ac:346: the top level
configure.ac:358: warning: The macro `AC_TRY_LINK' is obsolete.
configure.ac:358: You should run autoupdate.
./lib/autoconf/general.m4:2920: AC_TRY_LINK is expanded from...
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from...
m4/iconv.m4:20: AM_ICONV_LINK is expanded from...
m4/gettext.m4:55: AM_GNU_GETTEXT is expanded from...
configure.ac:358: the top level
configure.ac:369: warning: The macro `AC_HELP_STRING' is obsolete.
configure.ac:369: You should run autoupdate.
./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
configure.ac:369: the top level
configure.ac:384: warning: AC_OUTPUT should be used without arguments.
configure.ac:384: You should run autoupdate.
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
autoreconf: Leaving directory '.'
RSH="/usr/bin/rsh" CPPFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64" CFLAGS="-g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument" LDFLAGS="-Wl,-z,relro" ./configure \
	--prefix=/usr \
	--libexecdir=/usr/sbin \
	--enable-backup-scripts \
	--with-lzma=xz \
	--disable-silent-rules \
	
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '2222' is supported by ustar format... yes
checking whether GID '2222' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking whether the compiler is clang... no
checking for compiler option needed when checking for declarations... none
checking dependency style of gcc... gcc3
checking for ranlib... ranlib
checking for bison... bison -y
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking for fcntl.h... yes
checking for linux/fd.h... yes
checking for memory.h... yes
checking for net/errno.h... no
checking for sgtty.h... yes
checking for sys/param.h... yes
checking for sys/device.h... no
checking for sys/gentape.h... no
checking for sys/inet.h... no
checking for sys/io/trioctl.h... no
checking for sys/mtio.h... yes
checking for sys/time.h... yes
checking for sys/tprintf.h... no
checking for sys/tape.h... no
checking for locale.h... yes
checking for features.h... yes
checking for linewrap.h... no
checking for sys/socket.h... yes
checking for dirent.h... yes
checking for fnmatch.h... yes
checking for stdio_ext.h... yes
checking for getopt.h... yes
checking for sys/cdefs.h... yes
checking for threads.h... yes
checking for limits.h... yes
checking for crtdefs.h... no
checking for wctype.h... yes
checking for langinfo.h... yes
checking for xlocale.h... no
checking for sys/mman.h... yes
checking for priv.h... no
checking for malloc.h... yes
checking for selinux/selinux.h... yes
checking for sys/random.h... yes
checking for sysexits.h... yes
checking for utime.h... yes
checking for netdb.h... yes
checking for sys/wait.h... yes
checking for pwd.h... yes
checking for grp.h... yes
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking build system type... x86_64-pc-linux-gnux32
checking host system type... x86_64-pc-linux-gnux32
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for Minix Amsterdam compiler... no
checking for ar... ar
checking for _LARGEFILE_SOURCE value needed for large files... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for special C compiler options needed for large files... (cached) no
checking for _FILE_OFFSET_BITS value needed for large files... (cached) no
checking for inline... inline
checking for sys/buf.h... no
checking for sys/mkdev.h... no
checking for sys/sysmacros.h... yes
checking for st_fstype string in struct stat... no
checking for sys/acl.h... yes
checking for library containing acl_get_file... -lacl
checking for library containing acl_get_fd... none required
checking for library containing acl_set_file... none required
checking for library containing acl_set_fd... none required
checking for library containing acl_to_text... none required
checking for library containing acl_from_text... none required
checking for library containing acl_delete_def_file... none required
checking for library containing acl_free... none required
checking for mode_t... yes
checking for pid_t... yes
checking for off_t... yes
checking for uid_t in sys/types.h... yes
checking for major_t... no
checking for minor_t... no
checking for dev_t... yes
checking for ino_t... yes
checking for ssize_t... yes
checking for fchmod... yes
checking for flockfile... yes
checking for funlockfile... yes
checking for pathconf... yes
checking for btowc... yes
checking for canonicalize_file_name... yes
checking for faccessat... yes
checking for realpath... yes
checking for readlinkat... yes
checking for chown... yes
checking for fchown... yes
checking for _set_invalid_parameter_handler... no
checking for fchdir... yes
checking for fdopendir... yes
checking for fchmodat... yes
checking for lchmod... yes
checking for fcntl... yes
checking for symlink... yes
checking for mempcpy... yes
checking for fnmatch... yes
checking for mbsrtowcs... yes
checking for fstatat... yes
checking for futimens... yes
checking for getdelim... yes
checking for getdtablesize... yes
checking for getprogname... no
checking for getexecname... no
checking for getrandom... yes
checking for gettimeofday... yes
checking for isblank... yes
checking for iswcntrl... yes
checking for iswblank... yes
checking for lstat... yes
checking for link... yes
checking for readlink... yes
checking for openat... yes
checking for linkat... yes
checking for mbsinit... yes
checking for mbrtowc... yes
checking for mprotect... yes
checking for mkdirat... yes
checking for mkfifoat... yes
checking for mknodat... yes
checking for mknod... yes
checking for nl_langinfo... yes
checking for pipe... yes
checking for iswctype... yes
checking for renameat... yes
checking for renameat2... yes
checking for setenv... yes
checking for sleep... yes
checking for snprintf... yes
checking for strndup... yes
checking for strtoimax... yes
checking for strtoumax... yes
checking for symlinkat... yes
checking for localtime_r... yes
checking for timegm... yes
checking for unlinkat... yes
checking for futimes... yes
checking for futimesat... yes
checking for utimensat... yes
checking for lutimes... yes
checking for vasnprintf... no
checking for wcrtomb... yes
checking for wcwidth... yes
checking for wmempcpy... yes
checking for mkfifo... yes
checking for setlocale... yes
checking for fsync... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for C/C++ restrict keyword... __restrict__
checking for gcc options needed to detect all undeclared functions... none needed
checking whether clearerr_unlocked is declared... yes
checking whether feof_unlocked is declared... yes
checking whether ferror_unlocked is declared... yes
checking whether fflush_unlocked is declared... yes
checking whether fgets_unlocked is declared... yes
checking whether fputc_unlocked is declared... yes
checking whether fputs_unlocked is declared... yes
checking whether fread_unlocked is declared... yes
checking whether fwrite_unlocked is declared... yes
checking whether getc_unlocked is declared... yes
checking whether getchar_unlocked is declared... yes
checking whether putc_unlocked is declared... yes
checking whether putchar_unlocked is declared... yes
checking whether strerror_r is declared... yes
checking whether strerror_r returns char *... yes
checking for d_ino member in directory struct... yes
checking for long file names... yes
checking whether <wchar.h> uses 'inline' correctly... yes
checking for nl_langinfo and CODESET... yes
checking for a traditional french locale... fr_FR
checking whether lstat correctly handles trailing slash... yes
checking whether // is distinct from /... no
checking whether realpath works... yes
checking for getcwd... yes
checking for unistd.h... (cached) yes
checking for working chown... yes
checking whether chown dereferences symlinks... yes
checking whether chown honors trailing slash... yes
checking whether chown always updates ctime... yes
checking whether the preprocessor supports include_next... yes
checking whether source code line length is unlimited... yes
checking if environ is properly declared... yes
checking for complete errno.h... yes
checking type of array argument to getgroups... gid_t
checking whether fchdir is declared... yes
checking for working fcntl.h... yes
checking for promoted mode_t type... mode_t
checking for mbstate_t... yes
checking whether stdin defaults to large file offsets... yes
checking whether fseeko is declared... yes
checking for fseeko... yes
checking whether stat file-mode macros are broken... no
checking for nlink_t... yes
checking whether getcwd (NULL, 0) allocates memory for result... yes
checking for getcwd with POSIX signature... yes
checking whether getcwd is declared... yes
checking whether getdelim is declared... yes
checking whether getdtablesize is declared... yes
checking whether getline is declared... yes
checking for getopt.h... (cached) yes
checking for getopt_long_only... yes
checking whether getopt is POSIX compatible... yes
checking for working GNU getopt function... yes
checking for working GNU getopt_long function... yes
checking for struct timeval... yes
checking for wide-enough struct timeval.tv_sec member... yes
checking for pthread.h... yes
checking for pthread_kill in -lpthread... yes
checking whether POSIX threads API is available... yes
checking whether setlocale (LC_ALL, NULL) is multithread-safe... yes
checking whether setlocale (category, NULL) is multithread-safe... yes
checking whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc.... yes
checking for wint_t... yes
checking whether wint_t is large enough... yes
checking whether the compiler produces multi-arch binaries... no
checking whether stdint.h conforms to C99... yes
checking whether stdint.h works without ISO C predefines... yes
checking whether stdint.h has UINTMAX_WIDTH etc.... yes
checking whether iswcntrl works... yes
checking for towlower... yes
checking for wctype_t... yes
checking for wctrans_t... yes
checking for a traditional japanese locale... ja_JP.EUC-JP
checking for a french Unicode locale... fr_FR.UTF-8
checking for a transitional chinese locale... zh_CN.GB18030
checking for O_CLOEXEC... yes
checking for wchar_t... yes
checking for good max_align_t... yes
checking whether NULL can be used in arbitrary expressions... yes
checking whether locale.h defines locale_t... yes
checking whether malloc, realloc, calloc are POSIX compliant... yes
checking for GNU libc compatible malloc... yes
checking for mmap... yes
checking for MAP_ANONYMOUS... yes
checking whether memchr works... yes
checking whether memrchr is declared... yes
checking whether <limits.h> defines MIN and MAX... no
checking whether <sys/param.h> defines MIN and MAX... yes
checking whether time_t is signed... yes
checking whether alarm is declared... yes
checking for working mktime... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for struct tm.tm_zone... yes
checking for struct tm.tm_gmtoff... yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking for compound literals... yes
checking for library containing setfilecon... -lselinux
checking whether setenv is declared... yes
checking for search.h... yes
checking for tsearch... yes
checking for sigset_t... yes
checking whether snprintf returns a byte count as in C99... yes
checking whether snprintf is declared... yes
checking whether fcloseall is declared... yes
checking whether ecvt is declared... yes
checking whether fcvt is declared... yes
checking whether gcvt is declared... yes
checking whether strdup is declared... yes
checking whether strerror(0) succeeds... yes
checking whether strndup is declared... yes
checking whether strnlen is declared... yes
checking whether strtoimax is declared... yes
checking whether strtoumax is declared... yes
checking for struct timespec in <time.h>... yes
checking for TIME_UTC in <time.h>... yes
checking whether execvpe is declared... yes
checking whether unsetenv is declared... yes
checking whether the utimes function works... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for intmax_t... yes
checking where to find the exponent in a 'double'... word 1 bit 20
checking whether snprintf truncates the result as in C99... yes
checking for snprintf... (cached) yes
checking for strnlen... yes
checking for wcslen... yes
checking for wcsnlen... yes
checking for mbrtowc... (cached) yes
checking for wcrtomb... (cached) yes
checking whether _snprintf is declared... no
checking whether vsnprintf is declared... yes
checking for sys/acl.h... (cached) yes
checking for library containing acl_get_file... (cached) -lacl
checking for acl_get_file... yes
checking for acl_get_fd... yes
checking for acl_set_file... yes
checking for acl_set_fd... yes
checking for acl_free... yes
checking for acl_from_mode... yes
checking for acl_from_text... yes
checking for acl_delete_def_file... yes
checking for acl_extended_file... yes
checking for acl_delete_fd_np... no
checking for acl_delete_file_np... no
checking for acl_copy_ext_native... no
checking for acl_create_entry_np... no
checking for acl_to_short_text... no
checking for acl_free_text... no
checking for working acl_get_file... yes
checking for acl/libacl.h... yes
checking for acl_entries... yes
checking for ACL_FIRST_ENTRY... yes
checking for ACL_TYPE_EXTENDED... no
checking for alloca as a compiler built-in... yes
checking whether program_invocation_name is declared... yes
checking whether program_invocation_short_name is declared... yes
checking whether program_invocation_name is defined... yes
checking whether program_invocation_short_name is defined... yes
checking whether btowc(0) is correct... yes
checking whether btowc(EOF) is correct... yes
checking for __builtin_expect... yes
checking whether this system supports file names of any length... no
checking for library containing clock_gettime... none required
checking for clock_gettime... yes
checking for clock_settime... yes
checking for closedir... yes
checking for d_ino member in directory struct... (cached) yes
checking for dirfd... yes
checking whether dirfd is declared... yes
checking whether dirfd is a macro... no
checking whether // is distinct from /... (cached) no
checking whether dup works... yes
checking whether dup2 works... yes
checking for error_at_line... yes
checking for euidaccess... yes
checking whether fchmodat+AT_SYMLINK_NOFOLLOW works on non-symlinks... yes
checking for fchownat... yes
checking whether fchownat works with AT_SYMLINK_NOFOLLOW... yes
checking whether fchownat works with an empty file name... yes
checking whether fcntl handles F_DUPFD correctly... yes
checking whether fcntl understands F_DUPFD_CLOEXEC... needs runtime check
checking whether fdopendir is declared... yes
checking whether fdopendir works... yes
checking for getxattr with XATTR_NAME_POSIX_ACL macros... yes
checking for struct stat.st_blocks... yes
checking for flexible array member... yes
checking whether conversion from 'int' to 'long double' works... yes
checking for working GNU fnmatch... yes
checking whether fopen recognizes a trailing slash... yes
checking whether fopen supports the mode character 'x'... yes
checking whether fopen supports the mode character 'e'... yes
checking for __fpending... yes
checking whether __fpending is declared... yes
checking whether free is known to preserve errno... yes
checking for fseeko... (cached) yes
checking whether fstatat (..., 0) works... yes
checking whether futimens works... yes
checking whether getcwd handles long file names properly... yes
checking for getpagesize... yes
checking whether getcwd succeeds when 4k < cwd_length < 16k... yes
checking for working getdelim function... yes
checking whether getdtablesize works... yes
checking for getgroups... yes
checking for working getgroups... yes
checking whether getgroups handles negative values... yes
checking for getline... yes
checking for working getline function... yes
checking for getpagesize... (cached) yes
checking whether getpagesize is declared... yes
checking whether program_invocation_name is declared... (cached) yes
checking whether program_invocation_short_name is declared... (cached) yes
checking whether __argv is declared... no
checking whether getrandom is compatible with its GNU+BSD signature... yes
checking for gettimeofday with POSIX signature... yes
checking for group_member... yes
checking whether INT32_MAX < INTMAX_MAX... yes
checking whether INT64_MAX == LONG_MAX... no
checking whether UINT32_MAX < UINTMAX_MAX... yes
checking whether UINT64_MAX == ULONG_MAX... no
checking whether iswblank is declared... yes
checking whether iswdigit is ISO C compliant... yes
checking whether iswxdigit is ISO C compliant... yes
checking whether langinfo.h defines CODESET... yes
checking whether langinfo.h defines T_FMT_AMPM... yes
checking whether langinfo.h defines ALTMON_1... yes
checking whether langinfo.h defines ERA... yes
checking whether langinfo.h defines YESEXPR... yes
checking for lchown... yes
checking whether the compiler supports the __inline keyword... yes
checking whether link obeys POSIX... yes
checking for __xpg4... no
checking whether link(2) dereferences a symlink... no
checking whether linkat() can link symlinks... yes
checking whether linkat handles trailing slash correctly... yes
checking whether locale.h conforms to POSIX:2001... yes
checking whether struct lconv is properly defined... yes
checking whether lseek detects pipes... yes
checking for GNU libc compatible malloc... (cached) yes
checking whether mbrtowc handles incomplete characters... yes
checking whether mbrtowc works as well as mbtowc... yes
checking whether mbrtowc handles a NULL pwc argument... yes
checking whether mbrtowc handles a NULL string argument... yes
checking whether mbrtowc has a correct return value... yes
checking whether mbrtowc returns 0 when parsing a NUL character... yes
checking whether mbrtowc stores incomplete characters... no
checking whether mbrtowc works on empty input... yes
checking whether the C locale is free of encoding errors... no
checking whether mbrtowc handles incomplete characters... (cached) yes
checking whether mbrtowc works as well as mbtowc... (cached) yes
checking whether mbrtowc handles incomplete characters... (cached) yes
checking whether mbrtowc works as well as mbtowc... (cached) yes
checking whether mbsrtowcs works... yes
checking for mbtowc... yes
checking for mempcpy... (cached) yes
checking for memrchr... yes
checking whether mkdir handles trailing slash... yes
checking whether mkdir handles trailing dot... yes
checking for mkdtemp... yes
checking for mkfifo... yes
checking whether mkfifo rejects trailing slashes... yes
checking whether mkfifoat rejects trailing slashes... yes
checking whether mknod can create fifo without root privileges... yes
checking for __mktime_internal... no
checking whether YESEXPR works... yes
checking for obstacks that work with any size object... no
checking whether open recognizes a trailing slash... yes
checking for opendir... yes
checking for bison... bison
checking for bison 2.4 or newer... 3.8.2, ok
checking for struct tm.tm_zone... (cached) yes
checking for getppriv... no
checking whether program_invocation_name is declared... (cached) yes
checking whether program_invocation_short_name is declared... (cached) yes
checking for raise... yes
checking for rawmemchr... yes
checking for readdir... yes
checking whether readlink signature is correct... yes
checking whether readlink handles trailing slash correctly... yes
checking whether readlink truncates results correctly... yes
checking whether readlinkat signature is correct... yes
checking for working re_compile_pattern... no
checking for libintl.h... yes
checking whether isblank is declared... yes
checking whether rename honors trailing slash on destination... yes
checking whether rename honors trailing slash on source... yes
checking whether rename manages hard links correctly... yes
checking whether rename manages existing destinations correctly... yes
checking for linux/fs.h... yes
checking for linux/fs.h... (cached) yes
checking for rewinddir... yes
checking whether rmdir works... yes
checking for rpmatch... yes
checking for selinux/flask.h... no
checking for selinux/selinux.h... (cached) yes
checking for selinux/context.h... yes
checking for selinux/label.h... yes
checking whether setenv validates arguments... yes
checking whether setlocale (LC_ALL, NULL) is multithread-safe... (cached) yes
checking whether setlocale (category, NULL) is multithread-safe... (cached) yes
checking for volatile sig_atomic_t... yes
checking for sighandler_t... yes
checking for stdint.h... (cached) yes
checking for SIZE_MAX... yes
checking whether sleep is declared... yes
checking for working sleep... yes
checking for snprintf... (cached) yes
checking whether snprintf respects a size of 1... yes
checking whether printf supports POSIX/XSI format strings with positions... yes
checking for ssize_t... (cached) yes
checking whether stat handles trailing slashes on files... yes
checking for struct stat.st_atim.tv_nsec... yes
checking whether struct stat.st_atim is of type struct timespec... yes
checking for struct stat.st_birthtimespec.tv_nsec... no
checking for struct stat.st_birthtimensec... no
checking for struct stat.st_birthtim.tv_nsec... no
checking for working stdalign.h... yes
checking for va_copy... yes
checking for good max_align_t... (cached) yes
checking whether NULL can be used in arbitrary expressions... (cached) yes
checking which flavor of printf attribute matches inttypes macros... system
checking for stpcpy... yes
checking for strcasecmp... yes
checking for strncasecmp... yes
checking whether strncasecmp is declared... yes
checking for strchrnul... yes
checking whether strchrnul works... yes
checking for working strerror function... yes
checking for working strndup... yes
checking for working strnlen... yes
checking whether strtoimax works... yes
checking for strtol... yes
checking for strtoll... yes
checking for strtoul... yes
checking for strtoull... yes
checking whether symlink handles trailing slash correctly... yes
checking whether symlinkat handles trailing slash correctly... yes
checking for nlink_t... (cached) yes
checking whether localtime_r is declared... yes
checking whether localtime_r is compatible with its POSIX signature... yes
checking whether localtime works even near extrema... yes
checking for timezone_t... no
checking whether unlink honors trailing slashes... yes
checking whether unlink of a parent directory fails as it should... guessing yes
checking for unsetenv... yes
checking for unsetenv() return type... int
checking whether unsetenv obeys POSIX... yes
checking for utime... yes
checking whether utime handles trailing slashes on files... yes
checking whether utimensat works... yes
checking for ptrdiff_t... yes
checking for vasprintf... yes
checking for vsnprintf... yes
checking whether snprintf respects a size of 1... (cached) yes
checking whether printf supports POSIX/XSI format strings with positions... (cached) yes
checking whether wcsdup is declared... yes
checking whether mbrtowc handles incomplete characters... (cached) yes
checking whether mbrtowc works as well as mbtowc... (cached) yes
checking whether wcrtomb works in the C locale... yes
checking whether wcrtomb return value is correct... yes
checking whether iswcntrl works... (cached) yes
checking for towlower... (cached) yes
checking for wctype_t... (cached) yes
checking for wctrans_t... (cached) yes
checking whether wcwidth is declared... yes
checking whether wcwidth works reasonably in UTF-8 locales... yes
checking for wmemchr... yes
checking for stdint.h... (cached) yes
checking for egrep... (cached) /bin/grep -E
checking for struct stat.st_blksize... yes
checking for library containing setsockopt... none required
checking for library containing setsockopt... (cached) none required
checking for sys/mtio.h... (cached) yes
checking which ioctl field to test for reversed bytes... mt_type
checking whether to build rmt... yes
checking for remote tape header files... yes
checking for sys/buf.h... (cached) no
checking for struct stat.st_blksize... (cached) yes
checking for library containing gethostbyname... none required
checking for sys/xattr.h... yes
checking for library containing getxattr... none required
checking for library containing fgetxattr... none required
checking for library containing lgetxattr... none required
checking for library containing setxattr... none required
checking for library containing fsetxattr... none required
checking for library containing lsetxattr... none required
checking for library containing listxattr... none required
checking for library containing flistxattr... none required
checking for library containing llistxattr... none required
checking whether getgrgid is declared... yes
checking whether getpwuid is declared... yes
checking whether time is declared... yes
checking for waitpid... yes
checking for remote shell... /usr/bin/rsh
checking for default archive format... GNU
checking for default archive... -
checking for default blocking... 20
checking for default quoting style... escape
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking 32-bit host C ABI... yes
checking for ELF binary format... yes
checking for the common suffixes of directories in the library search path... lib,lib,lib
checking for iconv... yes
checking for iconv declaration... 
         extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for iconv.h... yes
checking for iconv_t... yes
checking for a sed that does not truncate output... /bin/sed
checking whether NLS is requested... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyPreferredLanguages... no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating tests/Makefile
config.status: creating tests/atlocal
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating gnu/Makefile
config.status: creating lib/Makefile
config.status: creating po/Makefile.in
config.status: creating scripts/Makefile
config.status: creating rmt/Makefile
config.status: creating src/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
config.status: executing tests/atconfig commands
touch configure-stamp
dh_testdir
RSH="/usr/bin/rsh" CPPFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64" CFLAGS="-g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument" \
	LDFLAGS="-Wl,-z,relro" /usr/bin/make  -j15 --jobserver-auth=3,4
make[1]: warning: -j15 forced in submake: resetting jobserver mode.
make[1]: Entering directory '/build/reproducible-path/tar-1.34+dfsg'
/usr/bin/make  all-recursive
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg'
Making all in doc
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/doc'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/doc'
Making all in gnu
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
rm -f alloca.h-t alloca.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  sed -e 's|@''HAVE_ALLOCA_H''@|1|g' < ./alloca.in.h; \
} > alloca.h-t && \
mv -f alloca.h-t alloca.h
rm -f configmake.h-t && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  echo '#if HAVE_WINSOCK2_H'; \
  echo '# include <winsock2.h> /* avoid mingw pollution on DATADIR */'; \
  echo '#endif'; \
  echo '#define PREFIX "/usr"'; \
  echo '#define EXEC_PREFIX "/usr"'; \
  echo '#define BINDIR "/usr/bin"'; \
  echo '#define SBINDIR "/usr/sbin"'; \
  echo '#define LIBEXECDIR "/usr/sbin"'; \
  echo '#define DATAROOTDIR "/usr/share"'; \
  echo '#define DATADIR "/usr/share"'; \
  echo '#define SYSCONFDIR "/usr/etc"'; \
  echo '#define SHAREDSTATEDIR "/usr/com"'; \
  echo '#define LOCALSTATEDIR "/usr/var"'; \
  echo '#define RUNSTATEDIR "/usr/var/run"'; \
  echo '#define INCLUDEDIR "/usr/include"'; \
  echo '#define OLDINCLUDEDIR "/usr/include"'; \
  echo '#define DOCDIR "/usr/share/doc/tar"'; \
  echo '#define INFODIR "/usr/share/info"'; \
  echo '#define HTMLDIR "/usr/share/doc/tar"'; \
  echo '#define DVIDIR "/usr/share/doc/tar"'; \
  echo '#define PDFDIR "/usr/share/doc/tar"'; \
  echo '#define PSDIR "/usr/share/doc/tar"'; \
  echo '#define LIBDIR "/usr/lib"'; \
  echo '#define LISPDIR "/usr/share/emacs/site-lisp"'; \
  echo '#define LOCALEDIR "/usr/share/locale"'; \
  echo '#define MANDIR "/usr/share/man"'; \
  echo '#define MANEXT ""'; \
  echo '#define PKGDATADIR "/usr/share/tar"'; \
  echo '#define PKGINCLUDEDIR "/usr/include/tar"'; \
  echo '#define PKGLIBDIR "/usr/lib/tar"'; \
  echo '#define PKGLIBEXECDIR "/usr/sbin/tar"'; \
} | sed '/""/d' > configmake.h-t && \
mv -f configmake.h-t configmake.h
rm -f ctype.h-t ctype.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_CTYPE_H''@|<ctype.h>|g' \
      -e 's/@''GNULIB_ISBLANK''@/1/g' \
      -e 's/@''HAVE_ISBLANK''@/1/g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h' \
      < ./ctype.in.h; \
} > ctype.h-t && \
mv ctype.h-t ctype.h
rm -f dirent.h-t dirent.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''HAVE_DIRENT_H''@|1|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_DIRENT_H''@|<dirent.h>|g' \
      -e 's/@''GNULIB_OPENDIR''@/1/g' \
      -e 's/@''GNULIB_READDIR''@/1/g' \
      -e 's/@''GNULIB_REWINDDIR''@/1/g' \
      -e 's/@''GNULIB_CLOSEDIR''@/1/g' \
      -e 's/@''GNULIB_DIRFD''@/1/g' \
      -e 's/@''GNULIB_FDOPENDIR''@/1/g' \
      -e 's/@''GNULIB_SCANDIR''@/0/g' \
      -e 's/@''GNULIB_ALPHASORT''@/0/g' \
      -e 's/@''HAVE_OPENDIR''@/1/g' \
      -e 's/@''HAVE_READDIR''@/1/g' \
      -e 's/@''HAVE_REWINDDIR''@/1/g' \
      -e 's/@''HAVE_CLOSEDIR''@/1/g' \
      -e 's|@''HAVE_DECL_DIRFD''@|1|g' \
      -e 's|@''HAVE_DECL_FDOPENDIR''@|1|g' \
      -e 's|@''HAVE_FDOPENDIR''@|1|g' \
      -e 's|@''HAVE_SCANDIR''@|1|g' \
      -e 's|@''HAVE_ALPHASORT''@|1|g' \
      -e 's|@''REPLACE_OPENDIR''@|0|g' \
      -e 's|@''REPLACE_CLOSEDIR''@|0|g' \
      -e 's|@''REPLACE_DIRFD''@|0|g' \
      -e 's|@''REPLACE_FDOPENDIR''@|0|g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h' \
      < ./dirent.in.h; \
} > dirent.h-t && \
mv dirent.h-t dirent.h
rm -f fcntl.h-t fcntl.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_FCNTL_H''@|<fcntl.h>|g' \
      -e 's/@''GNULIB_CREAT''@/0/g' \
      -e 's/@''GNULIB_FCNTL''@/1/g' \
      -e 's/@''GNULIB_NONBLOCKING''@/0/g' \
      -e 's/@''GNULIB_OPEN''@/1/g' \
      -e 's/@''GNULIB_OPENAT''@/1/g' \
      -e 's/@''GNULIB_MDA_CREAT''@/1/g' \
      -e 's/@''GNULIB_MDA_OPEN''@/1/g' \
      -e 's|@''HAVE_FCNTL''@|1|g' \
      -e 's|@''HAVE_OPENAT''@|1|g' \
      -e 's|@''REPLACE_CREAT''@|0|g' \
      -e 's|@''REPLACE_FCNTL''@|1|g' \
      -e 's|@''REPLACE_OPEN''@|0|g' \
      -e 's|@''REPLACE_OPENAT''@|0|g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h' \
      < ./fcntl.in.h; \
} > fcntl.h-t && \
mv fcntl.h-t fcntl.h
rm -f getopt.h-t getopt.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''HAVE_GETOPT_H''@|1|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_GETOPT_H''@|<getopt.h>|g' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      < ./getopt.in.h; \
} > getopt.h-t && \
mv -f getopt.h-t getopt.h
rm -f getopt-cdefs.h-t getopt-cdefs.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
          sed -e 's|@''HAVE_SYS_CDEFS_H''@|1|g' \
      < ./getopt-cdefs.in.h; \
} > getopt-cdefs.h-t && \
mv -f getopt-cdefs.h-t getopt-cdefs.h
rm -f inttypes.h-t inttypes.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  sed -e 's/@''HAVE_INTTYPES_H''@/1/g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_INTTYPES_H''@|<inttypes.h>|g' \
      -e 's/@''APPLE_UNIVERSAL_BUILD''@/0/g' \
      -e 's/@''PRIPTR_PREFIX''@/""/g' \
      -e 's/@''GNULIB_IMAXABS''@/0/g' \
      -e 's/@''GNULIB_IMAXDIV''@/0/g' \
      -e 's/@''GNULIB_STRTOIMAX''@/1/g' \
      -e 's/@''GNULIB_STRTOUMAX''@/1/g' \
      -e 's/@''HAVE_DECL_IMAXABS''@/1/g' \
      -e 's/@''HAVE_DECL_IMAXDIV''@/1/g' \
      -e 's/@''HAVE_DECL_STRTOIMAX''@/1/g' \
      -e 's/@''HAVE_DECL_STRTOUMAX''@/1/g' \
      -e 's/@''HAVE_IMAXDIV_T''@/1/g' \
      -e 's/@''REPLACE_STRTOIMAX''@/0/g' \
      -e 's/@''REPLACE_STRTOUMAX''@/0/g' \
      -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/1/g' \
      -e 's/@''INT64_MAX_EQ_LONG_MAX''@/0/g' \
      -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/1/g' \
      -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/0/g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h' \
      < ./inttypes.in.h; \
} > inttypes.h-t && \
mv inttypes.h-t inttypes.h
rm -f langinfo.h-t langinfo.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''HAVE_LANGINFO_H''@|1|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_LANGINFO_H''@|<langinfo.h>|g' \
      -e 's/@''GNULIB_NL_LANGINFO''@/1/g' \
      -e 's|@''HAVE_LANGINFO_CODESET''@|1|g' \
      -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|1|g' \
      -e 's|@''HAVE_LANGINFO_ALTMON''@|1|g' \
      -e 's|@''HAVE_LANGINFO_ERA''@|1|g' \
      -e 's|@''HAVE_LANGINFO_YESEXPR''@|1|g' \
      -e 's|@''HAVE_NL_LANGINFO''@|1|g' \
      -e 's|@''REPLACE_NL_LANGINFO''@|0|g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h' \
      < ./langinfo.in.h; \
} > langinfo.h-t && \
mv langinfo.h-t langinfo.h
rm -f limits.h-t limits.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_LIMITS_H''@|<limits.h>|g' \
      < ./limits.in.h; \
} > limits.h-t && \
mv limits.h-t limits.h
rm -f locale.h-t locale.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_LOCALE_H''@|<locale.h>|g' \
      -e 's/@''GNULIB_LOCALECONV''@/1/g' \
      -e 's/@''GNULIB_SETLOCALE''@/0/g' \
      -e 's/@''GNULIB_SETLOCALE_NULL''@/1/g' \
      -e 's/@''GNULIB_DUPLOCALE''@/0/g' \
      -e 's/@''GNULIB_LOCALENAME''@/0/g' \
      -e 's|@''HAVE_NEWLOCALE''@|1|g' \
      -e 's|@''HAVE_DUPLOCALE''@|1|g' \
      -e 's|@''HAVE_FREELOCALE''@|1|g' \
      -e 's|@''HAVE_XLOCALE_H''@|0|g' \
      -e 's|@''REPLACE_LOCALECONV''@|0|g' \
      -e 's|@''REPLACE_SETLOCALE''@|0|g' \
      -e 's|@''REPLACE_NEWLOCALE''@|0|g' \
      -e 's|@''REPLACE_DUPLOCALE''@|0|g' \
      -e 's|@''REPLACE_FREELOCALE''@|0|g' \
      -e 's|@''REPLACE_STRUCT_LCONV''@|0|g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h' \
      < ./locale.in.h; \
} > locale.h-t && \
mv locale.h-t locale.h
/bin/mkdir -p selinux
rm -f signal.h-t signal.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_SIGNAL_H''@|<signal.h>|g' \
      -e 's/@''GNULIB_PTHREAD_SIGMASK''@/0/g' \
      -e 's/@''GNULIB_RAISE''@/1/g' \
      -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/0/g' \
      -e 's/@''GNULIB_SIGPROCMASK''@/0/g' \
      -e 's/@''GNULIB_SIGACTION''@/0/g' \
      -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|1|g' \
      -e 's|@''HAVE_PTHREAD_SIGMASK''@|1|g' \
      -e 's|@''HAVE_RAISE''@|1|g' \
      -e 's|@''HAVE_SIGSET_T''@|1|g' \
      -e 's|@''HAVE_SIGINFO_T''@|1|g' \
      -e 's|@''HAVE_SIGACTION''@|1|g' \
      -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|1|g' \
      -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|1|g' \
      -e 's|@''HAVE_SIGHANDLER_T''@|1|g' \
      -e 's|@''REPLACE_PTHREAD_SIGMASK''@|0|g' \
      -e 's|@''REPLACE_RAISE''@|0|g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h' \
      < ./signal.in.h; \
} > signal.h-t && \
mv signal.h-t signal.h
rm -f stdio.h-t stdio.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_STDIO_H''@|<stdio.h>|g' \
      -e 's/@''GNULIB_DPRINTF''@/0/g' \
      -e 's/@''GNULIB_FCLOSE''@/0/g' \
      -e 's/@''GNULIB_FDOPEN''@/0/g' \
      -e 's/@''GNULIB_FFLUSH''@/0/g' \
      -e 's/@''GNULIB_FGETC''@/1/g' \
      -e 's/@''GNULIB_FGETS''@/1/g' \
      -e 's/@''GNULIB_FOPEN''@/1/g' \
      -e 's/@''GNULIB_FPRINTF''@/1/g' \
      -e 's/@''GNULIB_FPRINTF_POSIX''@/0/g' \
      -e 's/@''GNULIB_FPURGE''@/0/g' \
      -e 's/@''GNULIB_FPUTC''@/1/g' \
      -e 's/@''GNULIB_FPUTS''@/1/g' \
      -e 's/@''GNULIB_FREAD''@/1/g' \
      -e 's/@''GNULIB_FREOPEN''@/0/g' \
      -e 's/@''GNULIB_FSCANF''@/1/g' \
      -e 's/@''GNULIB_FSEEK''@/1/g' \
      -e 's/@''GNULIB_FSEEKO''@/1/g' \
      -e 's/@''GNULIB_FTELL''@/0/g' \
      -e 's/@''GNULIB_FTELLO''@/0/g' \
      -e 's/@''GNULIB_FWRITE''@/1/g' \
      -e 's/@''GNULIB_GETC''@/1/g' \
      -e 's/@''GNULIB_GETCHAR''@/1/g' \
      -e 's/@''GNULIB_GETDELIM''@/1/g' \
      -e 's/@''GNULIB_GETLINE''@/1/g' \
      -e 's/@''GNULIB_OBSTACK_PRINTF''@/0/g' \
      -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/0/g' \
      -e 's/@''GNULIB_PCLOSE''@/0/g' \
      -e 's/@''GNULIB_PERROR''@/0/g' \
      -e 's/@''GNULIB_POPEN''@/0/g' \
      -e 's/@''GNULIB_PRINTF''@/1/g' \
      -e 's/@''GNULIB_PRINTF_POSIX''@/0/g' \
      -e 's/@''GNULIB_PUTC''@/1/g' \
      -e 's/@''GNULIB_PUTCHAR''@/1/g' \
      -e 's/@''GNULIB_PUTS''@/1/g' \
      -e 's/@''GNULIB_REMOVE''@/0/g' \
      -e 's/@''GNULIB_RENAME''@/1/g' \
      -e 's/@''GNULIB_RENAMEAT''@/1/g' \
      -e 's/@''GNULIB_SCANF''@/1/g' \
      -e 's/@''GNULIB_SNPRINTF''@/1/g' \
      -e 's/@''GNULIB_SPRINTF_POSIX''@/0/g' \
      -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/0/g' \
      -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/0/g' \
      -e 's/@''GNULIB_TMPFILE''@/0/g' \
      -e 's/@''GNULIB_VASPRINTF''@/1/g' \
      -e 's/@''GNULIB_VDPRINTF''@/0/g' \
      -e 's/@''GNULIB_VFPRINTF''@/1/g' \
      -e 's/@''GNULIB_VFPRINTF_POSIX''@/0/g' \
      -e 's/@''GNULIB_VFSCANF''@/0/g' \
      -e 's/@''GNULIB_VSCANF''@/0/g' \
      -e 's/@''GNULIB_VPRINTF''@/1/g' \
      -e 's/@''GNULIB_VPRINTF_POSIX''@/0/g' \
      -e 's/@''GNULIB_VSNPRINTF''@/1/g' \
      -e 's/@''GNULIB_VSPRINTF_POSIX''@/0/g' \
      -e 's/@''GNULIB_MDA_FCLOSEALL''@/1/g' \
      -e 's/@''GNULIB_MDA_FDOPEN''@/1/g' \
      -e 's/@''GNULIB_MDA_FILENO''@/1/g' \
      -e 's/@''GNULIB_MDA_GETW''@/1/g' \
      -e 's/@''GNULIB_MDA_PUTW''@/1/g' \
      -e 's/@''GNULIB_MDA_TEMPNAM''@/1/g' \
      < ./stdio.in.h | \
  sed -e 's|@''HAVE_DECL_FCLOSEALL''@|1|g' \
      -e 's|@''HAVE_DECL_FPURGE''@|1|g' \
      -e 's|@''HAVE_DECL_FSEEKO''@|1|g' \
      -e 's|@''HAVE_DECL_FTELLO''@|1|g' \
      -e 's|@''HAVE_DECL_GETDELIM''@|1|g' \
      -e 's|@''HAVE_DECL_GETLINE''@|1|g' \
      -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|1|g' \
      -e 's|@''HAVE_DECL_SNPRINTF''@|1|g' \
      -e 's|@''HAVE_DECL_VSNPRINTF''@|1|g' \
      -e 's|@''HAVE_DPRINTF''@|1|g' \
      -e 's|@''HAVE_FSEEKO''@|1|g' \
      -e 's|@''HAVE_FTELLO''@|1|g' \
      -e 's|@''HAVE_PCLOSE''@|1|g' \
      -e 's|@''HAVE_POPEN''@|1|g' \
      -e 's|@''HAVE_RENAMEAT''@|1|g' \
      -e 's|@''HAVE_VASPRINTF''@|1|g' \
      -e 's|@''HAVE_VDPRINTF''@|1|g' \
      -e 's|@''REPLACE_DPRINTF''@|0|g' \
      -e 's|@''REPLACE_FCLOSE''@|0|g' \
      -e 's|@''REPLACE_FDOPEN''@|0|g' \
      -e 's|@''REPLACE_FFLUSH''@|0|g' \
      -e 's|@''REPLACE_FOPEN''@|0|g' \
      -e 's|@''REPLACE_FPRINTF''@|0|g' \
      -e 's|@''REPLACE_FPURGE''@|0|g' \
      -e 's|@''REPLACE_FREOPEN''@|0|g' \
      -e 's|@''REPLACE_FSEEK''@|0|g' \
      -e 's|@''REPLACE_FSEEKO''@|0|g' \
      -e 's|@''REPLACE_FTELL''@|0|g' \
      -e 's|@''REPLACE_FTELLO''@|0|g' \
      -e 's|@''REPLACE_GETDELIM''@|0|g' \
      -e 's|@''REPLACE_GETLINE''@|0|g' \
      -e 's|@''REPLACE_OBSTACK_PRINTF''@|0|g' \
      -e 's|@''REPLACE_PERROR''@|0|g' \
      -e 's|@''REPLACE_POPEN''@|0|g' \
      -e 's|@''REPLACE_PRINTF''@|0|g' \
      -e 's|@''REPLACE_REMOVE''@|0|g' \
      -e 's|@''REPLACE_RENAME''@|0|g' \
      -e 's|@''REPLACE_RENAMEAT''@|0|g' \
      -e 's|@''REPLACE_SNPRINTF''@|0|g' \
      -e 's|@''REPLACE_SPRINTF''@|0|g' \
      -e 's|@''REPLACE_STDIO_READ_FUNCS''@|0|g' \
      -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|0|g' \
      -e 's|@''REPLACE_TMPFILE''@|0|g' \
      -e 's|@''REPLACE_VASPRINTF''@|0|g' \
      -e 's|@''REPLACE_VDPRINTF''@|0|g' \
      -e 's|@''REPLACE_VFPRINTF''@|0|g' \
      -e 's|@''REPLACE_VPRINTF''@|0|g' \
      -e 's|@''REPLACE_VSNPRINTF''@|0|g' \
      -e 's|@''REPLACE_VSPRINTF''@|0|g' \
      -e 's|@''ASM_SYMBOL_PREFIX''@||g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h'; \
} > stdio.h-t && \
mv stdio.h-t stdio.h
rm -f selinux/selinux.h-t selinux/selinux.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_SELINUX_SELINUX_H''@|<selinux/selinux.h>|g' \
      -e '/definition of _GL_UNUSED_PARAMETER/r ./unused-parameter.h' \
      < ./se-selinux.in.h; \
} > selinux/selinux.h-t && \
chmod a-x selinux/selinux.h-t && \
mv selinux/selinux.h-t selinux/selinux.h
rm -f stdlib.h-t stdlib.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_STDLIB_H''@|<stdlib.h>|g' \
      -e 's/@''GNULIB__EXIT''@/0/g' \
      -e 's/@''GNULIB_ALIGNED_ALLOC''@/0/g' \
      -e 's/@''GNULIB_ATOLL''@/0/g' \
      -e 's/@''GNULIB_CALLOC_POSIX''@/0/g' \
      -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/1/g' \
      -e 's/@''GNULIB_FREE_POSIX''@/1/g' \
      -e 's/@''GNULIB_GETLOADAVG''@/0/g' \
      -e 's/@''GNULIB_GETSUBOPT''@/0/g' \
      -e 's/@''GNULIB_GRANTPT''@/0/g' \
      -e 's/@''GNULIB_MALLOC_POSIX''@/1/g' \
      -e 's/@''GNULIB_MBTOWC''@/1/g' \
      -e 's/@''GNULIB_MKDTEMP''@/1/g' \
      -e 's/@''GNULIB_MKOSTEMP''@/0/g' \
      -e 's/@''GNULIB_MKOSTEMPS''@/0/g' \
      -e 's/@''GNULIB_MKSTEMP''@/0/g' \
      -e 's/@''GNULIB_MKSTEMPS''@/0/g' \
      -e 's/@''GNULIB_POSIX_MEMALIGN''@/0/g' \
      -e 's/@''GNULIB_POSIX_OPENPT''@/0/g' \
      -e 's/@''GNULIB_PTSNAME''@/0/g' \
      -e 's/@''GNULIB_PTSNAME_R''@/0/g' \
      -e 's/@''GNULIB_PUTENV''@/0/g' \
      -e 's/@''GNULIB_QSORT_R''@/0/g' \
      -e 's/@''GNULIB_RANDOM''@/0/g' \
      -e 's/@''GNULIB_RANDOM_R''@/0/g' \
      -e 's/@''GNULIB_REALLOC_POSIX''@/1/g' \
      -e 's/@''GNULIB_REALLOCARRAY''@/0/g' \
      -e 's/@''GNULIB_REALPATH''@/1/g' \
      -e 's/@''GNULIB_RPMATCH''@/1/g' \
      -e 's/@''GNULIB_SECURE_GETENV''@/0/g' \
      -e 's/@''GNULIB_SETENV''@/1/g' \
      -e 's/@''GNULIB_STRTOD''@/0/g' \
      -e 's/@''GNULIB_STRTOLD''@/0/g' \
      -e 's/@''GNULIB_STRTOLL''@/1/g' \
      -e 's/@''GNULIB_STRTOULL''@/1/g' \
      -e 's/@''GNULIB_SYSTEM_POSIX''@/0/g' \
      -e 's/@''GNULIB_UNLOCKPT''@/0/g' \
      -e 's/@''GNULIB_UNSETENV''@/1/g' \
      -e 's/@''GNULIB_WCTOMB''@/0/g' \
      -e 's/@''GNULIB_MDA_ECVT''@/1/g' \
      -e 's/@''GNULIB_MDA_FCVT''@/1/g' \
      -e 's/@''GNULIB_MDA_GCVT''@/1/g' \
      -e 's/@''GNULIB_MDA_MKTEMP''@/1/g' \
      -e 's/@''GNULIB_MDA_PUTENV''@/1/g' \
      < ./stdlib.in.h | \
  sed -e 's|@''HAVE__EXIT''@|1|g' \
      -e 's|@''HAVE_ALIGNED_ALLOC''@|1|g' \
      -e 's|@''HAVE_ATOLL''@|1|g' \
      -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|1|g' \
      -e 's|@''HAVE_DECL_ECVT''@|1|g' \
      -e 's|@''HAVE_DECL_FCVT''@|1|g' \
      -e 's|@''HAVE_DECL_GCVT''@|1|g' \
      -e 's|@''HAVE_DECL_GETLOADAVG''@|1|g' \
      -e 's|@''HAVE_GETSUBOPT''@|1|g' \
      -e 's|@''HAVE_GRANTPT''@|1|g' \
      -e 's|@''HAVE_INITSTATE''@|1|g' \
      -e 's|@''HAVE_DECL_INITSTATE''@|1|g' \
      -e 's|@''HAVE_MBTOWC''@|1|g' \
      -e 's|@''HAVE_MKDTEMP''@|1|g' \
      -e 's|@''HAVE_MKOSTEMP''@|1|g' \
      -e 's|@''HAVE_MKOSTEMPS''@|1|g' \
      -e 's|@''HAVE_MKSTEMP''@|1|g' \
      -e 's|@''HAVE_MKSTEMPS''@|1|g' \
      -e 's|@''HAVE_POSIX_MEMALIGN''@|1|g' \
      -e 's|@''HAVE_POSIX_OPENPT''@|1|g' \
      -e 's|@''HAVE_PTSNAME''@|1|g' \
      -e 's|@''HAVE_PTSNAME_R''@|1|g' \
      -e 's|@''HAVE_QSORT_R''@|1|g' \
      -e 's|@''HAVE_RANDOM''@|1|g' \
      -e 's|@''HAVE_RANDOM_H''@|1|g' \
      -e 's|@''HAVE_RANDOM_R''@|1|g' \
      -e 's|@''HAVE_REALLOCARRAY''@|1|g' \
      -e 's|@''HAVE_REALPATH''@|1|g' \
      -e 's|@''HAVE_RPMATCH''@|1|g' \
      -e 's|@''HAVE_SECURE_GETENV''@|1|g' \
      -e 's|@''HAVE_DECL_SETENV''@|1|g' \
      -e 's|@''HAVE_SETSTATE''@|1|g' \
      -e 's|@''HAVE_DECL_SETSTATE''@|1|g' \
      -e 's|@''HAVE_STRTOD''@|1|g' \
      -e 's|@''HAVE_STRTOLD''@|1|g' \
      -e 's|@''HAVE_STRTOLL''@|1|g' \
      -e 's|@''HAVE_STRTOULL''@|1|g' \
      -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|1|g' \
      -e 's|@''HAVE_SYS_LOADAVG_H''@|0|g' \
      -e 's|@''HAVE_UNLOCKPT''@|1|g' \
      -e 's|@''HAVE_DECL_UNSETENV''@|1|g' \
      -e 's|@''REPLACE_ALIGNED_ALLOC''@|0|g' \
      -e 's|@''REPLACE_CALLOC''@|0|g' \
      -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|0|g' \
      -e 's|@''REPLACE_FREE''@|0|g' \
      -e 's|@''REPLACE_INITSTATE''@|0|g' \
      -e 's|@''REPLACE_MALLOC''@|0|g' \
      -e 's|@''REPLACE_MBTOWC''@|0|g' \
      -e 's|@''REPLACE_MKSTEMP''@|0|g' \
      -e 's|@''REPLACE_POSIX_MEMALIGN''@|0|g' \
      -e 's|@''REPLACE_PTSNAME''@|0|g' \
      -e 's|@''REPLACE_PTSNAME_R''@|0|g' \
      -e 's|@''REPLACE_PUTENV''@|0|g' \
      -e 's|@''REPLACE_QSORT_R''@|0|g' \
      -e 's|@''REPLACE_RANDOM''@|0|g' \
      -e 's|@''REPLACE_RANDOM_R''@|0|g' \
      -e 's|@''REPLACE_REALLOC''@|0|g' \
      -e 's|@''REPLACE_REALPATH''@|0|g' \
      -e 's|@''REPLACE_SETENV''@|0|g' \
      -e 's|@''REPLACE_SETSTATE''@|0|g' \
      -e 's|@''REPLACE_STRTOD''@|0|g' \
      -e 's|@''REPLACE_STRTOLD''@|0|g' \
      -e 's|@''REPLACE_UNSETENV''@|0|g' \
      -e 's|@''REPLACE_WCTOMB''@|0|g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _Noreturn/r ./_Noreturn.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h'; \
} > stdlib.h-t && \
mv stdlib.h-t stdlib.h
rm -f string.h-t string.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_STRING_H''@|<string.h>|g' \
      -e 's/@''GNULIB_EXPLICIT_BZERO''@/0/g' \
      -e 's/@''GNULIB_FFSL''@/0/g' \
      -e 's/@''GNULIB_FFSLL''@/0/g' \
      -e 's/@''GNULIB_MBSLEN''@/0/g' \
      -e 's/@''GNULIB_MBSNLEN''@/0/g' \
      -e 's/@''GNULIB_MBSCHR''@/0/g' \
      -e 's/@''GNULIB_MBSRCHR''@/0/g' \
      -e 's/@''GNULIB_MBSSTR''@/0/g' \
      -e 's/@''GNULIB_MBSCASECMP''@/1/g' \
      -e 's/@''GNULIB_MBSNCASECMP''@/0/g' \
      -e 's/@''GNULIB_MBSPCASECMP''@/0/g' \
      -e 's/@''GNULIB_MBSCASESTR''@/0/g' \
      -e 's/@''GNULIB_MBSCSPN''@/0/g' \
      -e 's/@''GNULIB_MBSPBRK''@/0/g' \
      -e 's/@''GNULIB_MBSSPN''@/0/g' \
      -e 's/@''GNULIB_MBSSEP''@/0/g' \
      -e 's/@''GNULIB_MBSTOK_R''@/0/g' \
      -e 's/@''GNULIB_MEMCHR''@/1/g' \
      -e 's/@''GNULIB_MEMMEM''@/0/g' \
      -e 's/@''GNULIB_MEMPCPY''@/1/g' \
      -e 's/@''GNULIB_MEMRCHR''@/1/g' \
      -e 's/@''GNULIB_RAWMEMCHR''@/1/g' \
      -e 's/@''GNULIB_STPCPY''@/1/g' \
      -e 's/@''GNULIB_STPNCPY''@/0/g' \
      -e 's/@''GNULIB_STRCHRNUL''@/1/g' \
      -e 's/@''GNULIB_STRDUP''@/1/g' \
      -e 's/@''GNULIB_STRNCAT''@/0/g' \
      -e 's/@''GNULIB_STRNDUP''@/1/g' \
      -e 's/@''GNULIB_STRNLEN''@/1/g' \
      -e 's/@''GNULIB_STRPBRK''@/0/g' \
      -e 's/@''GNULIB_STRSEP''@/0/g' \
      -e 's/@''GNULIB_STRSTR''@/0/g' \
      -e 's/@''GNULIB_STRCASESTR''@/0/g' \
      -e 's/@''GNULIB_STRTOK_R''@/0/g' \
      -e 's/@''GNULIB_STRERROR''@/1/g' \
      -e 's/@''GNULIB_STRERROR_R''@/0/g' \
      -e 's/@''GNULIB_STRERRORNAME_NP''@/0/g' \
      -e 's/@''GNULIB_SIGABBREV_NP''@/0/g' \
      -e 's/@''GNULIB_SIGDESCR_NP''@/0/g' \
      -e 's/@''GNULIB_STRSIGNAL''@/0/g' \
      -e 's/@''GNULIB_STRVERSCMP''@/0/g' \
      -e 's/@''GNULIB_MDA_MEMCCPY''@/1/g' \
      -e 's/@''GNULIB_MDA_STRDUP''@/1/g' \
      < ./string.in.h | \
  sed -e 's|@''HAVE_EXPLICIT_BZERO''@|1|g' \
      -e 's|@''HAVE_FFSL''@|1|g' \
      -e 's|@''HAVE_FFSLL''@|1|g' \
      -e 's|@''HAVE_MBSLEN''@|0|g' \
      -e 's|@''HAVE_DECL_MEMMEM''@|1|g' \
      -e 's|@''HAVE_MEMPCPY''@|1|g' \
      -e 's|@''HAVE_DECL_MEMRCHR''@|1|g' \
      -e 's|@''HAVE_RAWMEMCHR''@|1|g' \
      -e 's|@''HAVE_STPCPY''@|1|g' \
      -e 's|@''HAVE_STPNCPY''@|1|g' \
      -e 's|@''HAVE_STRCHRNUL''@|1|g' \
      -e 's|@''HAVE_DECL_STRDUP''@|1|g' \
      -e 's|@''HAVE_DECL_STRNDUP''@|1|g' \
      -e 's|@''HAVE_DECL_STRNLEN''@|1|g' \
      -e 's|@''HAVE_STRPBRK''@|1|g' \
      -e 's|@''HAVE_STRSEP''@|1|g' \
      -e 's|@''HAVE_STRCASESTR''@|1|g' \
      -e 's|@''HAVE_DECL_STRTOK_R''@|1|g' \
      -e 's|@''HAVE_DECL_STRERROR_R''@|1|g' \
      -e 's|@''HAVE_STRERRORNAME_NP''@|1|g' \
      -e 's|@''HAVE_SIGABBREV_NP''@|1|g' \
      -e 's|@''HAVE_SIGDESCR_NP''@|1|g' \
      -e 's|@''HAVE_DECL_STRSIGNAL''@|1|g' \
      -e 's|@''HAVE_STRVERSCMP''@|1|g' \
      -e 's|@''REPLACE_FFSLL''@|0|g' \
      -e 's|@''REPLACE_MEMCHR''@|0|g' \
      -e 's|@''REPLACE_MEMMEM''@|0|g' \
      -e 's|@''REPLACE_STPNCPY''@|0|g' \
      -e 's|@''REPLACE_STRCHRNUL''@|0|g' \
      -e 's|@''REPLACE_STRDUP''@|0|g' \
      -e 's|@''REPLACE_STRNCAT''@|0|g' \
      -e 's|@''REPLACE_STRNDUP''@|0|g' \
      -e 's|@''REPLACE_STRNLEN''@|0|g' \
      -e 's|@''REPLACE_STRSTR''@|0|g' \
      -e 's|@''REPLACE_STRCASESTR''@|0|g' \
      -e 's|@''REPLACE_STRTOK_R''@|0|g' \
      -e 's|@''REPLACE_STRERROR''@|0|g' \
      -e 's|@''REPLACE_STRERROR_R''@|0|g' \
      -e 's|@''REPLACE_STRERRORNAME_NP''@|0|g' \
      -e 's|@''REPLACE_STRSIGNAL''@|0|g' \
      -e 's|@''UNDEFINE_STRTOK_R''@|0|g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h'; \
      < ./string.in.h; \
} > string.h-t && \
mv string.h-t string.h
rm -f strings.h-t strings.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''HAVE_STRINGS_H''@|1|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_STRINGS_H''@|<strings.h>|g' \
      -e 's/@''GNULIB_FFS''@/0/g' \
      -e 's|@''HAVE_FFS''@|1|g' \
      -e 's|@''HAVE_STRCASECMP''@|1|g' \
      -e 's|@''HAVE_DECL_STRNCASECMP''@|1|g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h' \
      < ./strings.in.h; \
} > strings.h-t && \
mv strings.h-t strings.h
/bin/mkdir -p sys
/bin/mkdir -p sys
/bin/mkdir -p sys
rm -f sys/random.h-t sys/random.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_SYS_RANDOM_H''@|<sys/random.h>|g' \
      -e 's|@''HAVE_SYS_RANDOM_H''@|1|g' \
      -e 's/@''GNULIB_GETRANDOM''@/1/g' \
      -e 's/@''HAVE_GETRANDOM''@/1/g' \
      -e 's/@''REPLACE_GETRANDOM''@/0/g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h' \
      < ./sys_random.in.h; \
} > sys/random.h-t && \
mv -f sys/random.h-t sys/random.h
rm -f sys/stat.h-t sys/stat.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_SYS_STAT_H''@|<sys/stat.h>|g' \
      -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|0|g' \
      -e 's|@''WINDOWS_STAT_TIMESPEC''@|0|g' \
      -e 's/@''GNULIB_FCHMODAT''@/1/g' \
      -e 's/@''GNULIB_FSTAT''@/1/g' \
      -e 's/@''GNULIB_FSTATAT''@/1/g' \
      -e 's/@''GNULIB_FUTIMENS''@/1/g' \
      -e 's/@''GNULIB_GETUMASK''@/0/g' \
      -e 's/@''GNULIB_LCHMOD''@/1/g' \
      -e 's/@''GNULIB_LSTAT''@/1/g' \
      -e 's/@''GNULIB_MKDIR''@/1/g' \
      -e 's/@''GNULIB_MKDIRAT''@/1/g' \
      -e 's/@''GNULIB_MKFIFO''@/1/g' \
      -e 's/@''GNULIB_MKFIFOAT''@/1/g' \
      -e 's/@''GNULIB_MKNOD''@/1/g' \
      -e 's/@''GNULIB_MKNODAT''@/1/g' \
      -e 's/@''GNULIB_STAT''@/1/g' \
      -e 's/@''GNULIB_UTIMENSAT''@/1/g' \
      -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/0/g' \
      -e 's/@''GNULIB_MDA_CHMOD''@/1/g' \
      -e 's/@''GNULIB_MDA_MKDIR''@/1/g' \
      -e 's/@''GNULIB_MDA_UMASK''@/1/g' \
      -e 's|@''HAVE_FCHMODAT''@|1|g' \
      -e 's|@''HAVE_FSTATAT''@|1|g' \
      -e 's|@''HAVE_FUTIMENS''@|1|g' \
      -e 's|@''HAVE_GETUMASK''@|1|g' \
      -e 's|@''HAVE_LCHMOD''@|1|g' \
      -e 's|@''HAVE_LSTAT''@|1|g' \
      -e 's|@''HAVE_MKDIRAT''@|1|g' \
      -e 's|@''HAVE_MKFIFO''@|1|g' \
      -e 's|@''HAVE_MKFIFOAT''@|1|g' \
      -e 's|@''HAVE_MKNOD''@|1|g' \
      -e 's|@''HAVE_MKNODAT''@|1|g' \
      -e 's|@''HAVE_UTIMENSAT''@|1|g' \
      -e 's|@''REPLACE_FCHMODAT''@|0|g' \
      -e 's|@''REPLACE_FSTAT''@|0|g' \
      -e 's|@''REPLACE_FSTATAT''@|0|g' \
      -e 's|@''REPLACE_FUTIMENS''@|0|g' \
      -e 's|@''REPLACE_LSTAT''@|0|g' \
      -e 's|@''REPLACE_MKDIR''@|0|g' \
      -e 's|@''REPLACE_MKFIFO''@|0|g' \
      -e 's|@''REPLACE_MKFIFOAT''@|0|g' \
      -e 's|@''REPLACE_MKNOD''@|0|g' \
      -e 's|@''REPLACE_MKNODAT''@|0|g' \
      -e 's|@''REPLACE_STAT''@|0|g' \
      -e 's|@''REPLACE_UTIMENSAT''@|0|g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h' \
      < ./sys_stat.in.h; \
} > sys/stat.h-t && \
mv sys/stat.h-t sys/stat.h
rm -f sys/time.h-t sys/time.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's/@''HAVE_SYS_TIME_H''@/1/g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_SYS_TIME_H''@|<sys/time.h>|g' \
      -e 's/@''GNULIB_GETTIMEOFDAY''@/1/g' \
      -e 's|@''HAVE_WINSOCK2_H''@|0|g' \
      -e 's/@''HAVE_GETTIMEOFDAY''@/1/g' \
      -e 's/@''HAVE_STRUCT_TIMEVAL''@/1/g' \
      -e 's/@''REPLACE_GETTIMEOFDAY''@/0/g' \
      -e 's/@''REPLACE_STRUCT_TIMEVAL''@/0/g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h' \
      < ./sys_time.in.h; \
} > sys/time.h-t && \
mv sys/time.h-t sys/time.h
/bin/mkdir -p sys
rm -f time.h-t time.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_TIME_H''@|<time.h>|g' \
      -e 's/@''GNULIB_CTIME''@/0/g' \
      -e 's/@''GNULIB_LOCALTIME''@/0/g' \
      -e 's/@''GNULIB_MKTIME''@/1/g' \
      -e 's/@''GNULIB_NANOSLEEP''@/0/g' \
      -e 's/@''GNULIB_STRFTIME''@/0/g' \
      -e 's/@''GNULIB_STRPTIME''@/0/g' \
      -e 's/@''GNULIB_TIMEGM''@/1/g' \
      -e 's/@''GNULIB_TIMESPEC_GET''@/0/g' \
      -e 's/@''GNULIB_TIME_R''@/1/g' \
      -e 's/@''GNULIB_TIME_RZ''@/1/g' \
      -e 's/@''GNULIB_TZSET''@/1/g' \
      -e 's/@''GNULIB_MDA_TZSET''@/1/g' \
      -e 's|@''HAVE_DECL_LOCALTIME_R''@|1|g' \
      -e 's|@''HAVE_NANOSLEEP''@|1|g' \
      -e 's|@''HAVE_STRPTIME''@|1|g' \
      -e 's|@''HAVE_TIMEGM''@|1|g' \
      -e 's|@''HAVE_TIMESPEC_GET''@|1|g' \
      -e 's|@''HAVE_TIMEZONE_T''@|0|g' \
      -e 's|@''REPLACE_CTIME''@|GNULIB_PORTCHECK|g' \
      -e 's|@''REPLACE_GMTIME''@|0|g' \
      -e 's|@''REPLACE_LOCALTIME''@|0|g' \
      -e 's|@''REPLACE_LOCALTIME_R''@|0|g' \
      -e 's|@''REPLACE_MKTIME''@|0|g' \
      -e 's|@''REPLACE_NANOSLEEP''@|GNULIB_PORTCHECK|g' \
      -e 's|@''REPLACE_STRFTIME''@|GNULIB_PORTCHECK|g' \
      -e 's|@''REPLACE_TIMEGM''@|0|g' \
      -e 's|@''REPLACE_TZSET''@|0|g' \
      -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|0|g' \
      -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|0|g' \
      -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|1|g' \
      -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|0|g' \
      -e 's|@''TIME_H_DEFINES_TIME_UTC''@|1|g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h' \
      < ./time.in.h; \
} > time.h-t && \
mv time.h-t time.h
rm -f sys/types.h-t sys/types.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_SYS_TYPES_H''@|<sys/types.h>|g' \
      -e 's|@''WINDOWS_64_BIT_OFF_T''@|0|g' \
      -e 's|@''WINDOWS_STAT_INODES''@|0|g' \
      < ./sys_types.in.h; \
} > sys/types.h-t && \
mv sys/types.h-t sys/types.h
rm -f unistd.h-t unistd.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''HAVE_UNISTD_H''@|1|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_UNISTD_H''@|<unistd.h>|g' \
      -e 's|@''WINDOWS_64_BIT_OFF_T''@|0|g' \
      -e 's/@''GNULIB_ACCESS''@/0/g' \
      -e 's/@''GNULIB_CHDIR''@/1/g' \
      -e 's/@''GNULIB_CHOWN''@/1/g' \
      -e 's/@''GNULIB_CLOSE''@/1/g' \
      -e 's/@''GNULIB_COPY_FILE_RANGE''@/0/g' \
      -e 's/@''GNULIB_DUP''@/1/g' \
      -e 's/@''GNULIB_DUP2''@/1/g' \
      -e 's/@''GNULIB_DUP3''@/0/g' \
      -e 's/@''GNULIB_ENVIRON''@/1/g' \
      -e 's/@''GNULIB_EUIDACCESS''@/1/g' \
      -e 's/@''GNULIB_EXECL''@/0/g' \
      -e 's/@''GNULIB_EXECLE''@/0/g' \
      -e 's/@''GNULIB_EXECLP''@/0/g' \
      -e 's/@''GNULIB_EXECV''@/0/g' \
      -e 's/@''GNULIB_EXECVE''@/0/g' \
      -e 's/@''GNULIB_EXECVP''@/0/g' \
      -e 's/@''GNULIB_EXECVPE''@/0/g' \
      -e 's/@''GNULIB_FACCESSAT''@/1/g' \
      -e 's/@''GNULIB_FCHDIR''@/1/g' \
      -e 's/@''GNULIB_FCHOWNAT''@/1/g' \
      -e 's/@''GNULIB_FDATASYNC''@/0/g' \
      -e 's/@''GNULIB_FSYNC''@/0/g' \
      -e 's/@''GNULIB_FTRUNCATE''@/0/g' \
      -e 's/@''GNULIB_GETCWD''@/1/g' \
      -e 's/@''GNULIB_GETDOMAINNAME''@/0/g' \
      -e 's/@''GNULIB_GETDTABLESIZE''@/1/g' \
      -e 's/@''GNULIB_GETENTROPY''@/0/g' \
      -e 's/@''GNULIB_GETGROUPS''@/1/g' \
      -e 's/@''GNULIB_GETHOSTNAME''@/0/g' \
      -e 's/@''GNULIB_GETLOGIN''@/0/g' \
      -e 's/@''GNULIB_GETLOGIN_R''@/0/g' \
      -e 's/@''GNULIB_GETOPT_POSIX''@/1/g' \
      -e 's/@''GNULIB_GETPAGESIZE''@/1/g' \
      -e 's/@''GNULIB_GETPASS''@/0/g' \
      -e 's/@''GNULIB_GETUSERSHELL''@/0/g' \
      -e 's/@''GNULIB_GROUP_MEMBER''@/1/g' \
      -e 's/@''GNULIB_ISATTY''@/0/g' \
      -e 's/@''GNULIB_LCHOWN''@/1/g' \
      -e 's/@''GNULIB_LINK''@/1/g' \
      -e 's/@''GNULIB_LINKAT''@/1/g' \
      -e 's/@''GNULIB_LSEEK''@/1/g' \
      -e 's/@''GNULIB_PIPE''@/1/g' \
      -e 's/@''GNULIB_PIPE2''@/0/g' \
      -e 's/@''GNULIB_PREAD''@/0/g' \
      -e 's/@''GNULIB_PWRITE''@/0/g' \
      -e 's/@''GNULIB_READ''@/1/g' \
      -e 's/@''GNULIB_READLINK''@/1/g' \
      -e 's/@''GNULIB_READLINKAT''@/1/g' \
      -e 's/@''GNULIB_RMDIR''@/1/g' \
      -e 's/@''GNULIB_SETHOSTNAME''@/0/g' \
      -e 's/@''GNULIB_SLEEP''@/1/g' \
      -e 's/@''GNULIB_SYMLINK''@/1/g' \
      -e 's/@''GNULIB_SYMLINKAT''@/1/g' \
      -e 's/@''GNULIB_TRUNCATE''@/0/g' \
      -e 's/@''GNULIB_TTYNAME_R''@/0/g' \
      -e 's/@''GNULIB_UNISTD_H_GETOPT''@/01/g' \
      -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/0/g' \
      -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/0/g' \
      -e 's/@''GNULIB_UNLINK''@/1/g' \
      -e 's/@''GNULIB_UNLINKAT''@/1/g' \
      -e 's/@''GNULIB_USLEEP''@/0/g' \
      -e 's/@''GNULIB_WRITE''@/1/g' \
      -e 's/@''GNULIB_MDA_ACCESS''@/1/g' \
      -e 's/@''GNULIB_MDA_CHDIR''@/1/g' \
      -e 's/@''GNULIB_MDA_CLOSE''@/1/g' \
      -e 's/@''GNULIB_MDA_DUP''@/1/g' \
      -e 's/@''GNULIB_MDA_DUP2''@/1/g' \
      -e 's/@''GNULIB_MDA_EXECL''@/1/g' \
      -e 's/@''GNULIB_MDA_EXECLE''@/1/g' \
      -e 's/@''GNULIB_MDA_EXECLP''@/1/g' \
      -e 's/@''GNULIB_MDA_EXECV''@/1/g' \
      -e 's/@''GNULIB_MDA_EXECVE''@/1/g' \
      -e 's/@''GNULIB_MDA_EXECVP''@/1/g' \
      -e 's/@''GNULIB_MDA_EXECVPE''@/1/g' \
      -e 's/@''GNULIB_MDA_GETCWD''@/1/g' \
      -e 's/@''GNULIB_MDA_GETPID''@/1/g' \
      -e 's/@''GNULIB_MDA_ISATTY''@/1/g' \
      -e 's/@''GNULIB_MDA_LSEEK''@/1/g' \
      -e 's/@''GNULIB_MDA_READ''@/1/g' \
      -e 's/@''GNULIB_MDA_RMDIR''@/1/g' \
      -e 's/@''GNULIB_MDA_SWAB''@/1/g' \
      -e 's/@''GNULIB_MDA_UNLINK''@/1/g' \
      -e 's/@''GNULIB_MDA_WRITE''@/1/g' \
      < ./unistd.in.h | \
  sed -e 's|@''HAVE_CHOWN''@|1|g' \
      -e 's|@''HAVE_COPY_FILE_RANGE''@|1|g' \
      -e 's|@''HAVE_DUP3''@|1|g' \
      -e 's|@''HAVE_EUIDACCESS''@|1|g' \
      -e 's|@''HAVE_EXECVPE''@|1|g' \
      -e 's|@''HAVE_FACCESSAT''@|1|g' \
      -e 's|@''HAVE_FCHDIR''@|1|g' \
      -e 's|@''HAVE_FCHOWNAT''@|1|g' \
      -e 's|@''HAVE_FDATASYNC''@|1|g' \
      -e 's|@''HAVE_FSYNC''@|1|g' \
      -e 's|@''HAVE_FTRUNCATE''@|1|g' \
      -e 's|@''HAVE_GETDTABLESIZE''@|1|g' \
      -e 's|@''HAVE_GETENTROPY''@|1|g' \
      -e 's|@''HAVE_GETGROUPS''@|1|g' \
      -e 's|@''HAVE_GETHOSTNAME''@|1|g' \
      -e 's|@''HAVE_GETPAGESIZE''@|1|g' \
      -e 's|@''HAVE_GETPASS''@|1|g' \
      -e 's|@''HAVE_GROUP_MEMBER''@|1|g' \
      -e 's|@''HAVE_LCHOWN''@|1|g' \
      -e 's|@''HAVE_LINK''@|1|g' \
      -e 's|@''HAVE_LINKAT''@|1|g' \
      -e 's|@''HAVE_PIPE''@|1|g' \
      -e 's|@''HAVE_PIPE2''@|1|g' \
      -e 's|@''HAVE_PREAD''@|1|g' \
      -e 's|@''HAVE_PWRITE''@|1|g' \
      -e 's|@''HAVE_READLINK''@|1|g' \
      -e 's|@''HAVE_READLINKAT''@|1|g' \
      -e 's|@''HAVE_SETHOSTNAME''@|1|g' \
      -e 's|@''HAVE_SLEEP''@|1|g' \
      -e 's|@''HAVE_SYMLINK''@|1|g' \
      -e 's|@''HAVE_SYMLINKAT''@|1|g' \
      -e 's|@''HAVE_UNLINKAT''@|1|g' \
      -e 's|@''HAVE_USLEEP''@|1|g' \
      -e 's|@''HAVE_DECL_ENVIRON''@|1|g' \
      -e 's|@''HAVE_DECL_EXECVPE''@|1|g' \
      -e 's|@''HAVE_DECL_FCHDIR''@|1|g' \
      -e 's|@''HAVE_DECL_FDATASYNC''@|1|g' \
      -e 's|@''HAVE_DECL_GETDOMAINNAME''@|1|g' \
      -e 's|@''HAVE_DECL_GETLOGIN''@|1|g' \
      -e 's|@''HAVE_DECL_GETLOGIN_R''@|1|g' \
      -e 's|@''HAVE_DECL_GETPAGESIZE''@|1|g' \
      -e 's|@''HAVE_DECL_GETUSERSHELL''@|1|g' \
      -e 's|@''HAVE_DECL_SETHOSTNAME''@|1|g' \
      -e 's|@''HAVE_DECL_TRUNCATE''@|1|g' \
      -e 's|@''HAVE_DECL_TTYNAME_R''@|1|g' \
      -e 's|@''HAVE_OS_H''@|0|g' \
      -e 's|@''HAVE_SYS_PARAM_H''@|0|g' \
  | \
  sed -e 's|@''REPLACE_ACCESS''@|0|g' \
      -e 's|@''REPLACE_CHOWN''@|0|g' \
      -e 's|@''REPLACE_CLOSE''@|0|g' \
      -e 's|@''REPLACE_DUP''@|0|g' \
      -e 's|@''REPLACE_DUP2''@|0|g' \
      -e 's|@''REPLACE_EXECL''@|0|g' \
      -e 's|@''REPLACE_EXECLE''@|0|g' \
      -e 's|@''REPLACE_EXECLP''@|0|g' \
      -e 's|@''REPLACE_EXECV''@|0|g' \
      -e 's|@''REPLACE_EXECVE''@|0|g' \
      -e 's|@''REPLACE_EXECVP''@|0|g' \
      -e 's|@''REPLACE_EXECVPE''@|0|g' \
      -e 's|@''REPLACE_FACCESSAT''@|0|g' \
      -e 's|@''REPLACE_FCHOWNAT''@|0|g' \
      -e 's|@''REPLACE_FTRUNCATE''@|0|g' \
      -e 's|@''REPLACE_GETCWD''@|0|g' \
      -e 's|@''REPLACE_GETDOMAINNAME''@|0|g' \
      -e 's|@''REPLACE_GETDTABLESIZE''@|0|g' \
      -e 's|@''REPLACE_GETLOGIN_R''@|0|g' \
      -e 's|@''REPLACE_GETGROUPS''@|0|g' \
      -e 's|@''REPLACE_GETPAGESIZE''@|0|g' \
      -e 's|@''REPLACE_GETPASS''@|0|g' \
      -e 's|@''REPLACE_ISATTY''@|0|g' \
      -e 's|@''REPLACE_LCHOWN''@|0|g' \
      -e 's|@''REPLACE_LINK''@|0|g' \
      -e 's|@''REPLACE_LINKAT''@|0|g' \
      -e 's|@''REPLACE_LSEEK''@|0|g' \
      -e 's|@''REPLACE_PREAD''@|0|g' \
      -e 's|@''REPLACE_PWRITE''@|0|g' \
      -e 's|@''REPLACE_READ''@|0|g' \
      -e 's|@''REPLACE_READLINK''@|0|g' \
      -e 's|@''REPLACE_READLINKAT''@|0|g' \
      -e 's|@''REPLACE_RMDIR''@|0|g' \
      -e 's|@''REPLACE_SLEEP''@|0|g' \
      -e 's|@''REPLACE_SYMLINK''@|0|g' \
      -e 's|@''REPLACE_SYMLINKAT''@|0|g' \
      -e 's|@''REPLACE_TRUNCATE''@|0|g' \
      -e 's|@''REPLACE_TTYNAME_R''@|0|g' \
      -e 's|@''REPLACE_UNLINK''@|0|g' \
      -e 's|@''REPLACE_UNLINKAT''@|0|g' \
      -e 's|@''REPLACE_USLEEP''@|0|g' \
      -e 's|@''REPLACE_WRITE''@|0|g' \
      -e 's|@''UNISTD_H_HAVE_SYS_RANDOM_H''@|1|g' \
      -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|0|g' \
      -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|0|g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h'; \
} > unistd.h-t && \
mv unistd.h-t unistd.h
rm -f unitypes.h-t unitypes.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  cat ./unitypes.in.h; \
} > unitypes.h-t && \
mv -f unitypes.h-t unitypes.h
rm -f uniwidth.h-t uniwidth.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  cat ./uniwidth.in.h; \
} > uniwidth.h-t && \
mv -f uniwidth.h-t uniwidth.h
rm -f utime.h-t utime.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's/@''HAVE_UTIME_H''@/1/g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_UTIME_H''@|<utime.h>|g' \
      -e 's/@''GNULIB_UTIME''@/1/g' \
      -e 's/@''GNULIB_MDA_UTIME''@/1/g' \
      -e 's|@''HAVE_UTIME''@|1|g' \
      -e 's|@''REPLACE_UTIME''@|0|g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h' \
      < ./utime.in.h; \
} > utime.h-t && \
mv utime.h-t utime.h
rm -f wchar.h-t wchar.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''HAVE_FEATURES_H''@|1|g' \
      -e 's|@''NEXT_WCHAR_H''@|<wchar.h>|g' \
      -e 's|@''HAVE_WCHAR_H''@|1|g' \
      -e 's/@''HAVE_CRTDEFS_H''@/0/g' \
      -e 's/@''GNULIB_OVERRIDES_WINT_T''@/0/g' \
      -e 's/@''GNULIB_BTOWC''@/1/g' \
      -e 's/@''GNULIB_WCTOB''@/0/g' \
      -e 's/@''GNULIB_MBSINIT''@/1/g' \
      -e 's/@''GNULIB_MBRTOWC''@/1/g' \
      -e 's/@''GNULIB_MBRLEN''@/0/g' \
      -e 's/@''GNULIB_MBSRTOWCS''@/1/g' \
      -e 's/@''GNULIB_MBSNRTOWCS''@/0/g' \
      -e 's/@''GNULIB_WCRTOMB''@/1/g' \
      -e 's/@''GNULIB_WCSRTOMBS''@/0/g' \
      -e 's/@''GNULIB_WCSNRTOMBS''@/0/g' \
      -e 's/@''GNULIB_WCWIDTH''@/1/g' \
      -e 's/@''GNULIB_WMEMCHR''@/1/g' \
      -e 's/@''GNULIB_WMEMCMP''@/0/g' \
      -e 's/@''GNULIB_WMEMCPY''@/0/g' \
      -e 's/@''GNULIB_WMEMMOVE''@/0/g' \
      -e 's/@''GNULIB_WMEMPCPY''@/1/g' \
      -e 's/@''GNULIB_WMEMSET''@/0/g' \
      -e 's/@''GNULIB_WCSLEN''@/0/g' \
      -e 's/@''GNULIB_WCSNLEN''@/0/g' \
      -e 's/@''GNULIB_WCSCPY''@/0/g' \
      -e 's/@''GNULIB_WCPCPY''@/0/g' \
      -e 's/@''GNULIB_WCSNCPY''@/0/g' \
      -e 's/@''GNULIB_WCPNCPY''@/0/g' \
      -e 's/@''GNULIB_WCSCAT''@/0/g' \
      -e 's/@''GNULIB_WCSNCAT''@/0/g' \
      -e 's/@''GNULIB_WCSCMP''@/0/g' \
      -e 's/@''GNULIB_WCSNCMP''@/0/g' \
      -e 's/@''GNULIB_WCSCASECMP''@/0/g' \
      -e 's/@''GNULIB_WCSNCASECMP''@/0/g' \
      -e 's/@''GNULIB_WCSCOLL''@/0/g' \
      -e 's/@''GNULIB_WCSXFRM''@/0/g' \
      -e 's/@''GNULIB_WCSDUP''@/0/g' \
      -e 's/@''GNULIB_WCSCHR''@/0/g' \
      -e 's/@''GNULIB_WCSRCHR''@/0/g' \
      -e 's/@''GNULIB_WCSCSPN''@/0/g' \
      -e 's/@''GNULIB_WCSSPN''@/0/g' \
      -e 's/@''GNULIB_WCSPBRK''@/0/g' \
      -e 's/@''GNULIB_WCSSTR''@/0/g' \
      -e 's/@''GNULIB_WCSTOK''@/0/g' \
      -e 's/@''GNULIB_WCSWIDTH''@/0/g' \
      -e 's/@''GNULIB_WCSFTIME''@/0/g' \
      -e 's/@''GNULIB_MDA_WCSDUP''@/1/g' \
      < ./wchar.in.h | \
  sed -e 's|@''HAVE_WINT_T''@|1|g' \
      -e 's|@''HAVE_BTOWC''@|1|g' \
      -e 's|@''HAVE_MBSINIT''@|1|g' \
      -e 's|@''HAVE_MBRTOWC''@|1|g' \
      -e 's|@''HAVE_MBRLEN''@|1|g' \
      -e 's|@''HAVE_MBSRTOWCS''@|1|g' \
      -e 's|@''HAVE_MBSNRTOWCS''@|1|g' \
      -e 's|@''HAVE_WCRTOMB''@|1|g' \
      -e 's|@''HAVE_WCSRTOMBS''@|1|g' \
      -e 's|@''HAVE_WCSNRTOMBS''@|1|g' \
      -e 's|@''HAVE_WMEMCHR''@|1|g' \
      -e 's|@''HAVE_WMEMCMP''@|1|g' \
      -e 's|@''HAVE_WMEMCPY''@|1|g' \
      -e 's|@''HAVE_WMEMMOVE''@|1|g' \
      -e 's|@''HAVE_WMEMPCPY''@|1|g' \
      -e 's|@''HAVE_WMEMSET''@|1|g' \
      -e 's|@''HAVE_WCSLEN''@|1|g' \
      -e 's|@''HAVE_WCSNLEN''@|1|g' \
      -e 's|@''HAVE_WCSCPY''@|1|g' \
      -e 's|@''HAVE_WCPCPY''@|1|g' \
      -e 's|@''HAVE_WCSNCPY''@|1|g' \
      -e 's|@''HAVE_WCPNCPY''@|1|g' \
      -e 's|@''HAVE_WCSCAT''@|1|g' \
      -e 's|@''HAVE_WCSNCAT''@|1|g' \
      -e 's|@''HAVE_WCSCMP''@|1|g' \
      -e 's|@''HAVE_WCSNCMP''@|1|g' \
      -e 's|@''HAVE_WCSCASECMP''@|1|g' \
      -e 's|@''HAVE_WCSNCASECMP''@|1|g' \
      -e 's|@''HAVE_WCSCOLL''@|1|g' \
      -e 's|@''HAVE_WCSXFRM''@|1|g' \
      -e 's|@''HAVE_WCSDUP''@|1|g' \
      -e 's|@''HAVE_WCSCHR''@|1|g' \
      -e 's|@''HAVE_WCSRCHR''@|1|g' \
      -e 's|@''HAVE_WCSCSPN''@|1|g' \
      -e 's|@''HAVE_WCSSPN''@|1|g' \
      -e 's|@''HAVE_WCSPBRK''@|1|g' \
      -e 's|@''HAVE_WCSSTR''@|1|g' \
      -e 's|@''HAVE_WCSTOK''@|1|g' \
      -e 's|@''HAVE_WCSWIDTH''@|1|g' \
      -e 's|@''HAVE_WCSFTIME''@|1|g' \
      -e 's|@''HAVE_DECL_WCTOB''@|1|g' \
      -e 's|@''HAVE_DECL_WCSDUP''@|1|g' \
      -e 's|@''HAVE_DECL_WCWIDTH''@|1|g' \
  | \
  sed -e 's|@''REPLACE_MBSTATE_T''@|0|g' \
      -e 's|@''REPLACE_BTOWC''@|0|g' \
      -e 's|@''REPLACE_WCTOB''@|0|g' \
      -e 's|@''REPLACE_MBSINIT''@|0|g' \
      -e 's|@''REPLACE_MBRTOWC''@|1|g' \
      -e 's|@''REPLACE_MBRLEN''@|0|g' \
      -e 's|@''REPLACE_MBSRTOWCS''@|0|g' \
      -e 's|@''REPLACE_MBSNRTOWCS''@|0|g' \
      -e 's|@''REPLACE_WCRTOMB''@|0|g' \
      -e 's|@''REPLACE_WCSRTOMBS''@|0|g' \
      -e 's|@''REPLACE_WCSNRTOMBS''@|0|g' \
      -e 's|@''REPLACE_WCWIDTH''@|0|g' \
      -e 's|@''REPLACE_WCSWIDTH''@|0|g' \
      -e 's|@''REPLACE_WCSFTIME''@|0|g' \
      -e 's|@''REPLACE_WCSTOK''@|0|g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_ARG_NONNULL/r ./arg-nonnull.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h'; \
} > wchar.h-t && \
mv wchar.h-t wchar.h
rm -f wctype.h-t wctype.h && \
{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
  sed -e 's|@''GUARD_PREFIX''@|GL|g' \
      -e 's/@''HAVE_WCTYPE_H''@/1/g' \
      -e 's|@''INCLUDE_NEXT''@|include_next|g' \
      -e 's|@''PRAGMA_SYSTEM_HEADER''@|#pragma GCC system_header|g' \
      -e 's|@''PRAGMA_COLUMNS''@||g' \
      -e 's|@''NEXT_WCTYPE_H''@|<wctype.h>|g' \
      -e 's/@''HAVE_CRTDEFS_H''@/0/g' \
      -e 's/@''GNULIB_OVERRIDES_WINT_T''@/0/g' \
      -e 's/@''GNULIB_ISWBLANK''@/1/g' \
      -e 's/@''GNULIB_ISWDIGIT''@/1/g' \
      -e 's/@''GNULIB_ISWXDIGIT''@/1/g' \
      -e 's/@''GNULIB_WCTYPE''@/0/g' \
      -e 's/@''GNULIB_ISWCTYPE''@/0/g' \
      -e 's/@''GNULIB_WCTRANS''@/0/g' \
      -e 's/@''GNULIB_TOWCTRANS''@/0/g' \
      -e 's/@''HAVE_ISWBLANK''@/1/g' \
      -e 's/@''HAVE_ISWCNTRL''@/1/g' \
      -e 's/@''HAVE_WCTYPE_T''@/1/g' \
      -e 's/@''HAVE_WCTRANS_T''@/1/g' \
      -e 's/@''HAVE_WINT_T''@/1/g' \
      -e 's/@''REPLACE_ISWBLANK''@/0/g' \
      -e 's/@''REPLACE_ISWDIGIT''@/0/g' \
      -e 's/@''REPLACE_ISWXDIGIT''@/0/g' \
      -e 's/@''REPLACE_ISWCNTRL''@/0/g' \
      -e 's/@''REPLACE_TOWLOWER''@/0/g' \
      -e '/definitions of _GL_FUNCDECL_RPL/r ./c++defs.h' \
      -e '/definition of _GL_WARN_ON_USE/r ./warn-on-use.h' \
      < ./wctype.in.h; \
} > wctype.h-t && \
mv wctype.h-t wctype.h
/usr/bin/make  all-recursive
make[4]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
make[5]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
depbase=`echo acl-errno-valid.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT acl-errno-valid.o -MD -MP -MF $depbase.Tpo -c -o acl-errno-valid.o acl-errno-valid.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo acl-internal.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT acl-internal.o -MD -MP -MF $depbase.Tpo -c -o acl-internal.o acl-internal.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo get-permissions.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT get-permissions.o -MD -MP -MF $depbase.Tpo -c -o get-permissions.o get-permissions.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo set-permissions.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT set-permissions.o -MD -MP -MF $depbase.Tpo -c -o set-permissions.o set-permissions.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo allocator.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT allocator.o -MD -MP -MF $depbase.Tpo -c -o allocator.o allocator.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo areadlink.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT areadlink.o -MD -MP -MF $depbase.Tpo -c -o areadlink.o areadlink.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo areadlink-with-size.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT areadlink-with-size.o -MD -MP -MF $depbase.Tpo -c -o areadlink-with-size.o areadlink-with-size.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo areadlinkat.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT areadlinkat.o -MD -MP -MF $depbase.Tpo -c -o areadlinkat.o areadlinkat.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo areadlinkat-with-size.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT areadlinkat-with-size.o -MD -MP -MF $depbase.Tpo -c -o areadlinkat-with-size.o areadlinkat-with-size.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo argmatch.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT argmatch.o -MD -MP -MF $depbase.Tpo -c -o argmatch.o argmatch.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo argp-ba.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT argp-ba.o -MD -MP -MF $depbase.Tpo -c -o argp-ba.o argp-ba.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo argp-eexst.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT argp-eexst.o -MD -MP -MF $depbase.Tpo -c -o argp-eexst.o argp-eexst.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo argp-fmtstream.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT argp-fmtstream.o -MD -MP -MF $depbase.Tpo -c -o argp-fmtstream.o argp-fmtstream.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo argp-fs-xinl.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT argp-fs-xinl.o -MD -MP -MF $depbase.Tpo -c -o argp-fs-xinl.o argp-fs-xinl.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo argp-help.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT argp-help.o -MD -MP -MF $depbase.Tpo -c -o argp-help.o argp-help.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo argp-parse.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT argp-parse.o -MD -MP -MF $depbase.Tpo -c -o argp-parse.o argp-parse.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo argp-pin.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT argp-pin.o -MD -MP -MF $depbase.Tpo -c -o argp-pin.o argp-pin.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo argp-pv.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT argp-pv.o -MD -MP -MF $depbase.Tpo -c -o argp-pv.o argp-pv.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo argp-pvh.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT argp-pvh.o -MD -MP -MF $depbase.Tpo -c -o argp-pvh.o argp-pvh.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo argp-xinl.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT argp-xinl.o -MD -MP -MF $depbase.Tpo -c -o argp-xinl.o argp-xinl.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo argp-version-etc.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT argp-version-etc.o -MD -MP -MF $depbase.Tpo -c -o argp-version-etc.o argp-version-etc.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo openat-proc.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT openat-proc.o -MD -MP -MF $depbase.Tpo -c -o openat-proc.o openat-proc.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo backupfile.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT backupfile.o -MD -MP -MF $depbase.Tpo -c -o backupfile.o backupfile.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo backup-find.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT backup-find.o -MD -MP -MF $depbase.Tpo -c -o backup-find.o backup-find.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo basename-lgpl.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT basename-lgpl.o -MD -MP -MF $depbase.Tpo -c -o basename-lgpl.o basename-lgpl.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo bitrotate.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT bitrotate.o -MD -MP -MF $depbase.Tpo -c -o bitrotate.o bitrotate.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo c-ctype.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT c-ctype.o -MD -MP -MF $depbase.Tpo -c -o c-ctype.o c-ctype.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo c-strcasecmp.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT c-strcasecmp.o -MD -MP -MF $depbase.Tpo -c -o c-strcasecmp.o c-strcasecmp.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo c-strncasecmp.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT c-strncasecmp.o -MD -MP -MF $depbase.Tpo -c -o c-strncasecmp.o c-strncasecmp.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo careadlinkat.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT careadlinkat.o -MD -MP -MF $depbase.Tpo -c -o careadlinkat.o careadlinkat.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo cloexec.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT cloexec.o -MD -MP -MF $depbase.Tpo -c -o cloexec.o cloexec.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo close-stream.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT close-stream.o -MD -MP -MF $depbase.Tpo -c -o close-stream.o close-stream.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo closeout.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT closeout.o -MD -MP -MF $depbase.Tpo -c -o closeout.o closeout.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo opendir-safer.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT opendir-safer.o -MD -MP -MF $depbase.Tpo -c -o opendir-safer.o opendir-safer.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo dirname.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT dirname.o -MD -MP -MF $depbase.Tpo -c -o dirname.o dirname.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo basename.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT basename.o -MD -MP -MF $depbase.Tpo -c -o basename.o basename.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo dirname-lgpl.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT dirname-lgpl.o -MD -MP -MF $depbase.Tpo -c -o dirname-lgpl.o dirname-lgpl.c &&\
mv -f $depbase.Tpo $depbase.Po
careadlinkat.c: In function 'careadlinkat':
careadlinkat.c:184:5: warning: #warning "GCC might issue a bogus -Wreturn-local-addr warning here." [-Wcpp]
  184 |    #warning "GCC might issue a bogus -Wreturn-local-addr warning here."
      |     ^~~~~~~
careadlinkat.c:185:5: warning: #warning "See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93644>." [-Wcpp]
  185 |    #warning "See <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93644>."
      |     ^~~~~~~
depbase=`echo stripslash.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT stripslash.o -MD -MP -MF $depbase.Tpo -c -o stripslash.o stripslash.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo exclude.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT exclude.o -MD -MP -MF $depbase.Tpo -c -o exclude.o exclude.c &&\
mv -f $depbase.Tpo $depbase.Po
careadlinkat.c:188:10: warning: function may return address of local variable [-Wreturn-local-addr]
  188 |   return readlink_stk (fd, filename, buffer, buffer_size, alloc,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  189 |                        preadlinkat, stack_buf);
      |                        ~~~~~~~~~~~~~~~~~~~~~~~
careadlinkat.c:187:8: note: declared here
  187 |   char stack_buf[STACK_BUF_SIZE];
      |        ^~~~~~~~~
depbase=`echo exitfail.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT exitfail.o -MD -MP -MF $depbase.Tpo -c -o exitfail.o exitfail.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo creat-safer.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT creat-safer.o -MD -MP -MF $depbase.Tpo -c -o creat-safer.o creat-safer.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo open-safer.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT open-safer.o -MD -MP -MF $depbase.Tpo -c -o open-safer.o open-safer.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo fd-hook.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT fd-hook.o -MD -MP -MF $depbase.Tpo -c -o fd-hook.o fd-hook.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo fd-safer-flag.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT fd-safer-flag.o -MD -MP -MF $depbase.Tpo -c -o fd-safer-flag.o fd-safer-flag.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo dup-safer-flag.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT dup-safer-flag.o -MD -MP -MF $depbase.Tpo -c -o dup-safer-flag.o dup-safer-flag.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo fdutimensat.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT fdutimensat.o -MD -MP -MF $depbase.Tpo -c -o fdutimensat.o fdutimensat.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo file-has-acl.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT file-has-acl.o -MD -MP -MF $depbase.Tpo -c -o file-has-acl.o file-has-acl.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo filenamecat-lgpl.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT filenamecat-lgpl.o -MD -MP -MF $depbase.Tpo -c -o filenamecat-lgpl.o filenamecat-lgpl.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo fprintftime.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT fprintftime.o -MD -MP -MF $depbase.Tpo -c -o fprintftime.o fprintftime.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo full-write.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT full-write.o -MD -MP -MF $depbase.Tpo -c -o full-write.o full-write.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo getprogname.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT getprogname.o -MD -MP -MF $depbase.Tpo -c -o getprogname.o getprogname.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo gettime.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT gettime.o -MD -MP -MF $depbase.Tpo -c -o gettime.o gettime.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo hard-locale.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT hard-locale.o -MD -MP -MF $depbase.Tpo -c -o hard-locale.o hard-locale.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo hash.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT hash.o -MD -MP -MF $depbase.Tpo -c -o hash.o hash.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo human.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT human.o -MD -MP -MF $depbase.Tpo -c -o human.o human.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo imaxtostr.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT imaxtostr.o -MD -MP -MF $depbase.Tpo -c -o imaxtostr.o imaxtostr.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo inttostr.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT inttostr.o -MD -MP -MF $depbase.Tpo -c -o inttostr.o inttostr.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo offtostr.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT offtostr.o -MD -MP -MF $depbase.Tpo -c -o offtostr.o offtostr.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo uinttostr.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT uinttostr.o -MD -MP -MF $depbase.Tpo -c -o uinttostr.o uinttostr.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo umaxtostr.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT umaxtostr.o -MD -MP -MF $depbase.Tpo -c -o umaxtostr.o umaxtostr.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo localcharset.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT localcharset.o -MD -MP -MF $depbase.Tpo -c -o localcharset.o localcharset.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo malloca.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT malloca.o -MD -MP -MF $depbase.Tpo -c -o malloca.o malloca.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo mbchar.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT mbchar.o -MD -MP -MF $depbase.Tpo -c -o mbchar.o mbchar.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo mbscasecmp.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT mbscasecmp.o -MD -MP -MF $depbase.Tpo -c -o mbscasecmp.o mbscasecmp.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo mbuiter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT mbuiter.o -MD -MP -MF $depbase.Tpo -c -o mbuiter.o mbuiter.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo modechange.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT modechange.o -MD -MP -MF $depbase.Tpo -c -o modechange.o modechange.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo nstrftime.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT nstrftime.o -MD -MP -MF $depbase.Tpo -c -o nstrftime.o nstrftime.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo openat-die.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT openat-die.o -MD -MP -MF $depbase.Tpo -c -o openat-die.o openat-die.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo openat-safer.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT openat-safer.o -MD -MP -MF $depbase.Tpo -c -o openat-safer.o openat-safer.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo opendirat.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT opendirat.o -MD -MP -MF $depbase.Tpo -c -o opendirat.o opendirat.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo parse-datetime.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT parse-datetime.o -MD -MP -MF $depbase.Tpo -c -o parse-datetime.o parse-datetime.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo priv-set.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT priv-set.o -MD -MP -MF $depbase.Tpo -c -o priv-set.o priv-set.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo progname.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT progname.o -MD -MP -MF $depbase.Tpo -c -o progname.o progname.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo quotearg.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT quotearg.o -MD -MP -MF $depbase.Tpo -c -o quotearg.o quotearg.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo renameatu.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT renameatu.o -MD -MP -MF $depbase.Tpo -c -o renameatu.o renameatu.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo safe-read.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT safe-read.o -MD -MP -MF $depbase.Tpo -c -o safe-read.o safe-read.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo safe-write.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT safe-write.o -MD -MP -MF $depbase.Tpo -c -o safe-write.o safe-write.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo save-cwd.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT save-cwd.o -MD -MP -MF $depbase.Tpo -c -o save-cwd.o save-cwd.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo savedir.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT savedir.o -MD -MP -MF $depbase.Tpo -c -o savedir.o savedir.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo selinux-at.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT selinux-at.o -MD -MP -MF $depbase.Tpo -c -o selinux-at.o selinux-at.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo se-context.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT se-context.o -MD -MP -MF $depbase.Tpo -c -o se-context.o se-context.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo se-label.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT se-label.o -MD -MP -MF $depbase.Tpo -c -o se-label.o se-label.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo se-selinux.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT se-selinux.o -MD -MP -MF $depbase.Tpo -c -o se-selinux.o se-selinux.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo setlocale_null.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT setlocale_null.o -MD -MP -MF $depbase.Tpo -c -o setlocale_null.o setlocale_null.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo stat-time.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT stat-time.o -MD -MP -MF $depbase.Tpo -c -o stat-time.o stat-time.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo statat.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT statat.o -MD -MP -MF $depbase.Tpo -c -o statat.o statat.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo stdopen.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT stdopen.o -MD -MP -MF $depbase.Tpo -c -o stdopen.o stdopen.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo strnlen1.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT strnlen1.o -MD -MP -MF $depbase.Tpo -c -o strnlen1.o strnlen1.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo tempname.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT tempname.o -MD -MP -MF $depbase.Tpo -c -o tempname.o tempname.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo timespec.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT timespec.o -MD -MP -MF $depbase.Tpo -c -o timespec.o timespec.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo timespec-sub.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT timespec-sub.o -MD -MP -MF $depbase.Tpo -c -o timespec-sub.o timespec-sub.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo unistd.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT unistd.o -MD -MP -MF $depbase.Tpo -c -o unistd.o unistd.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo dup-safer.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT dup-safer.o -MD -MP -MF $depbase.Tpo -c -o dup-safer.o dup-safer.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo fd-safer.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT fd-safer.o -MD -MP -MF $depbase.Tpo -c -o fd-safer.o fd-safer.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo pipe-safer.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT pipe-safer.o -MD -MP -MF $depbase.Tpo -c -o pipe-safer.o pipe-safer.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo unlinkdir.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT unlinkdir.o -MD -MP -MF $depbase.Tpo -c -o unlinkdir.o unlinkdir.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo utimens.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT utimens.o -MD -MP -MF $depbase.Tpo -c -o utimens.o utimens.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo version-etc.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT version-etc.o -MD -MP -MF $depbase.Tpo -c -o version-etc.o version-etc.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo version-etc-fsf.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT version-etc-fsf.o -MD -MP -MF $depbase.Tpo -c -o version-etc-fsf.o version-etc-fsf.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo wctype-h.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT wctype-h.o -MD -MP -MF $depbase.Tpo -c -o wctype-h.o wctype-h.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo xmalloc.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT xmalloc.o -MD -MP -MF $depbase.Tpo -c -o xmalloc.o xmalloc.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo xalloc-die.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT xalloc-die.o -MD -MP -MF $depbase.Tpo -c -o xalloc-die.o xalloc-die.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo xgetcwd.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT xgetcwd.o -MD -MP -MF $depbase.Tpo -c -o xgetcwd.o xgetcwd.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo xsize.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT xsize.o -MD -MP -MF $depbase.Tpo -c -o xsize.o xsize.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo xstrndup.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT xstrndup.o -MD -MP -MF $depbase.Tpo -c -o xstrndup.o xstrndup.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo xstrtol.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT xstrtol.o -MD -MP -MF $depbase.Tpo -c -o xstrtol.o xstrtol.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo xstrtoul.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT xstrtoul.o -MD -MP -MF $depbase.Tpo -c -o xstrtoul.o xstrtoul.c &&\
mv -f $depbase.Tpo $depbase.Po
utimens.c: In function 'fdutimens':
utimens.c:399:17: warning: 'update_timespec' accessing 8 bytes in a region of size 4 [-Wstringop-overflow=]
  399 |       if (ts && update_timespec (&st, &ts))
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
utimens.c:399:17: note: referencing argument 2 of type 'struct timespec *[2]'
utimens.c:136:1: note: in a call to function 'update_timespec'
  136 | update_timespec (struct stat const *statbuf, struct timespec *ts[2])
      | ^~~~~~~~~~~~~~~
utimens.c: In function 'lutimens':
utimens.c:612:17: warning: 'update_timespec' accessing 8 bytes in a region of size 4 [-Wstringop-overflow=]
  612 |       if (ts && update_timespec (&st, &ts))
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
utimens.c:612:17: note: referencing argument 2 of type 'struct timespec *[2]'
utimens.c:136:1: note: in a call to function 'update_timespec'
  136 | update_timespec (struct stat const *statbuf, struct timespec *ts[2])
      | ^~~~~~~~~~~~~~~
depbase=`echo xstrtoumax.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT xstrtoumax.o -MD -MP -MF $depbase.Tpo -c -o xstrtoumax.o xstrtoumax.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo xvasprintf.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT xvasprintf.o -MD -MP -MF $depbase.Tpo -c -o xvasprintf.o xvasprintf.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo xasprintf.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT xasprintf.o -MD -MP -MF $depbase.Tpo -c -o xasprintf.o xasprintf.c &&\
mv -f $depbase.Tpo $depbase.Po
utimens.c: In function 'fdutimens':
utimens.c:399:17: warning: 'update_timespec' accessing 8 bytes in a region of size 4 [-Wstringop-overflow=]
  399 |       if (ts && update_timespec (&st, &ts))
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
utimens.c:399:17: note: referencing argument 2 of type 'struct timespec *[2]'
utimens.c:136:1: note: in a call to function 'update_timespec'
  136 | update_timespec (struct stat const *statbuf, struct timespec *ts[2])
      | ^~~~~~~~~~~~~~~
depbase=`echo asnprintf.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT asnprintf.o -MD -MP -MF $depbase.Tpo -c -o asnprintf.o asnprintf.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo chdir-long.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT chdir-long.o -MD -MP -MF $depbase.Tpo -c -o chdir-long.o chdir-long.c &&\
mv -f $depbase.Tpo $depbase.Po
utimens.c:399:17: warning: 'update_timespec' accessing 8 bytes in a region of size 4 [-Wstringop-overflow=]
  399 |       if (ts && update_timespec (&st, &ts))
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
utimens.c:399:17: note: referencing argument 2 of type 'struct timespec *[2]'
utimens.c:136:1: note: in a call to function 'update_timespec'
  136 | update_timespec (struct stat const *statbuf, struct timespec *ts[2])
      | ^~~~~~~~~~~~~~~
depbase=`echo fcntl.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT fcntl.o -MD -MP -MF $depbase.Tpo -c -o fcntl.o fcntl.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo getfilecon.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT getfilecon.o -MD -MP -MF $depbase.Tpo -c -o getfilecon.o getfilecon.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo getopt.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT getopt.o -MD -MP -MF $depbase.Tpo -c -o getopt.o getopt.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo getopt1.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT getopt1.o -MD -MP -MF $depbase.Tpo -c -o getopt1.o getopt1.c &&\
mv -f $depbase.Tpo $depbase.Po
utimens.c: In function 'lutimens':
utimens.c:612:17: warning: 'update_timespec' accessing 8 bytes in a region of size 4 [-Wstringop-overflow=]
  612 |       if (ts && update_timespec (&st, &ts))
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
utimens.c:612:17: note: referencing argument 2 of type 'struct timespec *[2]'
utimens.c:136:1: note: in a call to function 'update_timespec'
  136 | update_timespec (struct stat const *statbuf, struct timespec *ts[2])
      | ^~~~~~~~~~~~~~~
utimens.c:612:17: warning: 'update_timespec' accessing 8 bytes in a region of size 4 [-Wstringop-overflow=]
  612 |       if (ts && update_timespec (&st, &ts))
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
utimens.c:612:17: note: referencing argument 2 of type 'struct timespec *[2]'
utimens.c:136:1: note: in a call to function 'update_timespec'
  136 | update_timespec (struct stat const *statbuf, struct timespec *ts[2])
      | ^~~~~~~~~~~~~~~
depbase=`echo mbrtowc.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT mbrtowc.o -MD -MP -MF $depbase.Tpo -c -o mbrtowc.o mbrtowc.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo mktime.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT mktime.o -MD -MP -MF $depbase.Tpo -c -o mktime.o mktime.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo obstack.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT obstack.o -MD -MP -MF $depbase.Tpo -c -o obstack.o obstack.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo printf-args.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT printf-args.o -MD -MP -MF $depbase.Tpo -c -o printf-args.o printf-args.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo printf-parse.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT printf-parse.o -MD -MP -MF $depbase.Tpo -c -o printf-parse.o printf-parse.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo regex.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT regex.o -MD -MP -MF $depbase.Tpo -c -o regex.o regex.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo time_rz.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT time_rz.o -MD -MP -MF $depbase.Tpo -c -o time_rz.o time_rz.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo vasnprintf.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT vasnprintf.o -MD -MP -MF $depbase.Tpo -c -o vasnprintf.o vasnprintf.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo malloc/scratch_buffer_dupfree.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT malloc/scratch_buffer_dupfree.o -MD -MP -MF $depbase.Tpo -c -o malloc/scratch_buffer_dupfree.o malloc/scratch_buffer_dupfree.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo malloc/scratch_buffer_grow.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT malloc/scratch_buffer_grow.o -MD -MP -MF $depbase.Tpo -c -o malloc/scratch_buffer_grow.o malloc/scratch_buffer_grow.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo malloc/scratch_buffer_grow_preserve.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT malloc/scratch_buffer_grow_preserve.o -MD -MP -MF $depbase.Tpo -c -o malloc/scratch_buffer_grow_preserve.o malloc/scratch_buffer_grow_preserve.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo malloc/scratch_buffer_set_array_size.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT malloc/scratch_buffer_set_array_size.o -MD -MP -MF $depbase.Tpo -c -o malloc/scratch_buffer_set_array_size.o malloc/scratch_buffer_set_array_size.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo uniwidth/width.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
gcc -DHAVE_CONFIG_H -I. -I..   -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT uniwidth/width.o -MD -MP -MF $depbase.Tpo -c -o uniwidth/width.o uniwidth/width.c &&\
mv -f $depbase.Tpo $depbase.Po
rm -f libgnu.a
ar cr libgnu.a acl-errno-valid.o acl-internal.o get-permissions.o set-permissions.o allocator.o areadlink.o areadlink-with-size.o areadlinkat.o areadlinkat-with-size.o argmatch.o argp-ba.o argp-eexst.o argp-fmtstream.o argp-fs-xinl.o argp-help.o argp-parse.o argp-pin.o argp-pv.o argp-pvh.o argp-xinl.o argp-version-etc.o openat-proc.o backupfile.o backup-find.o basename-lgpl.o bitrotate.o c-ctype.o c-strcasecmp.o c-strncasecmp.o careadlinkat.o cloexec.o close-stream.o closeout.o opendir-safer.o dirname.o basename.o dirname-lgpl.o stripslash.o exclude.o exitfail.o creat-safer.o open-safer.o fd-hook.o fd-safer-flag.o dup-safer-flag.o fdutimensat.o file-has-acl.o filenamecat-lgpl.o fprintftime.o full-write.o getprogname.o gettime.o hard-locale.o hash.o human.o imaxtostr.o inttostr.o offtostr.o uinttostr.o umaxtostr.o localcharset.o malloca.o mbchar.o mbscasecmp.o mbuiter.o modechange.o nstrftime.o openat-die.o openat-safer.o opendirat.o parse-datetime.o priv-set.o progname.o quotearg.o renameatu.o safe-read.o safe-write.o save-cwd.o savedir.o malloc/scratch_buffer_dupfree.o malloc/scratch_buffer_grow.o malloc/scratch_buffer_grow_preserve.o malloc/scratch_buffer_set_array_size.o selinux-at.o se-context.o se-label.o se-selinux.o setlocale_null.o stat-time.o statat.o stdopen.o strnlen1.o tempname.o timespec.o timespec-sub.o unistd.o dup-safer.o fd-safer.o pipe-safer.o uniwidth/width.o unlinkdir.o utimens.o version-etc.o version-etc-fsf.o wctype-h.o xmalloc.o xalloc-die.o xgetcwd.o xsize.o xstrndup.o xstrtol.o xstrtoul.o xstrtoumax.o xvasprintf.o xasprintf.o asnprintf.o chdir-long.o fcntl.o getfilecon.o getopt.o getopt1.o mbrtowc.o mktime.o obstack.o printf-args.o printf-parse.o regex.o time_rz.o vasnprintf.o 
ranlib libgnu.a
make[5]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
make[4]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
Making all in lib
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/lib'
rm -f rmt-command.h-t rmt-command.h
echo "#ifndef DEFAULT_RMT_COMMAND" >> rmt-command.h-t
echo "# define DEFAULT_RMT_COMMAND \"/usr/sbin/`echo rmt | sed 's,x,x,'`\"" >> rmt-command.h-t
echo "#endif" >> rmt-command.h-t
mv rmt-command.h-t rmt-command.h
/usr/bin/make  all-am
make[4]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/lib'
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT paxerror.o -MD -MP -MF .deps/paxerror.Tpo -c -o paxerror.o paxerror.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT paxexit-status.o -MD -MP -MF .deps/paxexit-status.Tpo -c -o paxexit-status.o paxexit-status.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT paxnames.o -MD -MP -MF .deps/paxnames.Tpo -c -o paxnames.o paxnames.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT rtapelib.o -MD -MP -MF .deps/rtapelib.Tpo -c -o rtapelib.o rtapelib.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT wordsplit.o -MD -MP -MF .deps/wordsplit.Tpo -c -o wordsplit.o wordsplit.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT xattr-at.o -MD -MP -MF .deps/xattr-at.Tpo -c -o xattr-at.o xattr-at.c
mv -f .deps/paxexit-status.Tpo .deps/paxexit-status.Po
mv -f .deps/paxnames.Tpo .deps/paxnames.Po
mv -f .deps/xattr-at.Tpo .deps/xattr-at.Po
mv -f .deps/paxerror.Tpo .deps/paxerror.Po
mv -f .deps/rtapelib.Tpo .deps/rtapelib.Po
mv -f .deps/wordsplit.Tpo .deps/wordsplit.Po
rm -f libtar.a
ar cr libtar.a paxerror.o paxexit-status.o paxnames.o rtapelib.o wordsplit.o xattr-at.o 
ranlib libtar.a
make[4]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/lib'
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/lib'
Making all in rmt
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/rmt'
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT rmt.o -MD -MP -MF .deps/rmt.Tpo -c -o rmt.o rmt.c
mv -f .deps/rmt.Tpo .deps/rmt.Po
gcc  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument  -Wl,-z,relro -o rmt rmt.o ../gnu/libgnu.a   -lacl 
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/rmt'
Making all in src
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/src'
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT buffer.o -MD -MP -MF .deps/buffer.Tpo -c -o buffer.o buffer.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT checkpoint.o -MD -MP -MF .deps/checkpoint.Tpo -c -o checkpoint.o checkpoint.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT compare.o -MD -MP -MF .deps/compare.Tpo -c -o compare.o compare.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT create.o -MD -MP -MF .deps/create.Tpo -c -o create.o create.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT delete.o -MD -MP -MF .deps/delete.Tpo -c -o delete.o delete.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT exit.o -MD -MP -MF .deps/exit.Tpo -c -o exit.o exit.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT exclist.o -MD -MP -MF .deps/exclist.Tpo -c -o exclist.o exclist.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT extract.o -MD -MP -MF .deps/extract.Tpo -c -o extract.o extract.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT xheader.o -MD -MP -MF .deps/xheader.Tpo -c -o xheader.o xheader.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT incremen.o -MD -MP -MF .deps/incremen.Tpo -c -o incremen.o incremen.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT list.o -MD -MP -MF .deps/list.Tpo -c -o list.o list.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT map.o -MD -MP -MF .deps/map.Tpo -c -o map.o map.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT misc.o -MD -MP -MF .deps/misc.Tpo -c -o misc.o misc.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT names.o -MD -MP -MF .deps/names.Tpo -c -o names.o names.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT sparse.o -MD -MP -MF .deps/sparse.Tpo -c -o sparse.o sparse.c
mv -f .deps/exit.Tpo .deps/exit.Po
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT suffix.o -MD -MP -MF .deps/suffix.Tpo -c -o suffix.o suffix.c
misc.c:457:40: warning: argument 2 of type 'char[32]' with mismatched bound [-Warray-parameter=]
  457 | code_timespec (struct timespec t, char sbuf[TIMESPEC_STRSIZE_BOUND])
      |                                   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from misc.c:21:
common.h:678:54: note: previously declared as 'char *'
  678 | char const *code_timespec (struct timespec ts, char *sbuf);
      |                                                ~~~~~~^~~~
mv -f .deps/exclist.Tpo .deps/exclist.Po
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT system.o -MD -MP -MF .deps/system.Tpo -c -o system.o system.c
mv -f .deps/suffix.Tpo .deps/suffix.Po
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT tar.o -MD -MP -MF .deps/tar.Tpo -c -o tar.o tar.c
mv -f .deps/map.Tpo .deps/map.Po
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT transform.o -MD -MP -MF .deps/transform.Tpo -c -o transform.o transform.c
mv -f .deps/delete.Tpo .deps/delete.Po
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT unlink.o -MD -MP -MF .deps/unlink.Tpo -c -o unlink.o unlink.c
mv -f .deps/checkpoint.Tpo .deps/checkpoint.Po
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT update.o -MD -MP -MF .deps/update.Tpo -c -o update.o update.c
mv -f .deps/compare.Tpo .deps/compare.Po
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT utf8.o -MD -MP -MF .deps/utf8.Tpo -c -o utf8.o utf8.c
mv -f .deps/utf8.Tpo .deps/utf8.Po
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT warning.o -MD -MP -MF .deps/warning.Tpo -c -o warning.o warning.c
mv -f .deps/extract.Tpo .deps/extract.Po
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../ -I../gnu -I../lib -I../lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT xattrs.o -MD -MP -MF .deps/xattrs.Tpo -c -o xattrs.o xattrs.c
mv -f .deps/unlink.Tpo .deps/unlink.Po
mv -f .deps/update.Tpo .deps/update.Po
mv -f .deps/misc.Tpo .deps/misc.Po
mv -f .deps/warning.Tpo .deps/warning.Po
mv -f .deps/system.Tpo .deps/system.Po
mv -f .deps/transform.Tpo .deps/transform.Po
mv -f .deps/names.Tpo .deps/names.Po
mv -f .deps/list.Tpo .deps/list.Po
mv -f .deps/sparse.Tpo .deps/sparse.Po
mv -f .deps/tar.Tpo .deps/tar.Po
mv -f .deps/xattrs.Tpo .deps/xattrs.Po
mv -f .deps/xheader.Tpo .deps/xheader.Po
mv -f .deps/incremen.Tpo .deps/incremen.Po
mv -f .deps/create.Tpo .deps/create.Po
mv -f .deps/buffer.Tpo .deps/buffer.Po
gcc   -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument  -Wl,-z,relro -o tar buffer.o checkpoint.o compare.o create.o delete.o exit.o exclist.o extract.o xheader.o incremen.o list.o map.o misc.o names.o sparse.o suffix.o system.o tar.o transform.o unlink.o update.o utf8.o warning.o xattrs.o -lacl  ../lib/libtar.a ../gnu/libgnu.a     -lselinux -lacl 
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/src'
Making all in scripts
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/scripts'
sed "s,\@libexecdir\@,/usr/sbin,; s,\@sysconfdir\@,/usr/etc,; s,\@PACKAGE_NAME\@,GNU tar,; s,\@VERSION\@,1.34,; s,\@PACKAGE_BUGREPORT\@,bug-tar@gnu.org,; s,\@DATE_FORMAT_OK\@,,;/^#ELSE_DATE_FORMAT_OK/,/^#ENDIF_DATE_FORMAT_OK/d;/^#IF_DATE_FORMAT_OK/d" backup.sh.in > backup.sh
sed "s,\@libexecdir\@,/usr/sbin,; s,\@sysconfdir\@,/usr/etc,; s,\@PACKAGE_NAME\@,GNU tar,; s,\@VERSION\@,1.34,; s,\@PACKAGE_BUGREPORT\@,bug-tar@gnu.org,; s,\@DATE_FORMAT_OK\@,,;/^#ELSE_DATE_FORMAT_OK/,/^#ENDIF_DATE_FORMAT_OK/d;/^#IF_DATE_FORMAT_OK/d" dump-remind.in > dump-remind
sed "s,\@libexecdir\@,/usr/sbin,; s,\@sysconfdir\@,/usr/etc,; s,\@PACKAGE_NAME\@,GNU tar,; s,\@VERSION\@,1.34,; s,\@PACKAGE_BUGREPORT\@,bug-tar@gnu.org,; s,\@DATE_FORMAT_OK\@,,;/^#ELSE_DATE_FORMAT_OK/,/^#ENDIF_DATE_FORMAT_OK/d;/^#IF_DATE_FORMAT_OK/d" backup.in > backup
sed "s,\@libexecdir\@,/usr/sbin,; s,\@sysconfdir\@,/usr/etc,; s,\@PACKAGE_NAME\@,GNU tar,; s,\@VERSION\@,1.34,; s,\@PACKAGE_BUGREPORT\@,bug-tar@gnu.org,; s,\@DATE_FORMAT_OK\@,,;/^#ELSE_DATE_FORMAT_OK/,/^#ENDIF_DATE_FORMAT_OK/d;/^#IF_DATE_FORMAT_OK/d" restore.in > restore
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/scripts'
Making all in po
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/po'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/po'
Making all in tests
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/tests'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/tests'
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg'
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg'
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg'
make[1]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg'
/usr/bin/make check TESTSUITEFLAGS=-v || { cat tests/testsuite.log; false; }
make[1]: Entering directory '/build/reproducible-path/tar-1.34+dfsg'
Making check in doc
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/doc'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/doc'
Making check in gnu
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
/usr/bin/make  check-recursive
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
make[4]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
make[4]: Nothing to be done for 'check-am'.
make[4]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
Making check in lib
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/lib'
/usr/bin/make  check-am
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/lib'
make[3]: Nothing to be done for 'check-am'.
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/lib'
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/lib'
Making check in rmt
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/rmt'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/rmt'
Making check in src
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/src'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/src'
Making check in scripts
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/scripts'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/scripts'
Making check in po
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/po'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/po'
Making check in tests
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/tests'
/usr/bin/make  genfile checkseekhole ckmtime
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/tests'
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../gnu -I../gnu -I../lib -DLOCALEDIR=\"/usr/share/locale\" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT genfile.o -MD -MP -MF .deps/genfile.Tpo -c -o genfile.o genfile.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../gnu -I../gnu -I../lib -DLOCALEDIR=\"/usr/share/locale\" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT argcv.o -MD -MP -MF .deps/argcv.Tpo -c -o argcv.o argcv.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../gnu -I../gnu -I../lib -DLOCALEDIR=\"/usr/share/locale\" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT checkseekhole.o -MD -MP -MF .deps/checkseekhole.Tpo -c -o checkseekhole.o checkseekhole.c
gcc -DHAVE_CONFIG_H -I. -I..  -I../gnu -I../gnu -I../gnu -I../lib -DLOCALEDIR=\"/usr/share/locale\" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 -D_TIME_BITS=64  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument -MT ckmtime.o -MD -MP -MF .deps/ckmtime.Tpo -c -o ckmtime.o ckmtime.c
mv -f .deps/checkseekhole.Tpo .deps/checkseekhole.Po
gcc  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument  -Wl,-z,relro -o checkseekhole checkseekhole.o ../gnu/libgnu.a    -lacl 
mv -f .deps/ckmtime.Tpo .deps/ckmtime.Po
gcc  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument  -Wl,-z,relro -o ckmtime ckmtime.o ../gnu/libgnu.a    -lacl 
mv -f .deps/argcv.Tpo .deps/argcv.Po
mv -f .deps/genfile.Tpo .deps/genfile.Po
gcc  -g -O2 -ffile-prefix-map=/build/reproducible-path/tar-1.34+dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -Wall -Wno-analyzer-null-argument  -Wl,-z,relro -o genfile genfile.o argcv.o ../gnu/libgnu.a    -lacl 
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/tests'
/usr/bin/make  check-local
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/tests'
/bin/sh '/build/reproducible-path/tar-1.34+dfsg/build-aux/missing' autom4te --language=autotest -I . testsuite.at -o testsuite.tmp
mv testsuite.tmp testsuite
/bin/sh ./testsuite -v
## ------------------------ ##
## GNU tar 1.34 test suite. ##
## ------------------------ ##
1. version.at:19: testing tar version ...
./version.at:21: tar --version | sed 1q
1. version.at:19:  ok

2. pipe.at:29: testing decompressing from stdin ...
./pipe.at:33:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo "separator"
cmp orig/file1 directory/file1
echo "separator"
cmp orig/file2 directory/file2)
./pipe.at:33:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo "separator"
cmp orig/file1 directory/file1
echo "separator"
cmp orig/file2 directory/file2)
./pipe.at:33:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo "separator"
cmp orig/file1 directory/file1
echo "separator"
cmp orig/file2 directory/file2)
./pipe.at:33:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo "separator"
cmp orig/file1 directory/file1
echo "separator"
cmp orig/file2 directory/file2)
./pipe.at:33:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo "separator"
cmp orig/file1 directory/file1
echo "separator"
cmp orig/file2 directory/file2)
2. pipe.at:29:  ok


Options

3. options.at:24: testing mixing options ...
./options.at:27:
echo > file1
TAR_OPTIONS=--numeric-owner tar chof archive file1
tar tf archive

3. options.at:24:  ok

4. options02.at:26: testing interspersed options ...
./options02.at:29:
echo > file1
tar c file1 -f archive
tar tf archive

4. options02.at:26:  ok

5. options03.at:21: testing TAR_OPTIONS with string arguments ...
./options03.at:31:
echo dir/bar > exclude.list
mkdir dir
genfile --file=dir/foo
genfile --file=dir/bar
TAR_OPTIONS=--exclude-from=exclude.list tar cf arc.tar dir
tar tf arc.tar

5. options03.at:21:  ok


Option compatibility

6. opcomp01.at:21: testing occurrence compatibility ...
./opcomp01.at:24:
tar --occurrence=1 -cf test.tar .

6. opcomp01.at:21:  ok

7. opcomp02.at:21: testing occurrence compatibility ...
./opcomp02.at:24:
tar --occurrence=1 -tf test.tar

7. opcomp02.at:21:  ok

8. opcomp03.at:21: testing --verify compatibility ...
./opcomp03.at:24:
tar -tWf test.tar .

8. opcomp03.at:21:  ok

9. opcomp04.at:21: testing compress option compatibility ...
./opcomp04.at:24:

cat /dev/null | gzip - > /dev/null 2>&1 || exit 77

genfile --file file
tar czf test.tar file
genfile --file newfile
tar rzf test.tar newfile

9. opcomp04.at:21:  ok

10. opcomp05.at:21: testing --pax-option compatibility ...
./opcomp05.at:24:
tar -Hgnu -cf test.tar --pax-option user:=root .

10. opcomp05.at:21:  ok

11. opcomp06.at:21: testing --pax-option compatibility ...
./opcomp06.at:24:


  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfacl -m u:$UID:rwx $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfacl $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi

  rm -rf $file

  file=$(TMPDIR=. mktemp fiXXXXXX)
  setfacl -m u:$UID:rwx $file
  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi

genfile --file file
tar -cf test.tar --acls -Hgnu file

--- -	2025-04-17 18:24:23.382711872 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/11/stderr	2025-04-17 18:24:23.376235517 +1400
@@ -1,3 +1 @@
-tar: --acls can be used only on POSIX archives
-Try 'tar --help' or 'tar --usage' for more information.
 
11. opcomp06.at:21:  skipped (opcomp06.at:24)


Checkpoints

12. defaults.at:16: testing checkpoint defaults ...
./defaults.at:18:
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
  genfile --length 10240 --file $i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS

tar --checkpoint -c -f ../a.tar .


12. defaults.at:16:  ok

13. interval.at:16: testing checkpoint interval ...
./interval.at:18:
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
  genfile --length 10240 --file $i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS

tar --checkpoint=2 -c -f ../a.tar .


13. interval.at:16:  ok

14. dot.at:16: testing dot action ...
./dot.at:18:
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
  genfile --length 10240 --file $i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS

tar --checkpoint-action=dot -c -f ../a.tar .


14. dot.at:16:  ok

15. dot-compat.at:16: testing dot action (compatibility syntax) ...
./dot-compat.at:18:
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
  genfile --length 10240 --file $i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS

tar --checkpoint=.2 -c -f ../a.tar .


15. dot-compat.at:16:  ok

16. dot-int.at:16: testing dot action and interval ...
./dot-int.at:18:
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
  genfile --length 10240 --file $i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS

tar --checkpoint-action=dot --checkpoint=2 -c -f ../a.tar .


16. dot-int.at:16:  ok


Compression

17. testsuite.at:242: testing compress: gzip ...
./testsuite.at:242:

cat /dev/null | gzip - > /dev/null 2>&1 || exit 77

unset TAR_OPTIONS

touch empty
set -e
: create with --gzip
tar --gzip -cf k.tar.gz empty
tar tf k.tar.gz


echo testing .gz
tar -acf k2.tar.gz empty
cat k2.tar.gz | gzip -d > k.gz.tar
tar tf k.gz.tar

echo testing .tgz
tar -acf k2.tar.tgz empty
cat k2.tar.tgz | gzip -d > k.tgz.tar
tar tf k.tgz.tar


# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.gz
test -f empty

17. testsuite.at:242:  ok

18. testsuite.at:243: testing compress: bzip2 ...
./testsuite.at:243:

cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77

unset TAR_OPTIONS

touch empty
set -e
: create with --bzip2
tar --bzip2 -cf k.tar.bz2 empty
tar tf k.tar.bz2


echo testing .bz2
tar -acf k2.tar.bz2 empty
cat k2.tar.bz2 | bzip2 -d > k.bz2.tar
tar tf k.bz2.tar

echo testing .tbz2
tar -acf k2.tar.tbz2 empty
cat k2.tar.tbz2 | bzip2 -d > k.tbz2.tar
tar tf k.tbz2.tar


# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.bz2
test -f empty

18. testsuite.at:243:  ok

19. testsuite.at:244: testing compress: xz ...
./testsuite.at:244:

cat /dev/null | xz - > /dev/null 2>&1 || exit 77

unset TAR_OPTIONS

touch empty
set -e
: create with --xz
tar --xz -cf k.tar.xz empty
tar tf k.tar.xz


echo testing .xz
tar -acf k2.tar.xz empty
cat k2.tar.xz | xz -d > k.xz.tar
tar tf k.xz.tar

echo testing .txz
tar -acf k2.tar.txz empty
cat k2.tar.txz | xz -d > k.txz.tar
tar tf k.txz.tar


# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.xz
test -f empty

19. testsuite.at:244:  ok

20. testsuite.at:246: testing compress: lzip ...
./testsuite.at:246:

cat /dev/null | lzip - > /dev/null 2>&1 || exit 77

unset TAR_OPTIONS

touch empty
set -e
: create with --lzip
tar --lzip -cf k.tar.lz empty
tar tf k.tar.lz


echo testing .lz
tar -acf k2.tar.lz empty
cat k2.tar.lz | lzip -d > k.lz.tar
tar tf k.lz.tar


# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.lz
test -f empty

--- -	2025-04-17 18:24:23.637216880 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/20/stdout	2025-04-17 18:24:23.632235517 +1400
@@ -1,4 +1 @@
-empty
-testing .lz
-empty
 
20. testsuite.at:246:  skipped (testsuite.at:246)

21. testsuite.at:247: testing compress: lzop ...
./testsuite.at:247:

cat /dev/null | lzop - > /dev/null 2>&1 || exit 77

unset TAR_OPTIONS

touch empty
set -e
: create with --lzop
tar --lzop -cf k.tar.lzo empty
tar tf k.tar.lzo


echo testing .lzo
tar -acf k2.tar.lzo empty
cat k2.tar.lzo | lzop -d > k.lzo.tar
tar tf k.lzo.tar


# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.lzo
test -f empty

--- -	2025-04-17 18:24:23.649667726 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/21/stdout	2025-04-17 18:24:23.644235517 +1400
@@ -1,4 +1 @@
-empty
-testing .lzo
-empty
 
21. testsuite.at:247:  skipped (testsuite.at:247)

22. testsuite.at:248: testing compress: zstd ...
./testsuite.at:248:

cat /dev/null | zstd - > /dev/null 2>&1 || exit 77

unset TAR_OPTIONS

touch empty
set -e
: create with --zstd
tar --zstd -cf k.tar.zst empty
tar tf k.tar.zst


echo testing .zst
tar -acf k2.tar.zst empty
cat k2.tar.zst | zstd -d > k.zst.tar
tar tf k.zst.tar

echo testing .tzst
tar -acf k2.tar.tzst empty
cat k2.tar.tzst | zstd -d > k.tzst.tar
tar tf k.tzst.tar


# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.zst
test -f empty

--- -	2025-04-17 18:24:23.664516755 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/22/stdout	2025-04-17 18:24:23.660235517 +1400
@@ -1,6 +1 @@
-empty
-testing .zst
-empty
-testing .tzst
-empty
 
22. testsuite.at:248:  skipped (testsuite.at:248)


Positional options

23. positional01.at:21: testing Exclude ...
./positional01.at:24:

test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir dir
> dir/A.a
> dir/B.a
> dir/A.b
tar -cf a.tar --exclude '*.b' dir
echo $?
tar -tf a.tar | sort
tar -cf a.tar dir --exclude '*.b'
echo $?
tar -tf a.tar | sort

23. positional01.at:21:  ok

24. positional02.at:21: testing Directory ...
./positional02.at:24:

test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir dir
> dir/A.a
> dir/B.a
> dir/A.b
tar -cf a.tar -C dir .
echo $?
tar -tf a.tar | sort
tar -cf a.tar . -C dir

24. positional02.at:21:  ok

25. positional03.at:21: testing Several options ...
./positional03.at:24:

test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir t
cd t
mkdir dir
> dir/A.a
> dir/B.a
> dir/A.b
tar -vcf ../a.tar --exclude '*.b' . -C dir --exclude '*.c' | sort

25. positional03.at:21:  ok

26. add-file.at:21: testing The --add-file option ...
./add-file.at:33:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

genfile --file -File
genfile --file foo
genfile --file bar

echo 1:
tar -cvf arc.tar --add-file foo --add-file -File

echo 2:
tar -cvf arc.tar foo --add-file -File bar


cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF


echo 3:
tar -cvf arc.tar -T input
)
./add-file.at:33:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --file -File
genfile --file foo
genfile --file bar

echo 1:
tar -cvf arc.tar --add-file foo --add-file -File

echo 2:
tar -cvf arc.tar foo --add-file -File bar


cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF


echo 3:
tar -cvf arc.tar -T input
)
./add-file.at:33:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile --file -File
genfile --file foo
genfile --file bar

echo 1:
tar -cvf arc.tar --add-file foo --add-file -File

echo 2:
tar -cvf arc.tar foo --add-file -File bar


cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF


echo 3:
tar -cvf arc.tar -T input
)
./add-file.at:33:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --file -File
genfile --file foo
genfile --file bar

echo 1:
tar -cvf arc.tar --add-file foo --add-file -File

echo 2:
tar -cvf arc.tar foo --add-file -File bar


cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF


echo 3:
tar -cvf arc.tar -T input
)
./add-file.at:33:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --file -File
genfile --file foo
genfile --file bar

echo 1:
tar -cvf arc.tar --add-file foo --add-file -File

echo 2:
tar -cvf arc.tar foo --add-file -File bar


cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF


echo 3:
tar -cvf arc.tar -T input
)
26. add-file.at:21:  ok


The -T option

27. T-mult.at:21: testing multiple file lists ...
./T-mult.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

>file1
>file2
>file3
>file4
cat >F1 <<'_ATEOF'
file1
file2
_ATEOF

cat >F2 <<'_ATEOF'
file3
file4
_ATEOF

tar cf archive -T F1 -T F2
tar tf archive
)
27. T-mult.at:21:  ok

28. T-nest.at:21: testing nested file lists ...
./T-nest.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

>file1
>file2
>file3
>file4
cat >F1 <<'_ATEOF'
file1
-T F2
file2
_ATEOF

cat >F2 <<'_ATEOF'
file3
file4
_ATEOF

tar cf archive -T F1
tar tf archive
)
28. T-nest.at:21:  ok

29. T-rec.at:21: testing recursive file lists ...
./T-rec.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

>file1
>file2
cat >F1 <<'_ATEOF'
file1
-T F2
_ATEOF

cat >F2 <<'_ATEOF'
file2
-T F1
_ATEOF

tar cf archive -T F1
echo $?
tar tf archive
)
29. T-rec.at:21:  ok

30. T-recurse.at:27: testing files-from & recurse: toggle ...
./T-recurse.at:30:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file

cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF


cat >F2A <<'_ATEOF'
directory1/
_ATEOF


cat >F2B <<'_ATEOF'
directory2/
_ATEOF


a=archive
tar cf "$a" --files-from F1
tar tf "$a"

a=archive2
tar cf "$a" --no-recursion -T F2A --recursion -T F2B
tar tf "$a"
)
./T-recurse.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file

cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF


cat >F2A <<'_ATEOF'
directory1/
_ATEOF


cat >F2B <<'_ATEOF'
directory2/
_ATEOF


a=archive
tar cf "$a" --files-from F1
tar tf "$a"

a=archive2
tar cf "$a" --no-recursion -T F2A --recursion -T F2B
tar tf "$a"
)
./T-recurse.at:30:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file

cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF


cat >F2A <<'_ATEOF'
directory1/
_ATEOF


cat >F2B <<'_ATEOF'
directory2/
_ATEOF


a=archive
tar cf "$a" --files-from F1
tar tf "$a"

a=archive2
tar cf "$a" --no-recursion -T F2A --recursion -T F2B
tar tf "$a"
)
./T-recurse.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file

cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF


cat >F2A <<'_ATEOF'
directory1/
_ATEOF


cat >F2B <<'_ATEOF'
directory2/
_ATEOF


a=archive
tar cf "$a" --files-from F1
tar tf "$a"

a=archive2
tar cf "$a" --no-recursion -T F2A --recursion -T F2B
tar tf "$a"
)
./T-recurse.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file

cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF


cat >F2A <<'_ATEOF'
directory1/
_ATEOF


cat >F2B <<'_ATEOF'
directory2/
_ATEOF


a=archive
tar cf "$a" --files-from F1
tar tf "$a"

a=archive2
tar cf "$a" --no-recursion -T F2A --recursion -T F2B
tar tf "$a"
)
30. T-recurse.at:27:  ok

31. T-recurse.at:66: testing toggle --recursion (not) from -T ...
./T-recurse.at:69:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file

cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF


cat >F2 <<'_ATEOF'
directory2/
_ATEOF


tar cf archive -T F1 --recursion -T F2
tar tf archive

)
./T-recurse.at:69:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file

cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF


cat >F2 <<'_ATEOF'
directory2/
_ATEOF


tar cf archive -T F1 --recursion -T F2
tar tf archive

)
./T-recurse.at:69:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file

cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF


cat >F2 <<'_ATEOF'
directory2/
_ATEOF


tar cf archive -T F1 --recursion -T F2
tar tf archive

)
./T-recurse.at:69:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file

cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF


cat >F2 <<'_ATEOF'
directory2/
_ATEOF


tar cf archive -T F1 --recursion -T F2
tar tf archive

)
./T-recurse.at:69:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file

cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF


cat >F2 <<'_ATEOF'
directory2/
_ATEOF


tar cf archive -T F1 --recursion -T F2
tar tf archive

)
31. T-recurse.at:66:  ok

32. T-cd.at:21: testing -C in file lists ...
./T-cd.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

>file1
mkdir dir
>dir/file2
>dir/file3
cat >F1 <<'_ATEOF'
file1
-C dir
.
_ATEOF

tar cf archive -T F1
tar tf archive | sort
)
32. T-cd.at:21:  ok

33. T-empty.at:26: testing empty entries ...
./T-empty.at:36:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


genfile --file jeden
genfile --file dwa
genfile --file trzy

tar cfvT archive ../file-list
)
33. T-empty.at:26:  ok

34. T-null.at:21: testing 0-separated file without -0 ...
./T-null.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


echo jeden > temp
echo dwa >> temp
echo trzy >> temp
cat temp | tr '\n' '\0' > file-list

genfile -f jeden
genfile -f dwa
genfile -f trzy

tar cfTv archive file-list
)
34. T-null.at:21:  ok

35. T-null2.at:17: testing --null enables verbatim reading ...
./T-null2.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

cat >file-list <<'_ATEOF'
a
-b
--c d
:\\.jpg
_ATEOF


genfile -f a
genfile -f -b
genfile -f '--c d'
genfile -f ':\\.jpg'

cat file-list | tr '\n' '\0' | tar -c -f archive -v --null -T -
)
35. T-null2.at:17:  ok

36. T-zfile.at:26: testing empty file ...
./T-zfile.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile --length=0 --file empty
genfile --file a
genfile --file b
cat >valid <<'_ATEOF'
a
b
_ATEOF


tar cf archive -T empty -T valid
tar tf archive
echo "=="
tar cf archive -T valid -T empty
tar tf archive
)
36. T-zfile.at:26:  ok

37. T-nonl.at:27: testing entries with missing newlines ...
./T-nonl.at:30:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile --length=0 --file empty
printf c > 1.nonl
printf 'd\ne' > 2.nonl
touch a b c d e
cat >filelist <<'_ATEOF'
a
b
_ATEOF


tar cf archive -T empty -T 1.nonl -T 2.nonl -T filelist
tar tf archive
echo ==
tar cf archive -T 2.nonl -T empty -T filelist -T 1.nonl
tar tf archive
)
37. T-nonl.at:27:  ok

38. T-dir00.at:28: testing recursive extraction from --files-from ...
./T-dir00.at:30:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)
./T-dir00.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)
./T-dir00.at:30:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)
./T-dir00.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)
./T-dir00.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)
38. T-dir00.at:28:  ok

39. T-dir01.at:28: testing trailing slash in --files-from ...
./T-dir01.at:30:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)
./T-dir01.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)
./T-dir01.at:30:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)
./T-dir01.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)
./T-dir01.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)
39. T-dir01.at:28:  ok


Various options

40. indexfile.at:26: testing tar --index-file=FILE --file=- ...
./indexfile.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


mkdir directory
genfile --file=directory/a --length=1035

echo "Creating the archive"
tar -c -v -f - --index-file=idx directory > archive

echo "Testing the archive"
tar -tf archive
)
./indexfile.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


mkdir directory
genfile --file=directory/a --length=1035

echo "Creating the archive"
tar -c -v -f - --index-file=idx directory > archive

echo "Testing the archive"
tar -tf archive
)
./indexfile.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


mkdir directory
genfile --file=directory/a --length=1035

echo "Creating the archive"
tar -c -v -f - --index-file=idx directory > archive

echo "Testing the archive"
tar -tf archive
)
./indexfile.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


mkdir directory
genfile --file=directory/a --length=1035

echo "Creating the archive"
tar -c -v -f - --index-file=idx directory > archive

echo "Testing the archive"
tar -tf archive
)
./indexfile.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


mkdir directory
genfile --file=directory/a --length=1035

echo "Creating the archive"
tar -c -v -f - --index-file=idx directory > archive

echo "Testing the archive"
tar -tf archive
)
40. indexfile.at:26:  ok

41. verbose.at:26: testing tar cvf - ...
./verbose.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)
./verbose.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)
./verbose.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)
./verbose.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)
./verbose.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)
41. verbose.at:26:  ok

42. gzip.at:23: testing gzip ...
./gzip.at:28:

cat /dev/null | gzip - > /dev/null 2>&1 || exit 77

tar xfvz /dev/null 2>err
RC=$?
sed -n '/^tar:/p' err >&2
exit $RC

42. gzip.at:23:  ok

43. recurse.at:21: testing recurse ...
./recurse.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)
./recurse.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)
./recurse.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)
./recurse.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)
./recurse.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)
43. recurse.at:21:  ok

44. recurs02.at:30: testing recurse: toggle ...
./recurs02.at:33:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \
    --no-recursion directory1 \
    --recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \
    --no-recursion directory1 \
    --recursion directory2 || exit 1
)
./recurs02.at:33:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \
    --no-recursion directory1 \
    --recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \
    --no-recursion directory1 \
    --recursion directory2 || exit 1
)
./recurs02.at:33:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \
    --no-recursion directory1 \
    --recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \
    --no-recursion directory1 \
    --recursion directory2 || exit 1
)
./recurs02.at:33:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \
    --no-recursion directory1 \
    --recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \
    --no-recursion directory1 \
    --recursion directory2 || exit 1
)
./recurs02.at:33:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \
    --no-recursion directory1 \
    --recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \
    --no-recursion directory1 \
    --recursion directory2 || exit 1
)
44. recurs02.at:30:  ok

45. shortrec.at:25: testing short records ...
./shortrec.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null

rm -r directory
)
./shortrec.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null

rm -r directory
)
./shortrec.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null

rm -r directory
)
./shortrec.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null

rm -r directory
)
./shortrec.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null

rm -r directory
)
45. shortrec.at:25:  ok

46. numeric.at:18: testing --numeric-owner basic tests ...
./numeric.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

MYUID=$(id -u) || exit 77
MYGID=$(id -g) || exit 77
MYUSR=$(id -un) || exit 77
MYGRP=$(id -gn) || exit 77

mkdir dir
# Ensure correct group id on BSDs.
chown :$MYGID dir >/dev/null 2>/dev/null
genfile --file dir/file



decho --create
tar --create -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --create -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'


decho --list
tar --list -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --list -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'


decho --diff
tar --diff -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --diff -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'


decho --extract
tar --extract -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --extract -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'

)
./numeric.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

MYUID=$(id -u) || exit 77
MYGID=$(id -g) || exit 77
MYUSR=$(id -un) || exit 77
MYGRP=$(id -gn) || exit 77

mkdir dir
# Ensure correct group id on BSDs.
chown :$MYGID dir >/dev/null 2>/dev/null
genfile --file dir/file



decho --create
tar --create -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --create -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'


decho --list
tar --list -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --list -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'


decho --diff
tar --diff -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --diff -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'


decho --extract
tar --extract -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --extract -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'

)
./numeric.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

MYUID=$(id -u) || exit 77
MYGID=$(id -g) || exit 77
MYUSR=$(id -un) || exit 77
MYGRP=$(id -gn) || exit 77

mkdir dir
# Ensure correct group id on BSDs.
chown :$MYGID dir >/dev/null 2>/dev/null
genfile --file dir/file



decho --create
tar --create -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --create -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'


decho --list
tar --list -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --list -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'


decho --diff
tar --diff -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --diff -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'


decho --extract
tar --extract -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --extract -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'

)
./numeric.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

MYUID=$(id -u) || exit 77
MYGID=$(id -g) || exit 77
MYUSR=$(id -un) || exit 77
MYGRP=$(id -gn) || exit 77

mkdir dir
# Ensure correct group id on BSDs.
chown :$MYGID dir >/dev/null 2>/dev/null
genfile --file dir/file



decho --create
tar --create -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --create -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'


decho --list
tar --list -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --list -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'


decho --diff
tar --diff -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --diff -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'


decho --extract
tar --extract -vvf a dir --numeric-owner | awk '2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --extract -vvf a dir | awk '2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'

)
46. numeric.at:18:  ok


The --same-order option

47. same-order01.at:26: testing working -C with --same-order ...
./same-order01.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2

mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1

ls directory|sort
)
./same-order01.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2

mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1

ls directory|sort
)
./same-order01.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2

mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1

ls directory|sort
)
./same-order01.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2

mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1

ls directory|sort
)
./same-order01.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2

mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1

ls directory|sort
)
47. same-order01.at:26:  ok

48. same-order02.at:25: testing multiple -C options ...
./same-order02.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2

mkdir en
mkdir to

HERE=`pwd`
tar -xf archive --same-order --warning=no-timestamp \
  -C $HERE/en file1 \
  -C $HERE/to file2 || exit 1

ls en
echo separator
ls to
)
./same-order02.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2

mkdir en
mkdir to

HERE=`pwd`
tar -xf archive --same-order --warning=no-timestamp \
  -C $HERE/en file1 \
  -C $HERE/to file2 || exit 1

ls en
echo separator
ls to
)
./same-order02.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2

mkdir en
mkdir to

HERE=`pwd`
tar -xf archive --same-order --warning=no-timestamp \
  -C $HERE/en file1 \
  -C $HERE/to file2 || exit 1

ls en
echo separator
ls to
)
./same-order02.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2

mkdir en
mkdir to

HERE=`pwd`
tar -xf archive --same-order --warning=no-timestamp \
  -C $HERE/en file1 \
  -C $HERE/to file2 || exit 1

ls en
echo separator
ls to
)
./same-order02.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2

mkdir en
mkdir to

HERE=`pwd`
tar -xf archive --same-order --warning=no-timestamp \
  -C $HERE/en file1 \
  -C $HERE/to file2 || exit 1

ls en
echo separator
ls to
)
48. same-order02.at:25:  ok


Append

49. append.at:21: testing append ...
./append.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
touch file1
          touch file2
          tar cf archive file1
          tar rf archive file2
          tar tf archive)
./append.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
touch file1
          touch file2
          tar cf archive file1
          tar rf archive file2
          tar tf archive)
./append.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
touch file1
          touch file2
          tar cf archive file1
          tar rf archive file2
          tar tf archive)
./append.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
touch file1
          touch file2
          tar cf archive file1
          tar rf archive file2
          tar tf archive)
./append.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
touch file1
          touch file2
          tar cf archive file1
          tar rf archive file2
          tar tf archive)
49. append.at:21:  ok

50. append01.at:29: testing appending files with long names ...
./append01.at:34:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar tf archive
)
./append01.at:34:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar tf archive
)
./append01.at:34:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar tf archive
)
./append01.at:34:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar tf archive
)
50. append01.at:29:  ok

51. append02.at:54: testing append vs. create ...
./append02.at:57:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

genfile --file file1
genfile --file file2

# Make sure file timestamps in the archive will not differ
MTIME="--mtime=@0"

# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test $TEST_TAR_FORMAT = posix; then
  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
fi

echo Creating archive.1
tar $MTIME -cf archive.1 file1 file2

echo Creating archive.2
tar $MTIME -cf archive.2 -T /dev/null
tar $MTIME -rf archive.2 file1
tar $MTIME -rf archive.2 file2

echo Comparing archives
cmp archive.1 archive.2
)
./append02.at:57:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --file file1
genfile --file file2

# Make sure file timestamps in the archive will not differ
MTIME="--mtime=@0"

# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test $TEST_TAR_FORMAT = posix; then
  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
fi

echo Creating archive.1
tar $MTIME -cf archive.1 file1 file2

echo Creating archive.2
tar $MTIME -cf archive.2 -T /dev/null
tar $MTIME -rf archive.2 file1
tar $MTIME -rf archive.2 file2

echo Comparing archives
cmp archive.1 archive.2
)
./append02.at:57:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile --file file1
genfile --file file2

# Make sure file timestamps in the archive will not differ
MTIME="--mtime=@0"

# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test $TEST_TAR_FORMAT = posix; then
  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
fi

echo Creating archive.1
tar $MTIME -cf archive.1 file1 file2

echo Creating archive.2
tar $MTIME -cf archive.2 -T /dev/null
tar $MTIME -rf archive.2 file1
tar $MTIME -rf archive.2 file2

echo Comparing archives
cmp archive.1 archive.2
)
./append02.at:57:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --file file1
genfile --file file2

# Make sure file timestamps in the archive will not differ
MTIME="--mtime=@0"

# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test $TEST_TAR_FORMAT = posix; then
  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
fi

echo Creating archive.1
tar $MTIME -cf archive.1 file1 file2

echo Creating archive.2
tar $MTIME -cf archive.2 -T /dev/null
tar $MTIME -rf archive.2 file1
tar $MTIME -rf archive.2 file2

echo Comparing archives
cmp archive.1 archive.2
)
./append02.at:57:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --file file1
genfile --file file2

# Make sure file timestamps in the archive will not differ
MTIME="--mtime=@0"

# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test $TEST_TAR_FORMAT = posix; then
  TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
fi

echo Creating archive.1
tar $MTIME -cf archive.1 file1 file2

echo Creating archive.2
tar $MTIME -cf archive.2 -T /dev/null
tar $MTIME -rf archive.2 file1
tar $MTIME -rf archive.2 file2

echo Comparing archives
cmp archive.1 archive.2
)
51. append02.at:54:  ok

52. append03.at:21: testing append with name transformation ...
./append03.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

genfile --file file.1
genfile --file file.2

tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)
./append03.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --file file.1
genfile --file file.2

tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)
./append03.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile --file file.1
genfile --file file.2

tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)
./append03.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --file file.1
genfile --file file.2

tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)
./append03.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --file file.1
genfile --file file.2

tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)
52. append03.at:21:  ok

53. append04.at:29: testing append with verify ...
./append04.at:32:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

# Create two empty files:
touch file1 file2

# Create an archive:
tar cpfW archive.tar file1 file2

# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3

# Append it to the already created archive:
tar rpfW archive.tar file3

# Verify content of the new archive:
tar -tf archive.tar
)
./append04.at:32:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

# Create two empty files:
touch file1 file2

# Create an archive:
tar cpfW archive.tar file1 file2

# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3

# Append it to the already created archive:
tar rpfW archive.tar file3

# Verify content of the new archive:
tar -tf archive.tar
)
./append04.at:32:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

# Create two empty files:
touch file1 file2

# Create an archive:
tar cpfW archive.tar file1 file2

# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3

# Append it to the already created archive:
tar rpfW archive.tar file3

# Verify content of the new archive:
tar -tf archive.tar
)
./append04.at:32:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

# Create two empty files:
touch file1 file2

# Create an archive:
tar cpfW archive.tar file1 file2

# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3

# Append it to the already created archive:
tar rpfW archive.tar file3

# Verify content of the new archive:
tar -tf archive.tar
)
./append04.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

# Create two empty files:
touch file1 file2

# Create an archive:
tar cpfW archive.tar file1 file2

# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3

# Append it to the already created archive:
tar rpfW archive.tar file3

# Verify content of the new archive:
tar -tf archive.tar
)
53. append04.at:29:  ok

54. append05.at:32: testing append after changed blocking ...
./append05.at:35:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

for f in a b c d e f g h i
do
  echo $f > $f
done

decho 'creating archive'
tar -cf archive -b1 a b c

tar tf archive

decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive

decho 'adding g h i'
tar -vrf archive -b5 g h i

decho 'resulting archive'
tar tf archive
)
./append05.at:35:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

for f in a b c d e f g h i
do
  echo $f > $f
done

decho 'creating archive'
tar -cf archive -b1 a b c

tar tf archive

decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive

decho 'adding g h i'
tar -vrf archive -b5 g h i

decho 'resulting archive'
tar tf archive
)
./append05.at:35:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

for f in a b c d e f g h i
do
  echo $f > $f
done

decho 'creating archive'
tar -cf archive -b1 a b c

tar tf archive

decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive

decho 'adding g h i'
tar -vrf archive -b5 g h i

decho 'resulting archive'
tar tf archive
)
./append05.at:35:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

for f in a b c d e f g h i
do
  echo $f > $f
done

decho 'creating archive'
tar -cf archive -b1 a b c

tar tf archive

decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive

decho 'adding g h i'
tar -vrf archive -b5 g h i

decho 'resulting archive'
tar tf archive
)
./append05.at:35:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

for f in a b c d e f g h i
do
  echo $f > $f
done

decho 'creating archive'
tar -cf archive -b1 a b c

tar tf archive

decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive

decho 'adding g h i'
tar -vrf archive -b5 g h i

decho 'resulting archive'
tar tf archive
)
54. append05.at:32:  ok


Transforms

55. xform-h.at:30: testing transforming hard links on create ...
./xform-h.at:39:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir basedir
echo "hello" > basedir/test
ln basedir/test basedir/test_link


echo "Default transform scope"
tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'


echo "Transforming hard links"
tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'


echo "Not transforming hard links"
tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'

)
./xform-h.at:39:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir basedir
echo "hello" > basedir/test
ln basedir/test basedir/test_link


echo "Default transform scope"
tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'


echo "Transforming hard links"
tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'


echo "Not transforming hard links"
tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'

)
./xform-h.at:39:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir basedir
echo "hello" > basedir/test
ln basedir/test basedir/test_link


echo "Default transform scope"
tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'


echo "Transforming hard links"
tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'


echo "Not transforming hard links"
tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'

)
./xform-h.at:39:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir basedir
echo "hello" > basedir/test
ln basedir/test basedir/test_link


echo "Default transform scope"
tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'


echo "Transforming hard links"
tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'


echo "Not transforming hard links"
tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'

)
./xform-h.at:39:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir basedir
echo "hello" > basedir/test
ln basedir/test basedir/test_link


echo "Default transform scope"
tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'


echo "Transforming hard links"
tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'


echo "Not transforming hard links"
tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'

)
55. xform-h.at:30:  ok

56. xform01.at:26: testing transformations and GNU volume labels ...
./xform01.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --file file
tar -cf archive.tar -V /label/ file
tar tf archive.tar
)
56. xform01.at:26:  ok

57. xform02.at:21: testing transforming escaped delimiters on create ...
./xform02.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

genfile --file file
tar cvf /dev/null file \
   --transform='s/file/other\/name/' \
   --show-transformed-name
)
./xform02.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --file file
tar cvf /dev/null file \
   --transform='s/file/other\/name/' \
   --show-transformed-name
)
./xform02.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile --file file
tar cvf /dev/null file \
   --transform='s/file/other\/name/' \
   --show-transformed-name
)
./xform02.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --file file
tar cvf /dev/null file \
   --transform='s/file/other\/name/' \
   --show-transformed-name
)
./xform02.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --file file
tar cvf /dev/null file \
   --transform='s/file/other\/name/' \
   --show-transformed-name
)
57. xform02.at:21:  ok

58. xform03.at:21: testing transforming hard link targets ...
./xform03.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir d
mkdir d/a
genfile --file d/a/b
dir=$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)
stderr:
./xform03.at:24: sed "/tar: Removing leading \`\/*\/' from/d" stderr
./xform03.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir d
mkdir d/a
genfile --file d/a/b
dir=$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)
stderr:
./xform03.at:24: sed "/tar: Removing leading \`\/*\/' from/d" stderr
./xform03.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir d
mkdir d/a
genfile --file d/a/b
dir=$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)
stderr:
./xform03.at:24: sed "/tar: Removing leading \`\/*\/' from/d" stderr
./xform03.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir d
mkdir d/a
genfile --file d/a/b
dir=$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)
stderr:
./xform03.at:24: sed "/tar: Removing leading \`\/*\/' from/d" stderr
./xform03.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir d
mkdir d/a
genfile --file d/a/b
dir=$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)
stderr:
./xform03.at:24: sed "/tar: Removing leading \`\/*\/' from/d" stderr
58. xform03.at:21:  ok


Exclude

59. exclude.at:23: testing exclude ...
./exclude.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


mkdir dir
echo blues > dir/blues
echo jazz > dir/jazz
mkdir dir/folk
echo tagfile > dir/folk/tagfile
echo sanjuan > dir/folk/sanjuan
mkdir dir/rock
echo "Signature: 8a477f597d28d172789f06886806bc55" > dir/rock/CACHEDIR.TAG
echo "test" > dir/rock/file

for option in exclude-caches exclude-caches-under exclude-caches-all
do
  echo OPTION $option
  tar -cf archive.tar --$option -v dir 2>err | sort
  cat err
  echo ARCHIVE
  tar tf archive.tar | sort
done

for option in exclude-tag exclude-tag-under exclude-tag-all
do
  echo OPTION $option
  tar -cf archive.tar --${option}=tagfile -v dir 2>err | sort
  cat err
  echo ARCHIVE
  tar tf archive.tar | sort
done
)
59. exclude.at:23:  ok

60. exclude01.at:19: testing exclude wildcards ...
./exclude01.at:22:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*

tar cf archive --exclude=testdir/dir1/\* \
               --no-wildcards \
               --exclude=testdir/dir2/\* \
               --wildcards \
               --exclude=testdir/dir3/\* \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive testdir
tar t "testdir/dir1/*" -f archive | sort

echo "NEXT"
tar cf archive testdir/dir1
tar t --no-wildcards "testdir/dir1/*" -f archive | sort

echo "NEXT"
tar cf archive testdir
tar t --wildcards "testdir/dir1/*" -f archive | sort

rm -rf testdir
)
./exclude01.at:22:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*

tar cf archive --exclude=testdir/dir1/\* \
               --no-wildcards \
               --exclude=testdir/dir2/\* \
               --wildcards \
               --exclude=testdir/dir3/\* \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive testdir
tar t "testdir/dir1/*" -f archive | sort

echo "NEXT"
tar cf archive testdir/dir1
tar t --no-wildcards "testdir/dir1/*" -f archive | sort

echo "NEXT"
tar cf archive testdir
tar t --wildcards "testdir/dir1/*" -f archive | sort

rm -rf testdir
)
./exclude01.at:22:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*

tar cf archive --exclude=testdir/dir1/\* \
               --no-wildcards \
               --exclude=testdir/dir2/\* \
               --wildcards \
               --exclude=testdir/dir3/\* \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive testdir
tar t "testdir/dir1/*" -f archive | sort

echo "NEXT"
tar cf archive testdir/dir1
tar t --no-wildcards "testdir/dir1/*" -f archive | sort

echo "NEXT"
tar cf archive testdir
tar t --wildcards "testdir/dir1/*" -f archive | sort

rm -rf testdir
)
./exclude01.at:22:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*

tar cf archive --exclude=testdir/dir1/\* \
               --no-wildcards \
               --exclude=testdir/dir2/\* \
               --wildcards \
               --exclude=testdir/dir3/\* \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive testdir
tar t "testdir/dir1/*" -f archive | sort

echo "NEXT"
tar cf archive testdir/dir1
tar t --no-wildcards "testdir/dir1/*" -f archive | sort

echo "NEXT"
tar cf archive testdir
tar t --wildcards "testdir/dir1/*" -f archive | sort

rm -rf testdir
)
./exclude01.at:22:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*

tar cf archive --exclude=testdir/dir1/\* \
               --no-wildcards \
               --exclude=testdir/dir2/\* \
               --wildcards \
               --exclude=testdir/dir3/\* \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive testdir
tar t "testdir/dir1/*" -f archive | sort

echo "NEXT"
tar cf archive testdir/dir1
tar t --no-wildcards "testdir/dir1/*" -f archive | sort

echo "NEXT"
tar cf archive testdir
tar t --wildcards "testdir/dir1/*" -f archive | sort

rm -rf testdir
)
60. exclude01.at:19:  ok

61. exclude02.at:19: testing exclude: anchoring ...
./exclude02.at:22:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2

tar cf archive --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 1"
tar cf archive --no-anchored \
               --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 2"
tar cf archive --anchored \
               --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 3"
tar cf archive testdir file1.txt
tar t "file1.txt" -f archive | sort

echo "SUB 4"
tar t --no-anchored "file1.txt" -f archive | sort

echo "SUB 5"
tar t --anchored "file1.txt" -f archive | sort

rm -rf testdir file1.txt

)
./exclude02.at:22:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2

tar cf archive --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 1"
tar cf archive --no-anchored \
               --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 2"
tar cf archive --anchored \
               --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 3"
tar cf archive testdir file1.txt
tar t "file1.txt" -f archive | sort

echo "SUB 4"
tar t --no-anchored "file1.txt" -f archive | sort

echo "SUB 5"
tar t --anchored "file1.txt" -f archive | sort

rm -rf testdir file1.txt

)
./exclude02.at:22:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2

tar cf archive --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 1"
tar cf archive --no-anchored \
               --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 2"
tar cf archive --anchored \
               --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 3"
tar cf archive testdir file1.txt
tar t "file1.txt" -f archive | sort

echo "SUB 4"
tar t --no-anchored "file1.txt" -f archive | sort

echo "SUB 5"
tar t --anchored "file1.txt" -f archive | sort

rm -rf testdir file1.txt

)
./exclude02.at:22:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2

tar cf archive --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 1"
tar cf archive --no-anchored \
               --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 2"
tar cf archive --anchored \
               --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 3"
tar cf archive testdir file1.txt
tar t "file1.txt" -f archive | sort

echo "SUB 4"
tar t --no-anchored "file1.txt" -f archive | sort

echo "SUB 5"
tar t --anchored "file1.txt" -f archive | sort

rm -rf testdir file1.txt

)
./exclude02.at:22:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2

tar cf archive --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 1"
tar cf archive --no-anchored \
               --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 2"
tar cf archive --anchored \
               --exclude="file1.txt" \
               testdir
tar tf archive | sort

echo "SUB 3"
tar cf archive testdir file1.txt
tar t "file1.txt" -f archive | sort

echo "SUB 4"
tar t --no-anchored "file1.txt" -f archive | sort

echo "SUB 5"
tar t --anchored "file1.txt" -f archive | sort

rm -rf testdir file1.txt

)
61. exclude02.at:19:  ok

62. exclude03.at:19: testing exclude: wildcards match slash ...
./exclude03.at:22:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\*f\*1
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*

tar cf archive --exclude='testdir*f*1' \
               --no-wildcards-match-slash \
               --exclude='testdir*f*2' \
               --wildcards-match-slash \
               --exclude='testdir*f*3' \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort

echo "NEXT"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort

echo "NEXT"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort

rm -rf testdir

)
./exclude03.at:22:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\*f\*1
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*

tar cf archive --exclude='testdir*f*1' \
               --no-wildcards-match-slash \
               --exclude='testdir*f*2' \
               --wildcards-match-slash \
               --exclude='testdir*f*3' \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort

echo "NEXT"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort

echo "NEXT"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort

rm -rf testdir

)
./exclude03.at:22:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\*f\*1
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*

tar cf archive --exclude='testdir*f*1' \
               --no-wildcards-match-slash \
               --exclude='testdir*f*2' \
               --wildcards-match-slash \
               --exclude='testdir*f*3' \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort

echo "NEXT"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort

echo "NEXT"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort

rm -rf testdir

)
./exclude03.at:22:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\*f\*1
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*

tar cf archive --exclude='testdir*f*1' \
               --no-wildcards-match-slash \
               --exclude='testdir*f*2' \
               --wildcards-match-slash \
               --exclude='testdir*f*3' \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort

echo "NEXT"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort

echo "NEXT"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort

rm -rf testdir

)
./exclude03.at:22:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\*f\*1
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*

tar cf archive --exclude='testdir*f*1' \
               --no-wildcards-match-slash \
               --exclude='testdir*f*2' \
               --wildcards-match-slash \
               --exclude='testdir*f*3' \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort

echo "NEXT"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort

echo "NEXT"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort

rm -rf testdir

)
62. exclude03.at:19:  ok

63. exclude04.at:19: testing exclude: case insensitive ...
./exclude04.at:22:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4

tar cf archive --exclude=FILE2 \
               --exclude=file1 \
               --ignore-case \
               --exclude=file3 \
               --no-ignore-case \
               --exclude=FILE2 \
               --exclude=file4 \
               testdir
tar tf archive | sort

echo "SUB 1"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort

echo "SUB 2"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort

echo "SUB 3"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort

rm -rf testdir

)
./exclude04.at:22:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4

tar cf archive --exclude=FILE2 \
               --exclude=file1 \
               --ignore-case \
               --exclude=file3 \
               --no-ignore-case \
               --exclude=FILE2 \
               --exclude=file4 \
               testdir
tar tf archive | sort

echo "SUB 1"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort

echo "SUB 2"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort

echo "SUB 3"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort

rm -rf testdir

)
./exclude04.at:22:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4

tar cf archive --exclude=FILE2 \
               --exclude=file1 \
               --ignore-case \
               --exclude=file3 \
               --no-ignore-case \
               --exclude=FILE2 \
               --exclude=file4 \
               testdir
tar tf archive | sort

echo "SUB 1"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort

echo "SUB 2"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort

echo "SUB 3"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort

rm -rf testdir

)
./exclude04.at:22:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4

tar cf archive --exclude=FILE2 \
               --exclude=file1 \
               --ignore-case \
               --exclude=file3 \
               --no-ignore-case \
               --exclude=FILE2 \
               --exclude=file4 \
               testdir
tar tf archive | sort

echo "SUB 1"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort

echo "SUB 2"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort

echo "SUB 3"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort

rm -rf testdir

)
./exclude04.at:22:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4

tar cf archive --exclude=FILE2 \
               --exclude=file1 \
               --ignore-case \
               --exclude=file3 \
               --no-ignore-case \
               --exclude=FILE2 \
               --exclude=file4 \
               testdir
tar tf archive | sort

echo "SUB 1"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort

echo "SUB 2"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort

echo "SUB 3"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort

rm -rf testdir

)
63. exclude04.at:19:  ok

64. exclude05.at:21: testing exclude: lots of excludes ...
./exclude05.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
 while read name
 do
   genfile --file $name
 done

awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile

tar cf archive --anchored --exclude-from=exclfile \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive --exclude-from=exclfile \
               testdir
tar tf archive | sort

rm -rf testdir exclfile

)
./exclude05.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
 while read name
 do
   genfile --file $name
 done

awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile

tar cf archive --anchored --exclude-from=exclfile \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive --exclude-from=exclfile \
               testdir
tar tf archive | sort

rm -rf testdir exclfile

)
./exclude05.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
 while read name
 do
   genfile --file $name
 done

awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile

tar cf archive --anchored --exclude-from=exclfile \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive --exclude-from=exclfile \
               testdir
tar tf archive | sort

rm -rf testdir exclfile

)
./exclude05.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
 while read name
 do
   genfile --file $name
 done

awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile

tar cf archive --anchored --exclude-from=exclfile \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive --exclude-from=exclfile \
               testdir
tar tf archive | sort

rm -rf testdir exclfile

)
./exclude05.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
 while read name
 do
   genfile --file $name
 done

awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile

tar cf archive --anchored --exclude-from=exclfile \
               testdir
tar tf archive | sort

echo "NEXT"
tar cf archive --exclude-from=exclfile \
               testdir
tar tf archive | sort

rm -rf testdir exclfile

)
64. exclude05.at:21:  ok

65. exclude06.at:26: testing exclude: long files in pax archives ...
./exclude06.at:31:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *


install-sh -d one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen >/dev/null  || exit 77
genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.txt
genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.c

tar cf archive.tar one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen
mkdir out
tar -C out -xf archive.tar --exclude='*.txt' --warning=no-timestamp
find out -type f
)
65. exclude06.at:26:  ok

66. exclude07.at:19: testing exclude: --exclude-backups option ...
./exclude07.at:22:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file "dir/.#file"
genfile --file "dir/#file#"

tar -v -c -f archive --exclude-backups dir
)
./exclude07.at:22:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file "dir/.#file"
genfile --file "dir/#file#"

tar -v -c -f archive --exclude-backups dir
)
./exclude07.at:22:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file "dir/.#file"
genfile --file "dir/#file#"

tar -v -c -f archive --exclude-backups dir
)
./exclude07.at:22:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file "dir/.#file"
genfile --file "dir/#file#"

tar -v -c -f archive --exclude-backups dir
)
./exclude07.at:22:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file "dir/.#file"
genfile --file "dir/#file#"

tar -v -c -f archive --exclude-backups dir
)
66. exclude07.at:19:  ok

67. exclude08.at:36: testing --exclude-tag option ...
./exclude08.at:39:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)
./exclude08.at:39:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)
./exclude08.at:39:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)
./exclude08.at:39:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)
./exclude08.at:39:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)
67. exclude08.at:36:  ok

68. exclude09.at:37: testing --exclude-tag option and --listed-incremental ...
./exclude09.at:40:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme --listed=snar -v etest | sort
)
68. exclude09.at:37:  ok

69. exclude10.at:38: testing --exclude-tag option in incremental pass ...
./exclude10.at:41:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
rm etest/subdir/excludeme
decho "# Level 0"
tar -c -f etest-0.tar --exclude-tag=excludeme --listed=snar-0 -v etest | sort
touch etest/subdir/excludeme
touch etest/subdir/otherfile

decho "# Level 1"
cp snar-0 snar-1
tar -c -f etest-1.tar --exclude-tag=excludeme --listed=snar-1 -v etest | sort
)
69. exclude10.at:38:  ok

70. exclude11.at:36: testing --exclude-tag-under option ...
./exclude11.at:39:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)
./exclude11.at:39:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)
./exclude11.at:39:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)
./exclude11.at:39:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)
./exclude11.at:39:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)
70. exclude11.at:36:  ok

71. exclude12.at:37: testing --exclude-tag-under and --listed-incremental ...
./exclude12.at:40:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme --listed=snar -v etest | sort
)
71. exclude12.at:37:  ok

72. exclude13.at:39: testing --exclude-tag-under option in incremental pass ...
./exclude13.at:42:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
rm etest/subdir/excludeme
decho "# Level 0"
tar -c -f etest-0.tar --exclude-tag-under=excludeme --listed=snar-0 -v etest | sort
touch etest/subdir/excludeme
touch etest/subdir/otherfile

decho "# Level 1"
cp snar-0 snar-1
tar -c -f etest-1.tar --exclude-tag-under=excludeme --listed=snar-1 -v etest | sort
)
72. exclude13.at:39:  ok

73. exclude14.at:36: testing --exclude-tag-all option ...
./exclude14.at:39:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)
./exclude14.at:39:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)
./exclude14.at:39:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)
./exclude14.at:39:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)
./exclude14.at:39:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)
73. exclude14.at:36:  ok

74. exclude15.at:36: testing --exclude-tag-all and --listed-incremental ...
./exclude15.at:39:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme --listed=snar -v etest | sort
)
74. exclude15.at:36:  ok

75. exclude16.at:38: testing --exclude-tag-all option in incremental pass ...
./exclude16.at:41:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkexcltest etest
rm etest/subdir/excludeme
decho "# Level 0"
tar -c -f etest-0.tar --exclude-tag-all=excludeme --listed=snar-0 -v etest | sort
touch etest/subdir/excludeme
touch etest/subdir/otherfile

decho "# Level 1"
cp snar-0 snar-1
tar -c -f etest-1.tar --exclude-tag-all=excludeme --listed=snar-1 -v etest | sort
)
75. exclude16.at:38:  ok


Deletions

76. delete01.at:23: testing deleting a member after a big one ...
./delete01.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar f archive --delete file2
tar tf archive)
./delete01.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar f archive --delete file2
tar tf archive)
./delete01.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar f archive --delete file2
tar tf archive)
./delete01.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar f archive --delete file2
tar tf archive)
./delete01.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar f archive --delete file2
tar tf archive)
76. delete01.at:23:  ok

77. delete02.at:23: testing deleting a member from stdin archive ...
./delete02.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2)
./delete02.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2)
./delete02.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2)
./delete02.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2)
./delete02.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2)
77. delete02.at:23:  ok

78. delete03.at:21: testing deleting members with long names ...
./delete03.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
rm -f $prefix*
for i in 1 2 3 4 5 6 7 8 9
do touch $prefix$i
done
tar -cf archive ./$prefix* &&
 tar --delete -f archive ./${prefix}5 &&
 tar -tf archive
)
./delete03.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
rm -f $prefix*
for i in 1 2 3 4 5 6 7 8 9
do touch $prefix$i
done
tar -cf archive ./$prefix* &&
 tar --delete -f archive ./${prefix}5 &&
 tar -tf archive
)
./delete03.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
rm -f $prefix*
for i in 1 2 3 4 5 6 7 8 9
do touch $prefix$i
done
tar -cf archive ./$prefix* &&
 tar --delete -f archive ./${prefix}5 &&
 tar -tf archive
)
78. delete03.at:21:  ok

79. delete04.at:23: testing deleting a large last member ...
./delete04.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

genfile -l      3 -f file1
genfile -l      5 -f file2
genfile -l      3 -f file3
genfile -l      6 -f file4
genfile -l     24 -f file5
genfile -l     13 -f file6
genfile -l   1385 -f file7
genfile -l     30 -f file8
genfile -l     10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)
./delete04.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile -l      3 -f file1
genfile -l      5 -f file2
genfile -l      3 -f file3
genfile -l      6 -f file4
genfile -l     24 -f file5
genfile -l     13 -f file6
genfile -l   1385 -f file7
genfile -l     30 -f file8
genfile -l     10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)
./delete04.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile -l      3 -f file1
genfile -l      5 -f file2
genfile -l      3 -f file3
genfile -l      6 -f file4
genfile -l     24 -f file5
genfile -l     13 -f file6
genfile -l   1385 -f file7
genfile -l     30 -f file8
genfile -l     10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)
./delete04.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile -l      3 -f file1
genfile -l      5 -f file2
genfile -l      3 -f file3
genfile -l      6 -f file4
genfile -l     24 -f file5
genfile -l     13 -f file6
genfile -l   1385 -f file7
genfile -l     30 -f file8
genfile -l     10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)
./delete04.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile -l      3 -f file1
genfile -l      5 -f file2
genfile -l      3 -f file3
genfile -l      6 -f file4
genfile -l     24 -f file5
genfile -l     13 -f file6
genfile -l   1385 -f file7
genfile -l     30 -f file8
genfile -l     10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)
79. delete04.at:23:  ok

80. delete05.at:27: testing deleting non-existing member ...
./delete05.at:30:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

genfile -l 1024 -f en
genfile -l 1024 -f to

tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)
./delete05.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile -l 1024 -f en
genfile -l 1024 -f to

tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)
./delete05.at:30:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile -l 1024 -f en
genfile -l 1024 -f to

tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)
./delete05.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile -l 1024 -f en
genfile -l 1024 -f to

tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)
./delete05.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile -l 1024 -f en
genfile -l 1024 -f to

tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)
80. delete05.at:27:  ok


Extracting

81. extrac01.at:23: testing extract over an existing directory ...
./extrac01.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)
./extrac01.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)
./extrac01.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)
./extrac01.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)
./extrac01.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)
81. extrac01.at:23:  ok

82. extrac02.at:23: testing extracting symlinks over an existing file ...
./extrac02.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)
./extrac02.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)
./extrac02.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)
./extrac02.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)
./extrac02.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)
82. extrac02.at:23:  ok

83. extrac03.at:23: testing extraction loops ...
./extrac03.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)
./extrac03.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)
./extrac03.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)
./extrac03.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)
./extrac03.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)
83. extrac03.at:23:  ok

84. extrac04.at:23: testing extract + fnmatch ...
./extrac04.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \
  --exclude='./*1' \
  --exclude='d*/*1' \
  --exclude='d*/s*/*2' | sort
)
./extrac04.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \
  --exclude='./*1' \
  --exclude='d*/*1' \
  --exclude='d*/s*/*2' | sort
)
./extrac04.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \
  --exclude='./*1' \
  --exclude='d*/*1' \
  --exclude='d*/s*/*2' | sort
)
./extrac04.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \
  --exclude='./*1' \
  --exclude='d*/*1' \
  --exclude='d*/s*/*2' | sort
)
./extrac04.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \
  --exclude='./*1' \
  --exclude='d*/*1' \
  --exclude='d*/s*/*2' | sort
)
84. extrac04.at:23:  ok

85. extrac05.at:30: testing extracting selected members from pax ...
./extrac05.at:38:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL || exit 77
genfile --length 118 --file jeden
genfile --length 223 --file dwa
genfile --length 517 --file trzy
genfile --length 110 --file cztery

tar cf archive jeden dwa trzy cztery || exit 1

mkdir dir
cd dir

tar xvfT ../archive ../../list --warning=no-timestamp || exit 1

cd ..
)
85. extrac05.at:30:  ok

86. extrac06.at:34: testing mode of extracted directories ...
./extrac06.at:37:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


# Force umask
umask 022

# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"

# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory

# Archive it
tar cf arc directory

# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory

# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory

tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory

# After both restores, the directory mode should be 755
)
./extrac06.at:37:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


# Force umask
umask 022

# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"

# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory

# Archive it
tar cf arc directory

# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory

# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory

tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory

# After both restores, the directory mode should be 755
)
./extrac06.at:37:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


# Force umask
umask 022

# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"

# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory

# Archive it
tar cf arc directory

# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory

# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory

tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory

# After both restores, the directory mode should be 755
)
./extrac06.at:37:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


# Force umask
umask 022

# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"

# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory

# Archive it
tar cf arc directory

# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory

# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory

tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory

# After both restores, the directory mode should be 755
)
./extrac06.at:37:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


# Force umask
umask 022

# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"

# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory

# Archive it
tar cf arc directory

# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory

# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory

tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory

# After both restores, the directory mode should be 755
)
86. extrac06.at:34:  ok

87. extrac07.at:27: testing extracting symlinks to a read-only dir ...
./extrac07.at:30:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


echo Prepare the directory
mkdir dir
genfile -f foo
cd dir
ln -s ../foo .
cd ..
chmod a-w dir

echo Create the archive
tar cf archive dir || exit 1

chmod +w dir

echo Extract
mkdir out
tar -C out -xvf archive
)
87. extrac07.at:27:  ok

88. extrac08.at:33: testing restoring mode on existing directory ...
./extrac08.at:36:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)
./extrac08.at:36:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)
./extrac08.at:36:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)
./extrac08.at:36:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)
./extrac08.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)
88. extrac08.at:33:  ok

89. extrac09.at:34: testing extracting even when . and .. are unreadable ...
./extrac09.at:37:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


mkdir dir
mkdir dir/sub
mkdir dir/sub/extract
genfile --file dir/sub/f
cd dir/sub

tar -cf archive.tar f

chmod a-r . ..
tar -xvf archive.tar -C extract f
status=$?
chmod a+r . ..
cmp f extract/f || status=$?
exit $status
)
89. extrac09.at:34:  ok

90. extrac10.at:29: testing -C and delayed setting of metadata ...
./extrac10.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir d x x/y
echo foo >d/d1
echo bar >e

tar -cf archive.tar d e &&
tar -xf archive.tar -C x d -C y e &&
diff -r d x/d &&
diff e x/y/e
)
90. extrac10.at:29:  ok

91. extrac11.at:25: testing scarce file descriptors ...
./extrac11.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

exec </dev/null
dirs='a
      a/b
      a/b/c
      a/b/c/d
      a/b/c/d/e
      a/b/c/d/e/f
      a/b/c/d/e/f/g
      a/b/c/d/e/f/g/h
      a/b/c/d/e/f/g/h/i
      a/b/c/d/e/f/g/h/i/j
      a/b/c/d/e/f/g/h/i/j/k
'
files=
mkdir $dirs dest1 dest2 dest3 || exit
for dir in $dirs; do
  for file in X Y Z; do
    echo $file >$dir/$file || exit
    files="$files $file"
  done
done

# Check that "ulimit" itself works.  Close file descriptors before
# invoking ulimit, to work around a bug (or a "feature") in some shells,
# where they squirrel away dups of file descriptors into FD 10 and up
# before closing the originals.
( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
   ulimit -n 100 &&
   tar -cf archive1.tar a &&
   tar -xf archive1.tar -C dest1 a
  ) &&
  diff -r a dest1/a
) >/dev/null 2>&1 ||
   exit 77

# Another test that "ulimit" itself works:
# tar should fail when completely starved of file descriptors.
( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
   ulimit -n 4 &&
   tar -cf archive2.tar a &&
   tar -xf archive2.tar -C dest2 a
  ) &&
  diff -r a dest2/a
) >/dev/null 2>&1 &&
   exit 77

# Test if it is possible to limit the number of file descriptors to 10.
( ulimit -n 10 ) >/dev/null 2>&1 || exit 77

# Tar should work when there are few, but enough, file descriptors.
( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
   ulimit -n 10 &&
   tar -cf archive3.tar a &&
   tar -xf archive3.tar -C dest3 a
  ) &&
  diff -r a dest3/a >/dev/null 2>&1
) || { diff -r a dest3/a; exit 1; }
)
91. extrac11.at:25:  ok

92. extrac12.at:25: testing extract dot permissions ...
./extrac12.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir src dst
echo file1 >src/file1
echo file2 >src/file2
chmod a-w src

tar --no-recursion -cf archive.tar -C src . ./file1 file2 &&
tar -xf archive.tar -C dst &&
cmp src/file1 dst/file1 &&
cmp src/file2 dst/file2
)
92. extrac12.at:25:  ok

93. extrac13.at:26: testing extract over symlinks ...
./extrac13.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir src dst1 dst2 dst3
echo file1 >src/file1
ln -s target1 dst1/file1
echo target1 >dst1/target1
echo target1 >target1

tar -cf archive.tar -C src . &&
tar -xf archive.tar -C dst1 --warning=no-timestamp &&
diff src/file1 dst1/file1 &&
diff target1 dst1/target1

ln -s target1 dst2/file1
echo target1 >dst2/target1
tar --overwrite -xf archive.tar -C dst2 --warning=no-timestamp &&
diff src/file1 dst2/file1 &&
diff target1 dst2/target1

ln -s target1 dst3/file1
echo target1 >dst3/target1
tar --overwrite -xhf archive.tar -C dst3 --warning=no-timestamp &&
diff src/file1 dst3/file1 &&
diff src/file1 dst3/target1
)
93. extrac13.at:26:  ok

94. extrac14.at:25: testing extract -C symlink ...
./extrac14.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir dest
ln -s dest symlink
echo foo >foo
tar -cf archive.tar foo &&
tar -xf archive.tar -C symlink --warning=no-timestamp &&
cmp foo dest/foo
)
94. extrac14.at:25:  ok

95. extrac15.at:25: testing extract parent mkdir failure ...
./extrac15.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


mkdir src src/a src/a/b dest dest/a
touch src/a/b/c
chmod a-w dest/a

tar -cf archive.tar -C src a/b/c &&
if tar -xf archive.tar -C dest a/b/c
then (exit 1)
else (exit 0)
fi
)
95. extrac15.at:25:  ok

96. extrac16.at:26: testing extract empty directory with -C ...
./extrac16.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir src src/a src/a/b dest
touch src/a/c

tar -cf archive.tar -C src a &&
tar -xf archive.tar -C dest
)
96. extrac16.at:26:  ok

97. extrac17.at:21: testing name matching/transformation ordering ...
./extrac17.at:34:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2

tar cf dir.tar dir

tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
  dir/subdir1/
)
./extrac17.at:34:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2

tar cf dir.tar dir

tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
  dir/subdir1/
)
./extrac17.at:34:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2

tar cf dir.tar dir

tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
  dir/subdir1/
)
./extrac17.at:34:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2

tar cf dir.tar dir

tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
  dir/subdir1/
)
./extrac17.at:34:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2

tar cf dir.tar dir

tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
  dir/subdir1/
)
97. extrac17.at:21:  ok

98. extrac18.at:34: testing keep-old-files ...
./extrac18.at:37:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b

tar cf ../archive .

rm b
echo 'File a' > a

tar -x -k -f ../archive
echo status=$?

cat a
)
./extrac18.at:37:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b

tar cf ../archive .

rm b
echo 'File a' > a

tar -x -k -f ../archive
echo status=$?

cat a
)
./extrac18.at:37:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b

tar cf ../archive .

rm b
echo 'File a' > a

tar -x -k -f ../archive
echo status=$?

cat a
)
./extrac18.at:37:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b

tar cf ../archive .

rm b
echo 'File a' > a

tar -x -k -f ../archive
echo status=$?

cat a
)
./extrac18.at:37:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b

tar cf ../archive .

rm b
echo 'File a' > a

tar -x -k -f ../archive
echo status=$?

cat a
)
98. extrac18.at:34:  ok

99. extrac19.at:21: testing skip-old-files ...
./extrac19.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b

tar cf ../archive .

rm b
echo 'File a' > a

tar -x --skip-old-files -f ../archive
echo status=$?

cat a
)
./extrac19.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b

tar cf ../archive .

rm b
echo 'File a' > a

tar -x --skip-old-files -f ../archive
echo status=$?

cat a
)
./extrac19.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b

tar cf ../archive .

rm b
echo 'File a' > a

tar -x --skip-old-files -f ../archive
echo status=$?

cat a
)
./extrac19.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b

tar cf ../archive .

rm b
echo 'File a' > a

tar -x --skip-old-files -f ../archive
echo status=$?

cat a
)
./extrac19.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b

tar cf ../archive .

rm b
echo 'File a' > a

tar -x --skip-old-files -f ../archive
echo status=$?

cat a
)
99. extrac19.at:21:  ok

100. extrac20.at:21: testing keep-directory-symlink ...
./extrac20.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


for i in a b c
do
  dir=in$i
  mkdir -p $dir/root/dir $dir/root/dirsymlink
  touch $dir/root/dirsymlink/file$i
  test $i != a && touch $dir/root/dirsymlink/file.conflict
  tar cf archive$i.tar -C $dir root
done

prep()
{
  echo "== $1 =="
  echo "== $1 ==" >&2
  backup_dir=$1
  dir=out
  mkdir -p $dir/root/dir
  ln -s dir $dir/root/dirsymlink
  test $round = normal && cd $dir >/dev/null
}

clean()
{
  test $round = normal && cd .. >/dev/null
  find $dir | sort
  mv $dir $backup_dir
}

# Expand to '-f ../$1' or '-f $1 -C $dir' depending on $round variable
file_spec()
{
  if test $round = normal
  then
    echo "-f ../$1"
  else
    echo "-f $1 -C $dir"
  fi
}

for round in normal dir
do
  # Check that 'dirsymlink' replaces 'dir'
  prep without_option_$round
  tar -x `file_spec archivea.tar` || exit 1
  tar -x `file_spec archiveb.tar` || exit 1
  clean

  # Keep directory symlink must keep root/dirsymlink
  prep with_option_$round
  tar -x --keep-directory-symlink `file_spec archivea.tar` || exit 1
  tar -x --keep-directory-symlink `file_spec archiveb.tar` || exit 1
  clean

  prep collision_$round
  tar -x --keep-directory-symlink `file_spec archivea.tar` --keep-old-files || exit 1
  tar -x --keep-directory-symlink `file_spec archiveb.tar` --keep-old-files || exit 1
  tar -x --keep-directory-symlink `file_spec archivec.tar` --keep-old-files && exit 1
  clean
done
)
./extrac20.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


for i in a b c
do
  dir=in$i
  mkdir -p $dir/root/dir $dir/root/dirsymlink
  touch $dir/root/dirsymlink/file$i
  test $i != a && touch $dir/root/dirsymlink/file.conflict
  tar cf archive$i.tar -C $dir root
done

prep()
{
  echo "== $1 =="
  echo "== $1 ==" >&2
  backup_dir=$1
  dir=out
  mkdir -p $dir/root/dir
  ln -s dir $dir/root/dirsymlink
  test $round = normal && cd $dir >/dev/null
}

clean()
{
  test $round = normal && cd .. >/dev/null
  find $dir | sort
  mv $dir $backup_dir
}

# Expand to '-f ../$1' or '-f $1 -C $dir' depending on $round variable
file_spec()
{
  if test $round = normal
  then
    echo "-f ../$1"
  else
    echo "-f $1 -C $dir"
  fi
}

for round in normal dir
do
  # Check that 'dirsymlink' replaces 'dir'
  prep without_option_$round
  tar -x `file_spec archivea.tar` || exit 1
  tar -x `file_spec archiveb.tar` || exit 1
  clean

  # Keep directory symlink must keep root/dirsymlink
  prep with_option_$round
  tar -x --keep-directory-symlink `file_spec archivea.tar` || exit 1
  tar -x --keep-directory-symlink `file_spec archiveb.tar` || exit 1
  clean

  prep collision_$round
  tar -x --keep-directory-symlink `file_spec archivea.tar` --keep-old-files || exit 1
  tar -x --keep-directory-symlink `file_spec archiveb.tar` --keep-old-files || exit 1
  tar -x --keep-directory-symlink `file_spec archivec.tar` --keep-old-files && exit 1
  clean
done
)
./extrac20.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


for i in a b c
do
  dir=in$i
  mkdir -p $dir/root/dir $dir/root/dirsymlink
  touch $dir/root/dirsymlink/file$i
  test $i != a && touch $dir/root/dirsymlink/file.conflict
  tar cf archive$i.tar -C $dir root
done

prep()
{
  echo "== $1 =="
  echo "== $1 ==" >&2
  backup_dir=$1
  dir=out
  mkdir -p $dir/root/dir
  ln -s dir $dir/root/dirsymlink
  test $round = normal && cd $dir >/dev/null
}

clean()
{
  test $round = normal && cd .. >/dev/null
  find $dir | sort
  mv $dir $backup_dir
}

# Expand to '-f ../$1' or '-f $1 -C $dir' depending on $round variable
file_spec()
{
  if test $round = normal
  then
    echo "-f ../$1"
  else
    echo "-f $1 -C $dir"
  fi
}

for round in normal dir
do
  # Check that 'dirsymlink' replaces 'dir'
  prep without_option_$round
  tar -x `file_spec archivea.tar` || exit 1
  tar -x `file_spec archiveb.tar` || exit 1
  clean

  # Keep directory symlink must keep root/dirsymlink
  prep with_option_$round
  tar -x --keep-directory-symlink `file_spec archivea.tar` || exit 1
  tar -x --keep-directory-symlink `file_spec archiveb.tar` || exit 1
  clean

  prep collision_$round
  tar -x --keep-directory-symlink `file_spec archivea.tar` --keep-old-files || exit 1
  tar -x --keep-directory-symlink `file_spec archiveb.tar` --keep-old-files || exit 1
  tar -x --keep-directory-symlink `file_spec archivec.tar` --keep-old-files && exit 1
  clean
done
)
./extrac20.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


for i in a b c
do
  dir=in$i
  mkdir -p $dir/root/dir $dir/root/dirsymlink
  touch $dir/root/dirsymlink/file$i
  test $i != a && touch $dir/root/dirsymlink/file.conflict
  tar cf archive$i.tar -C $dir root
done

prep()
{
  echo "== $1 =="
  echo "== $1 ==" >&2
  backup_dir=$1
  dir=out
  mkdir -p $dir/root/dir
  ln -s dir $dir/root/dirsymlink
  test $round = normal && cd $dir >/dev/null
}

clean()
{
  test $round = normal && cd .. >/dev/null
  find $dir | sort
  mv $dir $backup_dir
}

# Expand to '-f ../$1' or '-f $1 -C $dir' depending on $round variable
file_spec()
{
  if test $round = normal
  then
    echo "-f ../$1"
  else
    echo "-f $1 -C $dir"
  fi
}

for round in normal dir
do
  # Check that 'dirsymlink' replaces 'dir'
  prep without_option_$round
  tar -x `file_spec archivea.tar` || exit 1
  tar -x `file_spec archiveb.tar` || exit 1
  clean

  # Keep directory symlink must keep root/dirsymlink
  prep with_option_$round
  tar -x --keep-directory-symlink `file_spec archivea.tar` || exit 1
  tar -x --keep-directory-symlink `file_spec archiveb.tar` || exit 1
  clean

  prep collision_$round
  tar -x --keep-directory-symlink `file_spec archivea.tar` --keep-old-files || exit 1
  tar -x --keep-directory-symlink `file_spec archiveb.tar` --keep-old-files || exit 1
  tar -x --keep-directory-symlink `file_spec archivec.tar` --keep-old-files && exit 1
  clean
done
)
./extrac20.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


for i in a b c
do
  dir=in$i
  mkdir -p $dir/root/dir $dir/root/dirsymlink
  touch $dir/root/dirsymlink/file$i
  test $i != a && touch $dir/root/dirsymlink/file.conflict
  tar cf archive$i.tar -C $dir root
done

prep()
{
  echo "== $1 =="
  echo "== $1 ==" >&2
  backup_dir=$1
  dir=out
  mkdir -p $dir/root/dir
  ln -s dir $dir/root/dirsymlink
  test $round = normal && cd $dir >/dev/null
}

clean()
{
  test $round = normal && cd .. >/dev/null
  find $dir | sort
  mv $dir $backup_dir
}

# Expand to '-f ../$1' or '-f $1 -C $dir' depending on $round variable
file_spec()
{
  if test $round = normal
  then
    echo "-f ../$1"
  else
    echo "-f $1 -C $dir"
  fi
}

for round in normal dir
do
  # Check that 'dirsymlink' replaces 'dir'
  prep without_option_$round
  tar -x `file_spec archivea.tar` || exit 1
  tar -x `file_spec archiveb.tar` || exit 1
  clean

  # Keep directory symlink must keep root/dirsymlink
  prep with_option_$round
  tar -x --keep-directory-symlink `file_spec archivea.tar` || exit 1
  tar -x --keep-directory-symlink `file_spec archiveb.tar` || exit 1
  clean

  prep collision_$round
  tar -x --keep-directory-symlink `file_spec archivea.tar` --keep-old-files || exit 1
  tar -x --keep-directory-symlink `file_spec archiveb.tar` --keep-old-files || exit 1
  tar -x --keep-directory-symlink `file_spec archivec.tar` --keep-old-files && exit 1
  clean
done
)
100. extrac20.at:21:  ok

101. extrac21.at:31: testing delay-directory-restore ...
./extrac21.at:33:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


mkdir a a/b a/c
genfile --file a/b/D
genfile --file a/c/A
cd a/b
ln -sf ../c/A
cd ../..
chmod a-w a/b
tar --no-recurs -c -f A.tar a a/b a/b/D a/c a/b/A a/c/A
mkdir out
tar -C out -v -x -f A.tar --delay-directory-restore
)
101. extrac21.at:31:  ok

102. extrac22.at:19: testing delay-directory-restore on reversed ordering ...
./extrac22.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir t
(cd t
 genfile --length 100 --file data1
 mkdir dir1
 cp data1 dir1
 mkdir dir2
 cd dir2
 ln -s ../dir1/data1 data2
 cd ..
 chmod -w dir2)

cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF


tar -C t -c -f a.tar --no-recursion -T filelist

mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)
./extrac22.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir t
(cd t
 genfile --length 100 --file data1
 mkdir dir1
 cp data1 dir1
 mkdir dir2
 cd dir2
 ln -s ../dir1/data1 data2
 cd ..
 chmod -w dir2)

cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF


tar -C t -c -f a.tar --no-recursion -T filelist

mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)
./extrac22.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir t
(cd t
 genfile --length 100 --file data1
 mkdir dir1
 cp data1 dir1
 mkdir dir2
 cd dir2
 ln -s ../dir1/data1 data2
 cd ..
 chmod -w dir2)

cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF


tar -C t -c -f a.tar --no-recursion -T filelist

mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)
./extrac22.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir t
(cd t
 genfile --length 100 --file data1
 mkdir dir1
 cp data1 dir1
 mkdir dir2
 cd dir2
 ln -s ../dir1/data1 data2
 cd ..
 chmod -w dir2)

cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF


tar -C t -c -f a.tar --no-recursion -T filelist

mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)
./extrac22.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir t
(cd t
 genfile --length 100 --file data1
 mkdir dir1
 cp data1 dir1
 mkdir dir2
 cd dir2
 ln -s ../dir1/data1 data2
 cd ..
 chmod -w dir2)

cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF


tar -C t -c -f a.tar --no-recursion -T filelist

mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)
102. extrac22.at:19:  ok

103. extrac23.at:18: testing --no-overwrite-dir ...
./extrac23.at:32:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir

# Test if temprorary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)
./extrac23.at:32:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir

# Test if temprorary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)
./extrac23.at:32:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir

# Test if temprorary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)
./extrac23.at:32:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir

# Test if temprorary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)
./extrac23.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir

# Test if temprorary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)
103. extrac23.at:18:  ok

104. extrac24.at:18: testing --to-stdout ...
./extrac24.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)
./extrac24.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)
./extrac24.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)
./extrac24.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)
./extrac24.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)
104. extrac24.at:18:  ok

105. backup01.at:33: testing extracting existing dir with --backup ...
./backup01.at:36:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)
./backup01.at:36:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)
./backup01.at:36:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)
./backup01.at:36:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)
./backup01.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)
105. backup01.at:33:  ok


Comparing

106. difflink.at:17: testing link mismatch ...
./difflink.at:19:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir a
genfile -f a/x
ln -s x a/y
ln a/x a/z
tar cf a.tar a/x a/y a/z
rm a/z
ln -s x a/z
tar df a.tar
)
106. difflink.at:17:  ok


Volume label operations

107. label01.at:21: testing single-volume label ...
./label01.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --file foo
genfile --file bar
tar -cf archive --label=Test foo bar
tar tf archive
)
./label01.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --file foo
genfile --file bar
tar -cf archive --label=Test foo bar
tar tf archive
)
./label01.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --file foo
genfile --file bar
tar -cf archive --label=Test foo bar
tar tf archive
)
107. label01.at:21:  ok

108. label02.at:21: testing multi-volume label ...
./label02.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --length 0 --file foo
genfile --length 12288 --file bar
genfile --length 12288 --file baz
tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
)
./label02.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --length 0 --file foo
genfile --length 12288 --file bar
genfile --length 12288 --file baz
tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
)
./label02.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --length 0 --file foo
genfile --length 12288 --file bar
genfile --length 12288 --file baz
tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
)
108. label02.at:21:  ok

109. label03.at:27: testing test-label option ...
./label03.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --file file
tar -c --label='iamalabel' --file iamanarchive file
tar -c --file unlabeled.tar file
decho "# Display label"
tar --test-label --file=iamanarchive; echo $?
decho "# Display label: unlabeled"
tar --test-label --file=unlabeled.tar; echo $?
decho "# Test label: success"
tar --test-label --file=iamanarchive 'iamalabel'; echo $?
decho "# Test label: failure"
tar --test-label --file=iamanarchive 'amalabel'; echo $?
decho "# Test label: unlabeled"
tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
decho "# Test label, verbose: success"
tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
decho "# Test label, verbose: failure"
tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
decho "# Test label: multiple arguments"
tar --test-label --file=iamanarchive a iamalabel b; echo $?
decho "# Test label: wildcards"
tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
)
./label03.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --file file
tar -c --label='iamalabel' --file iamanarchive file
tar -c --file unlabeled.tar file
decho "# Display label"
tar --test-label --file=iamanarchive; echo $?
decho "# Display label: unlabeled"
tar --test-label --file=unlabeled.tar; echo $?
decho "# Test label: success"
tar --test-label --file=iamanarchive 'iamalabel'; echo $?
decho "# Test label: failure"
tar --test-label --file=iamanarchive 'amalabel'; echo $?
decho "# Test label: unlabeled"
tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
decho "# Test label, verbose: success"
tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
decho "# Test label, verbose: failure"
tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
decho "# Test label: multiple arguments"
tar --test-label --file=iamanarchive a iamalabel b; echo $?
decho "# Test label: wildcards"
tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
)
./label03.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --file file
tar -c --label='iamalabel' --file iamanarchive file
tar -c --file unlabeled.tar file
decho "# Display label"
tar --test-label --file=iamanarchive; echo $?
decho "# Display label: unlabeled"
tar --test-label --file=unlabeled.tar; echo $?
decho "# Test label: success"
tar --test-label --file=iamanarchive 'iamalabel'; echo $?
decho "# Test label: failure"
tar --test-label --file=iamanarchive 'amalabel'; echo $?
decho "# Test label: unlabeled"
tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
decho "# Test label, verbose: success"
tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
decho "# Test label, verbose: failure"
tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
decho "# Test label: multiple arguments"
tar --test-label --file=iamanarchive a iamalabel b; echo $?
decho "# Test label: wildcards"
tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
)
109. label03.at:27:  ok

110. label04.at:27: testing label with non-create option ...
./label04.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --file file
decho "# Create volume"
tar -c -f archive --label='New volume' file
decho "# Update: wrong label"
tar -rf archive --label='My volume' file; echo $?
decho "# Update: right label"
tar -rf archive --label='New volume' file
)
./label04.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --file file
decho "# Create volume"
tar -c -f archive --label='New volume' file
decho "# Update: wrong label"
tar -rf archive --label='My volume' file; echo $?
decho "# Update: right label"
tar -rf archive --label='New volume' file
)
./label04.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --file file
decho "# Create volume"
tar -c -f archive --label='New volume' file
decho "# Update: wrong label"
tar -rf archive --label='My volume' file; echo $?
decho "# Update: right label"
tar -rf archive --label='New volume' file
)
110. label04.at:27:  ok

111. label05.at:24: testing label with non-create option ...
./label05.at:27:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --file file
decho "# Create volume"
tar -c -f archive file
decho "# Update: wrong label"
tar -rf archive --label='My volume' file; echo $?
decho "# Update: right label"
tar -rf archive file
)
./label05.at:27:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --file file
decho "# Create volume"
tar -c -f archive file
decho "# Update: wrong label"
tar -rf archive --label='My volume' file; echo $?
decho "# Update: right label"
tar -rf archive file
)
./label05.at:27:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --file file
decho "# Create volume"
tar -c -f archive file
decho "# Update: wrong label"
tar -rf archive --label='My volume' file; echo $?
decho "# Update: right label"
tar -rf archive file
)
111. label05.at:24:  ok


Incremental archives

112. incremental.at:23: testing incremental ...
./incremental.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

mkdir structure
echo x >structure/file

# On Nextstep (and perhaps other 4.3BSD systems),
# a newly created file's ctime isn't updated
# until the next sync or stat operation on the file.
ls -l structure/file >/dev/null

# If the time of an initial backup and the creation time of a file contained
# in that backup are the same, the file will be backed up again when an
# incremental backup is done, because the incremental backup backs up
# files created "on or after" the initial backup time.  Without the sleep
# command, behaviour of tar becomes variable, depending whether the system
# clock ticked over to the next second between creating the file and
# backing it up.
sleep 1

tar cf archive --listed=list structure
tar cfv archive --listed=list structure
echo separator
# ReiserFS often offsets the timestamps of newly created files
# 1 second to the past.  Try to compensate for it, until a better
# solution is found.
sleep 2
echo y >structure/file
tar cfv archive --listed=list structure
)
./incremental.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

mkdir structure
echo x >structure/file

# On Nextstep (and perhaps other 4.3BSD systems),
# a newly created file's ctime isn't updated
# until the next sync or stat operation on the file.
ls -l structure/file >/dev/null

# If the time of an initial backup and the creation time of a file contained
# in that backup are the same, the file will be backed up again when an
# incremental backup is done, because the incremental backup backs up
# files created "on or after" the initial backup time.  Without the sleep
# command, behaviour of tar becomes variable, depending whether the system
# clock ticked over to the next second between creating the file and
# backing it up.
sleep 1

tar cf archive --listed=list structure
tar cfv archive --listed=list structure
echo separator
# ReiserFS often offsets the timestamps of newly created files
# 1 second to the past.  Try to compensate for it, until a better
# solution is found.
sleep 2
echo y >structure/file
tar cfv archive --listed=list structure
)
./incremental.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

mkdir structure
echo x >structure/file

# On Nextstep (and perhaps other 4.3BSD systems),
# a newly created file's ctime isn't updated
# until the next sync or stat operation on the file.
ls -l structure/file >/dev/null

# If the time of an initial backup and the creation time of a file contained
# in that backup are the same, the file will be backed up again when an
# incremental backup is done, because the incremental backup backs up
# files created "on or after" the initial backup time.  Without the sleep
# command, behaviour of tar becomes variable, depending whether the system
# clock ticked over to the next second between creating the file and
# backing it up.
sleep 1

tar cf archive --listed=list structure
tar cfv archive --listed=list structure
echo separator
# ReiserFS often offsets the timestamps of newly created files
# 1 second to the past.  Try to compensate for it, until a better
# solution is found.
sleep 2
echo y >structure/file
tar cfv archive --listed=list structure
)
112. incremental.at:23:  ok

113. incr01.at:27: testing restore broken symlinks from incremental ...
./incr01.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

mkdir directory
$as_ln_s foo directory/bar

tar -cf archive.0 -g db directory
rm directory/bar
tar -cf archive.1 -g db directory

mv directory orig

tar xvfg archive.0 /dev/null --warning=no-timestamp
echo separator
tar xvfg archive.1 /dev/null --warning=no-timestamp
)
./incr01.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

mkdir directory
$as_ln_s foo directory/bar

tar -cf archive.0 -g db directory
rm directory/bar
tar -cf archive.1 -g db directory

mv directory orig

tar xvfg archive.0 /dev/null --warning=no-timestamp
echo separator
tar xvfg archive.1 /dev/null --warning=no-timestamp
)
./incr01.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

mkdir directory
$as_ln_s foo directory/bar

tar -cf archive.0 -g db directory
rm directory/bar
tar -cf archive.1 -g db directory

mv directory orig

tar xvfg archive.0 /dev/null --warning=no-timestamp
echo separator
tar xvfg archive.1 /dev/null --warning=no-timestamp
)
113. incr01.at:27:  ok

114. incr02.at:32: testing restoring timestamps from incremental ...
./incr02.at:35:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77
# Create directory structure
mkdir dir
mkdir dir/subdir1
mkdir dir/subdir2
genfile --length 10 --file dir/subdir1/file

# Save mtime for later comparison
genfile --stat=mtime dir/subdir1 > ts

# Create an archive. Using incremental mode makes sure the
# archive will have a directory-first member ordering,
# i.e.:
# dir/
# dir/subdir1/
# dir/subdir2/
# dir/subdir1/foofile
#
# When restoring from this directory structure, 'dir/subdir2/' used to
# trigger apply_nonancestor_delayed_set_stat() which restored stats for
# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
# latter clobbered the directory timestamp.

tar -cf archive -g db dir

# Move away the directory
mv dir orig

# Wait enough time for timestamps to differ in case of failure.
sleep 5

# Restore the directory
tar -xf archive dir

# Check the timestamp
genfile --stat=mtime dir/subdir1 | diff ts -
)
./incr02.at:35:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77
# Create directory structure
mkdir dir
mkdir dir/subdir1
mkdir dir/subdir2
genfile --length 10 --file dir/subdir1/file

# Save mtime for later comparison
genfile --stat=mtime dir/subdir1 > ts

# Create an archive. Using incremental mode makes sure the
# archive will have a directory-first member ordering,
# i.e.:
# dir/
# dir/subdir1/
# dir/subdir2/
# dir/subdir1/foofile
#
# When restoring from this directory structure, 'dir/subdir2/' used to
# trigger apply_nonancestor_delayed_set_stat() which restored stats for
# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
# latter clobbered the directory timestamp.

tar -cf archive -g db dir

# Move away the directory
mv dir orig

# Wait enough time for timestamps to differ in case of failure.
sleep 5

# Restore the directory
tar -xf archive dir

# Check the timestamp
genfile --stat=mtime dir/subdir1 | diff ts -
)
./incr02.at:35:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77
# Create directory structure
mkdir dir
mkdir dir/subdir1
mkdir dir/subdir2
genfile --length 10 --file dir/subdir1/file

# Save mtime for later comparison
genfile --stat=mtime dir/subdir1 > ts

# Create an archive. Using incremental mode makes sure the
# archive will have a directory-first member ordering,
# i.e.:
# dir/
# dir/subdir1/
# dir/subdir2/
# dir/subdir1/foofile
#
# When restoring from this directory structure, 'dir/subdir2/' used to
# trigger apply_nonancestor_delayed_set_stat() which restored stats for
# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
# latter clobbered the directory timestamp.

tar -cf archive -g db dir

# Move away the directory
mv dir orig

# Wait enough time for timestamps to differ in case of failure.
sleep 5

# Restore the directory
tar -xf archive dir

# Check the timestamp
genfile --stat=mtime dir/subdir1 | diff ts -
)
114. incr02.at:32:  ok

115. listed01.at:26: testing --listed for individual files ...
./listed01.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
# Let the things settle
sleep 1

tar --create \
    --file=archive.1 \
    --listed-incremental=listing \
    directory/file*

tar tf archive.1 || exit 1

sleep 2

genfile --length 10240 --pattern zeros --file directory/file2

echo "separator"
cp listing listing.old
tar --create \
    --file=archive.2 \
    --listed-incremental=listing \
    directory/file* || exit 1

tar tf archive.2 || exit 1
)
./listed01.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
# Let the things settle
sleep 1

tar --create \
    --file=archive.1 \
    --listed-incremental=listing \
    directory/file*

tar tf archive.1 || exit 1

sleep 2

genfile --length 10240 --pattern zeros --file directory/file2

echo "separator"
cp listing listing.old
tar --create \
    --file=archive.2 \
    --listed-incremental=listing \
    directory/file* || exit 1

tar tf archive.2 || exit 1
)
115. listed01.at:26:  ok

116. listed02.at:28: testing working --listed ...
./listed02.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

test -z "`sort < /dev/null 2>&1`" || exit 77

echo Create directories

mkdir tart
sleep 1
mkdir tart/c0
sleep 1
mkdir tart/c1
sleep 1

for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
do
  echo File $file > $file
  sleep 1
done

sleep 1
echo Creating main archive
echo >&2 "Creating main archive"
tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1

# The above prints two lines to stderr announcing the new directories c0 and c1.
# Ensure that they appear in this script's stderr in sorted order.
sort err 1>&2; rm -f err

sleep 1
echo Modifying filesystem
rm tart/a1

mv tart/b1 tart/b2
mv tart/c1 tart/c2
touch tart/c2/ca3

echo Directory contents
find tart -print | sort 2>/dev/null

sleep 1
echo Creating incremental archive
echo >&2 "Creating incremental archive"
cp -p tart.incr1 tart.incr2
tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1

sleep 1

rm -rf tart/*
echo Extracting main archive
echo >&2 "Extracting main archive"
tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
echo Extracting incremental archive
# This command should produce three messages about deletion
# of the existing files, that may appear in any order. Piping
# to sort makes sure we don't depend on any particular ordering.
tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null

echo Final files:
find tart -print | sort 2>/dev/null
)
./listed02.at:31:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

test -z "`sort < /dev/null 2>&1`" || exit 77

echo Create directories

mkdir tart
sleep 1
mkdir tart/c0
sleep 1
mkdir tart/c1
sleep 1

for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
do
  echo File $file > $file
  sleep 1
done

sleep 1
echo Creating main archive
echo >&2 "Creating main archive"
tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1

# The above prints two lines to stderr announcing the new directories c0 and c1.
# Ensure that they appear in this script's stderr in sorted order.
sort err 1>&2; rm -f err

sleep 1
echo Modifying filesystem
rm tart/a1

mv tart/b1 tart/b2
mv tart/c1 tart/c2
touch tart/c2/ca3

echo Directory contents
find tart -print | sort 2>/dev/null

sleep 1
echo Creating incremental archive
echo >&2 "Creating incremental archive"
cp -p tart.incr1 tart.incr2
tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1

sleep 1

rm -rf tart/*
echo Extracting main archive
echo >&2 "Extracting main archive"
tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
echo Extracting incremental archive
# This command should produce three messages about deletion
# of the existing files, that may appear in any order. Piping
# to sort makes sure we don't depend on any particular ordering.
tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null

echo Final files:
find tart -print | sort 2>/dev/null
)
116. listed02.at:28:  ok

117. listed03.at:24: testing incremental dump when the parent directory is unreadable ...
./listed03.at:27:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77

test `uname` = "Linux" || exit 77

mkdir dir
mkdir dir/sub
mkdir dir/sub/a
genfile --file dir/sub/a/file
cd dir/sub

chmod a-r ..
tar -c -f archive.tar --listed-incremental=db.1 -v a 2>err
status=$?
chmod a+r ..
if test $status -eq 2; then
  grep '^tar: \.: Cannot getcwd' err >/dev/null 2>&1 && exit 77
fi
cat err >&2
exit $status
)
117. listed03.at:24:  ok

118. listed04.at:26: testing --listed-incremental and --one-file-system ...
./listed04.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77
mkdir dir
echo a >dir/a
echo b >dir/b

tar --one-file-system -cvf archive.tar -g archive.incr dir || exit
tar -tf archive.tar || exit
)
118. listed04.at:26:  ok

119. listed05.at:33: testing --listed-incremental and remounted directories ...
./listed05.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77

options="-C tartest --create --one-file-system --verbose"
rm -rf archive-01.snar archive-01.tar tartest subdir

# Create initial structure
mkdir tartest
echo "hi" > tartest/top-level-file
mkdir tartest/subdir
echo "hi" > tartest/subdir/subdir-file

echo "# Level 0"
tar $options --file archive-0.tar --listed-incremental=archive-0.snar .

echo "# Remount"
mv tartest/subdir .
mkdir tartest/subdir
mount -t ramfs none tartest/subdir || exit 77
tar -C subdir -c -f - . | tar -C tartest/subdir -x -f -

echo "# Level 1"
cp archive-0.snar archive-1.snar
tar $options --file archive-1.tar --listed-incremental=archive-1.snar .

umount tartest/subdir
)
--- -	2025-04-17 18:25:36.454839921 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/119/stderr	2025-04-17 18:25:36.448235517 +1400
@@ -1,4 +1 @@
-tar: .: Directory is new
-tar: ./subdir: Directory is new
-tar: ./subdir: directory is on a different filesystem; not dumped
 
--- -	2025-04-17 18:25:36.456219645 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/119/stdout	2025-04-17 18:25:36.452235517 +1400
@@ -1,10 +1 @@
-# Level 0
-./
-./subdir/
-./top-level-file
-./subdir/subdir-file
-# Remount
-# Level 1
-./
-./subdir/
 
119. listed05.at:33:  skipped (listed05.at:36)

120. incr03.at:28: testing renamed files in incrementals ...
./incr03.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir directory
genfile --file=directory/x
genfile --file=directory/y

sleep 1

tar -cf archive.1 -g db directory

mv directory/x directory/z
cp db db.old
tar -cf archive.2 -g db directory

mv directory orig

echo Listing of archive.1
tar -tf archive.1 | sort
echo Listing of archive.2
tar -tf archive.2 | sort

echo Directory after first restore
tar -xf archive.1 -g db --warning=no-timestamp
find directory | sort

echo Directory after second restore
tar -xf archive.2 -g db --warning=no-timestamp
find directory | sort
)
./incr03.at:31:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir directory
genfile --file=directory/x
genfile --file=directory/y

sleep 1

tar -cf archive.1 -g db directory

mv directory/x directory/z
cp db db.old
tar -cf archive.2 -g db directory

mv directory orig

echo Listing of archive.1
tar -tf archive.1 | sort
echo Listing of archive.2
tar -tf archive.2 | sort

echo Directory after first restore
tar -xf archive.1 -g db --warning=no-timestamp
find directory | sort

echo Directory after second restore
tar -xf archive.2 -g db --warning=no-timestamp
find directory | sort
)
./incr03.at:31:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir directory
genfile --file=directory/x
genfile --file=directory/y

sleep 1

tar -cf archive.1 -g db directory

mv directory/x directory/z
cp db db.old
tar -cf archive.2 -g db directory

mv directory orig

echo Listing of archive.1
tar -tf archive.1 | sort
echo Listing of archive.2
tar -tf archive.2 | sort

echo Directory after first restore
tar -xf archive.1 -g db --warning=no-timestamp
find directory | sort

echo Directory after second restore
tar -xf archive.2 -g db --warning=no-timestamp
find directory | sort
)
120. incr03.at:28:  ok

121. incr04.at:29: testing proper icontents initialization ...
./incr04.at:34:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

install-sh -d a/b >/dev/null  || exit 77
awk 'BEGIN {
  for (i=1;i<=142;i++)
    printf("a/b/one_31_chars_long_file_name_%03d\n", i);
  }' < /dev/null | genfile --files-from -

sleep 1

echo "Initial dump"
tar cvf a0.tar -g a.sna a
mv a/b a/c
echo "Incremental dump"
tar cvf a1.tar -g a.sna a
)
./incr04.at:34:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

install-sh -d a/b >/dev/null  || exit 77
awk 'BEGIN {
  for (i=1;i<=142;i++)
    printf("a/b/one_31_chars_long_file_name_%03d\n", i);
  }' < /dev/null | genfile --files-from -

sleep 1

echo "Initial dump"
tar cvf a0.tar -g a.sna a
mv a/b a/c
echo "Incremental dump"
tar cvf a1.tar -g a.sna a
)
./incr04.at:34:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

install-sh -d a/b >/dev/null  || exit 77
awk 'BEGIN {
  for (i=1;i<=142;i++)
    printf("a/b/one_31_chars_long_file_name_%03d\n", i);
  }' < /dev/null | genfile --files-from -

sleep 1

echo "Initial dump"
tar cvf a0.tar -g a.sna a
mv a/b a/c
echo "Incremental dump"
tar cvf a1.tar -g a.sna a
)
121. incr04.at:29:  ok

122. incr05.at:21: testing incremental dumps with -C ...
./incr05.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2

echo Level 0
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .

genfile --file dir/file3
echo Level 1
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
)
./incr05.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2

echo Level 0
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .

genfile --file dir/file3
echo Level 1
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
)
./incr05.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2

echo Level 0
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .

genfile --file dir/file3
echo Level 1
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
)
122. incr05.at:21:  ok

123. incr06.at:21: testing incremental dumps of nested directories ...
./incr06.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77
mkdir dir
mkdir dir/sub
mkdir dir/sub/a
mkdir dir/sub/b
genfile --file dir/file1
genfile --file dir/sub/file2
genfile --file dir/sub/a/file3

echo Level 0 . sub
tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 0 sub .
tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .

mkdir dir/c
genfile --file dir/sub/b/file4

echo Level 1 . sub
tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 1 sub .
tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
)
./incr06.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77
mkdir dir
mkdir dir/sub
mkdir dir/sub/a
mkdir dir/sub/b
genfile --file dir/file1
genfile --file dir/sub/file2
genfile --file dir/sub/a/file3

echo Level 0 . sub
tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 0 sub .
tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .

mkdir dir/c
genfile --file dir/sub/b/file4

echo Level 1 . sub
tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 1 sub .
tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
)
./incr06.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77
mkdir dir
mkdir dir/sub
mkdir dir/sub/a
mkdir dir/sub/b
genfile --file dir/file1
genfile --file dir/sub/file2
genfile --file dir/sub/a/file3

echo Level 0 . sub
tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 0 sub .
tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .

mkdir dir/c
genfile --file dir/sub/b/file4

echo Level 1 . sub
tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 1 sub .
tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
)
123. incr06.at:21:  ok

124. incr07.at:18: testing incremental restores with -C ...
./incr07.at:40:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77
mkdir dirA
echo 'a' > dirA/a
echo 'a' > dirA/b

decho C0
tar -g test.snar -vcf test.0.tar dirA

echo 'a' > dirA/c
decho C1
tar -g test.snar -vcf test.1.tar dirA

rm -f dirA/a
decho C2
tar -g test.snar -vcf test.2.tar dirA

mkdir ext
rm -rf dirA

decho E0
tar -g test.snar -vxf test.0.tar -C ext/
decho E1
tar -g test.snar -vxf test.1.tar -C ext/

decho E2
tar -g test.snar -vxf test.2.tar -C ext/

mkdir ext/dirA/dirB
touch ext/dirA/dirB/file

decho E3
tar -g test.snar -vxf test.2.tar -C ext/

echo FIN
test -d dirA && echo >&2 "toplevel dirA exists"
exit 0
)
./incr07.at:40:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77
mkdir dirA
echo 'a' > dirA/a
echo 'a' > dirA/b

decho C0
tar -g test.snar -vcf test.0.tar dirA

echo 'a' > dirA/c
decho C1
tar -g test.snar -vcf test.1.tar dirA

rm -f dirA/a
decho C2
tar -g test.snar -vcf test.2.tar dirA

mkdir ext
rm -rf dirA

decho E0
tar -g test.snar -vxf test.0.tar -C ext/
decho E1
tar -g test.snar -vxf test.1.tar -C ext/

decho E2
tar -g test.snar -vxf test.2.tar -C ext/

mkdir ext/dirA/dirB
touch ext/dirA/dirB/file

decho E3
tar -g test.snar -vxf test.2.tar -C ext/

echo FIN
test -d dirA && echo >&2 "toplevel dirA exists"
exit 0
)
./incr07.at:40:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77
mkdir dirA
echo 'a' > dirA/a
echo 'a' > dirA/b

decho C0
tar -g test.snar -vcf test.0.tar dirA

echo 'a' > dirA/c
decho C1
tar -g test.snar -vcf test.1.tar dirA

rm -f dirA/a
decho C2
tar -g test.snar -vcf test.2.tar dirA

mkdir ext
rm -rf dirA

decho E0
tar -g test.snar -vxf test.0.tar -C ext/
decho E1
tar -g test.snar -vxf test.1.tar -C ext/

decho E2
tar -g test.snar -vxf test.2.tar -C ext/

mkdir ext/dirA/dirB
touch ext/dirA/dirB/file

decho E3
tar -g test.snar -vxf test.2.tar -C ext/

echo FIN
test -d dirA && echo >&2 "toplevel dirA exists"
exit 0
)
124. incr07.at:18:  ok

125. incr08.at:38: testing filename normalization ...
./incr08.at:41:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir tartest
cd tartest
mkdir foo
mkdir foo/subdir
mkdir foo/subdir/dir1
mkdir subdir
mkdir subdir/dir2
decho A
find .|sort

decho B
DIR=`pwd`
tar -cvf ../foo.tar --listed-incremental=../foo.snar -C foo . $DIR
)
stderr:
A
B
tar: .: Directory is new
tar: ./subdir: Directory is new
tar: ./subdir/dir1: Directory is new
tar: /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/125/gnu/tartest: Directory is new
tar: /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/125/gnu/tartest/subdir: Directory is new
tar: /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/125/gnu/tartest/subdir/dir2: Directory is new
tar: Removing leading `/' from member names
stdout:
A
.
./foo
./foo/subdir
./foo/subdir/dir1
./subdir
./subdir/dir2
B
./
./subdir/
./subdir/dir1/
/build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/125/gnu/tartest/
/build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/125/gnu/tartest/subdir/
/build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/125/gnu/tartest/subdir/dir2/
./incr08.at:41:
DIR=`pwd`/gnu/tartest
sed "s|$DIR|ABSPATH|" stdout

./incr08.at:41:
DIR=`pwd`/gnu/tartest
sed "/tar: Removing leading \`\/*\/' from/d;s|$DIR|ABSPATH|" stderr
125. incr08.at:38:  ok

126. incr09.at:26: testing incremental with alternating -C ...
./incr09.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo bar middle
echo foo/foo_file > foo/foo_file
echo bar/bar_file > bar/bar_file
echo middle/file > middle/middle_file
decho A
tar -cvf foo.tar --incremental -C foo . -C `pwd` middle  -C bar .

rm foo.tar
>toplevel_file
decho B
tar -cvf foo.tar --incremental -C foo . -C `pwd` toplevel_file  -C bar .
)
126. incr09.at:26:  ok

127. incr10.at:18: testing concatenated incremental archives (deletes) ...
./incr10.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77
mkdir in
mkdir in/dir
decho Level 0
tar -cvf 1.tar -g snap -C in .
rmdir in/dir
decho Level 1
tar -cvf 2.tar -g snap -C in .
cp 1.tar full.tar
decho Concat
tar -A 2.tar -f full.tar -g /dev/null
decho Extract
mkdir out
tar -xvf full.tar -g /dev/null -C out
)
127. incr10.at:18:  ok

128. incr11.at:25: testing concatenated incremental archives (renames) ...
./incr11.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

ckmtime || exit 77

test -z "`sort < /dev/null 2>&1`" || exit 77


install-sh -d data/dir >/dev/null && genfile --file data/dir/file || exit 77
decho Level 0
tar -cvf full.tar -g snap -C data .
decho Level 1
mv data/dir data/dir2
tar -cvf incr.tar -g snap -C data .
decho Concat
cp full.tar full2.tar
tar -A -f full2.tar incr.tar
decho Extract
mkdir out
tar -xvf full2.tar -g /dev/null -C out
decho List
find out | sort
)
128. incr11.at:25:  ok


Files removed while archiving

129. filerem01.at:36: testing file removed as we read it ...
./filerem01.at:39:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2

genfile --run --checkpoint=3 --unlink dir/file1 -- \
       tar --blocking-factor=1 -c -f archive.tar \
       --listed-incremental db -v dir >/dev/null
)
stdout:
./filerem01.at:39:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2

genfile --run --checkpoint=3 --unlink dir/file1 -- \
       tar --blocking-factor=1 -c -f archive.tar \
       --listed-incremental db -v dir >/dev/null
)
stdout:
129. filerem01.at:36:  ok

130. filerem02.at:26: testing toplevel file removed ...
./filerem02.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
mkdir dir2
genfile --file dir2/file1

genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \
       tar --blocking-factor=1 -c -f archive.tar \
       --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
)
stderr:
tar: dir2: Cannot stat: No such file or directory
tar: dir2: Cannot open: No such file or directory
tar: Exiting with failure status due to previous errors
stdout:
./filerem02.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
mkdir dir2
genfile --file dir2/file1

genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \
       tar --blocking-factor=1 -c -f archive.tar \
       --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
)
stderr:
tar: dir2: Cannot stat: No such file or directory
tar: dir2: Cannot open: No such file or directory
tar: Exiting with failure status due to previous errors
stdout:
130. filerem02.at:26:  ok


Directories removed while archiving

131. dirrem01.at:38: testing directory removed before reading ...
./dirrem01.at:41:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2

case "$TEST_TAR_FORMAT" in
posix) CPT=5;;
gnu)   CPT=3;;
*)     exit 77
esac

genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \
       tar --blocking-factor=1 -c -f archive.tar \
       --listed-incremental db \
       --warning=no-file-changed \
       -v dir >/dev/null
)
stdout:
./dirrem01.at:41:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2

case "$TEST_TAR_FORMAT" in
posix) CPT=5;;
gnu)   CPT=3;;
*)     exit 77
esac

genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \
       tar --blocking-factor=1 -c -f archive.tar \
       --listed-incremental db \
       --warning=no-file-changed \
       -v dir >/dev/null
)
stdout:
131. dirrem01.at:38:  ok

132. dirrem02.at:31: testing explicitly named directory removed before reading ...
./dirrem02.at:34:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2

case "$TEST_TAR_FORMAT" in
posix) CPT=5;;
gnu)   CPT=3;;
*)     exit 77
esac

genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \
       tar --blocking-factor=1 -c -f archive.tar \
       --listed-incremental db \
       --warning=no-file-changed \
       -v dir dir/sub >/dev/null
)
stdout:
./dirrem02.at:34:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2

case "$TEST_TAR_FORMAT" in
posix) CPT=5;;
gnu)   CPT=3;;
*)     exit 77
esac

genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \
       tar --blocking-factor=1 -c -f archive.tar \
       --listed-incremental db \
       --warning=no-file-changed \
       -v dir dir/sub >/dev/null
)
stdout:
132. dirrem02.at:31:  ok


Renames

133. rename01.at:24: testing renamed dirs in incrementals ...
./rename01.at:27:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file

echo "Creating base archive"
tar -g incr -cf arch.1 -v foo

mv foo/bar foo/baz

echo "Creating incremental archive"
tar -g incr -cf arch.2 -v foo

mv foo old

tar xfg arch.1 /dev/null

echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"

tar xfg arch.2 /dev/null
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
./rename01.at:27:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file

echo "Creating base archive"
tar -g incr -cf arch.1 -v foo

mv foo/bar foo/baz

echo "Creating incremental archive"
tar -g incr -cf arch.2 -v foo

mv foo old

tar xfg arch.1 /dev/null

echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"

tar xfg arch.2 /dev/null
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
./rename01.at:27:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file

echo "Creating base archive"
tar -g incr -cf arch.1 -v foo

mv foo/bar foo/baz

echo "Creating incremental archive"
tar -g incr -cf arch.2 -v foo

mv foo old

tar xfg arch.1 /dev/null

echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"

tar xfg arch.2 /dev/null
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
133. rename01.at:24:  ok

134. rename02.at:24: testing move between hierarchies ...
./rename02.at:27:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file.r
mkdir foo/bar/baz
genfile --file foo/bar/baz/file.z

sleep 1

echo "Creating base archive"
tar -g incr -cf arch.1 -v foo

mv foo/bar/baz foo

echo "Creating incremental archive"
tar -g incr -cf arch.2 -v foo

mv foo old

tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
sort tmperr >&2

echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"

tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
./rename02.at:27:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file.r
mkdir foo/bar/baz
genfile --file foo/bar/baz/file.z

sleep 1

echo "Creating base archive"
tar -g incr -cf arch.1 -v foo

mv foo/bar/baz foo

echo "Creating incremental archive"
tar -g incr -cf arch.2 -v foo

mv foo old

tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
sort tmperr >&2

echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"

tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
./rename02.at:27:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file.r
mkdir foo/bar/baz
genfile --file foo/bar/baz/file.z

sleep 1

echo "Creating base archive"
tar -g incr -cf arch.1 -v foo

mv foo/bar/baz foo

echo "Creating incremental archive"
tar -g incr -cf arch.2 -v foo

mv foo old

tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
sort tmperr >&2

echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"

tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
134. rename02.at:24:  ok

135. rename03.at:23: testing cyclic renames ...
./rename03.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


mkdir foo
genfile --file foo/file1
genfile --file foo/file2

mkdir foo/a
genfile --file foo/a/filea

mkdir foo/b
genfile --file foo/b/fileb

mkdir foo/c
genfile --file foo/c/filec

sleep 1

echo "First dump"
echo "First dump">&2
tar -g incr -cf arch.1 -v foo 2>tmperr
sort tmperr >&2

# Shuffle directories:
(cd foo
mv a $$
mv c a
mv b c
mv $$ b)

echo "Second dump"
echo "Second dump" >&2
tar -g incr -cf arch.2 -v foo 2>tmperr
sort tmperr >&2

tar xfg arch.1 /dev/null --warning=no-timestamp

echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"

tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
./rename03.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


mkdir foo
genfile --file foo/file1
genfile --file foo/file2

mkdir foo/a
genfile --file foo/a/filea

mkdir foo/b
genfile --file foo/b/fileb

mkdir foo/c
genfile --file foo/c/filec

sleep 1

echo "First dump"
echo "First dump">&2
tar -g incr -cf arch.1 -v foo 2>tmperr
sort tmperr >&2

# Shuffle directories:
(cd foo
mv a $$
mv c a
mv b c
mv $$ b)

echo "Second dump"
echo "Second dump" >&2
tar -g incr -cf arch.2 -v foo 2>tmperr
sort tmperr >&2

tar xfg arch.1 /dev/null --warning=no-timestamp

echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"

tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
./rename03.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


mkdir foo
genfile --file foo/file1
genfile --file foo/file2

mkdir foo/a
genfile --file foo/a/filea

mkdir foo/b
genfile --file foo/b/fileb

mkdir foo/c
genfile --file foo/c/filec

sleep 1

echo "First dump"
echo "First dump">&2
tar -g incr -cf arch.1 -v foo 2>tmperr
sort tmperr >&2

# Shuffle directories:
(cd foo
mv a $$
mv c a
mv b c
mv $$ b)

echo "Second dump"
echo "Second dump" >&2
tar -g incr -cf arch.2 -v foo 2>tmperr
sort tmperr >&2

tar xfg arch.1 /dev/null --warning=no-timestamp

echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"

tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
135. rename03.at:23:  ok

136. rename04.at:27: testing renamed directory containing subdirectories ...
./rename04.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file

decho Creating initial archive
tar -cf archive.1 -g db.1 directory

decho Renaming
mv directory dir

decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir

mv dir orig

decho First restore
tar -xf archive.1 -g db.1
find directory | sort

decho Second restore
tar -xf archive.2 -g db.2
find dir | sort
)
./rename04.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file

decho Creating initial archive
tar -cf archive.1 -g db.1 directory

decho Renaming
mv directory dir

decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir

mv dir orig

decho First restore
tar -xf archive.1 -g db.1
find directory | sort

decho Second restore
tar -xf archive.2 -g db.2
find dir | sort
)
./rename04.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file

decho Creating initial archive
tar -cf archive.1 -g db.1 directory

decho Renaming
mv directory dir

decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir

mv dir orig

decho First restore
tar -xf archive.1 -g db.1
find directory | sort

decho Second restore
tar -xf archive.2 -g db.2
find dir | sort
)
136. rename04.at:27:  ok

137. rename05.at:24: testing renamed subdirectories ...
./rename05.at:27:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file

decho Creating initial archive
tar -cf archive.1 -g db.1 directory

decho Renaming
mv directory/subdir directory/subdir.0
mv directory dir

decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir

mv dir orig

decho First restore
tar -xf archive.1 -g db.1 --warning=no-timestamp
find directory | sort

decho Second restore
tar -xf archive.2 -g db.2 --warning=no-timestamp
find dir | sort
)
./rename05.at:27:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file

decho Creating initial archive
tar -cf archive.1 -g db.1 directory

decho Renaming
mv directory/subdir directory/subdir.0
mv directory dir

decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir

mv dir orig

decho First restore
tar -xf archive.1 -g db.1 --warning=no-timestamp
find directory | sort

decho Second restore
tar -xf archive.2 -g db.2 --warning=no-timestamp
find dir | sort
)
./rename05.at:27:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file

decho Creating initial archive
tar -cf archive.1 -g db.1 directory

decho Renaming
mv directory/subdir directory/subdir.0
mv directory dir

decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir

mv dir orig

decho First restore
tar -xf archive.1 -g db.1 --warning=no-timestamp
find directory | sort

decho Second restore
tar -xf archive.2 -g db.2 --warning=no-timestamp
find dir | sort
)
137. rename05.at:24:  ok

138. rename06.at:19: testing chained renames ...
./rename06.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

decho Creating directory structure
mkdir test test/d1 test/d2
genfile --file test/d1/file1
genfile --file test/d2/file2

decho First dump
tar -c -g 0.snar -C test -f backup0.tar .

decho Altering directory structure
genfile --file test/d2/file3
mv test/d1 test/d3
mv test/d2 test/d1

decho Second dump
cp 0.snar 1.snar
tar -vc -g 1.snar -C test -f backup1.tar .

mkdir test1

decho First extract
tar -C test1 -x -g /dev/null -f backup0.tar

decho Second extract
tar -C test1 -x -g /dev/null -f backup1.tar

decho Resulting directory
find test1 | sort
)
./rename06.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

decho Creating directory structure
mkdir test test/d1 test/d2
genfile --file test/d1/file1
genfile --file test/d2/file2

decho First dump
tar -c -g 0.snar -C test -f backup0.tar .

decho Altering directory structure
genfile --file test/d2/file3
mv test/d1 test/d3
mv test/d2 test/d1

decho Second dump
cp 0.snar 1.snar
tar -vc -g 1.snar -C test -f backup1.tar .

mkdir test1

decho First extract
tar -C test1 -x -g /dev/null -f backup0.tar

decho Second extract
tar -C test1 -x -g /dev/null -f backup1.tar

decho Resulting directory
find test1 | sort
)
./rename06.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

decho Creating directory structure
mkdir test test/d1 test/d2
genfile --file test/d1/file1
genfile --file test/d2/file2

decho First dump
tar -c -g 0.snar -C test -f backup0.tar .

decho Altering directory structure
genfile --file test/d2/file3
mv test/d1 test/d3
mv test/d2 test/d1

decho Second dump
cp 0.snar 1.snar
tar -vc -g 1.snar -C test -f backup1.tar .

mkdir test1

decho First extract
tar -C test1 -x -g /dev/null -f backup0.tar

decho Second extract
tar -C test1 -x -g /dev/null -f backup1.tar

decho Resulting directory
find test1 | sort
)
138. rename06.at:19:  ok

139. chtype.at:27: testing changed file types in incrementals ...
./chtype.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
mkdir directory/a
genfile --file directory/a/a

echo First backup
tar --create --file=archive.1 --listed-incremental=db.1 directory

sleep 2

# Remove directory b and create a file with this name.
# Previous versions were not able to restore over this file.
rm -r directory/b
genfile --file directory/b
genfile --file directory/a/b

echo Second backup
tar --create --file=archive.2 --listed-incremental=db.2 directory

# Delete a
rm -r directory

echo Restore archive.1
tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
echo Restore archive.2
tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
find directory | sort
)
./chtype.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
mkdir directory/a
genfile --file directory/a/a

echo First backup
tar --create --file=archive.1 --listed-incremental=db.1 directory

sleep 2

# Remove directory b and create a file with this name.
# Previous versions were not able to restore over this file.
rm -r directory/b
genfile --file directory/b
genfile --file directory/a/b

echo Second backup
tar --create --file=archive.2 --listed-incremental=db.2 directory

# Delete a
rm -r directory

echo Restore archive.1
tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
echo Restore archive.2
tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
find directory | sort
)
./chtype.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
mkdir directory/a
genfile --file directory/a/a

echo First backup
tar --create --file=archive.1 --listed-incremental=db.1 directory

sleep 2

# Remove directory b and create a file with this name.
# Previous versions were not able to restore over this file.
rm -r directory/b
genfile --file directory/b
genfile --file directory/a/b

echo Second backup
tar --create --file=archive.2 --listed-incremental=db.2 directory

# Delete a
rm -r directory

echo Restore archive.1
tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
echo Restore archive.2
tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
find directory | sort
)
139. chtype.at:27:  ok


Ignore failing reads

140. ignfail.at:23: testing ignfail ...
./ignfail.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

# The test is meaningless for super-user.

echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


touch file
mkdir directory
touch directory/file

echo 1>&2 -----
chmod 000 file
tar cf archive file
status=$?
chmod 600 file
test $status = 2 || exit 1

echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=$?
chmod 600 file
test $status = 0 || exit 1

echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=$?
chmod 700 directory
test $status = 2 || exit 1

echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=$?
chmod 700 directory
test $status = 0
)
./ignfail.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

# The test is meaningless for super-user.

echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


touch file
mkdir directory
touch directory/file

echo 1>&2 -----
chmod 000 file
tar cf archive file
status=$?
chmod 600 file
test $status = 2 || exit 1

echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=$?
chmod 600 file
test $status = 0 || exit 1

echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=$?
chmod 700 directory
test $status = 2 || exit 1

echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=$?
chmod 700 directory
test $status = 0
)
./ignfail.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

# The test is meaningless for super-user.

echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


touch file
mkdir directory
touch directory/file

echo 1>&2 -----
chmod 000 file
tar cf archive file
status=$?
chmod 600 file
test $status = 2 || exit 1

echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=$?
chmod 600 file
test $status = 0 || exit 1

echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=$?
chmod 700 directory
test $status = 2 || exit 1

echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=$?
chmod 700 directory
test $status = 0
)
./ignfail.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

# The test is meaningless for super-user.

echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


touch file
mkdir directory
touch directory/file

echo 1>&2 -----
chmod 000 file
tar cf archive file
status=$?
chmod 600 file
test $status = 2 || exit 1

echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=$?
chmod 600 file
test $status = 0 || exit 1

echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=$?
chmod 700 directory
test $status = 2 || exit 1

echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=$?
chmod 700 directory
test $status = 0
)
./ignfail.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

# The test is meaningless for super-user.

echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


touch file
mkdir directory
touch directory/file

echo 1>&2 -----
chmod 000 file
tar cf archive file
status=$?
chmod 600 file
test $status = 2 || exit 1

echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=$?
chmod 600 file
test $status = 0 || exit 1

echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=$?
chmod 700 directory
test $status = 2 || exit 1

echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=$?
chmod 700 directory
test $status = 0
)
140. ignfail.at:23:  ok


Link handling

141. link01.at:33: testing link count gt 2 ...
./link01.at:36:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir directory
mkdir directory/test1
mkdir directory/test2

echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77

tar cf archive directory/test1/test.txt directory/test1/test.txt

rm -r directory
tar xf archive --warning=no-timestamp

ls directory/test1
)
./link01.at:36:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir directory
mkdir directory/test1
mkdir directory/test2

echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77

tar cf archive directory/test1/test.txt directory/test1/test.txt

rm -r directory
tar xf archive --warning=no-timestamp

ls directory/test1
)
./link01.at:36:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir directory
mkdir directory/test1
mkdir directory/test2

echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77

tar cf archive directory/test1/test.txt directory/test1/test.txt

rm -r directory
tar xf archive --warning=no-timestamp

ls directory/test1
)
./link01.at:36:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir directory
mkdir directory/test1
mkdir directory/test2

echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77

tar cf archive directory/test1/test.txt directory/test1/test.txt

rm -r directory
tar xf archive --warning=no-timestamp

ls directory/test1
)
./link01.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir directory
mkdir directory/test1
mkdir directory/test2

echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77

tar cf archive directory/test1/test.txt directory/test1/test.txt

rm -r directory
tar xf archive --warning=no-timestamp

ls directory/test1
)
141. link01.at:33:  ok

142. link02.at:32: testing preserve hard links with --remove-files ...
./link02.at:35:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)
./link02.at:35:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)
./link02.at:35:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)
./link02.at:35:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)
./link02.at:35:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)
142. link02.at:32:  ok

143. link03.at:24: testing working -l with --remove-files ...
./link03.at:34:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4

echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4

genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4

echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)
./link03.at:34:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4

echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4

genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4

echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)
./link03.at:34:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4

echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4

genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4

echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)
./link03.at:34:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4

echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4

genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4

echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)
./link03.at:34:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4

echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4

genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4

echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)
143. link03.at:24:  ok

144. link04.at:29: testing link count is 1 but multiple occurrences ...
./link04.at:32:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77

tar cf archive dir dir
tar tvf archive | sed '
  s,.*[0-9] dir/,dir/,
' | sort

echo --

tar cfl archive dir dir

echo ==

tar chf archive dir
tar tvf archive | sed '
  s,.*[0-9] dir/,dir/,
  s,file,FOO,g
  s,symlink,FOO,g
' | sort
)
./link04.at:32:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77

tar cf archive dir dir
tar tvf archive | sed '
  s,.*[0-9] dir/,dir/,
' | sort

echo --

tar cfl archive dir dir

echo ==

tar chf archive dir
tar tvf archive | sed '
  s,.*[0-9] dir/,dir/,
  s,file,FOO,g
  s,symlink,FOO,g
' | sort
)
./link04.at:32:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77

tar cf archive dir dir
tar tvf archive | sed '
  s,.*[0-9] dir/,dir/,
' | sort

echo --

tar cfl archive dir dir

echo ==

tar chf archive dir
tar tvf archive | sed '
  s,.*[0-9] dir/,dir/,
  s,file,FOO,g
  s,symlink,FOO,g
' | sort
)
./link04.at:32:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77

tar cf archive dir dir
tar tvf archive | sed '
  s,.*[0-9] dir/,dir/,
' | sort

echo --

tar cfl archive dir dir

echo ==

tar chf archive dir
tar tvf archive | sed '
  s,.*[0-9] dir/,dir/,
  s,file,FOO,g
  s,symlink,FOO,g
' | sort
)
./link04.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77

tar cf archive dir dir
tar tvf archive | sed '
  s,.*[0-9] dir/,dir/,
' | sort

echo --

tar cfl archive dir dir

echo ==

tar chf archive dir
tar tvf archive | sed '
  s,.*[0-9] dir/,dir/,
  s,file,FOO,g
  s,symlink,FOO,g
' | sort
)
144. link04.at:29:  ok


Specific archive formats

145. longv7.at:24: testing long names in V7 archives ...
./longv7.at:30:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir this_is_a_very_long_name_for_a_directory_which_causes_problems
touch this_is_a_very_long_name_for_a_directory_which_causes_problems/this_is_a_very_long_file_name_which_raises_issues.c

tar cf archive this_is_a_very_long_name_for_a_directory_which_causes_problems
echo separator
tar tf archive
)
145. longv7.at:24:  ok

146. long01.at:28: testing long file names divisible by block size ...
./long01.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
echo test > endfile

tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
tar tf archive)
./long01.at:36:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
echo test > endfile

tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
tar tf archive)
146. long01.at:28:  ok

147. lustar01.at:21: testing ustar: unsplittable file name ...
./lustar01.at:27:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile --file=this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix || exit 77
tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix
)
147. lustar01.at:21:  ok

148. lustar02.at:21: testing ustar: unsplittable path name ...
./lustar02.at:32:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/tween_name_and_prefix || exit 77
tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
)
148. lustar02.at:21:  ok

149. lustar03.at:21: testing ustar: splitting long names ...
./lustar03.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/file || exit 77
echo "Create archive"
tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
echo "List archive"
tar tf archive)
149. lustar03.at:21:  ok

150. old.at:23: testing old archives ...
./old.at:27:
mkdir directory
tar cfvo archive directory || exit 1
tar tf archive

150. old.at:23:  ok

151. time01.at:20: testing time: tricky time stamps ...
./time01.at:23:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *

export TZ=UTC0
mkdir dir

# Test files with time stamps that are near common sources of error,
# typically near powers of 2 (for seconds) or near 0, 1970, or 9999 (years).
# Use GNU-style @ notation for very large time stamps, since they
# typically don't render into years correctly due to int overflow.
for s in \
  @-9223372036854775809 @-9223372036854775808 @-9223372036854775807 \
  0000-01-01T00:00:00 0000-01-01T00:00:01 \
  0000-01-02T00:00:00 \
  1697-10-17T11:03:27 1697-10-17T11:03:28 1697-10-17T11:03:29 \
  1833-11-24T17:31:43 1833-11-24T17:31:44 1833-11-24T17:31:45 \
  1901-12-13T20:45:51 1901-12-13T20:45:52 1901-12-13T20:45:53 \
  1901-12-14T20:45:51 \
  1969-12-31T23:59:58 1969-12-31T23:59:59 \
  1970-01-01T00:00:00 1970-01-01T00:00:01 \
  2038-01-18T03:14:07 \
  2038-01-19T03:14:07 2038-01-19T03:14:08 \
  2106-02-07T06:28:15 2106-02-07T06:28:16 \
  2242-03-16T12:56:31 2242-03-16T12:56:32 \
  9999-12-31T23:59:58 9999-12-31T23:59:59 \
  @9223372036854775807 @9223372036854775808
do
  # Skip a time stamp $s if it's out of range for this platform,
  # of if it uses a notation that this platform does not recognize.
  touch -d $s dir/f$s >/dev/null 2>&1 || continue

  # Likewise for $s.1.  If $s is the most negative time stamp and
  # time stamps are signed, then $s.1 is out of range.
  touch -d $s.1 dir/f$s.$ns >/dev/null 2>&1 || continue

  for frac in   01 001 00001 000001 0000001 00000001 000000001 0000000001 \
	      9 99 999 99999 999999 9999999 99999999 999999999 9999999999
  do
    touch -d $s.$frac dir/f$s.$frac
  done
done

tar -c -f archive.tar dir
tar -d -f archive.tar dir
)
151. time01.at:20:  ok

152. time02.at:20: testing time: clamping mtime ...
./time02.at:23:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

export TZ=UTC0
mkdir dir

touch -d 2015-12-01T00:00:00 dir/a >/dev/null 2>&1 || exit 77
touch -d 2016-01-01T00:00:00 dir/b >/dev/null 2>&1 || exit 77
touch -d 2016-02-01T00:00:00 dir/c >/dev/null 2>&1 || exit 77
touch -d 2038-01-01T00:00:00 dir/d >/dev/null 2>&1 || exit 77

tar -c --mtime 2016-01-15T00:00:00 --clamp-mtime -f archive.tar dir
tar -d -f archive.tar dir|sort
)
152. time02.at:20:  ok


Multivolume archives

153. multiv01.at:23: testing multivolume dumps from pipes ...
./multiv01.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --length 7168 --file file1

for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
              " 9" "10" "11" "12" "13" "14" "15" "16" ; do \
  echo "file2  block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
  for count in 2 3 4 5 6 7 8 ; do
    echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
  done
done >file2

if test $TEST_TAR_FORMAT = pax; then
  TAPE_LENGTH=11
else
  TAPE_LENGTH=10
fi

tar -c --multi-volume --tape-length=$TAPE_LENGTH \
  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1

mkdir extract-dir-pipe
dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
      --tape-length=$TAPE_LENGTH --read-full-records || exit 1

cmp file1 extract-dir-pipe/file1
cmp file2 extract-dir-pipe/file2
)
./multiv01.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --length 7168 --file file1

for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
              " 9" "10" "11" "12" "13" "14" "15" "16" ; do \
  echo "file2  block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
  for count in 2 3 4 5 6 7 8 ; do
    echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
  done
done >file2

if test $TEST_TAR_FORMAT = pax; then
  TAPE_LENGTH=11
else
  TAPE_LENGTH=10
fi

tar -c --multi-volume --tape-length=$TAPE_LENGTH \
  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1

mkdir extract-dir-pipe
dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
      --tape-length=$TAPE_LENGTH --read-full-records || exit 1

cmp file1 extract-dir-pipe/file1
cmp file2 extract-dir-pipe/file2
)
./multiv01.at:30:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *

exec <&-
genfile --length 7168 --file file1

for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
              " 9" "10" "11" "12" "13" "14" "15" "16" ; do \
  echo "file2  block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
  for count in 2 3 4 5 6 7 8 ; do
    echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
  done
done >file2

if test $TEST_TAR_FORMAT = pax; then
  TAPE_LENGTH=11
else
  TAPE_LENGTH=10
fi

tar -c --multi-volume --tape-length=$TAPE_LENGTH \
  -f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1

mkdir extract-dir-pipe
dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
      -C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
      --tape-length=$TAPE_LENGTH --read-full-records || exit 1

cmp file1 extract-dir-pipe/file1
cmp file2 extract-dir-pipe/file2
)
153. multiv01.at:23:  ok

154. multiv02.at:28: testing skipping a straddling member ...
./multiv02.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --length 10240 --file en
genfile --length 20000 --file to
genfile --length 20000 --file tre
genfile --length 10240 --file fire

exec <&-

tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
echo separator
tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
)
./multiv02.at:31:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --length 10240 --file en
genfile --length 20000 --file to
genfile --length 20000 --file tre
genfile --length 10240 --file fire

exec <&-

tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
echo separator
tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
)
./multiv02.at:31:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *

genfile --length 10240 --file en
genfile --length 20000 --file to
genfile --length 20000 --file tre
genfile --length 10240 --file fire

exec <&-

tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
echo separator
tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
)
154. multiv02.at:28:  ok

155. multiv03.at:30: testing MV archive & long filenames ...
./multiv03.at:33:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

AFILE=`awk 'BEGIN { for (i = 0; i < 100; i++) printf "a"; exit; }'`
BFILE=`awk 'BEGIN { for (i = 0; i < 101; i++) printf "b"; exit; }'`

cat > ../experr <<EOF
tar: $BFILE: file name too long to be stored in a GNU multivolume header, truncated
tar: '$BFILE' is possibly continued on this volume: header contains truncated name
EOF

cat > ../expout <<EOF
$AFILE
separator-1
separator-2
EOF

genfile --length 15360 --file $AFILE

exec <&-

tar -M -L 10 -c -f arch.1 -f arch.2 $AFILE || exit 1
tar -tM -f arch.1 -f arch.2 || exit 1

echo separator-1

genfile --length 15360 --file $BFILE
tar -M -L 10 -c -f arch.1 -f arch.2 $BFILE || exit 1

echo separator-2
mv $BFILE bfile
tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
cmp $BFILE bfile
)
./multiv03.at:33:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

AFILE=`awk 'BEGIN { for (i = 0; i < 100; i++) printf "a"; exit; }'`
BFILE=`awk 'BEGIN { for (i = 0; i < 101; i++) printf "b"; exit; }'`

cat > ../experr <<EOF
tar: $BFILE: file name too long to be stored in a GNU multivolume header, truncated
tar: '$BFILE' is possibly continued on this volume: header contains truncated name
EOF

cat > ../expout <<EOF
$AFILE
separator-1
separator-2
EOF

genfile --length 15360 --file $AFILE

exec <&-

tar -M -L 10 -c -f arch.1 -f arch.2 $AFILE || exit 1
tar -tM -f arch.1 -f arch.2 || exit 1

echo separator-1

genfile --length 15360 --file $BFILE
tar -M -L 10 -c -f arch.1 -f arch.2 $BFILE || exit 1

echo separator-2
mv $BFILE bfile
tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
cmp $BFILE bfile
)
155. multiv03.at:30:  ok

156. multiv04.at:36: testing split directory members in a MV archive ...
./multiv04.at:39:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


mkdir directory
awk 'BEGIN { for (i = 0; i < 1024; i++) printf("directory/%014x\n", i); }' </dev/null | genfile --files-from -

exec <&-

sleep 2

tar --listed-incremental=list -c -f archive.a directory

sleep 2

tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory

echo separator

tar -MRt -f arc.1 -f arc.2)
./multiv04.at:39:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


mkdir directory
awk 'BEGIN { for (i = 0; i < 1024; i++) printf("directory/%014x\n", i); }' </dev/null | genfile --files-from -

exec <&-

sleep 2

tar --listed-incremental=list -c -f archive.a directory

sleep 2

tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory

echo separator

tar -MRt -f arc.1 -f arc.2)
156. multiv04.at:36:  ok

157. multiv05.at:26: testing Restoring after an out of sync volume ...
./multiv05.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

exec <&-

genfile --length 250k --file jeden
genfile --length 250k --file dwa
genfile --length 250k --file trzy
genfile --length 250k --file cztery
genfile --length 250k --file piec
genfile --length 250k --file szesc


echo Creating archive
tar -c -M -L 502 -f a.tar -f b.tar -f c.tar jeden dwa trzy cztery piec szesc
echo separator
mkdir bak
mv jeden dwa trzy cztery piec szesc bak
tar -vxM -f a.tar -f c.tar -f b.tar -f c.tar
echo Diffing jeden
   cmp bak/jeden jeden || exit 1
echo Diffing dwa
   cmp bak/dwa dwa || exit 1
echo Diffing trzy
   cmp bak/trzy trzy || exit 1
echo Diffing cztery
   cmp bak/cztery cztery || exit 1
echo Diffing piec
   cmp bak/piec piec || exit 1
echo Diffing szesc
   cmp bak/szesc szesc || exit 1
)
157. multiv05.at:26:  ok

158. multiv06.at:27: testing Multivolumes with L=record_size ...
./multiv06.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

exec <&-
decho Creating file
genfile --length 20139 --file file
decho Creating archive
tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
decho Testing archive
tar -t -M -farc.1 -farc.2 -farc.3)
./multiv06.at:30:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *

exec <&-
decho Creating file
genfile --length 20139 --file file
decho Creating archive
tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
decho Testing archive
tar -t -M -farc.1 -farc.2 -farc.3)
158. multiv06.at:27:  ok

159. multiv07.at:28: testing volumes split at an extended header ...
./multiv07.at:31:


test -z "$TEST_DATA_DIR" && exit 77
tarball_prereq xsplit-1.tar 0e008c84c517e48fbf23ca6a7033cde6 $TEST_DATA_DIR $TEST_DATA_URL || exit 77

test -z "$TEST_DATA_DIR" && exit 77
tarball_prereq xsplit-2.tar 03150b9852d285458f43734e9e0b9a45 $TEST_DATA_DIR $TEST_DATA_URL || exit 77

exec <&-

cd $TEST_DATA_DIR
tar -t -M -fxsplit-1.tar -fxsplit-2.tar

--- -	2025-04-17 18:26:05.609537171 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/159/stdout	2025-04-17 18:26:05.604235517 +1400
@@ -1,4 +1 @@
-Archive volumes split at an extended header Volume 1
-foo
-bar
 
159. multiv07.at:28:  skipped (multiv07.at:31)

160. multiv08.at:25: testing multivolume header creation ...
./multiv08.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --length 9472 --file a
genfile --length 9984 --file b
decho Creating
tar -c -M -L10 -f A.tar -f B.tar -f C.tar a b
decho Testing
tar -tMR -f A.tar -f B.tar -f C.tar
)
160. multiv08.at:25:  ok

161. multiv09.at:26: testing bad next volume ...
./multiv09.at:33:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
echo "created"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)
./multiv09.at:33:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
echo "created"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)
./multiv09.at:33:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
echo "created"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)
./multiv09.at:33:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
echo "created"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)
./multiv09.at:33:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
echo "created"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)
161. multiv09.at:26:  ok

162. multiv10.at:37: testing file start at the beginning of a posix volume ...
./multiv10.at:40:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

set -e
genfile --length=15360 --file data1
genfile --length=15360 --file data2
tar -v -c -L 10 -M -f 1.tar -f 2.tar -f 3.tar -f 4.tar -f 5.tar data1 data2
tar -M -t -f 1.tar -f 2.tar -f 3.tar -f 4.tar -f 5.tar
mkdir out
tar -C out -M -x -f 1.tar -f 2.tar -f 3.tar -f 4.tar -f 5.tar
cmp data1 out/data1
cmp data2 out/data2
)
162. multiv10.at:37:  ok


Owner and Groups

163. owner.at:21: testing --owner and --group ...
./owner.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

export TZ=UTC0

genfile --file a

tar --owner="Joe the Plumber:1234" \
    --group="Plumber's Union:5678" \
    --mtime='@0' \
    --mode='u=rw,go=r' \
    -cf arc a

tar -tvf arc
tar --numeric-owner -tvf arc
)
163. owner.at:21:  ok

164. map.at:21: testing --owner-map and --group-map ...
./map.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

export TZ=UTC0

genfile --file a
set -- `genfile --stat=uid,gid a`
cat > uid.map <<EOT
# Owner mapping
+$1	"Joe the Plumber:1234"
EOT
# Group mapping
cat > gid.map <<EOT
+$2	"Plumber's Union:5678"
EOT

tar --owner-map=uid.map\
    --group-map=gid.map\
    --owner="Fallback Owner:4321" \
    --group="Fallback Group:8765" \
    --mtime='@0' \
    --mode='u=rw,go=r' \
    -cf 1.tar a

tar -tvf 1.tar
tar --numeric-owner -tvf 1.tar

> uid.map
> gid.map

tar --owner-map=uid.map\
    --group-map=gid.map\
    --owner="Fallback Owner:4321" \
    --group="Fallback Group:8765" \
    --mtime='@0' \
    --mode='u=rw,go=r' \
    -cf 2.tar a

tar -tvf 2.tar
tar --numeric-owner -tvf 2.tar
)
164. map.at:21:  ok


Sparse files

165. sparse01.at:21: testing sparse files ...
./sparse01.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --length 1000 -f begin
genfile --length 1000 -f end
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse begin sparsefile end || exit 1
echo separator

tar tfv archive
echo separator
mkdir directory
tar Cxf directory archive --warning=no-timestamp
genfile --stat=name,size sparsefile
cmp sparsefile directory/sparsefile
)
stdout:
separator
-rw-rw-r-- pbuilder2/pbuilder2 1000 2025-04-17 18:26 begin
-rw-r--r-- pbuilder2/pbuilder2 3102720 2025-04-17 18:26 sparsefile
-rw-rw-r-- pbuilder2/pbuilder2    1000 2025-04-17 18:26 end
separator
sparsefile 3102720
./sparse01.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --length 1000 -f begin
genfile --length 1000 -f end
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse begin sparsefile end || exit 1
echo separator

tar tfv archive
echo separator
mkdir directory
tar Cxf directory archive --warning=no-timestamp
genfile --stat=name,size sparsefile
cmp sparsefile directory/sparsefile
)
stdout:
separator
-rw-rw-r-- pbuilder2/pbuilder2 1000 2025-04-17 18:26 begin
-rw-r--r-- pbuilder2/pbuilder2 3102720 2025-04-17 18:26 sparsefile
-rw-rw-r-- pbuilder2/pbuilder2    1000 2025-04-17 18:26 end
separator
sparsefile 3102720
./sparse01.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --length 1000 -f begin
genfile --length 1000 -f end
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse begin sparsefile end || exit 1
echo separator

tar tfv archive
echo separator
mkdir directory
tar Cxf directory archive --warning=no-timestamp
genfile --stat=name,size sparsefile
cmp sparsefile directory/sparsefile
)
stdout:
separator
-rw-rw-r-- pbuilder2/pbuilder2 1000 2025-04-17 18:26 begin
-rw-r--r-- pbuilder2/pbuilder2 3102720 2025-04-17 18:26 sparsefile
-rw-rw-r-- pbuilder2/pbuilder2    1000 2025-04-17 18:26 end
separator
sparsefile 3102720
165. sparse01.at:21:  ok

166. sparse02.at:21: testing extracting sparse file over a pipe ...
./sparse02.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
echo separator

tar xfO archive | cat - > sparsecopy || exit 1
cmp sparsefile sparsecopy
)
./sparse02.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
echo separator

tar xfO archive | cat - > sparsecopy || exit 1
cmp sparsefile sparsecopy
)
./sparse02.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
echo separator

tar xfO archive | cat - > sparsecopy || exit 1
cmp sparsefile sparsecopy
)
166. sparse02.at:21:  ok

167. sparse03.at:21: testing storing sparse files > 8G ...
./sparse03.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77
genfile --length 1000 --file begin
genfile --length 1000 --file end
genfile --sparse --file sparsefile --block-size 512 8G A || exit 77
tar -c -f archive --sparse begin sparsefile end || exit 1
echo separator

tar tfv archive
echo separator
mkdir directory
tar Cxf directory archive
genfile --stat=name,size sparsefile
cmp sparsefile directory/sparsefile
)
stdout:
separator
-rw-rw-r-- pbuilder2/pbuilder2 1000 2025-04-17 18:26 begin
-rw-r--r-- pbuilder2/pbuilder2 8589935104 2025-04-17 18:26 sparsefile
-rw-rw-r-- pbuilder2/pbuilder2       1000 2025-04-17 18:26 end
separator
sparsefile 8589935104
167. sparse03.at:21:  ok

168. sparse04.at:21: testing storing long sparse file names ...
./sparse04.at:35:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *

genfile --sparse --file 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 --block-size 512 8M A || exit 77
tar -f - -c --sparse --posix 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | tar tf -
)
168. sparse04.at:21:  ok

169. sparse05.at:21: testing listing sparse files bigger than 2^33 B ...
./sparse05.at:31:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *

test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77
cat >mapfile <<'_ATEOF'
0 =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
_ATEOF

genfile --sparse --file BIGFILE --block-size 4K - < mapfile || exit 77
tar -f - -c --sparse --posix BIGFILE | tar tvf - | awk '{ print $3, $(NF) }'
)
169. sparse05.at:21:  ok

170. sparse06.at:21: testing storing sparse file using seek method ...
./sparse06.at:32:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


checkseekhole || exit 77


TAR_OPTIONS="$TAR_OPTIONS --hole-detection=seek"
genfile --sparse --file bigsparse 0 ABC 8G DEF || exit 77
tar -cSf a bigsparse
test $? -eq 0 || exit 1


rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 0 ABC || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse


rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 0 ABC 10M || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse


rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 0 ABC 10M DEF || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse



rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 10M || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse


rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 10M ABC || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse


rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 10M ABC 20M || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse



rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 10M DEF 20M GHI 30M JKL 40M || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse


)
170. sparse06.at:21:  ok

171. sparse07.at:21: testing sparse files with unicode names ...
./sparse07.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --sparse --file žluť --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse žluť || exit 1

tar tf archive
)
./sparse07.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --sparse --file žluť --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse žluť || exit 1

tar tf archive
)
./sparse07.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --sparse --file žluť --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse žluť || exit 1

tar tf archive
)
171. sparse07.at:21:  ok

172. sparsemv.at:21: testing sparse files in MV archives ...
./sparsemv.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

exec <&-
TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
echo "Pass 1: Split between data blocks"
echo "Create archive"
tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
echo "Test archive"
tar --record-size=512 -t -M -f arc.1 -f arc.2
echo "Compare archive"
tar --record-size=512 -d -M -f arc.1 -f arc.2

echo "Pass 2: Split within a data block"
genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
echo "Create archive"
tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
echo "Test archive"
tar --record-size=512 -t -M -f arc.1 -f arc.2
echo "Compare archive"
tar --record-size=512 -d -M -f arc.1 -f arc.2
)
./sparsemv.at:31:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

exec <&-
TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
echo "Pass 1: Split between data blocks"
echo "Create archive"
tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
echo "Test archive"
tar --record-size=512 -t -M -f arc.1 -f arc.2
echo "Compare archive"
tar --record-size=512 -d -M -f arc.1 -f arc.2

echo "Pass 2: Split within a data block"
genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
echo "Create archive"
tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
echo "Test archive"
tar --record-size=512 -t -M -f arc.1 -f arc.2
echo "Compare archive"
tar --record-size=512 -d -M -f arc.1 -f arc.2
)
172. sparsemv.at:21:  ok

173. spmvp00.at:21: testing sparse files in PAX MV archives, v.0.0 ...
./spmvp00.at:24:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *

exec <&-
TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77
echo "Pass 1: Split between data blocks"
echo "Create archive"
tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo "Test archive"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo "Compare archive"
tar -d -M -f arc.1 -f arc.2 -f arc.3

echo "Pass 2: Split within a data block"
genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
echo "Create archive"
tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo "Test archive"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo "Compare archive"
tar -d -M -f arc.1 -f arc.2 -f arc.3
)
173. spmvp00.at:21:  ok

174. spmvp01.at:21: testing sparse files in PAX MV archives, v.0.1 ...
./spmvp01.at:24:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *

exec <&-
TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
echo "Pass 1: Split between data blocks"
echo "Create archive"
tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo "Test archive"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo "Compare archive"
tar -d -M -f arc.1 -f arc.2 -f arc.3

echo "Pass 2: Split within a data block"
genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
echo "Create archive"
tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo "Test archive"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo "Compare archive"
tar -d -M -f arc.1 -f arc.2 -f arc.3
)
174. spmvp01.at:21:  ok

175. spmvp10.at:21: testing sparse files in PAX MV archives, v.1.0 ...
./spmvp10.at:24:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *

exec <&-
TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
echo "Pass 1: Split between data blocks"
echo "Create archive"
tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo "Test archive"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo "Compare archive"
tar -d -M -f arc.1 -f arc.2 -f arc.3

echo "Pass 2: Split within a data block"
genfile --sparse --file sparsefile 0 ABCDEFG 1M ABCDEFGHI || exit 77
echo "Create archive"
tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo "Test archive"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo "Compare archive"
tar -d -M -f arc.1 -f arc.2 -f arc.3
)
175. spmvp10.at:21:  ok

176. sptrcreat.at:33: testing sparse file truncated while archiving ...
./sptrcreat.at:36:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --sparse --block-size=1024 --file foo \
  0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
genfile --run --checkpoint 3 --length 200m --truncate foo -- \
 tar --sparse -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 200m --length 11575296 --pattern=zeros
tar dvf bar | sed '/foo: Mod time differs/d')
./sptrcreat.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --sparse --block-size=1024 --file foo \
  0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
genfile --run --checkpoint 3 --length 200m --truncate foo -- \
 tar --sparse -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 200m --length 11575296 --pattern=zeros
tar dvf bar | sed '/foo: Mod time differs/d')
./sptrcreat.at:36:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --sparse --block-size=1024 --file foo \
  0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
genfile --run --checkpoint 3 --length 200m --truncate foo -- \
 tar --sparse -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 200m --length 11575296 --pattern=zeros
tar dvf bar | sed '/foo: Mod time differs/d')
176. sptrcreat.at:33:  ok

177. sptrdiff00.at:26: testing file truncated in sparse region while comparing ...
./sptrdiff00.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --sparse --block-size=1024 --file foo \
  0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 3 --length 200m --truncate foo -- \
 tar --sparse -vdf bar
)
./sptrdiff00.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --sparse --block-size=1024 --file foo \
  0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 3 --length 200m --truncate foo -- \
 tar --sparse -vdf bar
)
./sptrdiff00.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --sparse --block-size=1024 --file foo \
  0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 3 --length 200m --truncate foo -- \
 tar --sparse -vdf bar
)
177. sptrdiff00.at:26:  ok

178. sptrdiff01.at:26: testing file truncated in data region while comparing ...
./sptrdiff01.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --sparse --block-size=1024 --file foo \
  0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \
 tar --sparse -vdf bar
)
./sptrdiff01.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --sparse --block-size=1024 --file foo \
  0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \
 tar --sparse -vdf bar
)
./sptrdiff01.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --sparse --block-size=1024 --file foo \
  0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \
 tar --sparse -vdf bar
)
178. sptrdiff01.at:26:  ok


Updates

179. update.at:28: testing update unchanged directories ...
./update.at:31:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2

tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)
./update.at:31:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2

tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)
./update.at:31:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2

tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)
./update.at:31:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2

tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)
./update.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2

tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)
179. update.at:28:  ok

180. update01.at:29: testing update directories ...
./update01.at:32:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b

tar cf arc a

echo "separator"

sleep 2
genfile --file a/c

tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
./update01.at:32:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b

tar cf arc a

echo "separator"

sleep 2
genfile --file a/c

tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
./update01.at:32:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b

tar cf arc a

echo "separator"

sleep 2
genfile --file a/c

tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
./update01.at:32:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b

tar cf arc a

echo "separator"

sleep 2
genfile --file a/c

tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
./update01.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b

tar cf arc a

echo "separator"

sleep 2
genfile --file a/c

tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
180. update01.at:29:  ok

181. update02.at:26: testing update changed files ...
./update02.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b

tar cf arc a

echo "separator"

sleep 2
touch a/b

tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
./update02.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b

tar cf arc a

echo "separator"

sleep 2
touch a/b

tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
./update02.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b

tar cf arc a

echo "separator"

sleep 2
touch a/b

tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
./update02.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b

tar cf arc a

echo "separator"

sleep 2
touch a/b

tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
./update02.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b

tar cf arc a

echo "separator"

sleep 2
touch a/b

tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
181. update02.at:26:  ok

182. update03.at:20: testing update with chdir ...
./update03.at:27:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)
./update03.at:27:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)
./update03.at:27:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)
./update03.at:27:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)
./update03.at:27:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)
182. update03.at:20:  ok


Verifying the archive

183. verify.at:25: testing verify ...
./verify.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

touch foo
tar -cvf archive.tar --verify foo
)
./verify.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

touch foo
tar -cvf archive.tar --verify foo
)
./verify.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

touch foo
tar -cvf archive.tar --verify foo
)
./verify.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

touch foo
tar -cvf archive.tar --verify foo
)
./verify.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

touch foo
tar -cvf archive.tar --verify foo
)
183. verify.at:25:  ok


Volume operations

184. volume.at:23: testing volume ...
./volume.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

tar -cf archive -V label -T /dev/null || exit 1

tar xfV archive label || exit 1
tar xfV archive 'la?el' || exit 1
tar xfV archive 'l*l' || exit 1

echo 1>&2 -----
tar xfV archive lab
test $? = 2 || exit 1
echo 1>&2 -----
tar xfV archive bel
test $? = 2 || exit 1
echo 1>&2 -----
tar xfV archive babel
test $? = 2
)
./volume.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

tar -cf archive -V label -T /dev/null || exit 1

tar xfV archive label || exit 1
tar xfV archive 'la?el' || exit 1
tar xfV archive 'l*l' || exit 1

echo 1>&2 -----
tar xfV archive lab
test $? = 2 || exit 1
echo 1>&2 -----
tar xfV archive bel
test $? = 2 || exit 1
echo 1>&2 -----
tar xfV archive babel
test $? = 2
)
184. volume.at:23:  ok

185. volsize.at:29: testing volume header size ...
./volsize.at:32:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77


test -z "$TEST_DATA_DIR" && exit 77
tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77

echo Short Listing
tar tf $TEST_DATA_DIR/abc.tar
echo Verbose Listing
tar --utc -tvf $TEST_DATA_DIR/abc.tar
echo Extracted directory
tar xf $TEST_DATA_DIR/abc.tar
find abc|sort
)
--- -	2025-04-17 18:28:29.331762358 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/185/stdout	2025-04-17 18:28:29.328235517 +1400
@@ -1,10 +1 @@
-Short Listing
-abc/not-a-file.gif
-abc/CCC
-Verbose Listing
-V--------- 0/0            1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
--rw-r--r-- tom/users         0 2006-04-22 19:52 abc/CCC
-Extracted directory
-abc
-abc/CCC
 
185. volsize.at:29:  skipped (volsize.at:32)


186. comprec.at:21: testing compressed format recognition ...
./comprec.at:25:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


cat /dev/null | gzip - > /dev/null 2>&1 || exit 77

genfile --length 10240 --file file1
echo "separator"
tar cfz archive file1
echo "separator"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)
./comprec.at:25:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


cat /dev/null | gzip - > /dev/null 2>&1 || exit 77

genfile --length 10240 --file file1
echo "separator"
tar cfz archive file1
echo "separator"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)
./comprec.at:25:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


cat /dev/null | gzip - > /dev/null 2>&1 || exit 77

genfile --length 10240 --file file1
echo "separator"
tar cfz archive file1
echo "separator"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)
./comprec.at:25:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


cat /dev/null | gzip - > /dev/null 2>&1 || exit 77

genfile --length 10240 --file file1
echo "separator"
tar cfz archive file1
echo "separator"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)
./comprec.at:25:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


cat /dev/null | gzip - > /dev/null 2>&1 || exit 77

genfile --length 10240 --file file1
echo "separator"
tar cfz archive file1
echo "separator"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)
186. comprec.at:21:  ok

187. shortfile.at:26: testing short input files ...
./shortfile.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --length 511 --file foo || exit 5
tar tf foo
)
187. shortfile.at:26:  ok

188. shortupd.at:31: testing updating short archives ...
./shortupd.at:34:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

touch foo
tar uf archive foo
)
./shortupd.at:34:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

touch foo
tar uf archive foo
)
./shortupd.at:34:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

touch foo
tar uf archive foo
)
./shortupd.at:34:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

touch foo
tar uf archive foo
)
./shortupd.at:34:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

touch foo
tar uf archive foo
)
188. shortupd.at:31:  ok

189. truncate.at:29: testing truncate ...
./truncate.at:32:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \
  tar -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')
./truncate.at:32:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \
  tar -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')
./truncate.at:32:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \
  tar -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')
./truncate.at:32:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \
  tar -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')
./truncate.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \
  tar -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')
189. truncate.at:29:  ok

190. grow.at:24: testing grow ...
./grow.at:27:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)
./grow.at:27:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)
./grow.at:27:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)
./grow.at:27:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)
./grow.at:27:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)
190. grow.at:24:  ok

191. sigpipe.at:21: testing sigpipe handling ...
./sigpipe.at:30:

case `(cat "$at_myself" 2>&3 | :) 3>&1 >/dev/null` in #(
?*) exit 77;;
esac


genfile --length 2048 --file first
genfile --length 2048 --file second
genfile --length 2049 --file third

tar cf archive first second third

# Discard diagnostics that some shells generate about broken pipes.
(tar tf archive 2>&3 | :) 3>&2 2>/dev/null

191. sigpipe.at:21:  ok

192. comperr.at:18: testing compressor program failure ...
./comperr.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

tar --use-compress-program false -cf a.tar . 2>err
rc=$?
sed -n '$p' err
exit $rc
)
./comperr.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

tar --use-compress-program false -cf a.tar . 2>err
rc=$?
sed -n '$p' err
exit $rc
)
./comperr.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

tar --use-compress-program false -cf a.tar . 2>err
rc=$?
sed -n '$p' err
exit $rc
)
./comperr.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

tar --use-compress-program false -cf a.tar . 2>err
rc=$?
sed -n '$p' err
exit $rc
)
./comperr.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

tar --use-compress-program false -cf a.tar . 2>err
rc=$?
sed -n '$p' err
exit $rc
)
192. comperr.at:18:  ok


Removing files after archiving

193. remfiles01.at:28: testing remove-files with compression ...
./remfiles01.at:32:

echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77


cat /dev/null | gzip - > /dev/null 2>&1 || exit 77


case `(cat "$at_myself" 2>&3 | :) 3>&1 >/dev/null` in #(
?*) exit 77;;
esac


test -z "`sort < /dev/null 2>&1`" || exit 77


mkdir dir
cd dir
genfile --file a --length 0
chmod 0 a
genfile --file b
mkdir c

# Depending on when the SIGPIPE gets delivered, the invocation below
# may finish with either
#  tar: a: Cannot write: Broken pipe
# or
#  tar: Child returned status 2

# Discard diagnostics that some shells generate about broken pipes,
# and discard all of tar's diagnostics except for the ones saying "(child)".
# Gzip's exit code is propagated to the shell.  Usually it is 141.
# Convert all non-zero exits to 2 to make it predictable.
(tar -c -f a -z --remove-files b c 2>err || (exit 2) ) 2>/dev/null
EC=$?
sed -n '/(child)/p' err >&2
rm err
find . | sort
exit $EC

193. remfiles01.at:28:  ok

194. remfiles02.at:28: testing remove-files with compression: grand-child ...
./remfiles02.at:32:

cat /dev/null | gzip - > /dev/null 2>&1 || exit 77


test -z "`sort < /dev/null 2>&1`" || exit 77


mkdir dir
cd dir
mkdir a
genfile --file b
mkdir c

tar -c -f a -z --remove-files b c 2>err
EC=$?
sed -n '/(child)/p' err >&2
rm err
find . | sort
exit $EC

194. remfiles02.at:28:  ok

195. remfiles03.at:28: testing remove-files with symbolic links ...
./remfiles03.at:31:
mkdir a
mkdir a/b
ln -s b a/c || exit 77
tar --remove-files -cf a.tar a
genfile --stat a

195. remfiles03.at:28:  ok

196. remfiles04a.at:25: testing remove-files with -C:rel in -c/non-incr. mode ...
./remfiles04a.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
echo bar > bar
echo foobar > foo/bar
tar -cf foo.tar --remove-files -C foo bar
echo A
find . | sort
)
196. remfiles04a.at:25:  ok

197. remfiles04b.at:33: testing remove-files with -C:rel in -c/incr. mode ...
./remfiles04b.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
echo bar > bar
echo foobar > foo/bar
tar -cf foo.tar --incremental --remove-files -C foo bar
echo A
find . | sort
)
197. remfiles04b.at:33:  ok

198. remfiles04c.at:33: testing remove-files with -C:rel in -r mode ...
./remfiles04c.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
echo bar > bar
echo foobar > foo/bar
tar -cf foo.tar -C foo bar
echo A
find . | sort
tar -rf foo.tar --remove-files -C foo bar
echo B
find . | sort
)
198. remfiles04c.at:33:  ok

199. remfiles05a.at:34: testing remove-files with -C:rel,rel in -c/non-incr. mode ...
./remfiles05a.at:37:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
decho A
tar -cvf foo.tar --remove-files -C foo file -C ../bar file
decho B
find . | sort
)
199. remfiles05a.at:34:  ok

200. remfiles05b.at:25: testing remove-files with -C:rel,rel in -c/incr. mode ...
./remfiles05b.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
decho A
tar -cvf foo.tar --incremental --remove-files -C foo file -C ../bar file
decho B
find . | sort
)
200. remfiles05b.at:25:  ok

201. remfiles05c.at:25: testing remove-files with -C:rel,rel in -r mode ...
./remfiles05c.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
tar -cf foo.tar -C foo file -C ../bar file
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files -C foo file -C ../bar file
decho C
find . | sort
)
201. remfiles05c.at:25:  ok

202. remfiles06a.at:25: testing remove-files with -C:rel,abs in -c/non-incr. mode ...
./remfiles06a.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
decho A
tar -cvf foo.tar --remove-files -C foo file -C $DIR/bar file
decho B
find . | sort
)
202. remfiles06a.at:25:  ok

203. remfiles06b.at:25: testing remove-files with -C:rel,abs in -c/incr. mode ...
./remfiles06b.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
decho A
tar -cvf foo.tar --incremental --remove-files -C foo file -C $DIR/bar file
decho B
find . | sort
)
203. remfiles06b.at:25:  ok

204. remfiles06c.at:25: testing remove-files with -C:rel,abs in -r mode ...
./remfiles06c.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
tar -cf foo.tar -C foo file -C $DIR/bar file
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files -C foo file -C $DIR/bar file
decho C
find . | sort
)
204. remfiles06c.at:25:  ok

205. remfiles07a.at:25: testing remove-files with -C:abs,rel in -c/non-incr. mode ...
./remfiles07a.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
decho A
tar -cvf foo.tar --remove-files -C $DIR/foo file -C ../bar file
decho B
find . | sort
)
205. remfiles07a.at:25:  ok

206. remfiles07b.at:25: testing remove-files with -C:abs,rel in -c/incr. mode ...
./remfiles07b.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
decho A
tar -cvf foo.tar --incremental --remove-files -C $DIR/foo file -C ../bar file
decho B
find . | sort
)
206. remfiles07b.at:25:  ok

207. remfiles07c.at:25: testing remove-files with -C:abs,rel in -r mode ...
./remfiles07c.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
tar -cf foo.tar -C $DIR/foo file -C ../bar file
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files -C $DIR/foo file -C ../bar file
decho C
find . | sort
)
207. remfiles07c.at:25:  ok

208. remfiles08a.at:28: testing remove-files deleting two subdirs in -c/non-incr. mode ...
./remfiles08a.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir foo
mkdir bar
echo foo/foo_file > foo/foo_file
echo bar/bar_file > bar/bar_file
decho A
tar -cvf foo.tar --remove-files -C foo . -C ../bar .
decho B
find .
)
208. remfiles08a.at:28:  ok

209. remfiles08b.at:31: testing remove-files deleting two subdirs in -c/incr. mode ...
./remfiles08b.at:34:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir foo
mkdir bar
echo foo/foo_file > foo/foo_file
echo bar/bar_file > bar/bar_file
decho A
tar -cvf foo.tar --incremental --remove-files -C foo . -C ../bar .
decho B
find .
)
209. remfiles08b.at:31:  ok

210. remfiles08c.at:28: testing remove-files deleting two subdirs in -r mode ...
./remfiles08c.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
mkdir bar
echo foo/foo_file > foo/foo_file
echo bar/bar_file > bar/bar_file
tar -cf foo.tar -C foo . -C ../bar .
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files -C foo . -C ../bar .
decho C
find .
)
210. remfiles08c.at:28:  ok

211. remfiles09a.at:25: testing remove-files on full directory in -c/non-incr. mode ...
./remfiles09a.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir foo
echo foo/file > foo/file
decho A
tar -cvf foo.tar --remove-files foo
decho B
find .
)
211. remfiles09a.at:25:  ok

212. remfiles09b.at:29: testing remove-files on full directory in -c/incr. mode ...
./remfiles09b.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir foo
echo foo/file > foo/file
decho A
tar -cvf foo.tar --incremental --remove-files foo
decho B
find .
)
212. remfiles09b.at:29:  ok

213. remfiles09c.at:25: testing remove-files on full directory in -r mode ...
./remfiles09c.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir foo
echo foo/file > foo/file
tar -cf foo.tar foo
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files foo
decho C
find . | sort
)
213. remfiles09c.at:25:  ok

214. remfiles10.at:20: testing remove-files ...
./remfiles10.at:23:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

mkdir foo
echo foo/file > foo/file
decho A
(cd foo && tar -cvf ../foo.tar --remove-files .)
tar_status=$?
decho B
find foo
exit $tar_status
)
stderr:
A
tar: .: Cannot rmdir: Invalid argument
tar: Exiting with failure status due to previous errors
B
./remfiles10.at:44: sed '2s/:[^:]*$//' stderr
214. remfiles10.at:20:  ok


Extended attributes

215. xattr01.at:25: testing xattrs: basic functionality ...
./xattr01.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *



  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfattr -n user.test -v test $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfattr $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  file=$(TMPDIR=. mktemp fiXXXXXX)
  setfattr -n user.test -v ahoj $file
  # check whether tar fails to store xattrs
  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi

mkdir dir
genfile --file dir/file

setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file

tar --xattrs -cf archive.tar dir

rm -rf dir
tar --xattrs -xf archive.tar

getfattr -h -d dir         | grep -v -e '^#' -e ^$
getfattr -h -d dir/file    | grep -v -e '^#' -e ^$
)
--- -	2025-04-17 18:28:31.872815856 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/215/stdout	2025-04-17 18:28:31.868235517 +1400
@@ -1,3 +1 @@
-user.test="OurDirValue"
-user.test="OurFileValue"
 
215. xattr01.at:25:  skipped (xattr01.at:28)

216. xattr02.at:25: testing xattrs: change directory with -C option ...
./xattr02.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *



  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfattr -n user.test -v test $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfattr $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  file=$(TMPDIR=. mktemp fiXXXXXX)
  setfattr -n user.test -v ahoj $file
  # check whether tar fails to store xattrs
  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi


mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2

setfattr -n user.test -v OurFile1Value dir/file1
setfattr -n user.test -v OurFile2Value dir/subdir/file2
setfattr -n user.test -v OurDirValue   dir/subdir/subsubdir

tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir

rm -rf dir

tar --xattrs -xf archive.tar

getfattr -h -d file1        | grep -v -e '^#' -e ^$
getfattr -h -d file2        | grep -v -e '^#' -e ^$
getfattr -h -d subsubdir    | grep -v -e '^#' -e ^$
)
--- -	2025-04-17 18:28:31.895009317 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/216/stdout	2025-04-17 18:28:31.888235517 +1400
@@ -1,4 +1 @@
-user.test="OurFile1Value"
-user.test="OurFile2Value"
-user.test="OurDirValue"
 
216. xattr02.at:25:  skipped (xattr02.at:28)

217. xattr03.at:25: testing xattrs: trusted.* attributes ...
./xattr03.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77



  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfattr -n user.test -v test $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfattr $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  file=$(TMPDIR=. mktemp fiXXXXXX)
  setfattr -n user.test -v ahoj $file
  # check whether tar fails to store xattrs
  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi


mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2

setfattr -n trusted.test -v OurFile1Value dir/file1
setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
setfattr -n trusted.test -v OurDirValue   dir/subdir/subsubdir

tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir

rm -rf dir

tar --xattrs --xattrs-include=trusted* -xf archive.tar

getfattr -mtrusted. -d file1        | grep -v -e '^#' -e ^$
getfattr -mtrusted. -d file2        | grep -v -e '^#' -e ^$
getfattr -mtrusted. -d subsubdir    | grep -v -e '^#' -e ^$
)
--- -	2025-04-17 18:28:31.917535341 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/217/stdout	2025-04-17 18:28:31.912235517 +1400
@@ -1,4 +1 @@
-trusted.test="OurFile1Value"
-trusted.test="OurFile2Value"
-trusted.test="OurDirValue"
 
217. xattr03.at:25:  skipped (xattr03.at:28)

218. xattr04.at:26: testing xattrs: s/open/openat/ regression ...
./xattr04.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *



  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfattr -n user.test -v test $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfattr $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  file=$(TMPDIR=. mktemp fiXXXXXX)
  setfattr -n user.test -v ahoj $file
  # check whether tar fails to store xattrs
  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi


mkdir dir
mkdir output
genfile --file dir/file

setfattr -n user.test -v value dir/file

# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .

tar --xattrs -xf archive.tar -C output
ret=$?
getfattr -h -d output/file | grep -v -e '^#' -e ^$
exit $ret
)
--- -	2025-04-17 18:28:31.939274104 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/218/stdout	2025-04-17 18:28:31.932235517 +1400
@@ -1,2 +1 @@
-user.test="value"
 
218. xattr04.at:26:  skipped (xattr04.at:29)

219. xattr05.at:28: testing xattrs: keywords with '=' and '%' ...
./xattr05.at:31:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *



  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfattr -n user.test -v test $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfattr $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  file=$(TMPDIR=. mktemp fiXXXXXX)
  setfattr -n user.test -v ahoj $file
  # check whether tar fails to store xattrs
  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi


mkdir dir
mkdir output
genfile --file dir/file

setfattr -n user.=NAME%3D= -v value dir/file
getfattr -d dir/file | grep -v '# ' > before

# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .

tar --xattrs -xf archive.tar -C output
getfattr -d output/file | grep -v '# ' > after
diff before after
)
219. xattr05.at:28:  skipped (xattr05.at:31)

220. xattr06.at:27: testing xattrs: exclude xattrs on create  ...
./xattr06.at:30:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *



  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfattr -n user.test -v test $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfattr $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  file=$(TMPDIR=. mktemp fiXXXXXX)
  setfattr -n user.test -v ahoj $file
  # check whether tar fails to store xattrs
  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi


mkdir dir
mkdir output
genfile --file dir/file

for attr in excluded incla inclb inclc incl_excluded
do
  setfattr -n user.${attr} -v value dir/file || exit 77
done

tar --xattrs-include=user.incl'*' --xattrs-exclude=user.incl_excluded -cf archive.tar -C dir .
tar -xf archive.tar --xattrs-include=user.incl[ab] --xattrs-exclude=user.inclb -C output

getfattr -d output/file | grep -v \
    -e excluded \
    -e inclb \
    -e inclc > filtered
getfattr -d output/file > full
# if they differ then the attribute is still present
diff filtered full
)
220. xattr06.at:27:  skipped (xattr06.at:30)

221. xattr07.at:26: testing xattrs: xattrs and --skip-old-files ...
./xattr07.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *



  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfattr -n user.test -v test $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfattr $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  file=$(TMPDIR=. mktemp fiXXXXXX)
  setfattr -n user.test -v ahoj $file
  # check whether tar fails to store xattrs
  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi

mkdir dir
genfile --file dir/file
genfile --file dir/file2

setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
setfattr -n user.test -v OurFileValue dir/file2

tar --xattrs --no-recursion -cf archive.tar dir dir/file dir/file2

setfattr -n user.test -v OurDirValue2 dir
setfattr -n user.test -v OurFileValue2 dir/file
setfattr -n user.test -v OurFileValue2 dir/file2

# Check that tar continues to file2 too!
tar --xattrs -xvf archive.tar --skip-old-files
tar --xattrs -xvf archive.tar --keep-old-files

getfattr -h -d dir         | grep -v -e '^#' -e ^$
getfattr -h -d dir/file    | grep -v -e '^#' -e ^$
getfattr -h -d dir/file2   | grep -v -e '^#' -e ^$
)
--- -	2025-04-17 18:28:32.002118988 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/221/stderr	2025-04-17 18:28:31.996235517 +1400
@@ -1,9 +1 @@
-tar: dir: skipping existing file
-tar: dir/file: skipping existing file
-tar: dir/file: skipping existing file
-tar: dir/file2: skipping existing file
-tar: dir/file2: skipping existing file
-tar: dir/file: Cannot open: File exists
-tar: dir/file2: Cannot open: File exists
-tar: Exiting with failure status due to previous errors
 
--- -	2025-04-17 18:28:32.003448996 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/221/stdout	2025-04-17 18:28:31.996235517 +1400
@@ -1,10 +1 @@
-dir/
-dir/file
-dir/file2
-dir/
-dir/file
-dir/file2
-user.test="OurDirValue2"
-user.test="OurFileValue2"
-user.test="OurFileValue2"
 
221. xattr07.at:26:  skipped (xattr07.at:29)

222. acls01.at:25: testing acls: basic functionality ...
./acls01.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfattr -n user.test -v test $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfattr $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi




  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfacl -m u:$UID:rwx $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfacl $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi

  rm -rf $file

  file=$(TMPDIR=. mktemp fiXXXXXX)
  setfacl -m u:$UID:rwx $file
  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi


mkdir dir
genfile --file dir/file

MYNAME=$( id -un )

setfacl -m u:$MYNAME:--x dir/file
setfacl -m u:$MYNAME:--x dir

getfattr -h -m. -d dir dir/file > before

tar --acls -cf archive.tar dir
rm -rf dir

tar --acls -xf archive.tar

getfattr -h -m. -d dir dir/file > after

diff before after
test "$?" = 0
)
222. acls01.at:25:  skipped (acls01.at:28)

223. acls02.at:25: testing acls: work with -C ...
./acls02.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfattr -n user.test -v test $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfattr $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi




  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfacl -m u:$UID:rwx $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfacl $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi

  rm -rf $file

  file=$(TMPDIR=. mktemp fiXXXXXX)
  setfacl -m u:$UID:rwx $file
  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi


mkdir dir
mkdir dir/subdir
genfile --file dir/subdir/file

MYNAME=$( id -un )

setfacl -m u:$MYNAME:--x dir/subdir
setfacl -m u:$MYNAME:--x dir/subdir/file

cd dir
getfattr -h -m. -d subdir subdir/file > ../before
cd ..

tar --acls -cf archive.tar -C dir subdir
rm -rf dir

mkdir dir
tar --acls -xf archive.tar -C dir

cd dir
getfattr -h -m. -d subdir subdir/file > ../after
cd ..

diff before after
test "$?" = 0
)
223. acls02.at:25:  skipped (acls02.at:28)

224. acls03.at:30: testing acls: default ACLs ...
./acls03.at:47:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfattr -n user.test -v test $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfattr $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi




  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfacl -m u:$UID:rwx $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfacl $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi

  rm -rf $file

  file=$(TMPDIR=. mktemp fiXXXXXX)
  setfacl -m u:$UID:rwx $file
  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi


test -z "`sort < /dev/null 2>&1`" || exit 77


MYNAME=$( id -un )
MYGROUP=$( id -gn )

# Prepare directory structure with default ACLs
mkdir -p pure/d1/d2
genfile --file pure/d1/f2a
genfile --file pure/d1/f2b
genfile --file pure/d1/d2/f3a
genfile --file pure/d1/d2/f3b
setfacl    -m g:$MYGROUP:r-x pure/d1
setfacl -d -m g:$MYGROUP:rwx pure/d1
setfacl -d -m u:$MYNAME:rwx  pure/d1
# "*a" files have "some" additional ACLs
setfacl    -m u:$MYNAME:--- pure/d1/d2/f3a
setfacl    -m u:$MYNAME:--- pure/d1/f2a

# use default format (no acls stored)
tar -cf noacl.tar -C pure d1

# use posix format, acls stored
tar --acls -cf acl.tar -C pure d1

# Directory names are chosen based on "how the files were extracted from
# archive".  Equivalent no* tags are used also:
#   ^sacl_    — extracted archive has stored ACLs
#   _def_     — target directory (-C) has default ACLs
#   _optacl$  — extraction was done with --acls option

mkdir sacl_def_optacl
mkdir sacl_def_optnoacl
mkdir sacl_nodef_optacl
mkdir sacl_nodef_optnoacl
mkdir nosacl_def_optacl
mkdir nosacl_def_optnoacl
mkdir nosacl_nodef_optacl
mkdir nosacl_nodef_optnoacl

setfacl -d -m u:$MYNAME:---  nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
setfacl -d -m g:$MYGROUP:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl

tar -xf acl.tar -C sacl_nodef_optnoacl
tar --acls -xf acl.tar -C sacl_nodef_optacl
tar -xf acl.tar -C sacl_def_optnoacl
tar --acls -xf acl.tar -C sacl_def_optacl
tar -xf noacl.tar -C nosacl_def_optnoacl
# _NO_ ACLs in output
tar -xf noacl.tar -C nosacl_nodef_optnoacl
tar -xf noacl.tar -C nosacl_nodef_optacl
tar -cf noacl_repackaged.tar -C nosacl_nodef_optnoacl d1
# _NO_ ACLs in output (even when default ACLs exist)
tar --acls -xf noacl_repackaged.tar -C nosacl_def_optacl


    cd pure
    pure="$(find d1 | sort | xargs -n 1 getfacl)"
    cd ..



    cd sacl_def_optacl
    sacl_def_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
    cd ..


    cd sacl_def_optnoacl
    sacl_def_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
    cd ..


    cd sacl_nodef_optacl
    sacl_nodef_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
    cd ..


    cd sacl_nodef_optnoacl
    sacl_nodef_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
    cd ..


    cd nosacl_def_optacl
    nosacl_def_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
    cd ..


    cd nosacl_def_optnoacl
    nosacl_def_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
    cd ..


    cd nosacl_nodef_optacl
    nosacl_nodef_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
    cd ..


    cd nosacl_nodef_optnoacl
    nosacl_nodef_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
    cd ..



    echo "$pure" > pure.log
    echo "$sacl_def_optacl" > sacl_def_optacl.log
    if test ! "$pure" "=" "$sacl_def_optacl"; then
        echo "bad 'pure' against 'sacl_def_optacl' output"
    fi



    echo "$sacl_def_optacl" > sacl_def_optacl.log
    echo "$sacl_nodef_optacl" > sacl_nodef_optacl.log
    if test ! "$sacl_def_optacl" "=" "$sacl_nodef_optacl"; then
        echo "bad 'sacl_def_optacl' against 'sacl_nodef_optacl' output"
    fi


    echo "$sacl_def_optnoacl" > sacl_def_optnoacl.log
    echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
    if test ! "$sacl_def_optnoacl" "=" "$nosacl_def_optnoacl"; then
        echo "bad 'sacl_def_optnoacl' against 'nosacl_def_optnoacl' output"
    fi


    echo "$sacl_nodef_optnoacl" > sacl_nodef_optnoacl.log
    echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
    if test ! "$sacl_nodef_optnoacl" "=" "$nosacl_nodef_optnoacl"; then
        echo "bad 'sacl_nodef_optnoacl' against 'nosacl_nodef_optnoacl' output"
    fi


    echo "$nosacl_def_optacl" > nosacl_def_optacl.log
    echo "$nosacl_nodef_optacl" > nosacl_nodef_optacl.log
    if test ! "$nosacl_def_optacl" "=" "$nosacl_nodef_optacl"; then
        echo "bad 'nosacl_def_optacl' against 'nosacl_nodef_optacl' output"
    fi


    echo "$nosacl_def_optacl" > nosacl_def_optacl.log
    echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
    if test ! "$nosacl_def_optacl" "=" "$nosacl_nodef_optnoacl"; then
        echo "bad 'nosacl_def_optacl' against 'nosacl_nodef_optnoacl' output"
    fi



    echo "$sacl_def_optacl" > sacl_def_optacl.log
    echo "$sacl_def_optnoacl" > sacl_def_optnoacl.log
    if test ! "$sacl_def_optacl" "!=" "$sacl_def_optnoacl"; then
        echo "bad 'sacl_def_optacl' against 'sacl_def_optnoacl' output"
    fi


    echo "$sacl_def_optacl" > sacl_def_optacl.log
    echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
    if test ! "$sacl_def_optacl" "!=" "$nosacl_def_optnoacl"; then
        echo "bad 'sacl_def_optacl' against 'nosacl_def_optnoacl' output"
    fi


    echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
    echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
    if test ! "$nosacl_def_optnoacl" "!=" "$nosacl_nodef_optnoacl"; then
        echo "bad 'nosacl_def_optnoacl' against 'nosacl_nodef_optnoacl' output"
    fi

)
224. acls03.at:30:  skipped (acls03.at:47)

225. selnx01.at:25: testing selinux: basic store/restore ...
./selnx01.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfattr -n user.test -v test $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfattr $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi




  file=$(TMPDIR=. mktemp fiXXXXXX)

  restorecon $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  chcon -h --user=unconfined_u $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi

  rm -rf $file

  file=$(TMPDIR=. mktemp fiXXXXXX)
  err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi


mkdir dir
genfile --file dir/file
ln -s file dir/link

getfattr -h -d -msecurity.selinux dir dir/file dir/link > start

restorecon -R dir
chcon -h --user=system_u     dir
chcon -h --user=unconfined_u dir/file
chcon -h --user=system_u     dir/link

# archive whole directory including selinux contexts
tar --selinux -cf archive.tar dir

# clear the directory
rm -rf dir

# ================================================
# check if selinux contexts are correctly restored

tar --selinux -xf archive.tar

# archive for later debugging
cp archive.tar archive_origin.tar

# check if selinux contexts were restored
getfattr -h -d dir dir/file dir/link -msecurity.selinux | \
    grep -v -e '^#' -e ^$ | cut -d: -f1

# ===========================================================================
# check if selinux contexts are not restored when --selinux option is missing

getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
rm -rf dir
tar -xf archive.tar
getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux

diff with_selinux without_selinux > diff_with_without
if test "$?" -eq "0"; then
    echo "selinux contexts probably restored while --selinux is off"
fi

# =================================================================
# check if selinux is not archived when --selinux option is missing

tar -cf archive.tar dir

# clear the directory
rm -rf dir

# restore (with --selinux)
tar --selinux -xf archive.tar dir

getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
diff start final > final_diff
if test "$?" -ne "0"; then
    echo "bad result"
fi

)
--- -	2025-04-17 18:28:32.093335902 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/225/stdout	2025-04-17 18:28:32.088235517 +1400
@@ -1,4 +1 @@
-security.selinux="system_u
-security.selinux="unconfined_u
-security.selinux="system_u
 
225. selnx01.at:25:  skipped (selnx01.at:28)

226. selacl01.at:25: testing acls/selinux: special files & fifos ...
./selacl01.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77


  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfattr -n user.test -v test $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfattr $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi




  file=$(TMPDIR=. mktemp fiXXXXXX)

  restorecon $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  chcon -h --user=unconfined_u $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi

  rm -rf $file

  file=$(TMPDIR=. mktemp fiXXXXXX)
  err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi



  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfacl -m u:$UID:rwx $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfacl $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi

  rm -rf $file

  file=$(TMPDIR=. mktemp fiXXXXXX)
  setfacl -m u:$UID:rwx $file
  err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi


mkdir dir
mkfifo dir/fifo
MAJOR=$( stat /dev/urandom --printf="%t" )
MINOR=$( stat /dev/urandom --printf="%T" )
mknod dir/chartype c $MAJOR $MINOR

# setup attributes
restorecon -R dir
chcon -h --user=system_u dir/fifo
chcon -h --user=system_u dir/chartype
setfacl -m u:$UID:--- dir/fifo
setfacl -m u:$UID:rwx dir/chartype

getfacl dir/fifo >> before
getfattr -msecurity.selinux dir/chartype >> before

tar --xattrs --selinux --acls -cf archive.tar dir

mv dir olddir

tar --xattrs --selinux --acls -xf archive.tar

getfacl dir/fifo >> after
getfattr -msecurity.selinux dir/chartype >> after

diff before after
echo separator
)
--- -	2025-04-17 18:28:32.117770874 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/226/stdout	2025-04-17 18:28:32.112235517 +1400
@@ -1,2 +1 @@
-separator
 
226. selacl01.at:25:  skipped (selacl01.at:28)

227. capabs_raw01.at:25: testing capabilities: binary store/restore ...
./capabs_raw01.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77



  file=$(TMPDIR=. mktemp fiXXXXXX)

  setfattr -n user.test -v test $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getfattr $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  file=$(TMPDIR=. mktemp fiXXXXXX)
  setfattr -n user.test -v ahoj $file
  # check whether tar fails to store xattrs
  err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
  if test "$err" != "0"; then
    exit 77
  fi


  file=$(TMPDIR=. mktemp fiXXXXXX)

  setcap "= cap_chown=ei" $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi


  getcap $file &> /dev/null
  if test "$?" != 0; then
    exit 77
  fi

  rm -rf $file


mkdir dir
genfile --file dir/file

setcap "= cap_chown=ei" dir/file

# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar dir

# clear the directory
rm -rf dir

# restore _all_ xattrs (not just the user.* domain)
tar --xattrs --xattrs-include='*' -xf archive.tar

# Newer systems print = instead of + here
getcap dir/file | sed 's/+/=/'
)
--- -	2025-04-17 18:28:32.141577615 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/227/stdout	2025-04-17 18:28:32.136235517 +1400
@@ -1,2 +1 @@
-dir/file = cap_chown=ei
 
227. capabs_raw01.at:25:  skipped (capabs_raw01.at:28)


One top level

228. onetop01.at:21: testing tar --one-top-level ...
./onetop01.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)
./onetop01.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)
./onetop01.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)
./onetop01.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)
./onetop01.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)
228. onetop01.at:21:  ok

229. onetop02.at:21: testing tar --one-top-level --show-transformed ...
./onetop02.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed  -v -x -f ../a.tar
find . | sort
)
./onetop02.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed  -v -x -f ../a.tar
find . | sort
)
./onetop02.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed  -v -x -f ../a.tar
find . | sort
)
./onetop02.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed  -v -x -f ../a.tar
find . | sort
)
./onetop02.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed  -v -x -f ../a.tar
find . | sort
)
229. onetop02.at:21:  ok

230. onetop03.at:21: testing tar --one-top-level --transform ...
./onetop03.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)
./onetop03.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)
./onetop03.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)
./onetop03.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)
./onetop03.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)
230. onetop03.at:21:  ok

231. onetop04.at:21: testing tar --one-top-level --transform ...
./onetop04.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)
./onetop04.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)
./onetop04.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)
./onetop04.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)
./onetop04.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *


test -z "`sort < /dev/null 2>&1`" || exit 77

mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)
231. onetop04.at:21:  ok

232. onetop05.at:21: testing tar --one-top-level restoring permissions ...
./onetop05.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *

orig_mode=3702
mkdir d
chmod $orig_mode d

mode=$(genfile --stat=mode.7777 d)
test $mode = $orig_mode || exit 77

genfile --file d/file
tar -cf d.tar -C d .
rm -rf d

(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=$(genfile --stat=mode.777 d1)
if test 700 = $mode; then
    echo "CWD: OK"
else
    echo "CWD: mode changed: 700 != $mode"
fi

mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=$(genfile --stat=mode.777 d2)
if test 700 = $mode; then
    echo "DIR: OK"
else
    echo "DIR: mode changed: 700 != $mode"
fi
mode=$(genfile --stat=mode.7777 d2/top)
if test $mode = $orig_mode; then
    echo "TOP: OK"
else
    echo "TOP: mode changed: $orig_mode != $mode"
fi
)
./onetop05.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *

orig_mode=3702
mkdir d
chmod $orig_mode d

mode=$(genfile --stat=mode.7777 d)
test $mode = $orig_mode || exit 77

genfile --file d/file
tar -cf d.tar -C d .
rm -rf d

(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=$(genfile --stat=mode.777 d1)
if test 700 = $mode; then
    echo "CWD: OK"
else
    echo "CWD: mode changed: 700 != $mode"
fi

mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=$(genfile --stat=mode.777 d2)
if test 700 = $mode; then
    echo "DIR: OK"
else
    echo "DIR: mode changed: 700 != $mode"
fi
mode=$(genfile --stat=mode.7777 d2/top)
if test $mode = $orig_mode; then
    echo "TOP: OK"
else
    echo "TOP: mode changed: $orig_mode != $mode"
fi
)
./onetop05.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *

orig_mode=3702
mkdir d
chmod $orig_mode d

mode=$(genfile --stat=mode.7777 d)
test $mode = $orig_mode || exit 77

genfile --file d/file
tar -cf d.tar -C d .
rm -rf d

(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=$(genfile --stat=mode.777 d1)
if test 700 = $mode; then
    echo "CWD: OK"
else
    echo "CWD: mode changed: 700 != $mode"
fi

mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=$(genfile --stat=mode.777 d2)
if test 700 = $mode; then
    echo "DIR: OK"
else
    echo "DIR: mode changed: 700 != $mode"
fi
mode=$(genfile --stat=mode.7777 d2/top)
if test $mode = $orig_mode; then
    echo "TOP: OK"
else
    echo "TOP: mode changed: $orig_mode != $mode"
fi
)
./onetop05.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *

orig_mode=3702
mkdir d
chmod $orig_mode d

mode=$(genfile --stat=mode.7777 d)
test $mode = $orig_mode || exit 77

genfile --file d/file
tar -cf d.tar -C d .
rm -rf d

(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=$(genfile --stat=mode.777 d1)
if test 700 = $mode; then
    echo "CWD: OK"
else
    echo "CWD: mode changed: 700 != $mode"
fi

mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=$(genfile --stat=mode.777 d2)
if test 700 = $mode; then
    echo "DIR: OK"
else
    echo "DIR: mode changed: 700 != $mode"
fi
mode=$(genfile --stat=mode.7777 d2/top)
if test $mode = $orig_mode; then
    echo "TOP: OK"
else
    echo "TOP: mode changed: $orig_mode != $mode"
fi
)
./onetop05.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *

orig_mode=3702
mkdir d
chmod $orig_mode d

mode=$(genfile --stat=mode.7777 d)
test $mode = $orig_mode || exit 77

genfile --file d/file
tar -cf d.tar -C d .
rm -rf d

(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=$(genfile --stat=mode.777 d1)
if test 700 = $mode; then
    echo "CWD: OK"
else
    echo "CWD: mode changed: 700 != $mode"
fi

mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=$(genfile --stat=mode.777 d2)
if test 700 = $mode; then
    echo "DIR: OK"
else
    echo "DIR: mode changed: 700 != $mode"
fi
mode=$(genfile --stat=mode.7777 d2/top)
if test $mode = $orig_mode; then
    echo "TOP: OK"
else
    echo "TOP: mode changed: $orig_mode != $mode"
fi
)
232. onetop05.at:21:  ok


Star tests

233. gtarfail.at:21: testing gtarfail ...
./gtarfail.at:26:

test -z "$STAR_TESTSCRIPTS" && exit 77
tarball_prereq gtarfail.tar bf7612e401aaa679edbb07ae1183811b $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77


tar --utc -tvf $STAR_TESTSCRIPTS/gtarfail.tar

--- -	2025-04-17 18:28:32.671147511 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/233/stdout	2025-04-17 18:28:32.664235517 +1400
@@ -1,7 +1 @@
--rw-r--r-- jes/glone       518 2001-05-25 14:41 vedpowered.gif
--rw-r--r-- jes/glone      6825 1997-04-29 00:19 cd.gif
--rw-r--r-- jes/glone     33354 1999-06-22 12:17 DSCN0049c.JPG
--rw-r--r-- jes/glone     86159 2001-06-05 18:16 Window1.jpg
--rw-r--r-- jes/glone      1310 2001-05-25 13:05 vipower.gif
--rw-rw-rw- jes/glone    148753 1998-09-15 13:08 billyboy.jpg
 
233. gtarfail.at:21:  skipped (gtarfail.at:26)

234. gtarfail2.at:21: testing gtarfail2 ...
./gtarfail2.at:26:

test -z "$STAR_TESTSCRIPTS" && exit 77
tarball_prereq gtarfail2.tar 6b607d1faec14b82f69525d9c5b66e53 $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77

tar --utc -tvf $STAR_TESTSCRIPTS/gtarfail2.tar

--- -	2025-04-17 18:28:32.690104071 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/234/stdout	2025-04-17 18:28:32.684235517 +1400
@@ -1,11 +1 @@
--rwxr-xr-x jes/glone       214 2001-09-21 14:08 .clean
-lrwxrwxrwx jes/cats          0 1998-05-07 12:39 RULES -> makefiles/RULES
-drwxr-sr-x jes/glone         0 2001-12-10 00:00 build/
--rw-r--r-- jes/glone    312019 2001-12-10 00:00 build/smake-1.2.tar.gz
-drwxr-sr-x jes/glone         0 2001-11-09 18:20 build/psmake/
--rwxr-xr-x jes/glone       259 2000-01-09 16:36 build/psmake/MAKE
--rwxr-xr-x jes/glone      4820 2001-02-25 22:45 build/psmake/MAKE.sh
--rw-r--r-- jes/glone       647 2001-02-25 23:50 build/psmake/Makefile
-lrwxrwxrwx jes/glone         0 2001-08-29 10:53 build/psmake/archconf.c -> ../archconf.c
-lrwxrwxrwx jes/glone         0 2001-08-29 10:54 build/psmake/astoi.c -> ../../lib/astoi.c
 
234. gtarfail2.at:21:  skipped (gtarfail2.at:26)

235. multi-fail.at:21: testing multi-fail ...
./multi-fail.at:26:

test -z "$STAR_TESTSCRIPTS" && exit 77
tarball_prereq gnu-multi-fail-volume1.gtar 7c28663dd98b0bd91ceb4be7af55254e $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77


test -z "$STAR_TESTSCRIPTS" && exit 77
tarball_prereq gnu-multi-fail-volume2.gtar b5d41c4c3ec440687d4a44957b5079a8 $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77


tar --utc -tvM -f $STAR_TESTSCRIPTS/gnu-multi-fail-volume1.gtar \
               -f $STAR_TESTSCRIPTS/gnu-multi-fail-volume2.gtar <&-

--- -	2025-04-17 18:28:32.708966575 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/235/stdout	2025-04-17 18:28:32.704235517 +1400
@@ -1,53 +1 @@
-drwxrwsr-x joerg/bs          0 2003-10-11 14:32 OBJ/i386-sunos5-gcc/
--rw-r--r-- joerg/bs          1 2003-10-11 14:32 OBJ/i386-sunos5-gcc/Dnull
--rw-r--r-- joerg/bs       1743 2003-10-10 18:06 OBJ/i386-sunos5-gcc/star.d
--rw-r--r-- joerg/bs       1460 2003-10-11 11:53 OBJ/i386-sunos5-gcc/header.d
--rw-r--r-- joerg/bs       1540 2003-10-10 18:06 OBJ/i386-sunos5-gcc/cpiohdr.d
--rw-r--r-- joerg/bs       2245 2003-10-10 18:06 OBJ/i386-sunos5-gcc/xheader.d
--rw-r--r-- joerg/bs       1254 2003-10-10 18:06 OBJ/i386-sunos5-gcc/xattr.d
--rw-r--r-- joerg/bs       1330 2003-10-10 18:06 OBJ/i386-sunos5-gcc/list.d
--rw-r--r-- joerg/bs       1745 2003-10-10 18:06 OBJ/i386-sunos5-gcc/extract.d
--rw-r--r-- joerg/bs       1518 2003-10-10 18:06 OBJ/i386-sunos5-gcc/create.d
--rw-r--r-- joerg/bs       1235 2003-10-10 18:06 OBJ/i386-sunos5-gcc/append.d
--rw-r--r-- joerg/bs       1368 2003-10-10 18:06 OBJ/i386-sunos5-gcc/diff.d
--rw-r--r-- joerg/bs       1423 2003-10-10 18:06 OBJ/i386-sunos5-gcc/remove.d
--rw-r--r-- joerg/bs       1493 2003-10-10 18:07 OBJ/i386-sunos5-gcc/star_unix.d
--rw-r--r-- joerg/bs       1572 2003-10-10 18:07 OBJ/i386-sunos5-gcc/acl_unix.d
--rw-r--r-- joerg/bs       1453 2003-10-10 18:07 OBJ/i386-sunos5-gcc/fflags.d
--rw-r--r-- joerg/bs       2257 2003-10-11 14:32 OBJ/i386-sunos5-gcc/buffer.d
--rw-r--r-- joerg/bs        969 2003-10-07 17:53 OBJ/i386-sunos5-gcc/dirtime.d
--rw-r--r-- joerg/bs       1308 2003-10-10 18:07 OBJ/i386-sunos5-gcc/lhash.d
--rw-r--r-- joerg/bs       1287 2003-10-10 18:07 OBJ/i386-sunos5-gcc/hole.d
--rw-r--r-- joerg/bs       1105 2003-10-10 18:07 OBJ/i386-sunos5-gcc/longnames.d
--rw-r--r-- joerg/bs       1230 2003-10-10 18:07 OBJ/i386-sunos5-gcc/names.d
--rw-r--r-- joerg/bs       1091 2003-10-10 18:07 OBJ/i386-sunos5-gcc/movearch.d
--rw-r--r-- joerg/bs        961 2003-10-07 17:53 OBJ/i386-sunos5-gcc/table.d
--rw-r--r-- joerg/bs       1113 2003-10-10 18:07 OBJ/i386-sunos5-gcc/props.d
--rw-r--r-- joerg/bs       2146 2003-10-10 18:07 OBJ/i386-sunos5-gcc/fetchdir.d
--rw-r--r-- joerg/bs       1093 2003-10-10 18:07 OBJ/i386-sunos5-gcc/unicode.d
--rw-r--r-- joerg/bs       1211 2003-10-10 18:07 OBJ/i386-sunos5-gcc/subst.d
--rw-r--r-- joerg/bs       2076 2003-10-11 11:53 OBJ/i386-sunos5-gcc/volhdr.d
--rw-r--r-- joerg/bs       1480 2003-10-10 18:07 OBJ/i386-sunos5-gcc/chdir.d
--rw-r--r-- joerg/bs      42460 2003-10-10 18:07 OBJ/i386-sunos5-gcc/star.o
--rw-r--r-- joerg/bs      22564 2003-10-11 11:53 OBJ/i386-sunos5-gcc/header.o
--rw-r--r-- joerg/bs       7880 2003-10-10 18:07 OBJ/i386-sunos5-gcc/cpiohdr.o
--rw-r--r-- joerg/bs      14624 2003-10-10 18:07 OBJ/i386-sunos5-gcc/xheader.o
--rw-r--r-- joerg/bs        924 2003-10-10 18:07 OBJ/i386-sunos5-gcc/xattr.o
--rw-r--r-- joerg/bs       6120 2003-10-10 18:07 OBJ/i386-sunos5-gcc/list.o
--rw-r--r-- joerg/bs      12764 2003-10-10 18:07 OBJ/i386-sunos5-gcc/extract.o
--rw-r--r-- joerg/bs      14668 2003-10-10 18:07 OBJ/i386-sunos5-gcc/create.o
--rw-r--r-- joerg/bs       2576 2003-10-10 18:07 OBJ/i386-sunos5-gcc/append.o
--rw-r--r-- joerg/bs       7636 2003-10-10 18:07 OBJ/i386-sunos5-gcc/diff.o
--rw-r--r-- joerg/bs       3072 2003-10-10 18:07 OBJ/i386-sunos5-gcc/remove.o
--rw-r--r-- joerg/bs       5612 2003-10-10 18:07 OBJ/i386-sunos5-gcc/star_unix.o
--rw-r--r-- joerg/bs       6220 2003-10-10 18:07 OBJ/i386-sunos5-gcc/acl_unix.o
--rw-r--r-- joerg/bs       1092 2003-10-10 18:07 OBJ/i386-sunos5-gcc/fflags.o
--rw-r--r-- joerg/bs      20996 2003-10-11 14:32 OBJ/i386-sunos5-gcc/buffer.o
--rw-r--r-- joerg/bs       2060 2003-10-07 17:53 OBJ/i386-sunos5-gcc/dirtime.o
--rw-r--r-- joerg/bs       1664 2003-10-10 18:07 OBJ/i386-sunos5-gcc/lhash.o
--rw-r--r-- joerg/bs      10564 2003-10-10 18:07 OBJ/i386-sunos5-gcc/hole.o
--rw-r--r-- joerg/bs       3864 2003-10-10 18:07 OBJ/i386-sunos5-gcc/longnames.o
--rw-r--r-- joerg/bs       2576 2003-10-10 18:07 OBJ/i386-sunos5-gcc/names.o
--rw-r--r-- joerg/bs        952 2003-10-10 18:07 OBJ/i386-sunos5-gcc/movearch.o
--rw-r--r-- joerg/bs       2756 2003-10-07 17:53 OBJ/i386-sunos5-gcc/table.o
 
235. multi-fail.at:21:  skipped (multi-fail.at:26)

236. ustar-big-2g.at:21: testing ustar-big-2g ...
./ustar-big-2g.at:26:
test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77

cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77


test -z "$STAR_TESTSCRIPTS" && exit 77
tarball_prereq ustar-big-2g.tar.bz2 b63979733629c8fcdf40b60065422767 $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77


tar --utc -tvjf $STAR_TESTSCRIPTS/ustar-big-2g.tar.bz2

stderr:
--- -	2025-04-17 18:28:32.730857371 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/236/stdout	2025-04-17 18:28:32.724235517 +1400
@@ -1,3 +1 @@
--rw------- jes/glone 2147483647 2002-06-15 14:53 big
--rw-r--r-- jes/glone          0 2002-06-15 14:53 file
 
236. ustar-big-2g.at:21:  skipped (ustar-big-2g.at:26)

237. ustar-big-8g.at:21: testing ustar-big-8g ...
./ustar-big-8g.at:26:
test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77

cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77


test -z "$STAR_TESTSCRIPTS" && exit 77
tarball_prereq ustar-big-8g.tar.bz2 60ff503fa4b8288bef7ada89e9c91b0f $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77


tar --utc -tvjf $STAR_TESTSCRIPTS/ustar-big-8g.tar.bz2

stderr:
--- -	2025-04-17 18:28:32.752085387 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/237/stdout	2025-04-17 18:28:32.748235517 +1400
@@ -1,3 +1 @@
--rw------- jes/glone 8589934591 2002-06-15 15:08 8gb-1
--rw-r--r-- jes/glone          0 2002-06-15 14:53 file
 
237. ustar-big-8g.at:21:  skipped (ustar-big-8g.at:26)

238. pax-big-10g.at:21: testing pax-big-10g ...
./pax-big-10g.at:26:
test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77

cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77


test -z "$STAR_TESTSCRIPTS" && exit 77
tarball_prereq pax-big-10g.tar.bz2 ca15c23acc8d8bb1f27e60113a5f8bff $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77


tar --utc -tvjf $STAR_TESTSCRIPTS/pax-big-10g.tar.bz2

stderr:
--- -	2025-04-17 18:28:32.773406482 +1400
+++ /build/reproducible-path/tar-1.34+dfsg/tests/testsuite.dir/at-groups/238/stdout	2025-04-17 18:28:32.768235517 +1400
@@ -1,3 +1 @@
--rw------- jes/glone 10737418240 2002-06-15 21:18 10g
--rw-r--r-- jes/glone           0 2002-06-15 14:53 file
 
238. pax-big-10g.at:21:  skipped (pax-big-10g.at:26)

## ------------- ##
## Test results. ##
## ------------- ##

212 tests were successful.
26 tests were skipped.
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/tests'
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/tests'
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg'
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg'
make[1]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg'
touch build-stamp
 fakeroot debian/rules binary
dh_testdir
dh_testroot
dh_prep
dh_installdirs
make install bindir=`pwd`/debian/tar/bin prefix=`pwd`/debian/tar/usr \
	libexecdir=`pwd`/debian/tar/usr/sbin
make[1]: warning: jobserver unavailable: using -j1.  Add '+' to parent make rule.
make[1]: Entering directory '/build/reproducible-path/tar-1.34+dfsg'
Making install in doc
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/doc'
make[2]: Nothing to be done for 'install'.
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/doc'
Making install in gnu
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
make  install-recursive
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
make[4]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
make[5]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
make[5]: Nothing to be done for 'install-exec-am'.
make[5]: Nothing to be done for 'install-data-am'.
make[5]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
make[4]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/gnu'
Making install in lib
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/lib'
make  install-am
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/lib'
make[4]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/lib'
make[4]: Nothing to be done for 'install-exec-am'.
make[4]: Nothing to be done for 'install-data-am'.
make[4]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/lib'
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/lib'
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/lib'
Making install in rmt
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/rmt'
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/rmt'
make[3]: Nothing to be done for 'install-exec-am'.
 /bin/mkdir -p '/build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/sbin'
  /usr/bin/install -c rmt '/build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/sbin'
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/rmt'
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/rmt'
Making install in src
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/src'
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/src'
 /bin/mkdir -p '/build/reproducible-path/tar-1.34+dfsg/debian/tar/bin'
  /usr/bin/install -c tar '/build/reproducible-path/tar-1.34+dfsg/debian/tar/bin'
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/src'
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/src'
Making install in scripts
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/scripts'
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/scripts'
 /bin/mkdir -p '/build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/sbin'
 /usr/bin/install -c backup.sh dump-remind '/build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/sbin'
 /bin/mkdir -p '/build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/sbin'
 /usr/bin/install -c backup restore '/build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/sbin'
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/scripts'
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/scripts'
Making install in po
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/po'
/bin/mkdir -p /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share
installing bg.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/bg/LC_MESSAGES/tar.mo
installing ca.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/ca/LC_MESSAGES/tar.mo
installing cs.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/cs/LC_MESSAGES/tar.mo
installing da.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/da/LC_MESSAGES/tar.mo
installing de.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/de/LC_MESSAGES/tar.mo
installing el.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/el/LC_MESSAGES/tar.mo
installing eo.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/eo/LC_MESSAGES/tar.mo
installing es.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/es/LC_MESSAGES/tar.mo
installing et.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/et/LC_MESSAGES/tar.mo
installing eu.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/eu/LC_MESSAGES/tar.mo
installing fi.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/fi/LC_MESSAGES/tar.mo
installing fr.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/fr/LC_MESSAGES/tar.mo
installing ga.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/ga/LC_MESSAGES/tar.mo
installing gl.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/gl/LC_MESSAGES/tar.mo
installing hr.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/hr/LC_MESSAGES/tar.mo
installing hu.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/hu/LC_MESSAGES/tar.mo
installing id.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/id/LC_MESSAGES/tar.mo
installing it.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/it/LC_MESSAGES/tar.mo
installing ja.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/ja/LC_MESSAGES/tar.mo
installing ko.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/ko/LC_MESSAGES/tar.mo
installing ky.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/ky/LC_MESSAGES/tar.mo
installing ms.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/ms/LC_MESSAGES/tar.mo
installing nb.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/nb/LC_MESSAGES/tar.mo
installing nl.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/nl/LC_MESSAGES/tar.mo
installing pl.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/pl/LC_MESSAGES/tar.mo
installing pt.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/pt/LC_MESSAGES/tar.mo
installing pt_BR.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/pt_BR/LC_MESSAGES/tar.mo
installing ro.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/ro/LC_MESSAGES/tar.mo
installing ru.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/ru/LC_MESSAGES/tar.mo
installing sk.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/sk/LC_MESSAGES/tar.mo
installing sl.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/sl/LC_MESSAGES/tar.mo
installing sr.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/sr/LC_MESSAGES/tar.mo
installing sv.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/sv/LC_MESSAGES/tar.mo
installing tr.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/tr/LC_MESSAGES/tar.mo
installing uk.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/uk/LC_MESSAGES/tar.mo
installing vi.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/vi/LC_MESSAGES/tar.mo
installing zh_CN.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/zh_CN/LC_MESSAGES/tar.mo
installing zh_TW.gmo as /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/locale/zh_TW/LC_MESSAGES/tar.mo
if test "tar" = "gettext-tools"; then \
  /bin/mkdir -p /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/gettext/po; \
  for file in Makefile.in.in remove-potcdate.sin quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot   Makevars.template; do \
    /usr/bin/install -c -m 644 ./$file \
		    /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/gettext/po/$file; \
  done; \
  for file in Makevars; do \
    rm -f /build/reproducible-path/tar-1.34+dfsg/debian/tar/usr/share/gettext/po/$file; \
  done; \
else \
  : ; \
fi
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/po'
Making install in tests
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/tests'
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg/tests'
make[3]: Nothing to be done for 'install-exec-am'.
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/tests'
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg/tests'
make[2]: Entering directory '/build/reproducible-path/tar-1.34+dfsg'
make[3]: Entering directory '/build/reproducible-path/tar-1.34+dfsg'
make[3]: Nothing to be done for 'install-exec-am'.
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg'
make[2]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg'
make[1]: Leaving directory '/build/reproducible-path/tar-1.34+dfsg'
mv debian/tar/usr/sbin/rmt debian/tar/usr/sbin/rmt-tar
ln -s /usr/sbin/rmt debian/tar/etc/rmt
install -m 755 debian/tarcat debian/tar/usr/sbin/tarcat
mv debian/tar/usr/sbin/backup debian/tar-scripts/usr/sbin/tar-backup
mv debian/tar/usr/sbin/restore debian/tar-scripts/usr/sbin/tar-restore
mv debian/tar/usr/sbin/backup.sh debian/tar-scripts/usr/sbin/
mv debian/tar/usr/sbin/dump-remind debian/tar-scripts/usr/sbin/
dh_testdir
dh_testroot
dh_installdocs
mv -f debian/tar/usr/share/doc/tar/ChangeLog \
	debian/tar/usr/share/doc/tar/changelog
mv -f debian/tar/usr/share/doc/tar/ChangeLog.1 \
	debian/tar/usr/share/doc/tar/changelog.1
dh_installexamples
dh_installmenu
dh_installcron
dh_installman doc/tar.1 doc/rmt.8 debian/tarcat.1
mv debian/tar/usr/share/man/man8/rmt.8 \
   debian/tar/usr/share/man/man8/rmt-tar.8
dh_installinfo
rm -f debian/tar/usr/share/info/dir*
dh_installmime
dh_installchangelogs #CHANGELOGS#
dh_link
dh_strip
dh_compress
dh_fixperms
dh_installdeb
dh_shlibdeps
dh_gencontrol
dpkg-gencontrol: warning: Depends field of package tar-scripts: substitution variable ${shlibs:Depends} used, but is not defined
dh_md5sums
dh_builddeb
dpkg-deb: building package 'tar-scripts' in '../tar-scripts_1.34+dfsg-1.2+deb12u1_i386.deb'.
dpkg-deb: building package 'tar' in '../tar_1.34+dfsg-1.2+deb12u1_i386.deb'.
dpkg-deb: building package 'tar-dbgsym' in '../tar-dbgsym_1.34+dfsg-1.2+deb12u1_i386.deb'.
 dpkg-genbuildinfo --build=binary -O../tar_1.34+dfsg-1.2+deb12u1_i386.buildinfo
 dpkg-genchanges --build=binary -O../tar_1.34+dfsg-1.2+deb12u1_i386.changes
dpkg-genchanges: info: binary-only upload (no source code included)
 dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)
dpkg-genchanges: info: not including original source code in upload
I: copying local configuration
I: user script /srv/workspace/pbuilder/59216/tmp/hooks/B01_cleanup starting
I: user script /srv/workspace/pbuilder/59216/tmp/hooks/B01_cleanup finished
I: unmounting dev/ptmx filesystem
I: unmounting dev/pts filesystem
I: unmounting dev/shm filesystem
I: unmounting proc filesystem
I: unmounting sys filesystem
I: cleaning the build env 
I: removing directory /srv/workspace/pbuilder/59216 and its subdirectories
I: Current time: Thu Apr 17 18:28:38 +14 2025
I: pbuilder-time-stamp: 1744864118