-GNU tar NEWS - User visible changes. 2016-10-29
+GNU tar NEWS - User visible changes. 2017-04-06
Please send GNU tar bug reports to <bug-tar@gnu.org>
\f
tar -cf a.tar . --exclude '*.o'
tar will create the archive, but will exit with status 2, having
-issued the following error message
+issued the following error message
tar: The following options were used after any non-optional
arguments in archive create or update mode. These options are
rearrange them properly.
tar: --exclude '*.o' has no effect
tar: Exiting with failure status due to previous errors
-
+
+* --numeric-owner now affects private headers too.
+This helps the output of 'tar' to be more deterministic.
+
\f
version 1.29 - Sergey Poznyakoff, 2016-05-16
* --null option reads file names verbatim
-The --null option implies --verbatim-files-from. I.e. each line
+The --null option implies --verbatim-files-from. I.e. each line
read from null-delimited file lists is treated as a file name.
This restores the documented behavior, which was broken in version
The --clamp-mtime option can only be used together with --mtime.
Typical use case is to make builds reproducible: to loose less
-information, it's better to keep the original date of an archive,
+information, it's better to keep the original date of an archive,
except for files modified during the build process. In that case, using
reference (and thus reproducible) timestamps for the latter is good
enough.
deleted, correspondingly.
%{FMT}t - Current local time using FMT as strftime(3) format.
If {FMT} is omitted, use %c.
- %{N}* - Pad output with spaces to the Nth column, or to the
+ %{N}* - Pad output with spaces to the Nth column, or to the
current screen width, if {N} is not given.
%c - A shortcut for "%{%Y-%m-%d %H:%M:%S}t: %ds, %{read,wrote}T%*\r"
--exclude-vcs-ignores Read exclude tags from VCS ignore files,
where such files exist. Supported VCS's
are: CVS, Git, Bazaar, Mercurial.
-
+
* Tar refuses to read input from and write output to a tty device.
This release includes official tar(1) and rmt(8) manpages.
Distribution maintainers are kindly asked to use these instead of the
home-made pages they have been providing so far.
-
+
\f
version 1.27.1 - Sergey Poznyakoff, 2013-11-17
symbolic link, it first unlinks the entry, and then extracts the directory.
This option disables this behavior and instructs tar to follow
-symlinks to directories when extracting from the archive.
+symlinks to directories when extracting from the archive.
It is mainly intended to provide compatibility with the Slackware
installation scripts.
#define MODE_TO_CHARS(val, where) mode_to_chars (val, where, sizeof (where))
#define UID_TO_CHARS(val, where) uid_to_chars (val, where, sizeof (where))
-#define UNAME_TO_CHARS(name,buf) string_to_chars (name, buf, sizeof(buf))
-#define GNAME_TO_CHARS(name,buf) string_to_chars (name, buf, sizeof(buf))
+#define UNAME_TO_CHARS(name, buf) string_to_chars (name, buf, sizeof (buf))
+#define GNAME_TO_CHARS(name, buf) string_to_chars (name, buf, sizeof (buf))
static bool
to_chars (int negative, uintmax_t value, size_t valsize,
size_t size = strlen (p) + 1;
size_t bufsize;
union block *header;
- char *tmpname;
header = start_private_header ("././@LongLink", size, 0);
- uid_to_uname (0, &tmpname);
- UNAME_TO_CHARS (tmpname, header->header.uname);
- free (tmpname);
- gid_to_gname (0, &tmpname);
- GNAME_TO_CHARS (tmpname, header->header.gname);
- free (tmpname);
+ if (! numeric_owner_option)
+ {
+ static char *uname, *gname;
+ if (!uname)
+ {
+ uid_to_uname (0, &uname);
+ gid_to_gname (0, &gname);
+ }
+ UNAME_TO_CHARS (uname, header->header.uname);
+ GNAME_TO_CHARS (gname, header->header.gname);
+ }
strcpy (header->buffer + offsetof (struct posix_header, magic),
OLDGNU_MAGIC);
union block *header;
char const *uname = NULL;
char const *gname = NULL;
-
+
header = write_header_name (st);
if (!header)
return NULL;
case USE_FILE_MTIME:
mtime = st->mtime;
break;
-
+
case FORCE_MTIME:
mtime = mtime_option;
break;
-
+
case CLAMP_MTIME:
mtime = timespec_cmp (st->mtime, mtime_option) > 0
? mtime_option : st->mtime;