From d1ae4f5e27d4309d4afd0da3374e1436d29506a8 Mon Sep 17 00:00:00 2001 From: tnn Date: Sun, 18 May 2008 01:48:09 +0000 Subject: Update to GNU tar 1.20. All self-tests pass under NetBSD-current. Changes: 3.5 years worth of development; too much to list here. --- archivers/gtar-base/Makefile | 12 ++-- archivers/gtar-base/PLIST | 8 ++- archivers/gtar-base/distinfo | 24 +++---- archivers/gtar-base/patches/patch-aa | 16 ----- archivers/gtar-base/patches/patch-ab | 56 ++++----------- archivers/gtar-base/patches/patch-ac | 14 ---- archivers/gtar-base/patches/patch-ad | 10 +-- archivers/gtar-base/patches/patch-ae | 10 +-- archivers/gtar-base/patches/patch-af | 12 ++-- archivers/gtar-base/patches/patch-ag | 61 ++-------------- archivers/gtar-base/patches/patch-ah | 21 ------ archivers/gtar-base/patches/patch-ai | 134 ----------------------------------- archivers/gtar-base/patches/patch-aj | 14 ---- archivers/gtar-base/patches/patch-ak | 19 ----- 14 files changed, 57 insertions(+), 354 deletions(-) delete mode 100644 archivers/gtar-base/patches/patch-aa delete mode 100644 archivers/gtar-base/patches/patch-ac delete mode 100644 archivers/gtar-base/patches/patch-ah delete mode 100644 archivers/gtar-base/patches/patch-ai delete mode 100644 archivers/gtar-base/patches/patch-aj delete mode 100644 archivers/gtar-base/patches/patch-ak (limited to 'archivers') diff --git a/archivers/gtar-base/Makefile b/archivers/gtar-base/Makefile index 7dff607c5bb..228afdf1c0b 100644 --- a/archivers/gtar-base/Makefile +++ b/archivers/gtar-base/Makefile @@ -1,8 +1,7 @@ -# $NetBSD: Makefile,v 1.62 2008/04/12 22:42:57 jlam Exp $ +# $NetBSD: Makefile,v 1.63 2008/05/18 01:48:09 tnn Exp $ -DISTNAME= tar-1.15.1 -PKGNAME= gtar-base-1.15.1 -PKGREVISION= 6 +DISTNAME= tar-1.20 +PKGNAME= gtar-base-1.20 SVR4_PKGNAME= gtarb CATEGORIES= archivers MASTER_SITES= ${MASTER_SITE_GNU:=tar/} @@ -56,6 +55,11 @@ PLIST.gtar= yes PLIST.rmt= yes .endif +# XXX see similar hack in coreutils. +.if ${OPSYS} != "Linux" +CONFIGURE_ENV+= gt_cv_func_gnugettext3_libintl=yes +.endif + post-install: ${INSTALL_MAN} ${FILESDIR}/gtar.1 \ ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/${GTAR_PROGRAM_PREFIX}tar.1 diff --git a/archivers/gtar-base/PLIST b/archivers/gtar-base/PLIST index 8283733b3b7..ad2cd95730b 100644 --- a/archivers/gtar-base/PLIST +++ b/archivers/gtar-base/PLIST @@ -1,14 +1,16 @@ -@comment $NetBSD: PLIST,v 1.12 2008/04/12 22:42:57 jlam Exp $ +@comment $NetBSD: PLIST,v 1.13 2008/05/18 01:48:09 tnn Exp $ bin/${GTAR_PROGRAM_PREFIX}tar ${PLIST.gtar}bin/gtar ${PLIST.rmt}libexec/${GTAR_PROGRAM_PREFIX}rmt man/man1/${GTAR_PROGRAM_PREFIX}tar.1 +share/locale/bg/LC_MESSAGES/tar.mo share/locale/cs/LC_MESSAGES/tar.mo share/locale/da/LC_MESSAGES/tar.mo share/locale/de/LC_MESSAGES/tar.mo share/locale/el/LC_MESSAGES/tar.mo share/locale/es/LC_MESSAGES/tar.mo share/locale/et/LC_MESSAGES/tar.mo +share/locale/eu/LC_MESSAGES/tar.mo share/locale/fi/LC_MESSAGES/tar.mo share/locale/fr/LC_MESSAGES/tar.mo share/locale/ga/LC_MESSAGES/tar.mo @@ -19,10 +21,10 @@ share/locale/id/LC_MESSAGES/tar.mo share/locale/it/LC_MESSAGES/tar.mo share/locale/ja/LC_MESSAGES/tar.mo share/locale/ko/LC_MESSAGES/tar.mo +share/locale/ky/LC_MESSAGES/tar.mo share/locale/ms/LC_MESSAGES/tar.mo share/locale/nb/LC_MESSAGES/tar.mo share/locale/nl/LC_MESSAGES/tar.mo -share/locale/no/LC_MESSAGES/tar.mo share/locale/pl/LC_MESSAGES/tar.mo share/locale/pt/LC_MESSAGES/tar.mo share/locale/pt_BR/LC_MESSAGES/tar.mo @@ -32,5 +34,7 @@ share/locale/sk/LC_MESSAGES/tar.mo share/locale/sl/LC_MESSAGES/tar.mo share/locale/sv/LC_MESSAGES/tar.mo share/locale/tr/LC_MESSAGES/tar.mo +share/locale/uk/LC_MESSAGES/tar.mo +share/locale/vi/LC_MESSAGES/tar.mo share/locale/zh_CN/LC_MESSAGES/tar.mo share/locale/zh_TW/LC_MESSAGES/tar.mo diff --git a/archivers/gtar-base/distinfo b/archivers/gtar-base/distinfo index 4ca26d2022f..995d6d9830a 100644 --- a/archivers/gtar-base/distinfo +++ b/archivers/gtar-base/distinfo @@ -1,16 +1,10 @@ -$NetBSD: distinfo,v 1.21 2008/04/02 22:03:07 tonnerre Exp $ +$NetBSD: distinfo,v 1.22 2008/05/18 01:48:09 tnn Exp $ -SHA1 (tar-1.15.1.tar.gz) = 21574ae5d39b698f7f577e2cecc91a5ec89b659c -RMD160 (tar-1.15.1.tar.gz) = 83f35ee090d05f0865ebd9915bbd1b649a6555c5 -Size (tar-1.15.1.tar.gz) = 2204322 bytes -SHA1 (patch-aa) = adbd252113bfb131de80bbcf8150b2a955e17058 -SHA1 (patch-ab) = 59e75a2051738076ad948ebc4db1240d47e7d366 -SHA1 (patch-ac) = 072a7eaff685093b86289e0b45281c41ae06f4fc -SHA1 (patch-ad) = 8f109cbc150cb7db48b7a59dcba9eefb654875e0 -SHA1 (patch-ae) = 6518ab82e19c831f16bc772136fafc037a592df4 -SHA1 (patch-af) = be20dafd1c65db4ca60a5aedbc7a972117cd7072 -SHA1 (patch-ag) = 39fd6e84665a632258c722a35359713a1e194287 -SHA1 (patch-ah) = d8532a99bf2bd0c35a9d994101fbd722f52c9ead -SHA1 (patch-ai) = 9e065a4bbe3fcaee7e08a53b64e863b8fbd0d32a -SHA1 (patch-aj) = 409760785d3a0e12175760f2f71e192c3dd1ef52 -SHA1 (patch-ak) = 0bc0bae9d39eafdc6a54a59708e01063b9e41497 +SHA1 (tar-1.20.tar.gz) = 1bc0731a00f2483f381c48e0b3f359877ddff910 +RMD160 (tar-1.20.tar.gz) = 6ac6847b4d0f4fcd61408f63df18b503699f2fb9 +Size (tar-1.20.tar.gz) = 2822777 bytes +SHA1 (patch-ab) = bc2cb4547a0df1d1877a3d09a6e3969123ddecab +SHA1 (patch-ad) = c5106ba2d0a0414ccbc55dfbf71c95280080b190 +SHA1 (patch-ae) = 99323cf270e3e60dd21db42aea3556dd9255cef2 +SHA1 (patch-af) = 8e57e09e3b1a79310dc343c3741fc94916788b79 +SHA1 (patch-ag) = 8e1f6d2b6d38a029485cd7a1987cc6acb6a4cc84 diff --git a/archivers/gtar-base/patches/patch-aa b/archivers/gtar-base/patches/patch-aa deleted file mode 100644 index ea491230fb7..00000000000 --- a/archivers/gtar-base/patches/patch-aa +++ /dev/null @@ -1,16 +0,0 @@ -$NetBSD: patch-aa,v 1.8 2005/01/16 04:44:50 tv Exp $ - ---- configure.orig 2004-12-21 08:30:30.000000000 -0500 -+++ configure -@@ -19553,9 +19553,9 @@ if test `eval echo '${'$as_ac_Header'}'` - cat >>confdefs.h <<_ACEOF - #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 - _ACEOF -- SYSEXITS_H=sysexits.h --else - SYSEXITS_H= -+else -+ SYSEXITS_H=sysexits.h - fi - - done diff --git a/archivers/gtar-base/patches/patch-ab b/archivers/gtar-base/patches/patch-ab index 812ca478105..648d50ad733 100644 --- a/archivers/gtar-base/patches/patch-ab +++ b/archivers/gtar-base/patches/patch-ab @@ -1,60 +1,32 @@ -$NetBSD: patch-ab,v 1.11 2006/12/03 15:21:20 tron Exp $ +$NetBSD: patch-ab,v 1.12 2008/05/18 01:48:09 tnn Exp $ ---- src/tar.c.orig 2004-12-21 14:11:26.000000000 +0000 -+++ src/tar.c 2006-12-03 15:13:25.000000000 +0000 -@@ -181,6 +181,7 @@ - enum - { - ANCHORED_OPTION = CHAR_MAX + 1, -+ ALLOW_NAME_MANGLING_OPTION, - ATIME_PRESERVE_OPTION, - BACKUP_OPTION, - CHECKPOINT_OPTION, -@@ -203,6 +204,7 @@ +--- src/tar.c.orig 2008-04-14 14:03:13.000000000 +0200 ++++ src/tar.c +@@ -285,6 +286,7 @@ enum NO_RECURSION_OPTION, NO_SAME_OWNER_OPTION, NO_SAME_PERMISSIONS_OPTION, + NO_UNLINK_FIRST_OPTION, - NO_WILDCARDS_OPTION, + NO_UNQUOTE_OPTION, NO_WILDCARDS_MATCH_SLASH_OPTION, - NULL_OPTION, -@@ -340,6 +342,8 @@ - N_("try extracting files with the same ownership"), 31 }, + NO_WILDCARDS_OPTION, +@@ -483,6 +485,8 @@ static struct argp_option options[] = { + N_("try extracting files with the same ownership"), GRID+1 }, {"no-same-owner", NO_SAME_OWNER_OPTION, 0, 0, - N_("extract files as yourself"), 31 }, + N_("extract files as yourself"), GRID+1 }, + {"no-unlink-first", NO_UNLINK_FIRST_OPTION, 0, 0, -+ N_("don't remove each file prior to extracting"), 31 }, ++ N_("don't remove each file prior to extracting"), GRID+1 }, {"numeric-owner", NUMERIC_OWNER_OPTION, 0, 0, - N_("always use numbers for user/group names"), 31 }, + N_("always use numbers for user/group names"), GRID+1 }, {"preserve-permissions", 'p', 0, 0, -@@ -528,6 +532,8 @@ - - {NULL, 'o', 0, 0, - N_("when creating, same as --old-archive. When extracting, same as --no-same-owner"), 91 }, -+ {"allow-name-mangling", ALLOW_NAME_MANGLING_OPTION, 0, 0, -+ N_("when creating, allow GNUTYPE_NAMES mangling -- considered dangerous"), 91 }, - - {NULL, 0, NULL, 0, - N_("Other options:"), 100 }, -@@ -865,6 +871,10 @@ - case 'U': +@@ -1495,6 +1501,10 @@ parse_opt (int key, char *arg, struct ar old_files_option = UNLINK_FIRST_OLD_FILES; break; -+ + + case NO_UNLINK_FIRST_OPTION: + old_files_option = 0; + break; - ++ case UTC_OPTION: utc_option = true; -@@ -913,6 +923,10 @@ - case 'Z': - set_use_compress_program_option ("compress"); break; -+ -+ case ALLOW_NAME_MANGLING_OPTION: -+ allow_name_mangling_option = true; -+ break; - - case ANCHORED_OPTION: - args->exclude_options |= EXCLUDE_ANCHORED; diff --git a/archivers/gtar-base/patches/patch-ac b/archivers/gtar-base/patches/patch-ac deleted file mode 100644 index da95f92cf52..00000000000 --- a/archivers/gtar-base/patches/patch-ac +++ /dev/null @@ -1,14 +0,0 @@ -$NetBSD: patch-ac,v 1.6 2005/01/09 22:52:14 recht Exp $ - ---- lib/system.h.orig Mon Sep 6 15:49:42 2004 -+++ lib/system.h Sun Jan 9 18:25:02 2005 -@@ -282,6 +282,9 @@ - - #if MAJOR_IN_MKDEV - # include -+# if !defined(makedev) && defined(mkdev) -+# define makedev(a,b) mkdev((a),(b)) -+# endif - # define GOT_MAJOR - #endif - diff --git a/archivers/gtar-base/patches/patch-ad b/archivers/gtar-base/patches/patch-ad index 1f739a6ce38..f8b6e348059 100644 --- a/archivers/gtar-base/patches/patch-ad +++ b/archivers/gtar-base/patches/patch-ad @@ -1,9 +1,9 @@ -$NetBSD: patch-ad,v 1.7 2005/01/09 22:52:14 recht Exp $ +$NetBSD: patch-ad,v 1.8 2008/05/18 01:48:09 tnn Exp $ ---- Makefile.in.orig Mon Dec 20 12:06:01 2004 -+++ Makefile.in Sun Jan 9 19:30:11 2005 -@@ -247,7 +247,7 @@ - target_alias = @target_alias@ +--- Makefile.in.orig 2008-04-14 14:04:01.000000000 +0200 ++++ Makefile.in +@@ -532,7 +532,7 @@ top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = ChangeLog.1 PORTS -SUBDIRS = doc lib rmt src scripts po tests diff --git a/archivers/gtar-base/patches/patch-ae b/archivers/gtar-base/patches/patch-ae index 41e38124ba5..0bee1e86e3d 100644 --- a/archivers/gtar-base/patches/patch-ae +++ b/archivers/gtar-base/patches/patch-ae @@ -1,9 +1,9 @@ -$NetBSD: patch-ae,v 1.7 2005/01/09 22:52:14 recht Exp $ +$NetBSD: patch-ae,v 1.8 2008/05/18 01:48:09 tnn Exp $ ---- lib/Makefile.in.orig Sun Jan 9 18:41:01 2005 -+++ lib/Makefile.in Sun Jan 9 18:42:35 2005 -@@ -668,7 +668,6 @@ - all-am: Makefile $(LIBRARIES) $(HEADERS) all-local +--- lib/Makefile.in.orig 2008-04-14 14:03:58.000000000 +0200 ++++ lib/Makefile.in +@@ -980,7 +980,6 @@ check: $(BUILT_SOURCES) + all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) all-local installdirs: install: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) install-am diff --git a/archivers/gtar-base/patches/patch-af b/archivers/gtar-base/patches/patch-af index 5753f498296..4bf81944be2 100644 --- a/archivers/gtar-base/patches/patch-af +++ b/archivers/gtar-base/patches/patch-af @@ -1,13 +1,13 @@ -$NetBSD: patch-af,v 1.3 2005/02/09 16:00:42 tv Exp $ +$NetBSD: patch-af,v 1.4 2008/05/18 01:48:09 tnn Exp $ ---- tests/testsuite.orig 2004-12-21 08:36:33.000000000 -0500 +--- tests/testsuite.orig 2008-04-14 14:11:06.000000000 +0200 +++ tests/testsuite -@@ -303,7 +303,7 @@ at_times_file=$at_suite_dir/at-times +@@ -620,7 +620,7 @@ at_times_file=$at_suite_dir/at-times # List of the tested programs. at_tested='tar' # List of the all the test groups. --at_groups_all=' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37' -+at_groups_all=' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37' - # As many dots as there are digits in the last test group number. +-at_groups_all=' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74' ++at_groups_all=' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74' + # As many question marks as there are digits in the last test group number. # Used to normalize the test group numbers so that `ls' lists them in # numerical order. diff --git a/archivers/gtar-base/patches/patch-ag b/archivers/gtar-base/patches/patch-ag index 581ff3d3533..b6d5e63cda5 100644 --- a/archivers/gtar-base/patches/patch-ag +++ b/archivers/gtar-base/patches/patch-ag @@ -1,8 +1,8 @@ -$NetBSD: patch-ag,v 1.4 2006/12/03 15:21:20 tron Exp $ +$NetBSD: patch-ag,v 1.5 2008/05/18 01:48:09 tnn Exp $ ---- src/extract.c.orig 2004-12-21 09:55:12.000000000 +0000 -+++ src/extract.c 2006-12-03 15:13:25.000000000 +0000 -@@ -195,7 +195,11 @@ +--- src/extract.c.orig 2007-08-26 10:56:55.000000000 +0200 ++++ src/extract.c +@@ -186,7 +186,11 @@ set_mode (char const *file_name, mode = cur_info->st_mode ^ invert_permissions; } @@ -14,56 +14,3 @@ $NetBSD: patch-ag,v 1.4 2006/12/03 15:21:20 tron Exp $ chmod_error_details (file_name, mode); } -@@ -235,7 +239,12 @@ - { - struct utimbuf utimbuf; - -+#if !(defined (__NetBSD__) && NetBSD > 199706 && !defined(NetBSD1_2)) - if (typeflag != SYMTYPE) -+#else -+ struct timeval tv[2]; -+#endif -+ - { - /* We do the utime before the chmod because some versions of utime are - broken and trash the modes of the file. */ -@@ -248,6 +257,7 @@ - - /* FIXME: incremental_option should set ctime too, but how? */ - -+#if !(defined (__NetBSD__) && NetBSD > 199706 && !defined(NetBSD1_2)) - if (incremental_option) - utimbuf.actime = stat_info->st_atime; - else -@@ -256,6 +266,16 @@ - utimbuf.modtime = stat_info->st_mtime; - - if (utime (file_name, &utimbuf) < 0) -+#else -+ if (incremental_option) -+ tv[0].tv_sec = stat_info->st_atime; -+ else -+ tv[0].tv_sec = start_time; -+ tv[0].tv_usec = 0; -+ tv[1].tv_sec = stat_info->st_mtime; -+ tv[1].tv_usec = 0; -+ if (lutimes (file_name, tv) < 0) -+#endif - utime_error (file_name); - else - { -@@ -1101,7 +1121,13 @@ - break; - - case GNUTYPE_NAMES: -- extract_mangle (); -+ if (allow_name_mangling_option) { -+ extract_mangle (); -+ } -+ else { -+ ERROR ((0, 0, _("GNUTYPE_NAMES mangling ignored"))); -+ skip_member (); -+ } - break; - - case GNUTYPE_MULTIVOL: diff --git a/archivers/gtar-base/patches/patch-ah b/archivers/gtar-base/patches/patch-ah deleted file mode 100644 index bbabf1ccd77..00000000000 --- a/archivers/gtar-base/patches/patch-ah +++ /dev/null @@ -1,21 +0,0 @@ -$NetBSD: patch-ah,v 1.3 2006/01/28 02:03:58 rillig Exp $ - -MIPSpro does not like non-constant initializers. - ---- lib/argp-help.c.orig 2004-10-04 11:36:16.000000000 +0200 -+++ lib/argp-help.c 2006-01-28 02:58:23.000000000 +0100 -@@ -1055,7 +1055,13 @@ hol_entry_help (struct hol_entry *entry, - int old_wm = __argp_fmtstream_wmargin (stream); - /* PEST is a state block holding some of our variables that we'd like to - share with helper functions. */ -- struct pentry_state pest = { entry, stream, hhstate, 1, state }; -+ struct pentry_state pest; -+ -+ pest.entry = entry; -+ pest.stream = stream; -+ pest.hhstate = hhstate; -+ pest.first = 1; -+ pest.state = state; - - if (! odoc (real)) - for (opt = real, num = entry->num; num > 0; opt++, num--) diff --git a/archivers/gtar-base/patches/patch-ai b/archivers/gtar-base/patches/patch-ai deleted file mode 100644 index 5ea30a93ec0..00000000000 --- a/archivers/gtar-base/patches/patch-ai +++ /dev/null @@ -1,134 +0,0 @@ -$NetBSD: patch-ai,v 1.2 2006/11/27 22:05:34 tv Exp $ - ---- src/xheader.c.orig 2004-09-06 07:31:14.000000000 -0400 -+++ src/xheader.c -@@ -24,6 +24,10 @@ - #include - #include - -+#ifndef SIZE_MAX -+# define SIZE_MAX ((size_t) -1) -+#endif -+ - #include "common.h" - - #define obstack_chunk_alloc xmalloc -@@ -783,6 +787,32 @@ code_num (uintmax_t value, char const *k - xheader_print (xhdr, keyword, sbuf); - } - -+static bool -+decode_num (uintmax_t *num, char const *arg, uintmax_t maxval, -+ char const *keyword) -+{ -+ uintmax_t u; -+ char *arg_lim; -+ -+ if (! (ISDIGIT (*arg) -+ && (errno = 0, u = strtoumax (arg, &arg_lim, 10), !*arg_lim))) -+ { -+ ERROR ((0, 0, _("Malformed extended header: invalid %s=%s"), -+ keyword, arg)); -+ return false; -+ } -+ -+ if (! (u <= maxval && errno != ERANGE)) -+ { -+ ERROR ((0, 0, _("Extended header %s=%s is out of range"), -+ keyword, arg)); -+ return false; -+ } -+ -+ *num = u; -+ return true; -+} -+ - static void - dummy_coder (struct tar_stat_info const *st __attribute__ ((unused)), - char const *keyword __attribute__ ((unused)), -@@ -821,7 +851,7 @@ static void - gid_decoder (struct tar_stat_info *st, char const *arg) - { - uintmax_t u; -- if (xstrtoumax (arg, NULL, 10, &u, "") == LONGINT_OK) -+ if (decode_num (&u, arg, TYPE_MAXIMUM (gid_t), "gid")) - st->stat.st_gid = u; - } - -@@ -903,7 +933,7 @@ static void - size_decoder (struct tar_stat_info *st, char const *arg) - { - uintmax_t u; -- if (xstrtoumax (arg, NULL, 10, &u, "") == LONGINT_OK) -+ if (decode_num (&u, arg, TYPE_MAXIMUM (off_t), "size")) - st->archive_file_size = st->stat.st_size = u; - } - -@@ -918,7 +948,7 @@ static void - uid_decoder (struct tar_stat_info *st, char const *arg) - { - uintmax_t u; -- if (xstrtoumax (arg, NULL, 10, &u, "") == LONGINT_OK) -+ if (decode_num (&u, arg, TYPE_MAXIMUM (uid_t), "uid")) - st->stat.st_uid = u; - } - -@@ -946,7 +976,7 @@ static void - sparse_size_decoder (struct tar_stat_info *st, char const *arg) - { - uintmax_t u; -- if (xstrtoumax (arg, NULL, 10, &u, "") == LONGINT_OK) -+ if (decode_num (&u, arg, TYPE_MAXIMUM (off_t), "GNU.sparse.size")) - st->stat.st_size = u; - } - -@@ -962,10 +992,10 @@ static void - sparse_numblocks_decoder (struct tar_stat_info *st, char const *arg) - { - uintmax_t u; -- if (xstrtoumax (arg, NULL, 10, &u, "") == LONGINT_OK) -+ if (decode_num (&u, arg, SIZE_MAX, "GNU.sparse.numblocks")) - { - st->sparse_map_size = u; -- st->sparse_map = calloc(st->sparse_map_size, sizeof(st->sparse_map[0])); -+ st->sparse_map = xcalloc (u, sizeof st->sparse_map[0]); - st->sparse_map_avail = 0; - } - } -@@ -982,8 +1012,14 @@ static void - sparse_offset_decoder (struct tar_stat_info *st, char const *arg) - { - uintmax_t u; -- if (xstrtoumax (arg, NULL, 10, &u, "") == LONGINT_OK) -+ if (decode_num (&u, arg, TYPE_MAXIMUM (off_t), "GNU.sparse.offset")) -+ { -+ if (st->sparse_map_avail < st->sparse_map_size) - st->sparse_map[st->sparse_map_avail].offset = u; -+ else -+ ERROR ((0, 0, _("Malformed extended header: excess %s=%s"), -+ "GNU.sparse.offset", arg)); -+ } - } - - static void -@@ -998,15 +1034,13 @@ static void - sparse_numbytes_decoder (struct tar_stat_info *st, char const *arg) - { - uintmax_t u; -- if (xstrtoumax (arg, NULL, 10, &u, "") == LONGINT_OK) -+ if (decode_num (&u, arg, SIZE_MAX, "GNU.sparse.numbytes")) - { - if (st->sparse_map_avail == st->sparse_map_size) -- { -- st->sparse_map_size *= 2; -- st->sparse_map = xrealloc (st->sparse_map, -- st->sparse_map_size -- * sizeof st->sparse_map[0]); -- } -+ st->sparse_map = x2nrealloc (st->sparse_map, -+ &st->sparse_map_size, -+ sizeof st->sparse_map[0]); -+ - st->sparse_map[st->sparse_map_avail++].numbytes = u; - } - } diff --git a/archivers/gtar-base/patches/patch-aj b/archivers/gtar-base/patches/patch-aj deleted file mode 100644 index 559b4e5c9c4..00000000000 --- a/archivers/gtar-base/patches/patch-aj +++ /dev/null @@ -1,14 +0,0 @@ -$NetBSD: patch-aj,v 1.1 2006/12/03 15:21:20 tron Exp $ - ---- src/common.h.orig 2004-12-21 14:31:58.000000000 +0000 -+++ src/common.h 2006-12-03 15:13:25.000000000 +0000 -@@ -124,6 +124,9 @@ - - GLOBAL bool absolute_names_option; - -+/* Allow GNUTYPE_NAMES type? */ -+GLOBAL bool allow_name_mangling_option; -+ - /* Display file times in UTC */ - GLOBAL bool utc_option; - diff --git a/archivers/gtar-base/patches/patch-ak b/archivers/gtar-base/patches/patch-ak deleted file mode 100644 index 4829916bb5c..00000000000 --- a/archivers/gtar-base/patches/patch-ak +++ /dev/null @@ -1,19 +0,0 @@ -$NetBSD: patch-ak,v 1.2 2008/04/02 22:03:07 tonnerre Exp $ - -Fix directory traversal vulnerability (CVE-2007-4131). - ---- src/names.c.orig 2004-09-06 13:30:54.000000000 +0200 -+++ src/names.c -@@ -1152,11 +1152,10 @@ contains_dot_dot (char const *name) - if (p[0] == '.' && p[1] == '.' && (ISSLASH (p[2]) || !p[2])) - return 1; - -- do -+ while (! ISSLASH (*p)) - { - if (! *p++) - return 0; - } -- while (! ISSLASH (*p)); - } - } -- cgit v1.2.3