mirror of
https://git.freebsd.org/ports.git
synced 2025-06-16 10:10:31 -04:00
Update to 1.25, which mostly brings miscellaneous bug fixes.
This commit is contained in:
parent
50fd51edcb
commit
1cb39c944d
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=265098
7 changed files with 16 additions and 208 deletions
|
@ -6,8 +6,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
PORTNAME= tar
|
PORTNAME= tar
|
||||||
PORTVERSION= 1.23
|
PORTVERSION= 1.25
|
||||||
PORTREVISION= 3
|
|
||||||
CATEGORIES= archivers sysutils
|
CATEGORIES= archivers sysutils
|
||||||
MASTER_SITES= ${MASTER_SITE_GNU}
|
MASTER_SITES= ${MASTER_SITE_GNU}
|
||||||
MASTER_SITE_SUBDIR= ${PORTNAME}
|
MASTER_SITE_SUBDIR= ${PORTNAME}
|
||||||
|
@ -21,8 +20,7 @@ COMMENT= GNU version of the traditional tape archiver
|
||||||
|
|
||||||
INFO= tar
|
INFO= tar
|
||||||
|
|
||||||
USE_AUTOTOOLS= autoconf:268:env
|
USE_XZ= yes
|
||||||
USE_BZIP2= yes
|
|
||||||
USE_ICONV= yes
|
USE_ICONV= yes
|
||||||
GNU_CONFIGURE= yes
|
GNU_CONFIGURE= yes
|
||||||
MAKE_JOBS_SAFE= yes
|
MAKE_JOBS_SAFE= yes
|
||||||
|
|
|
@ -1,3 +1,2 @@
|
||||||
MD5 (tar-1.23.tar.bz2) = 41e2ca4b924ec7860e51b43ad06cdb7e
|
SHA256 (tar-1.25.tar.xz) = 81230b829e2acea2fcd4c686b15f6a77d961871d0d72b961bbebcbd65e04d04c
|
||||||
SHA256 (tar-1.23.tar.bz2) = c9328372db62fbb1d94c9e4e3cefc961111af46de47085b635359c00a0eebe36
|
SIZE (tar-1.25.tar.xz) = 1767776
|
||||||
SIZE (tar-1.23.tar.bz2) = 2189324
|
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
$FreeBSD$
|
|
||||||
|
|
||||||
7.x up to 7.3 lacks the fdopendir() prototype in <dirent.h>.
|
|
||||||
|
|
||||||
--- gnu/dirent.in.h.orig 2010-03-29 17:48:45.000000000 +0200
|
|
||||||
+++ gnu/dirent.in.h 2010-03-29 17:49:00.000000000 +0200
|
|
||||||
@@ -79,9 +79,7 @@ _GL_WARN_ON_USE (dirfd, "dirfd is unport
|
|
||||||
_GL_FUNCDECL_RPL (fdopendir, DIR *, (int fd));
|
|
||||||
_GL_CXXALIAS_RPL (fdopendir, DIR *, (int fd));
|
|
||||||
# else
|
|
||||||
-# if !@HAVE_FDOPENDIR@
|
|
||||||
_GL_FUNCDECL_SYS (fdopendir, DIR *, (int fd));
|
|
||||||
-# endif
|
|
||||||
_GL_CXXALIAS_SYS (fdopendir, DIR *, (int fd));
|
|
||||||
# endif
|
|
||||||
_GL_CXXALIASWARN (fdopendir);
|
|
|
@ -1,159 +1,14 @@
|
||||||
$FreeBSD$
|
$FreeBSD$
|
||||||
http://git.savannah.gnu.org/cgit/tar.git/commit/?id=b60e56fdb6fd8d82a1f92a4fa7781d9a3184dce1
|
|
||||||
|
|
||||||
--- src/extract.c.orig 2010-01-26 12:28:09.000000000 +0100
|
FreeBSD produces errno == EMLINK for open("symlink", O_NOFOLLOW|...).
|
||||||
+++ src/extract.c 2010-06-11 20:54:04.000000000 +0200
|
|
||||||
@@ -888,12 +888,22 @@ create_placeholder_file (char *file_name
|
|
||||||
struct stat st;
|
|
||||||
|
|
||||||
while ((fd = open (file_name, O_WRONLY | O_CREAT | O_EXCL, 0)) < 0)
|
--- src/extract.c.orig 2010-11-23 16:56:47.000000000 +0100
|
||||||
- if (! maybe_recoverable (file_name, interdir_made))
|
+++ src/extract.c 2010-11-23 16:57:04.000000000 +0100
|
||||||
- break;
|
@@ -609,6 +609,7 @@ maybe_recoverable (char *file_name, bool
|
||||||
+ {
|
switch (e)
|
||||||
+ switch (maybe_recoverable (file_name, interdir_made))
|
|
||||||
+ {
|
|
||||||
+ case RECOVER_OK:
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
+ case RECOVER_SKIP:
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ case RECOVER_NO:
|
|
||||||
+ open_error (file_name);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- if (fd < 0)
|
|
||||||
- open_error (file_name);
|
|
||||||
- else if (fstat (fd, &st) != 0)
|
|
||||||
+ if (fstat (fd, &st) != 0)
|
|
||||||
{
|
{
|
||||||
stat_error (file_name);
|
case ELOOP:
|
||||||
close (fd);
|
+ case EMLINK:
|
||||||
@@ -956,7 +966,8 @@ extract_link (char *file_name, int typef
|
if (! regular
|
||||||
{
|
|| old_files_option != OVERWRITE_OLD_FILES || dereference_option)
|
||||||
int interdir_made = 0;
|
break;
|
||||||
char const *link_name;
|
|
||||||
-
|
|
||||||
+ int rc;
|
|
||||||
+
|
|
||||||
link_name = current_stat_info.link_name;
|
|
||||||
|
|
||||||
if (! absolute_names_option && contains_dot_dot (link_name))
|
|
||||||
@@ -996,8 +1007,10 @@ extract_link (char *file_name, int typef
|
|
||||||
|
|
||||||
errno = e;
|
|
||||||
}
|
|
||||||
- while (maybe_recoverable (file_name, &interdir_made));
|
|
||||||
+ while ((rc = maybe_recoverable (file_name, &interdir_made)) == RECOVER_OK);
|
|
||||||
|
|
||||||
+ if (rc == RECOVER_SKIP)
|
|
||||||
+ return 0;
|
|
||||||
if (!(incremental_option && errno == EEXIST))
|
|
||||||
{
|
|
||||||
link_error (link_name, file_name);
|
|
||||||
@@ -1010,7 +1023,6 @@ static int
|
|
||||||
extract_symlink (char *file_name, int typeflag)
|
|
||||||
{
|
|
||||||
#ifdef HAVE_SYMLINK
|
|
||||||
- int status;
|
|
||||||
int interdir_made = 0;
|
|
||||||
|
|
||||||
if (! absolute_names_option
|
|
||||||
@@ -1018,15 +1030,22 @@ extract_symlink (char *file_name, int ty
|
|
||||||
|| contains_dot_dot (current_stat_info.link_name)))
|
|
||||||
return create_placeholder_file (file_name, true, &interdir_made);
|
|
||||||
|
|
||||||
- while ((status = symlink (current_stat_info.link_name, file_name)))
|
|
||||||
- if (!maybe_recoverable (file_name, &interdir_made))
|
|
||||||
- break;
|
|
||||||
-
|
|
||||||
- if (status == 0)
|
|
||||||
- set_stat (file_name, ¤t_stat_info, NULL, 0, 0, SYMTYPE);
|
|
||||||
- else
|
|
||||||
- symlink_error (current_stat_info.link_name, file_name);
|
|
||||||
- return status;
|
|
||||||
+ while (symlink (current_stat_info.link_name, file_name))
|
|
||||||
+ switch (maybe_recoverable (file_name, &interdir_made))
|
|
||||||
+ {
|
|
||||||
+ case RECOVER_OK:
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
+ case RECOVER_SKIP:
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ case RECOVER_NO:
|
|
||||||
+ symlink_error (current_stat_info.link_name, file_name);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ set_stat (file_name, ¤t_stat_info, NULL, 0, 0, SYMTYPE);
|
|
||||||
+ return 0;
|
|
||||||
|
|
||||||
#else
|
|
||||||
static int warned_once;
|
|
||||||
@@ -1052,16 +1071,23 @@ extract_node (char *file_name, int typef
|
|
||||||
mode_t invert_permissions =
|
|
||||||
0 < same_owner_option ? mode & (S_IRWXG | S_IRWXO) : 0;
|
|
||||||
|
|
||||||
- do
|
|
||||||
- status = mknod (file_name, mode ^ invert_permissions,
|
|
||||||
- current_stat_info.stat.st_rdev);
|
|
||||||
- while (status && maybe_recoverable (file_name, &interdir_made));
|
|
||||||
+ while (mknod (file_name, mode ^ invert_permissions,
|
|
||||||
+ current_stat_info.stat.st_rdev))
|
|
||||||
+ switch (maybe_recoverable (file_name, &interdir_made))
|
|
||||||
+ {
|
|
||||||
+ case RECOVER_OK:
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
+ case RECOVER_SKIP:
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ case RECOVER_NO:
|
|
||||||
+ mknod_error (file_name);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- if (status != 0)
|
|
||||||
- mknod_error (file_name);
|
|
||||||
- else
|
|
||||||
- set_stat (file_name, ¤t_stat_info, NULL, invert_permissions,
|
|
||||||
- ARCHIVED_PERMSTATUS, typeflag);
|
|
||||||
+ set_stat (file_name, ¤t_stat_info, NULL, invert_permissions,
|
|
||||||
+ ARCHIVED_PERMSTATUS, typeflag);
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -1077,15 +1103,22 @@ extract_fifo (char *file_name, int typef
|
|
||||||
0 < same_owner_option ? mode & (S_IRWXG | S_IRWXO) : 0;
|
|
||||||
|
|
||||||
while ((status = mkfifo (file_name, mode)) != 0)
|
|
||||||
- if (!maybe_recoverable (file_name, &interdir_made))
|
|
||||||
- break;
|
|
||||||
+ switch (maybe_recoverable (file_name, &interdir_made))
|
|
||||||
+ {
|
|
||||||
+ case RECOVER_OK:
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
+ case RECOVER_SKIP:
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ case RECOVER_NO:
|
|
||||||
+ mkfifo_error (file_name);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
- if (status == 0)
|
|
||||||
- set_stat (file_name, ¤t_stat_info, NULL, invert_permissions,
|
|
||||||
- ARCHIVED_PERMSTATUS, typeflag);
|
|
||||||
- else
|
|
||||||
- mkfifo_error (file_name);
|
|
||||||
- return status;
|
|
||||||
+ set_stat (file_name, ¤t_stat_info, NULL, invert_permissions,
|
|
||||||
+ ARCHIVED_PERMSTATUS, typeflag);
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
$FreeBSD$
|
|
||||||
|
|
||||||
Fix an instance of use-after-free(), from upstream.
|
|
||||||
|
|
||||||
--- src/names.c.orig 2010-03-27 21:57:39.000000000 +0100
|
|
||||||
+++ src/names.c 2010-03-27 21:58:02.000000000 +0100
|
|
||||||
@@ -950,6 +950,7 @@ collect_and_sort_names (void)
|
|
||||||
{
|
|
||||||
if (p->child)
|
|
||||||
rebase_child_list (p->child, name);
|
|
||||||
+ hash_delete (nametab, name);
|
|
||||||
/* FIXME: remove_directory (p->caname); ? */
|
|
||||||
remname (p);
|
|
||||||
free_name (p);
|
|
|
@ -1,15 +0,0 @@
|
||||||
|
|
||||||
$FreeBSD: /tmp/pcvs/ports/archivers/gtar/files/Attic/patch-tests_gzip.at,v 1.2 2010-03-29 17:36:25 naddy Exp $
|
|
||||||
|
|
||||||
--- tests/gzip.at.orig 2010-01-26 12:30:21.000000000 +0100
|
|
||||||
+++ tests/gzip.at 2010-03-17 21:41:11.000000000 +0100
|
|
||||||
@@ -31,8 +31,7 @@ tar xfvz /dev/null
|
|
||||||
],
|
|
||||||
[2],
|
|
||||||
[],
|
|
||||||
-[
|
|
||||||
-gzip: stdin: unexpected end of file
|
|
||||||
+[gzip: (stdin): unexpected end of file
|
|
||||||
tar: Child returned status 1
|
|
||||||
tar: Error is not recoverable: exiting now
|
|
||||||
],
|
|
|
@ -2,6 +2,7 @@
|
||||||
bin/gtar
|
bin/gtar
|
||||||
libexec/grmt
|
libexec/grmt
|
||||||
%%NLS%%share/locale/bg/LC_MESSAGES/tar.mo
|
%%NLS%%share/locale/bg/LC_MESSAGES/tar.mo
|
||||||
|
%%NLS%%share/locale/ca/LC_MESSAGES/tar.mo
|
||||||
%%NLS%%share/locale/cs/LC_MESSAGES/tar.mo
|
%%NLS%%share/locale/cs/LC_MESSAGES/tar.mo
|
||||||
%%NLS%%share/locale/da/LC_MESSAGES/tar.mo
|
%%NLS%%share/locale/da/LC_MESSAGES/tar.mo
|
||||||
%%NLS%%share/locale/de/LC_MESSAGES/tar.mo
|
%%NLS%%share/locale/de/LC_MESSAGES/tar.mo
|
||||||
|
|
Loading…
Add table
Reference in a new issue