21239432 Upgrade gtar to version 1.28
authorPetr Sumbera <petr.sumbera@oracle.com>
Thu, 11 Jun 2015 07:24:50 -0700
changeset 4548 a77dcced6a2a
parent 4545 538c0aeae836
child 4549 cef88d7826a6
21239432 Upgrade gtar to version 1.28 21222113 missing slashes in man page
components/gtar/Makefile
components/gtar/gtar.1.sunman
components/gtar/gtar.p5m
components/gtar/patches/man.patch
components/gtar/patches/remote-shell.patch
components/gtar/patches/system-test.patch
components/gtar/patches/xgetcwd.patch
components/gtar/test/results-64.master
--- a/components/gtar/Makefile	Wed Jun 24 19:19:18 2015 -0700
+++ b/components/gtar/Makefile	Thu Jun 11 07:24:50 2015 -0700
@@ -23,21 +23,26 @@
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		tar
-COMPONENT_VERSION=	1.27.1
+COMPONENT_VERSION=	1.28
 COMPONENT_PROJECT_URL=	http://www.gnu.org/software/tar/
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:9b0fb3ce8512059337add0da5f8f0f7d7647f2201f5ece24581d620ea60337c6
+    sha256:60e4bfe0602fef34cd908d91cf638e17eeb09394d7b98c2487217dc4d3147562
 COMPONENT_ARCHIVE_URL=	http://ftp.gnu.org/gnu/tar/$(COMPONENT_ARCHIVE)
 COMPONENT_BUGDB=	utility/gtar
 
-TPNO=			16886
+TPNO=			23088
 
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/configure.mk
 include $(WS_MAKE_RULES)/ips.mk
 
+PATCH_LEVEL=0
+
+# tests (ttyemu.c) requires c99
+studio_C99MODE = $(studio_C99_ENABLE)
+
 # Enforce tar binary to standard path
 CONFIGURE_BINDIR.64 = $(CONFIGURE_PREFIX)/bin
 
@@ -48,11 +53,13 @@
 CONFIGURE_OPTIONS +=	--libexecdir=/usr/sbin
 CONFIGURE_OPTIONS +=	CFLAGS="$(CFLAGS)" 
 
-COMPONENT_BUILD_TARGETS = all
+COMPONENT_SYSTEM_TEST_DIR = $(BUILD_DIR_64)/tests
+COMPONENT_SYSTEM_TEST_TARGETS =  installcheck-local
 
-# Remove differences between 'gmake test' and 'gmake build test'.
-COMPONENT_TEST_TRANSFORMS += \
-	'-e "/make  genfile/,/Leaving directory/d"'
+# Remove everything except test output.
+COMPONENT_TEST_TRANSFORMS = \
+	'-e "/^\#\# ----/,/tests were skipped\./p" ' \
+	'-e "/.*/d" '
 
 ASLR_MODE = $(ASLR_ENABLE)
 
@@ -64,7 +71,7 @@
 
 test:		$(TEST_64)
 
-system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
+system-test:    $(BUILD_64) $(SYSTEM_TEST_64)
 
 
 REQUIRED_PACKAGES += compress/bzip2
--- a/components/gtar/gtar.1.sunman	Wed Jun 24 19:19:18 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-.\" This man page created by Sun to provide a reference to the info pages 
-.\" for gtar provided with the gtar distribution.
-.\"
-.TH gtar 1 "2011-02-01"
-.SH NAME
-GNU tar, gtar \- A utility used to store, backup, and transport files
-.SH SYNOPSIS
-.LP
-.B \/usr\/bin\/gtar
-.RI "[ " "option " \|.\|.\|. ]
-.RI "[ " "file" " \|.\|.\|. ]"
-.sp 1n
-.B \/usr\/bin\/gtar
-.RI "--help"
-.sp 1n
-.B \/usr\/gnu\/bin\/tar
-.RI "[ " "option " \|.\|.\|. ]
-.RI "[ " "file" " \|.\|.\|. ]"
-.sp 1n
-.B \/usr\/gnu\/bin\/tar
-.RI "--help"
-.sp 1n
-.SH DESCRIPTION
-gtar (GNU tar) is an archiving program designed to store and extract files from an
-archive file known as a tarfile.
-For complete documentation, type: 
-.IP
-.B info tar
-.SH NOTE
-The standard version of tar is shipped under the name
-/usr/bin/tar and additional information about it can be
-obtained by typing the command 'man -M /usr/share/man tar'.
-.SH LICENSE
-GNU General Public License (GPL)
--- a/components/gtar/gtar.p5m	Wed Jun 24 19:19:18 2015 -0700
+++ b/components/gtar/gtar.p5m	Thu Jun 11 07:24:50 2015 -0700
@@ -36,7 +36,7 @@
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 link path=usr/bin/gtar target=../gnu/bin/tar facet.compat.gnulinks=true
 file usr/bin/tar path=usr/gnu/bin/tar
