diff options
author | Christian Weisgerber <naddy@FreeBSD.org> | 2010-11-24 18:02:57 +0000 |
---|---|---|
committer | Christian Weisgerber <naddy@FreeBSD.org> | 2010-11-24 18:02:57 +0000 |
commit | 1cb39c944dd1296e1d1bd0ece0cdd997bf28f3bd (patch) | |
tree | f5d0ec5fd9ade58753763686a811abc7eaf7bee5 /archivers | |
parent | 50fd51edcb991042ea0a33286a42238123dc0ce1 (diff) |
Notes
Diffstat (limited to 'archivers')
-rw-r--r-- | archivers/gtar/Makefile | 6 | ||||
-rw-r--r-- | archivers/gtar/distinfo | 5 | ||||
-rw-r--r-- | archivers/gtar/files/patch-gnu_dirent.in.h | 16 | ||||
-rw-r--r-- | archivers/gtar/files/patch-src_extract.c | 167 | ||||
-rw-r--r-- | archivers/gtar/files/patch-src_names.c | 14 | ||||
-rw-r--r-- | archivers/gtar/files/patch-tests_gzip.at | 15 | ||||
-rw-r--r-- | archivers/gtar/pkg-plist | 1 |
7 files changed, 16 insertions, 208 deletions
diff --git a/archivers/gtar/Makefile b/archivers/gtar/Makefile index 79ffd29617ca..8c86a301df46 100644 --- a/archivers/gtar/Makefile +++ b/archivers/gtar/Makefile @@ -6,8 +6,7 @@ # PORTNAME= tar -PORTVERSION= 1.23 -PORTREVISION= 3 +PORTVERSION= 1.25 CATEGORIES= archivers sysutils MASTER_SITES= ${MASTER_SITE_GNU} MASTER_SITE_SUBDIR= ${PORTNAME} @@ -21,8 +20,7 @@ COMMENT= GNU version of the traditional tape archiver INFO= tar -USE_AUTOTOOLS= autoconf:268:env -USE_BZIP2= yes +USE_XZ= yes USE_ICONV= yes GNU_CONFIGURE= yes MAKE_JOBS_SAFE= yes diff --git a/archivers/gtar/distinfo b/archivers/gtar/distinfo index 05f8346061d6..e8b1f3e6c49e 100644 --- a/archivers/gtar/distinfo +++ b/archivers/gtar/distinfo @@ -1,3 +1,2 @@ -MD5 (tar-1.23.tar.bz2) = 41e2ca4b924ec7860e51b43ad06cdb7e -SHA256 (tar-1.23.tar.bz2) = c9328372db62fbb1d94c9e4e3cefc961111af46de47085b635359c00a0eebe36 -SIZE (tar-1.23.tar.bz2) = 2189324 +SHA256 (tar-1.25.tar.xz) = 81230b829e2acea2fcd4c686b15f6a77d961871d0d72b961bbebcbd65e04d04c +SIZE (tar-1.25.tar.xz) = 1767776 diff --git a/archivers/gtar/files/patch-gnu_dirent.in.h b/archivers/gtar/files/patch-gnu_dirent.in.h deleted file mode 100644 index 857d9bf2c0f4..000000000000 --- a/archivers/gtar/files/patch-gnu_dirent.in.h +++ /dev/null @@ -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); diff --git a/archivers/gtar/files/patch-src_extract.c b/archivers/gtar/files/patch-src_extract.c index 7d0665246d81..4d412bb3276d 100644 --- a/archivers/gtar/files/patch-src_extract.c +++ b/archivers/gtar/files/patch-src_extract.c @@ -1,159 +1,14 @@ $FreeBSD$ -http://git.savannah.gnu.org/cgit/tar.git/commit/?id=b60e56fdb6fd8d82a1f92a4fa7781d9a3184dce1 ---- src/extract.c.orig 2010-01-26 12:28:09.000000000 +0100 -+++ 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) -- 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: -+ 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); - close (fd); -@@ -956,7 +966,8 @@ extract_link (char *file_name, int typef - { - int interdir_made = 0; - 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)) +FreeBSD produces errno == EMLINK for open("symlink", O_NOFOLLOW|...). + +--- src/extract.c.orig 2010-11-23 16:56:47.000000000 +0100 ++++ src/extract.c 2010-11-23 16:57:04.000000000 +0100 +@@ -609,6 +609,7 @@ maybe_recoverable (char *file_name, bool + switch (e) { - 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 - + case ELOOP: ++ case EMLINK: + if (! regular + || old_files_option != OVERWRITE_OLD_FILES || dereference_option) + break; diff --git a/archivers/gtar/files/patch-src_names.c b/archivers/gtar/files/patch-src_names.c deleted file mode 100644 index 011f2d79ee0e..000000000000 --- a/archivers/gtar/files/patch-src_names.c +++ /dev/null @@ -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); diff --git a/archivers/gtar/files/patch-tests_gzip.at b/archivers/gtar/files/patch-tests_gzip.at deleted file mode 100644 index 4a0f89779114..000000000000 --- a/archivers/gtar/files/patch-tests_gzip.at +++ /dev/null @@ -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 - ], diff --git a/archivers/gtar/pkg-plist b/archivers/gtar/pkg-plist index 96d80469b5c3..c304d32fe233 100644 --- a/archivers/gtar/pkg-plist +++ b/archivers/gtar/pkg-plist @@ -2,6 +2,7 @@ bin/gtar libexec/grmt %%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/da/LC_MESSAGES/tar.mo %%NLS%%share/locale/de/LC_MESSAGES/tar.mo |