aboutsummaryrefslogtreecommitdiff
path: root/archivers
diff options
context:
space:
mode:
authorChristian Weisgerber <naddy@FreeBSD.org>2010-11-24 18:02:57 +0000
committerChristian Weisgerber <naddy@FreeBSD.org>2010-11-24 18:02:57 +0000
commit1cb39c944dd1296e1d1bd0ece0cdd997bf28f3bd (patch)
treef5d0ec5fd9ade58753763686a811abc7eaf7bee5 /archivers
parent50fd51edcb991042ea0a33286a42238123dc0ce1 (diff)
Notes
Diffstat (limited to 'archivers')
-rw-r--r--archivers/gtar/Makefile6
-rw-r--r--archivers/gtar/distinfo5
-rw-r--r--archivers/gtar/files/patch-gnu_dirent.in.h16
-rw-r--r--archivers/gtar/files/patch-src_extract.c167
-rw-r--r--archivers/gtar/files/patch-src_names.c14
-rw-r--r--archivers/gtar/files/patch-tests_gzip.at15
-rw-r--r--archivers/gtar/pkg-plist1
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, &current_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, &current_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, &current_stat_info, NULL, invert_permissions,
-- ARCHIVED_PERMSTATUS, typeflag);
-+ set_stat (file_name, &current_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, &current_stat_info, NULL, invert_permissions,
-- ARCHIVED_PERMSTATUS, typeflag);
-- else
-- mkfifo_error (file_name);
-- return status;
-+ set_stat (file_name, &current_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