-file gtar.1.sunman path=usr/gnu/share/man/man1/tar.1
+file usr/share/man/man1/tar.1 path=usr/gnu/share/man/man1/tar.1
 link path=usr/sfw/bin/gtar target=../../gnu/bin/tar
 file path=usr/share/info/tar.info
 file path=usr/share/info/tar.info-1
@@ -73,6 +73,7 @@
 file path=usr/share/locale/ru/LC_MESSAGES/tar.mo
 file path=usr/share/locale/sk/LC_MESSAGES/tar.mo
 file path=usr/share/locale/sl/LC_MESSAGES/tar.mo
+file path=usr/share/locale/sr/LC_MESSAGES/tar.mo
 file path=usr/share/locale/sv/LC_MESSAGES/tar.mo
 file path=usr/share/locale/tr/LC_MESSAGES/tar.mo
 file path=usr/share/locale/uk/LC_MESSAGES/tar.mo
@@ -82,7 +83,7 @@
 link path=usr/share/man/man1/gtar.1 target=../../../gnu/share/man/man1/tar.1 \
     facet.compat.gnulinks=all
 legacy pkg=SUNWgtar \
-    desc="GNU tar - A utility used to store, backup, and transport files (gtar) 1.25" \
+    desc="GNU tar - A utility used to store, backup, and transport files (gtar)" \
     name="gtar - GNU tar"
 license gtar.license license="GPLv3, FDLv1.3"
 depend type=require fmri=__TBD pkg.debug.depend.file=usr/bin/bzip2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/gtar/patches/man.patch	Thu Jun 11 07:24:50 2015 -0700
@@ -0,0 +1,14 @@
+Patch origin: in-house
+Patch status: Solaris-specific; not suitable for upstream
+
+--- doc/tar.1
++++ doc/tar.1
+@@ -15,7 +15,7 @@
+ .\" along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ .TH TAR 1 "February 22, 2014" "TAR" "GNU TAR Manual"
+ .SH NAME
+-tar \- an archiving utility
++tar, gtar \- an archiving utility
+ .SH SYNOPSIS
+ .SS Traditional usage
+ \fBtar\fR {\fBA\fR|\fBc\fR|\fBd\fR|\fBr\fR|\fBt\fR|\fBu\fR|\fBx\fR}\
--- a/components/gtar/patches/remote-shell.patch	Wed Jun 24 19:19:18 2015 -0700
+++ b/components/gtar/patches/remote-shell.patch	Thu Jun 11 07:24:50 2015 -0700
@@ -1,17 +1,20 @@
---- tar-1.26/src/tar.c.orig	Fri Oct 28 08:14:09 2011
-+++ tar-1.26/src/tar.c	Fri Oct 28 08:14:31 2011
-@@ -536,7 +536,7 @@
+Patch origin: in-house
+Patch status: Solaris-specific; not suitable for upstream
+
+--- src/tar.c
++++ src/tar.c
+@@ -606,7 +606,7 @@
    {"rmt-command", RMT_COMMAND_OPTION, N_("COMMAND"), 0,
     N_("use given rmt COMMAND instead of rmt"), GRID+1 },
    {"rsh-command", RSH_COMMAND_OPTION, N_("COMMAND"), 0,
 -   N_("use remote COMMAND instead of rsh"), GRID+1 },
 +   N_("use remote COMMAND instead of ssh"), GRID+1 },
  #ifdef DEVICE_PREFIX
-   {"-[0-7][lmh]", 0, NULL, OPTION_DOC, /* It is OK, since `name' will never be
+   {"-[0-7][lmh]", 0, NULL, OPTION_DOC, /* It is OK, since 'name' will never be
  					  translated */
---- tar-1.26/doc/tar.info-1.orig	Fri Oct 28 08:21:28 2011
-+++ tar-1.26/doc/tar.info-1	Fri Oct 28 08:29:55 2011
-@@ -2821,7 +2821,7 @@
+--- doc/tar.info-1
++++ doc/tar.info-1
+@@ -2859,7 +2859,7 @@
  
            $ tar --show-defaults
            --format=gnu -f- -b20 --quoting-style=escape
@@ -19,8 +22,8 @@
 +          --rmt-command=/usr/libexec/rmt --rsh-command=/usr/bin/ssh
  
       Notice, that this option outputs only one line.  The example output
-      above has been split to fit page boundaries.
-@@ -3144,7 +3144,7 @@
+      above has been split to fit page boundaries. *Note defaults::.
+@@ -3217,7 +3217,7 @@
  
       $ tar --show-defaults
       --format=gnu -f- -b20 --quoting-style=escape
@@ -29,7 +32,7 @@
  
  Notice, that this option outputs only one line.  The example output
  above has been split to fit page boundaries.
-@@ -3153,7 +3153,7 @@
+@@ -3226,7 +3226,7 @@
  `gnu' archive format (*note Formats::), it uses standard output as the
  archive, if no `--file' option has been given (*note file tutorial::),
  the default blocking factor is 20 (*note Blocking Factor::).  It also
@@ -38,7 +41,7 @@
  binaries.
  
  
-@@ -5383,8 +5383,8 @@
+@@ -5607,8 +5607,8 @@
       Full file name of `mt' binary.
  
   -- Backup variable: RSH
@@ -49,7 +52,7 @@
       to use public key authentication.
  
   -- Backup variable: RSH_COMMAND
-@@ -5538,9 +5538,9 @@
+@@ -5762,9 +5762,9 @@
       BACKUP_HOUR=1
       TAPE_FILE=/dev/nrsmt0
  
@@ -62,7 +65,7 @@
  
       # Override MT_STATUS function:
       my_status() {
-@@ -5837,10 +5837,10 @@
+@@ -6061,10 +6061,10 @@
     If the archive file name includes a colon (`:'), then it is assumed
  to be a file on another machine.  If the archive file is
  `USER@HOST:FILE', then FILE is used on the host HOST.  The remote host
@@ -76,7 +79,7 @@
  the `rmt' program installed (this command is included in the GNU `tar'
  distribution and by default is installed under `PREFIX/libexec/rmt',
  where PREFIX means your installation prefix).  If you need to use a
-@@ -6844,7 +6844,7 @@
+@@ -7101,7 +7101,7 @@
  `H'
       Do not apply transformation to hard link targets.
  
@@ -85,9 +88,9 @@
  members and targets of symbolic and hard links.
  
     Default scope flags can also be changed using `flags=' statement in
---- tar-1.26/doc/tar.info-2.orig	Fri Oct 28 08:21:38 2011
-+++ tar-1.26/doc/tar.info-2	Fri Oct 28 08:38:38 2011
-@@ -1503,9 +1503,9 @@
+--- doc/tar.info-2
++++ doc/tar.info-2
+@@ -1819,9 +1819,9 @@
     If the file name contains a `:', it is interpreted as `hostname:file
  name'.  If the HOSTNAME contains an "at" sign (`@'), it is treated as
  `user@hostname:file name'.  In either case, `tar' will invoke the
@@ -99,7 +102,7 @@
  `/usr/libexec/rmt'.  This program is free software from the University
  of California, and a copy of the source code can be found with the
  sources for `tar'; it's compiled and installed by default.  The exact
-@@ -1553,8 +1553,8 @@
+@@ -1869,8 +1869,8 @@
       Archive file is local even if it contains a colon.
  
  `--rsh-command=COMMAND'
@@ -110,7 +113,7 @@
       Kerberized `rsh') can access a remote device.
  
       When this command is not used, the shell command found when the
-@@ -1618,7 +1618,7 @@
+@@ -1934,7 +1934,7 @@
  remote tape server written at the University of California at Berkeley.
  The remote tape server must be installed as `PREFIX/libexec/rmt' on any
  machine whose tape drive you want to use.  `tar' calls `rmt' by running
@@ -118,4 +121,4 @@
 +an `ssh' or `remsh' to the remote machine, optionally using a different
  login name if one is supplied.
  
-    A copy of the source for the remote tape server is provided.  It is
+    A copy of the source for the remote tape server is provided.  Its
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/gtar/patches/system-test.patch	Thu Jun 11 07:24:50 2015 -0700
@@ -0,0 +1,16 @@
+Patch origin: in-house
+Patch status: Solaris-specific; not suitable for upstream
+
+--- tests/Makefile.in
++++ tests/Makefile.in
+@@ -1701,8 +1701,8 @@
+ #check_SCRIPTS = tar
+ 
+ # Run the test suite on the *installed* tree.
+-installcheck-local:
+-	$(SHELL) $(TESTSUITE) $(TESTSUITEFLAGS) AUTOTEST_PATH=$(exec_prefix)/bin
++installcheck-local: $(check_PROGRAMS)
++	$(SHELL) $(TESTSUITE) $(TESTSUITEFLAGS) AUTOTEST_PATH=/usr/gnu/bin
+ 
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
--- a/components/gtar/patches/xgetcwd.patch	Wed Jun 24 19:19:18 2015 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
---- tar-1.26/gnu/xgetcwd.c.orig	Thu Mar 17 12:53:26 2011
-+++ tar-1.26/gnu/xgetcwd.c	Thu Mar 17 12:53:35 2011
-@@ -26,6 +26,7 @@
- 
- #include <errno.h>
- #include <unistd.h>
-+#include <limits.h>
- 
- #include "xalloc.h"
- 
-@@ -36,7 +37,14 @@
- char *
- xgetcwd (void)
- {
--  char *cwd = getcwd (NULL, 0);
-+  char *cwd;
-+#ifdef HAVE_PARTLY_WORKING_GETCWD
-+  cwd = getcwd (NULL, 0);
-+#else
-+  cwd = malloc(PATH_MAX);
-+  if (cwd)
-+    getcwd (cwd, PATH_MAX);
-+#endif
-   if (! cwd && errno == ENOMEM)
-     xalloc_die ();
-   return cwd;
--- a/components/gtar/test/results-64.master	Wed Jun 24 19:19:18 2015 -0700
+++ b/components/gtar/test/results-64.master	Thu Jun 11 07:24:50 2015 -0700
@@ -1,48 +1,6 @@
-make[1]: Entering directory `$(@D)'
-Making check in doc
-make[2]: Entering directory `$(@D)/doc'
-make[2]: Nothing to be done for `check'.
-make[2]: Leaving directory `$(@D)/doc'
-Making check in gnu
-make[2]: Entering directory `$(@D)/gnu'
-/usr/gnu/bin/make  check-recursive
-make[3]: Entering directory `$(@D)/gnu'
-make[4]: Entering directory `$(@D)/gnu'
-make[4]: Nothing to be done for `check-am'.
-make[4]: Leaving directory `$(@D)/gnu'
-make[3]: Leaving directory `$(@D)/gnu'
-make[2]: Leaving directory `$(@D)/gnu'
-Making check in lib
-make[2]: Entering directory `$(@D)/lib'
-/usr/gnu/bin/make  check-am
-make[3]: Entering directory `$(@D)/lib'
-make[3]: Nothing to be done for `check-am'.
-make[3]: Leaving directory `$(@D)/lib'
-make[2]: Leaving directory `$(@D)/lib'
-Making check in rmt
-make[2]: Entering directory `$(@D)/rmt'
-make[2]: Nothing to be done for `check'.
-make[2]: Leaving directory `$(@D)/rmt'
-Making check in src
-make[2]: Entering directory `$(@D)/src'
-make[2]: Nothing to be done for `check'.
-make[2]: Leaving directory `$(@D)/src'
-Making check in scripts
-make[2]: Entering directory `$(@D)/scripts'
-make[2]: Nothing to be done for `check'.
-make[2]: Leaving directory `$(@D)/scripts'
-Making check in po
-make[2]: Entering directory `$(@D)/po'
-make[2]: Nothing to be done for `check'.
-make[2]: Leaving directory `$(@D)/po'
-Making check in tests
-make[2]: Entering directory `$(@D)/tests'
-/usr/gnu/bin/make  check-local
-make[3]: Entering directory `$(@D)/tests'
-/bin/bash $(SOURCE_DIR)/tests/testsuite 
-## -------------------------- ##
-## GNU tar 1.27.1 test suite. ##
-## -------------------------- ##
+## ------------------------ ##
+## GNU tar 1.28 test suite. ##
+## ------------------------ ##
   1: tar version                                     ok
   2: decompressing from stdin                        ok
   3: mixing options                                  ok
@@ -74,240 +32,246 @@
  20: tar cvf -                                       ok
  21: gzip                                            ok
  22: recurse                                         ok
- 23: short records                                   ok
+ 23: recurse: toggle                                 ok
+ 24: short records                                   ok
+ 25: terminal input                                  ok
 
 The --same-order option
 
- 24: working -C with --same-order                    ok
- 25: multiple -C options                             ok
+ 26: working -C with --same-order                    ok
+ 27: multiple -C options                             ok
 
 Append
 
- 26: append                                          ok
- 27: appending files with long names                 ok
- 28: append vs. create                               ok
- 29: append with name transformation                 ok
- 30: append with verify                              ok
+ 28: append                                          ok
+ 29: appending files with long names                 ok
+ 30: append vs. create                               ok
+ 31: append with name transformation                 ok
+ 32: append with verify                              ok
 
 Transforms
 
- 31: transforming hard links on create               ok
- 32: transformations and GNU volume labels           ok
+ 33: transforming hard links on create               ok
+ 34: transformations and GNU volume labels           ok
 
 Exclude
 
- 33: exclude                                         ok
- 34: exclude wildcards                               ok
- 35: exclude: anchoring                              ok
- 36: exclude: wildcards match slash                  ok
- 37: exclude: case insensitive                       ok
- 38: exclude: lots of excludes                       ok
- 39: exclude: long files in pax archives             ok
- 40: exclude: --exclude-backups option               ok
- 41: --exclude-tag option                            ok
- 42: --exclude-tag option and --listed-incremental   ok
- 43: --exclude-tag option in incremental pass        ok
- 44: --exclude-tag-under option                      ok
- 45: --exclude-tag-under and --listed-incremental    ok
- 46: --exclude-tag-under option in incremental pass  ok
- 47: --exclude-tag-all option                        ok
- 48: --exclude-tag-all and --listed-incremental      ok
- 49: --exclude-tag-all option in incremental pass    ok
+ 35: exclude                                         ok
+ 36: exclude wildcards                               ok
+ 37: exclude: anchoring                              ok
+ 38: exclude: wildcards match slash                  ok
+ 39: exclude: case insensitive                       ok
+ 40: exclude: lots of excludes                       ok
+ 41: exclude: long files in pax archives             ok
+ 42: exclude: --exclude-backups option               ok
+ 43: --exclude-tag option                            ok
+ 44: --exclude-tag option and --listed-incremental   ok
+ 45: --exclude-tag option in incremental pass        ok
+ 46: --exclude-tag-under option                      ok
+ 47: --exclude-tag-under and --listed-incremental    ok
+ 48: --exclude-tag-under option in incremental pass  ok
+ 49: --exclude-tag-all option                        ok
+ 50: --exclude-tag-all and --listed-incremental      ok
+ 51: --exclude-tag-all option in incremental pass    ok
 
 Deletions
 
- 50: deleting a member after a big one               ok
- 51: deleting a member from stdin archive            ok
- 52: deleting members with long names                ok
- 53: deleting a large last member                    ok
- 54: deleting non-existing member                    ok
+ 52: deleting a member after a big one               ok
+ 53: deleting a member from stdin archive            ok
+ 54: deleting members with long names                ok
+ 55: deleting a large last member                    ok
+ 56: deleting non-existing member                    ok
 
 Extracting
 
- 55: extract over an existing directory              ok
- 56: extracting symlinks over an existing file       ok
- 57: extraction loops                                ok
- 58: extract + fnmatch                               ok
- 59: extracting selected members from pax            ok
- 60: mode of extracted directories                   ok
- 61: extracting symlinks to a read-only dir          ok
- 62: restoring mode on existing directory            ok
- 63: no need to save dir with unreadable . and ..    ok
- 64: -C and delayed setting of metadata              ok
- 65: scarce file descriptors                         ok
- 66: extract dot permissions                         ok
- 67: extract over symlinks                           ok
- 68: extract -C symlink                              ok
- 69: extract parent mkdir failure                    ok
- 70: extract empty directory with -C                 ok
- 71: name matching/transformation ordering           ok
- 72: keep-old-files                                  ok
- 73: skip-old-files                                  ok
- 74: extracting existing dir with --backup           ok
+ 57: extract over an existing directory              ok
+ 58: extracting symlinks over an existing file       ok
+ 59: extraction loops                                ok
+ 60: extract + fnmatch                               ok
+ 61: extracting selected members from pax            ok
+ 62: mode of extracted directories                   ok
+ 63: extracting symlinks to a read-only dir          ok
+ 64: restoring mode on existing directory            ok
+ 65: extracting even when . and .. are unreadable    ok
+ 66: -C and delayed setting of metadata              ok
+ 67: scarce file descriptors                         ok
+ 68: extract dot permissions                         ok
+ 69: extract over symlinks                           ok
+ 70: extract -C symlink                              ok
+ 71: extract parent mkdir failure                    ok
+ 72: extract empty directory with -C                 ok
+ 73: name matching/transformation ordering           ok
+ 74: keep-old-files                                  ok
+ 75: skip-old-files                                  ok
+ 76: extracting existing dir with --backup           ok
 
 Volume label operations
 
- 75: single-volume label                             ok
- 76: multi-volume label                              ok
- 77: test-label option                               ok
- 78: label with non-create option                    ok
- 79: label with non-create option                    ok
+ 77: single-volume label                             ok
+ 78: multi-volume label                              ok
+ 79: test-label option                               ok
+ 80: label with non-create option                    ok
+ 81: label with non-create option                    ok
 
 Incremental archives
 
- 80: incremental                                     ok
- 81: restore broken symlinks from incremental        ok
- 82: restoring timestamps from incremental           ok
- 83: --listed for individual files                   ok
- 84: working --listed                                ok
- 85: incremental dump when the parent directory is unreadable ok
- 86: --listed-incremental and --one-file-system      ok
- 87: --listed-incremental and remounted directories  skipped (listed05.at:36)
- 88: renamed files in incrementals                   ok
- 89: proper icontents initialization                 ok
- 90: incremental dumps with -C                       ok
- 91: incremental dumps of nested directories         ok
- 92: incremental restores with -C                    ok
- 93: filename normalization                          ok
- 94: incremental with alternating -C                 ok
+ 82: incremental                                     ok
+ 83: restore broken symlinks from incremental        ok
+ 84: restoring timestamps from incremental           ok
+ 85: --listed for individual files                   ok
+ 86: working --listed                                ok
+ 87: incremental dump when the parent directory is unreadable ok
+ 88: --listed-incremental and --one-file-system      ok
+ 89: --listed-incremental and remounted directories  skipped (listed05.at:36)
+ 90: renamed files in incrementals                   ok
+ 91: proper icontents initialization                 ok
+ 92: incremental dumps with -C                       ok
+ 93: incremental dumps of nested directories         ok
+ 94: incremental restores with -C                    ok
+ 95: filename normalization                          ok
+ 96: incremental with alternating -C                 ok
 
 Files removed while archiving
 
- 95: file removed as we read it (ca. 22 seconds)     ok
- 96: toplevel file removed (ca. 24 seconds)          ok
+ 97: file removed as we read it (ca. 22 seconds)     ok
+ 98: toplevel file removed (ca. 24 seconds)          ok
 
 Renames
 
- 97: renamed dirs in incrementals                    ok
- 98: move between hierarchies                        ok
- 99: cyclic renames                                  ok
-100: renamed directory containing subdirectories     ok
-101: renamed subdirectories                          ok
-102: changed file types in incrementals              ok
+ 99: renamed dirs in incrementals                    ok
+100: move between hierarchies                        ok
+101: cyclic renames                                  ok
+102: renamed directory containing subdirectories     ok
+103: renamed subdirectories                          ok
+104: changed file types in incrementals              ok
 
 Ignore failing reads
 
-103: ignfail                                         ok
+105: ignfail                                         ok
 
 Link handling
 
-104: link count gt 2                                 ok
-105: preserve hard links with --remove-files         ok
-106: working -l with --remove-files                  ok
-107: link count is 1 but multiple occurrences        ok
+106: link count gt 2                                 ok
+107: preserve hard links with --remove-files         ok
+108: working -l with --remove-files                  ok
+109: link count is 1 but multiple occurrences        ok
 
 Specific archive formats
 
-108: long names in V7 archives                       ok
-109: long file names divisible by block size         ok
-110: ustar: unsplittable file name                   ok
-111: ustar: unsplittable path name                   ok
-112: ustar: splitting long names                     ok
-113: old archives                                    ok
-114: time: tricky time stamps                        ok
+110: long names in V7 archives                       ok
+111: long file names divisible by block size         ok
+112: ustar: unsplittable file name                   ok
+113: ustar: unsplittable path name                   ok
+114: ustar: splitting long names                     ok
+115: old archives                                    ok
+116: time: tricky time stamps                        ok
 
 Multivolume archives
 
-115: multivolume dumps from pipes                    ok
-116: skipping a straddling member                    ok
-117: MV archive & long filenames                     ok
-118: split directory members in a MV archive         ok
-119: Restoring after an out of sync volume           ok
-120: Multivolumes with L=record_size                 ok
-121: volumes split at an extended header             skipped (multiv07.at:31)
-122: multivolume header creation                     ok
+117: multivolume dumps from pipes                    ok
+118: skipping a straddling member                    ok
+119: MV archive & long filenames                     ok
+120: split directory members in a MV archive         ok
+121: Restoring after an out of sync volume           ok
+122: Multivolumes with L=record_size                 ok
+123: volumes split at an extended header             skipped (multiv07.at:31)
+124: multivolume header creation                     ok
 
 Owner and Groups
 
-123: --owner and --group                             ok
+125: --owner and --group                             ok
 
 Sparse files
 
-124: sparse files                                    ok
-125: extracting sparse file over a pipe              ok
-126: storing sparse files > 8G                       ok
-127: storing long sparse file names                  ok
-128: sparse files in MV archives                     ok
-129: sparse files in PAX MV archives, v.0.0          ok
-130: sparse files in PAX MV archives, v.0.1          ok
-131: sparse files in PAX MV archives, v.1.0          ok
+126: sparse files                                    ok
+127: extracting sparse file over a pipe              ok
+128: storing sparse files > 8G                       ok
+129: storing long sparse file names                  ok
+130: sparse files in MV archives                     ok
+131: sparse files in PAX MV archives, v.0.0          ok
+132: sparse files in PAX MV archives, v.0.1          ok
+133: sparse files in PAX MV archives, v.1.0          ok
 
 Updates
 
-132: update unchanged directories                    ok
-133: update directories                              ok
-134: update changed files                            ok
+134: update unchanged directories                    ok
+135: update directories                              ok
+136: update changed files                            ok
 
 Verifying the archive
 
-135: verify                                          ok
+137: verify                                          ok
 
 Volume operations
 
-136: volume                                          ok
-137: volume header size                              skipped (volsize.at:32)
+138: volume                                          ok
+139: volume header size                              skipped (volsize.at:32)
 
-138: compressed format recognition                   ok
-139: short input files                               ok
-140: updating short archives                         ok
-141: truncate                                        ok
-142: grow                                            ok
-143: sigpipe handling                                ok
+140: compressed format recognition                   ok
+141: short input files                               ok
+142: updating short archives                         ok
+143: truncate                                        ok
+144: grow                                            ok
+145: sigpipe handling                                ok
 
 Removing files after archiving
 
-144: remove-files with compression                   ok
-145: remove-files with compression: grand-child      ok
-146: remove-files with symbolic links                ok
-147: remove-files with -C:rel in -c/non-incr. mode   ok
-148: remove-files with -C:rel in -c/incr. mode       ok
-149: remove-files with -C:rel in -r mode             ok
-150: remove-files with -C:rel,rel in -c/non-incr. mode ok
-151: remove-files with -C:rel,rel in -c/incr. mode   ok
-152: remove-files with -C:rel,rel in -r mode         ok
-153: remove-files with -C:rel,abs in -c/non-incr. mode ok
-154: remove-files with -C:rel,abs in -c/incr. mode   ok
-155: remove-files with -C:rel,abs in -r mode         ok
-156: remove-files with -C:rel,abs in -c/non-incr. mode ok
-157: remove-files with -C:rel,abs in -c/incr. mode   ok
-158: remove-files with -C:rel,abs in -r mode         ok
-159: remove-files with -C:abs,rel in -c/non-incr. mode ok
-160: remove-files with -C:abs,rel in -c/incr. mode   ok
-161: remove-files with -C:abs,rel in -r mode         ok
-162: remove-files on full directory in -c/non-incr. mode ok
-163: remove-files on full directory in -c/incr. mode expected failure (remfiles09b.at:34)
-164: remove-files on full directory in -r mode       ok
+146: remove-files with compression                   ok
+147: remove-files with compression: grand-child      ok
+148: remove-files with symbolic links                ok
+149: remove-files with -C:rel in -c/non-incr. mode   ok
+150: remove-files with -C:rel in -c/incr. mode       ok
+151: remove-files with -C:rel in -r mode             ok
+152: remove-files with -C:rel,rel in -c/non-incr. mode ok
+153: remove-files with -C:rel,rel in -c/incr. mode   ok
+154: remove-files with -C:rel,rel in -r mode         ok
+155: remove-files with -C:rel,abs in -c/non-incr. mode ok
+156: remove-files with -C:rel,abs in -c/incr. mode   ok
+157: remove-files with -C:rel,abs in -r mode         ok
+158: remove-files with -C:abs,rel in -c/non-incr. mode ok
+159: remove-files with -C:abs,rel in -c/incr. mode   ok
+160: remove-files with -C:abs,rel in -r mode         ok
+161: remove-files deleting two subdirs in -c/non-incr. mode ok
+162: remove-files deleting two subdirs in -c/incr. mode expected failure (remfiles08b.at:36)
+163: remove-files deleting two subdirs in -r mode    ok
+164: remove-files on full directory in -c/non-incr. mode ok
+165: remove-files on full directory in -c/incr. mode expected failure (remfiles09b.at:34)
+166: remove-files on full directory in -r mode       ok
+167: remove-files                                    ok
 
 Extended attributes
 
-165: xattrs: basic functionality                     skipped (xattr01.at:28)
-166: xattrs: change directory with -C option         skipped (xattr02.at:28)
-167: xattrs: trusted.* attributes                    skipped (xattr03.at:28)
-168: xattrs: s/open/openat/ regression               skipped (xattr04.at:29)
-169: xattrs: keywords with '=' and '%'               skipped (xattr05.at:31)
-170: acls: basic functionality                       skipped (acls01.at:28)
-171: acls: work with -C                              skipped (acls02.at:28)
-172: selinux: basic store/restore                    skipped (selnx01.at:28)
-173: acls/selinux: special files & fifos             skipped (selacl01.at:28)
-174: capabilities: binary store/restore              skipped (capabs_raw01.at:28)
+168: xattrs: basic functionality                     skipped (xattr01.at:28)
+169: xattrs: change directory with -C option         skipped (xattr02.at:28)
+170: xattrs: trusted.* attributes                    skipped (xattr03.at:28)
+171: xattrs: s/open/openat/ regression               skipped (xattr04.at:29)
+172: xattrs: keywords with '=' and '%'               skipped (xattr05.at:31)
+173: acls: basic functionality                       skipped (acls01.at:28)
+174: acls: work with -C                              skipped (acls02.at:28)
+175: acls: default ACLs                              skipped (acls03.at:47)
+176: selinux: basic store/restore                    skipped (selnx01.at:28)
+177: acls/selinux: special files & fifos             skipped (selacl01.at:28)
+178: capabilities: binary store/restore              skipped (capabs_raw01.at:28)
+
+One top level
+
+179: tar --one-top-level                             ok
+180: tar --one-top-level --show-transformed          ok
+181: tar --one-top-level --transform                 ok
+182: tar --one-top-level --transform                 ok
 
 Star tests
 
-175: gtarfail                                        skipped (gtarfail.at:26)
-176: gtarfail2                                       skipped (gtarfail2.at:26)
-177: multi-fail                                      skipped (multi-fail.at:26)
-178: ustar-big-2g                                    skipped (ustar-big-2g.at:26)
-179: ustar-big-8g                                    skipped (ustar-big-8g.at:26)
-180: pax-big-10g                                     skipped (pax-big-10g.at:26)
+183: gtarfail                                        skipped (gtarfail.at:26)
+184: gtarfail2                                       skipped (gtarfail2.at:26)
+185: multi-fail                                      skipped (multi-fail.at:26)
+186: ustar-big-2g                                    skipped (ustar-big-2g.at:26)
+187: ustar-big-8g                                    skipped (ustar-big-8g.at:26)
+188: pax-big-10g                                     skipped (pax-big-10g.at:26)
 
 ## ------------- ##
 ## Test results. ##
 ## ------------- ##
 
-160 tests behaved as expected.
-20 tests were skipped.
-make[3]: Leaving directory `$(@D)/tests'
-make[2]: Leaving directory `$(@D)/tests'
-make[2]: Entering directory `$(@D)'
-make[2]: Leaving directory `$(@D)'
-make[1]: Leaving directory `$(@D)'
+167 tests behaved as expected.
+21 tests were skipped.