diff options
author | cvs <cvs@pkgsrc.org> | 2007-03-23 19:00:19 +0000 |
---|---|---|
committer | cvs <cvs@pkgsrc.org> | 2007-03-23 19:00:19 +0000 |
commit | da1b24d6fdfe442753c8272da5432c8fcaa1f43c (patch) | |
tree | 8c7c348db30abadfdc6b77822405d9ffe7b79103 /archivers/gcpio | |
parent | da5bb3f20f33565c1db65018aabd8cf59023cfef (diff) | |
download | pkgsrc-jlam-pkgviews.tar.gz |
Creating branch jlam-pkgviewsjlam-pkgviews
Diffstat (limited to 'archivers/gcpio')
-rw-r--r-- | archivers/gcpio/DESCR | 6 | ||||
-rw-r--r-- | archivers/gcpio/Makefile | 40 | ||||
-rw-r--r-- | archivers/gcpio/PLIST | 21 | ||||
-rw-r--r-- | archivers/gcpio/distinfo | 17 | ||||
-rw-r--r-- | archivers/gcpio/patches/patch-ac | 10 | ||||
-rw-r--r-- | archivers/gcpio/patches/patch-ae | 15 | ||||
-rw-r--r-- | archivers/gcpio/patches/patch-ag | 14 | ||||
-rw-r--r-- | archivers/gcpio/patches/patch-ah | 68 | ||||
-rw-r--r-- | archivers/gcpio/patches/patch-ai | 174 | ||||
-rw-r--r-- | archivers/gcpio/patches/patch-aj | 13 | ||||
-rw-r--r-- | archivers/gcpio/patches/patch-ak | 22 | ||||
-rw-r--r-- | archivers/gcpio/patches/patch-al | 26 | ||||
-rw-r--r-- | archivers/gcpio/patches/patch-am | 13 | ||||
-rw-r--r-- | archivers/gcpio/patches/patch-an | 31 | ||||
-rw-r--r-- | archivers/gcpio/patches/patch-ao | 35 | ||||
-rw-r--r-- | archivers/gcpio/patches/patch-ap | 549 |
16 files changed, 0 insertions, 1054 deletions
diff --git a/archivers/gcpio/DESCR b/archivers/gcpio/DESCR deleted file mode 100644 index 7df0f48940c..00000000000 --- a/archivers/gcpio/DESCR +++ /dev/null @@ -1,6 +0,0 @@ -GNU cpio is a full-featured cpio command that can access remote and -local magnetic tapes, and both tar and cpio format archives in files or -on tapes. - -This package does not include the mt (control magnetic tape drive -operation) or rmt commands. diff --git a/archivers/gcpio/Makefile b/archivers/gcpio/Makefile deleted file mode 100644 index 022fdb4aba2..00000000000 --- a/archivers/gcpio/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -# $NetBSD: Makefile,v 1.36 2006/10/07 16:21:39 reed Exp $ -# - -DISTNAME= cpio-2.6 -PKGNAME= g${DISTNAME} -PKGREVISION= 5 -CATEGORIES= archivers -MASTER_SITES= ${MASTER_SITE_GNU:=cpio/} - -MAINTAINER= pkgsrc-users@NetBSD.org -HOMEPAGE= http://www.gnu.org/software/cpio/cpio.html -COMMENT= GNU copy-in/out (cpio) with remote magnetic tape (rmt) support - -CONFLICTS+= gtar-base-[0-9]* - -PKG_INSTALLATION_TYPES= overwrite pkgviews - -GNU_CONFIGURE= yes -USE_TOOLS+= makeinfo -INFO_FILES= yes - -TEST_TARGET= check - -CONFIGURE_ENV+= gt_cv_func_gnugettext1_libintl=yes - -.include "../../mk/bsd.prefs.mk" - -LIBS.NetBSD+= -lgnumalloc - -.if defined(GNU_PROGRAM_PREFIX) && ${GNU_PROGRAM_PREFIX} == "" -# pax installs a "cpio" also -CONFLICTS+= pax-[0-9]* -.endif - -BUILD_DEFS+= GNU_PROGRAM_PREFIX -CONFIGURE_ARGS+= --program-prefix=${GNU_PROGRAM_PREFIX:Q} -PLIST_SUBST+= GNU_PROGRAM_PREFIX=${GNU_PROGRAM_PREFIX:Q} - -.include "../../devel/gettext-lib/buildlink3.mk" -.include "../../mk/bsd.pkg.mk" diff --git a/archivers/gcpio/PLIST b/archivers/gcpio/PLIST deleted file mode 100644 index 83ceff492e4..00000000000 --- a/archivers/gcpio/PLIST +++ /dev/null @@ -1,21 +0,0 @@ -@comment $NetBSD: PLIST,v 1.8 2006/06/05 19:04:32 minskim Exp $ -bin/${GNU_PROGRAM_PREFIX}cpio -info/cpio.info -libexec/${GNU_PROGRAM_PREFIX}rmt -man/man1/${GNU_PROGRAM_PREFIX}cpio.1 -man/man1/${GNU_PROGRAM_PREFIX}mt.1 -share/locale/da/LC_MESSAGES/cpio.mo -share/locale/de/LC_MESSAGES/cpio.mo -share/locale/es/LC_MESSAGES/cpio.mo -share/locale/fr/LC_MESSAGES/cpio.mo -share/locale/gl/LC_MESSAGES/cpio.mo -share/locale/hu/LC_MESSAGES/cpio.mo -share/locale/ko/LC_MESSAGES/cpio.mo -share/locale/nl/LC_MESSAGES/cpio.mo -share/locale/pl/LC_MESSAGES/cpio.mo -share/locale/pt_BR/LC_MESSAGES/cpio.mo -share/locale/ro/LC_MESSAGES/cpio.mo -share/locale/ru/LC_MESSAGES/cpio.mo -share/locale/sv/LC_MESSAGES/cpio.mo -share/locale/tr/LC_MESSAGES/cpio.mo -share/locale/zh_CN/LC_MESSAGES/cpio.mo diff --git a/archivers/gcpio/distinfo b/archivers/gcpio/distinfo deleted file mode 100644 index 040e609b5b5..00000000000 --- a/archivers/gcpio/distinfo +++ /dev/null @@ -1,17 +0,0 @@ -$NetBSD: distinfo,v 1.10 2006/02/12 01:44:28 seb Exp $ - -SHA1 (cpio-2.6.tar.gz) = 5a4ea156519909994fe05933dc823abcf07e3e21 -RMD160 (cpio-2.6.tar.gz) = 8246bdd08ab8727f9a8042d33ddfe3a6332476b8 -Size (cpio-2.6.tar.gz) = 556018 bytes -SHA1 (patch-ac) = df24b60d612ac59ef82a5d09a16a8be5a6d674ec -SHA1 (patch-ae) = c5f7d7f0574d37951caba9de05b9017c842c5980 -SHA1 (patch-ag) = 04364ee26f2301f6ddefd2a2bc2b1fff3686411f -SHA1 (patch-ah) = f7e17682c2f6783e72310ef1d82a1bfca376e5ce -SHA1 (patch-ai) = c3ad35aa4fe9c82e5110c52c61ca3405915e19ab -SHA1 (patch-aj) = 1a4f796692cdad64297590acea33f371c903fa66 -SHA1 (patch-ak) = 9f795bf2f600ec31cf760ea0e5a0fc1c014fd143 -SHA1 (patch-al) = 3c1e71ad7a10c80e8ec82718ee44d138641eb18e -SHA1 (patch-am) = d380ee141b218c568abc69ad90def03add91cde5 -SHA1 (patch-an) = 943fe81aba7846bd8349cc2e31ab9525e019e99f -SHA1 (patch-ao) = 53c7b6bc1e00a0203665e12807b3388204f838c3 -SHA1 (patch-ap) = cf1ca21394e4e437e64fc83837e08b0aba26d41e diff --git a/archivers/gcpio/patches/patch-ac b/archivers/gcpio/patches/patch-ac deleted file mode 100644 index 0cd310440ff..00000000000 --- a/archivers/gcpio/patches/patch-ac +++ /dev/null @@ -1,10 +0,0 @@ -$NetBSD: patch-ac,v 1.4 2005/11/03 19:38:50 adrianp Exp $ - ---- src/filetypes.h.orig 2005-11-03 18:45:32.000000000 +0000 -+++ src/filetypes.h -@@ -80,5 +80,3 @@ - #ifndef S_ISLNK - #define lstat stat - #endif --int lstat (); --int stat (); diff --git a/archivers/gcpio/patches/patch-ae b/archivers/gcpio/patches/patch-ae deleted file mode 100644 index f741d3983fe..00000000000 --- a/archivers/gcpio/patches/patch-ae +++ /dev/null @@ -1,15 +0,0 @@ -$NetBSD: patch-ae,v 1.2 2005/11/03 19:38:50 adrianp Exp $ - ---- lib/mkdir.c.orig 2005-11-03 18:48:32.000000000 +0000 -+++ lib/mkdir.c -@@ -52,8 +52,8 @@ extern int errno; - - int - mkdir (dpath, dmode) -- char *dpath; -- int dmode; -+ const char *dpath; -+ unsigned int dmode; - { - int cpid, status; - struct stat statbuf; diff --git a/archivers/gcpio/patches/patch-ag b/archivers/gcpio/patches/patch-ag deleted file mode 100644 index 6d3360946f7..00000000000 --- a/archivers/gcpio/patches/patch-ag +++ /dev/null @@ -1,14 +0,0 @@ -$NetBSD: patch-ag,v 1.2 2005/11/03 19:38:50 adrianp Exp $ - ---- lib/system.h.orig 2005-11-03 18:51:50.000000000 +0000 -+++ lib/system.h -@@ -282,6 +282,9 @@ extern int errno; - - #if MAJOR_IN_MKDEV - # include <sys/mkdev.h> -+# if !defined(makedev) && defined(mkdev) -+# define makedev(a,b) mkdev((a),(b)) -+# endif - # define GOT_MAJOR - #endif - diff --git a/archivers/gcpio/patches/patch-ah b/archivers/gcpio/patches/patch-ah deleted file mode 100644 index 2fcc8523bcb..00000000000 --- a/archivers/gcpio/patches/patch-ah +++ /dev/null @@ -1,68 +0,0 @@ -$NetBSD: patch-ah,v 1.2 2005/11/03 19:38:50 adrianp Exp $ - ---- src/main.c.orig 2005-11-03 19:08:15.000000000 +0000 -+++ src/main.c -@@ -41,6 +41,7 @@ - - enum cpio_options { - NO_ABSOLUTE_FILENAMES_OPTION=256, -+ ABSOLUTE_FILENAMES_OPTION, - NO_PRESERVE_OWNER_OPTION, - ONLY_VERIFY_CRC_OPTION, - RENAME_BATCH_FILE_OPTION, -@@ -134,6 +135,8 @@ static struct argp_option options[] = { - N_("In copy-in mode, read additional patterns specifying filenames to extract or list from FILE"), 210}, - {"no-absolute-filenames", NO_ABSOLUTE_FILENAMES_OPTION, 0, 0, - N_("Create all files relative to the current directory"), 210}, -+ {"absolute-filenames", ABSOLUTE_FILENAMES_OPTION, 0, 0, -+ N_("do not strip leading file name components that contain \"..\" and leading slashes from file names"), 210}, - {"only-verify-crc", ONLY_VERIFY_CRC_OPTION, 0, 0, - N_("When reading a CRC format archive in copy-in mode, only verify the CRC's of each file in the archive, don't actually extract the files"), 210}, - {"rename", 'r', 0, 0, -@@ -392,7 +395,11 @@ crc newc odc bin ustar tar (all-caps als - break; - - case NO_ABSOLUTE_FILENAMES_OPTION: /* --no-absolute-filenames */ -- no_abs_paths_flag = true; -+ abs_paths_flag = false; -+ break; -+ -+ case ABSOLUTE_FILENAMES_OPTION: /* --absolute-filenames */ -+ abs_paths_flag = true; - break; - - case NO_PRESERVE_OWNER_OPTION: /* --no-preserve-owner */ -@@ -631,7 +638,7 @@ process_args (int argc, char *argv[]) - _("--append is used but no archive file name is given (use -F or -O options"))); - - CHECK_USAGE(rename_batch_file, "--rename-batch-file", "--create"); -- CHECK_USAGE(no_abs_paths_flag, "--no-absolute-pathnames", "--create"); -+ CHECK_USAGE(abs_paths_flag, "--absolute-pathnames", "--create"); - CHECK_USAGE(input_archive_name, "-I", "--create"); - if (archive_name && output_archive_name) - USAGE_ERROR ((0, 0, _("Both -O and -F are used in copy-out mode"))); -@@ -658,7 +665,7 @@ process_args (int argc, char *argv[]) - CHECK_USAGE(rename_flag, "--rename", "--pass-through"); - CHECK_USAGE(append_flag, "--append", "--pass-through"); - CHECK_USAGE(rename_batch_file, "--rename-batch-file", "--pass-through"); -- CHECK_USAGE(no_abs_paths_flag, "--no-absolute-pathnames", -+ CHECK_USAGE(abs_paths_flag, "--absolute-pathnames", - "--pass-through"); - CHECK_USAGE(to_stdout_option, "--to-stdout", "--pass-through"); - -@@ -740,7 +747,6 @@ main (int argc, char *argv[]) - textdomain (PACKAGE); - - program_name = argv[0]; -- umask (0); - - #ifdef __TURBOC__ - _fmode = O_BINARY; /* Put stdin and stdout in binary mode. */ -@@ -751,6 +757,7 @@ main (int argc, char *argv[]) - #endif - - process_args (argc, argv); -+ umask (0); - - initialize_buffers (); - diff --git a/archivers/gcpio/patches/patch-ai b/archivers/gcpio/patches/patch-ai deleted file mode 100644 index e2ad456ea76..00000000000 --- a/archivers/gcpio/patches/patch-ai +++ /dev/null @@ -1,174 +0,0 @@ -$NetBSD: patch-ai,v 1.1 2005/11/03 19:38:50 adrianp Exp $ - ---- src/copyin.c.orig 2005-11-03 19:08:29.000000000 +0000 -+++ src/copyin.c -@@ -25,6 +25,7 @@ - #include "dstring.h" - #include "extern.h" - #include "defer.h" -+#include "dirname.h" - #include <rmt.h> - #ifndef FNM_PATHNAME - #include <fnmatch.h> -@@ -389,19 +390,26 @@ create_final_defers () - continue; - } - -- if (close (out_file_des) < 0) -- error (0, errno, "%s", d->header.c_name); -- -+ /* -+ * Avoid race condition. -+ * Set chown and chmod before closing the file desc. -+ * pvrabec@redhat.com -+ */ -+ - /* File is now copied; set attributes. */ - if (!no_chown_flag) -- if ((chown (d->header.c_name, -+ if ((fchown (out_file_des, - set_owner_flag ? set_owner : d->header.c_uid, - set_group_flag ? set_group : d->header.c_gid) < 0) - && errno != EPERM) - error (0, errno, "%s", d->header.c_name); - /* chown may have turned off some permissions we wanted. */ -- if (chmod (d->header.c_name, (int) d->header.c_mode) < 0) -+ if (fchmod (out_file_des, (int) d->header.c_mode) < 0) - error (0, errno, "%s", d->header.c_name); -+ -+ if (close (out_file_des) < 0) -+ error (0, errno, "%s", d->header.c_name); -+ - if (retain_time_flag) - { - times.actime = times.modtime = d->header.c_mtime; -@@ -557,6 +565,25 @@ copyin_regular_file (struct new_cpio_hea - write (out_file_des, "", 1); - delayed_seek_count = 0; - } -+ -+ /* -+ * Avoid race condition. -+ * Set chown and chmod before closing the file desc. -+ * pvrabec@redhat.com -+ */ -+ -+ /* File is now copied; set attributes. */ -+ if (!no_chown_flag) -+ if ((fchown (out_file_des, -+ set_owner_flag ? set_owner : file_hdr->c_uid, -+ set_group_flag ? set_group : file_hdr->c_gid) < 0) -+ && errno != EPERM) -+ error (0, errno, "%s", file_hdr->c_name); -+ -+ /* chown may have turned off some permissions we wanted. */ -+ if (fchmod (out_file_des, (int) file_hdr->c_mode) < 0) -+ error (0, errno, "%s", file_hdr->c_name); -+ - if (close (out_file_des) < 0) - error (0, errno, "%s", file_hdr->c_name); - -@@ -567,18 +594,6 @@ copyin_regular_file (struct new_cpio_hea - file_hdr->c_name, crc, file_hdr->c_chksum); - } - -- /* File is now copied; set attributes. */ -- if (!no_chown_flag) -- if ((chown (file_hdr->c_name, -- set_owner_flag ? set_owner : file_hdr->c_uid, -- set_group_flag ? set_group : file_hdr->c_gid) < 0) -- && errno != EPERM) -- error (0, errno, "%s", file_hdr->c_name); -- -- /* chown may have turned off some permissions we wanted. */ -- if (chmod (file_hdr->c_name, (int) file_hdr->c_mode) < 0) -- error (0, errno, "%s", file_hdr->c_name); -- - if (retain_time_flag) - { - struct utimbuf times; /* For setting file times. */ -@@ -589,7 +604,7 @@ copyin_regular_file (struct new_cpio_hea - if (utime (file_hdr->c_name, ×) < 0) - error (0, errno, "%s", file_hdr->c_name); - } -- -+ - tape_skip_padding (in_file_des, file_hdr->c_filesize); - if (file_hdr->c_nlink > 1 - && (archive_format == arf_newascii || archive_format == arf_crcascii) ) -@@ -1335,6 +1350,53 @@ swab_array (char *ptr, int count) - } - } - -+/* Return a safer suffix of FILE_NAME, or "." if it has no safer -+ suffix. Check for fully specified file names and other atrocities. */ -+ -+static const char * -+safer_name_suffix (char const *file_name) -+{ -+ char const *p; -+ -+ /* Skip file system prefixes, leading file name components that contain -+ "..", and leading slashes. */ -+ -+ size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (file_name); -+ -+ for (p = file_name + prefix_len; *p;) -+ { -+ if (p[0] == '.' && p[1] == '.' && (ISSLASH (p[2]) || !p[2])) -+ prefix_len = p + 2 - file_name; -+ -+ do -+ { -+ char c = *p++; -+ if (ISSLASH (c)) -+ break; -+ } -+ while (*p); -+ } -+ -+ for (p = file_name + prefix_len; ISSLASH (*p); p++) -+ continue; -+ prefix_len = p - file_name; -+ -+ if (prefix_len) -+ { -+ char *prefix = alloca (prefix_len + 1); -+ memcpy (prefix, file_name, prefix_len); -+ prefix[prefix_len] = '\0'; -+ -+ -+ error (0, 0, _("Removing leading `%s' from member names"), prefix); -+ } -+ -+ if (!*p) -+ p = "."; -+ -+ return p; -+} -+ - /* Read the collection from standard input and create files - in the file system. */ - -@@ -1445,18 +1507,11 @@ process_copy_in () - - /* Do we have to ignore absolute paths, and if so, does the filename - have an absolute path? */ -- if (no_abs_paths_flag && file_hdr.c_name && file_hdr.c_name [0] == '/') -+ if (!abs_paths_flag && file_hdr.c_name && file_hdr.c_name [0]) - { -- char *p; -+ const char *p = safer_name_suffix (file_hdr.c_name); - -- p = file_hdr.c_name; -- while (*p == '/') -- ++p; -- if (*p == '\0') -- { -- strcpy (file_hdr.c_name, "."); -- } -- else -+ if (p != file_hdr.c_name) - { - /* Debian hack: file_hrd.c_name is sometimes set to - point to static memory by code in tar.c. This diff --git a/archivers/gcpio/patches/patch-aj b/archivers/gcpio/patches/patch-aj deleted file mode 100644 index 8f10edcce54..00000000000 --- a/archivers/gcpio/patches/patch-aj +++ /dev/null @@ -1,13 +0,0 @@ -$NetBSD: patch-aj,v 1.1 2005/11/03 19:38:50 adrianp Exp $ - ---- src/global.c.orig 2004-09-08 11:23:44.000000000 +0100 -+++ src/global.c -@@ -100,7 +100,7 @@ int quiet_flag = false; - int only_verify_crc_flag = false; - - /* If true, don't use any absolute paths, prefix them by `./'. */ --int no_abs_paths_flag = false; -+int abs_paths_flag = false; - - #ifdef DEBUG_CPIO - /* If true, print debugging information. */ diff --git a/archivers/gcpio/patches/patch-ak b/archivers/gcpio/patches/patch-ak deleted file mode 100644 index 6ca5e745359..00000000000 --- a/archivers/gcpio/patches/patch-ak +++ /dev/null @@ -1,22 +0,0 @@ -$NetBSD: patch-ak,v 1.2 2006/02/12 01:44:28 seb Exp $ - ---- src/extern.h.orig 2004-09-08 12:49:57.000000000 +0200 -+++ src/extern.h -@@ -46,7 +46,7 @@ extern int no_chown_flag; - extern int sparse_flag; - extern int quiet_flag; - extern int only_verify_crc_flag; --extern int no_abs_paths_flag; -+extern int abs_paths_flag; - extern unsigned int warn_option; - - /* Values for warn_option */ -@@ -112,7 +112,7 @@ void long_format P_((struct new_cpio_hea - void print_name_with_quoting P_((char *p)); - - /* copyout.c */ --void write_out_header P_((struct new_cpio_header *file_hdr, int out_des)); -+int write_out_header P_((struct new_cpio_header *file_hdr, int out_des)); - void process_copy_out P_((void)); - - /* copypass.c */ diff --git a/archivers/gcpio/patches/patch-al b/archivers/gcpio/patches/patch-al deleted file mode 100644 index 1bca3685cd4..00000000000 --- a/archivers/gcpio/patches/patch-al +++ /dev/null @@ -1,26 +0,0 @@ -$NetBSD: patch-al,v 1.1 2005/11/03 19:38:50 adrianp Exp $ - ---- doc/cpio.info.orig 2004-02-27 12:42:01.000000000 +0000 -+++ doc/cpio.info -@@ -203,7 +203,7 @@ extracted. *Note Options::. - [--swap-halfwords] [--io-size=bytes] [--pattern-file=file] - [--format=format] [--owner=[user][:.][group]] - [--no-preserve-owner] [--message=message] [--help] [--version] -- [-no-absolute-filenames] [--sparse] [-only-verify-crc] [-quiet] -+ [--absolute-filenames] [--sparse] [-only-verify-crc] [-quiet] - [--rsh-command=command] [pattern...] [< archive] - - -@@ -358,9 +358,9 @@ Options - Show numeric UID and GID instead of translating them into names - when using the `--verbose option'. - --`--no-absolute-filenames' -- Create all files relative to the current directory in copy-in -- mode, even if they have an absolute file name in the archive. -+`--absolute-filenames' -+ Do not strip leading file name components that contain ".." -+ and leading slashes from file names in copy-in mode - - `--no-preserve-owner' - Do not change the ownership of the files; leave them owned by the diff --git a/archivers/gcpio/patches/patch-am b/archivers/gcpio/patches/patch-am deleted file mode 100644 index 4fededdf6e6..00000000000 --- a/archivers/gcpio/patches/patch-am +++ /dev/null @@ -1,13 +0,0 @@ -$NetBSD: patch-am,v 1.1 2005/11/03 19:38:50 adrianp Exp $ - ---- doc/cpio.1.orig 2004-08-30 17:21:48.000000000 +0100 -+++ doc/cpio.1 -@@ -20,7 +20,7 @@ cpio \- copy files to and from archives - [\-\-unconditional] [\-\-verbose] [\-\-block-size=blocks] [\-\-swap-halfwords] - [\-\-io-size=bytes] [\-\-pattern-file=file] [\-\-format=format] - [\-\-owner=[user][:.][group]] [\-\-no-preserve-owner] [\-\-message=message] --[\-\-force\-local] [\-\-no\-absolute\-filenames] [\-\-sparse] -+[\-\-force\-local] [\-\-absolute\-filenames] [\-\-sparse] - [\-\-only\-verify\-crc] [\-\-quiet] [\-\-rsh-command=command] [\-\-help] - [\-\-version] [pattern...] [< archive] - diff --git a/archivers/gcpio/patches/patch-an b/archivers/gcpio/patches/patch-an deleted file mode 100644 index 9fd3a70dddc..00000000000 --- a/archivers/gcpio/patches/patch-an +++ /dev/null @@ -1,31 +0,0 @@ -$NetBSD: patch-an,v 1.1 2005/11/03 19:38:50 adrianp Exp $ - ---- src/userspec.c.orig 2005-06-22 23:26:10.000000000 +0100 -+++ src/userspec.c -@@ -72,7 +72,7 @@ extern struct group *getgrgid (gid_t gid - otherwise return 0. */ - - static int --isnumber (const char *str) -+cpio_isnumber (const char *str) - { - for (; *str; str++) - if (!isdigit (*str)) -@@ -136,7 +136,7 @@ parse_user_spec (const char *spec_arg, u - if (pwd == NULL) - { - -- if (!isnumber (u)) -+ if (!cpio_isnumber (u)) - error_msg = _("invalid user"); - else - { -@@ -182,7 +182,7 @@ parse_user_spec (const char *spec_arg, u - grp = getgrnam (g); - if (grp == NULL) - { -- if (!isnumber (g)) -+ if (!cpio_isnumber (g)) - error_msg = _("invalid group"); - else - *gid = atoi (g); diff --git a/archivers/gcpio/patches/patch-ao b/archivers/gcpio/patches/patch-ao deleted file mode 100644 index 253aa0a2c8f..00000000000 --- a/archivers/gcpio/patches/patch-ao +++ /dev/null @@ -1,35 +0,0 @@ -$NetBSD: patch-ao,v 1.1 2005/11/03 19:38:50 adrianp Exp $ - ---- src/copypass.c.orig 2004-09-06 13:09:04.000000000 +0100 -+++ src/copypass.c -@@ -181,19 +181,25 @@ process_copy_pass () - } - if (close (in_file_des) < 0) - error (0, errno, "%s", input_name.ds_string); -- if (close (out_file_des) < 0) -- error (0, errno, "%s", output_name.ds_string); -- -+ /* -+ * Avoid race condition. -+ * Set chown and chmod before closing the file desc. -+ * pvrabec@redhat.com -+ */ - /* Set the attributes of the new file. */ - if (!no_chown_flag) -- if ((chown (output_name.ds_string, -+ if ((fchown (out_file_des, - set_owner_flag ? set_owner : in_file_stat.st_uid, - set_group_flag ? set_group : in_file_stat.st_gid) < 0) - && errno != EPERM) - error (0, errno, "%s", output_name.ds_string); - /* chown may have turned off some permissions we wanted. */ -- if (chmod (output_name.ds_string, in_file_stat.st_mode) < 0) -+ if (fchmod (out_file_des, in_file_stat.st_mode) < 0) -+ error (0, errno, "%s", output_name.ds_string); -+ -+ if (close (out_file_des) < 0) - error (0, errno, "%s", output_name.ds_string); -+ - if (reset_time_flag) - { - times.actime = in_file_stat.st_atime; diff --git a/archivers/gcpio/patches/patch-ap b/archivers/gcpio/patches/patch-ap deleted file mode 100644 index 49b3502ae8e..00000000000 --- a/archivers/gcpio/patches/patch-ap +++ /dev/null @@ -1,549 +0,0 @@ -$NetBSD: patch-ap,v 1.1 2006/02/12 01:44:28 seb Exp $ - ---- src/copyout.c.orig 2004-10-14 09:14:03.000000000 +0000 -+++ src/copyout.c -@@ -159,7 +159,7 @@ add_link_defer (struct new_cpio_header * - } - - /* We are about to put a file into a newc or crc archive that is -- multiply linked. We have already seen and defered all of the -+ multiply linked. We have already seen and deferred all of the - other links to the file but haven't written them into the archive. - Write the other links into the archive, and remove them from the - deferouts list. */ -@@ -231,8 +231,10 @@ writeout_defered_file (struct new_cpio_h - file_hdr.c_filesize, - header->c_name); - -- write_out_header (&file_hdr, out_file_des); -- copy_files_disk_to_tape (in_file_des, out_file_des, file_hdr.c_filesize, header->c_name); -+ if (write_out_header (&file_hdr, out_file_des)) -+ return; -+ copy_files_disk_to_tape (in_file_des, out_file_des, file_hdr.c_filesize, -+ header->c_name); - warn_if_file_changed(header->c_name, file_hdr.c_filesize, file_hdr.c_mtime); - - if (archive_format == arf_tar || archive_format == arf_ustar) -@@ -288,153 +290,313 @@ writeout_final_defers (int out_des) - } - } - -- --/* Write out header FILE_HDR, including the file name, to file -- descriptor OUT_DES. */ -+/* FIXME: These two defines should be defined in paxutils */ -+#define LG_8 3 -+#define LG_16 4 -+ -+/* FIXME: to_ascii could be used instead of to_oct() and to_octal() from tar, -+ so it should be moved to paxutils too. -+ Allowed values for logbase are: 1 (binary), 2, 3 (octal), 4 (hex) */ -+int -+to_ascii (char *where, uintmax_t v, size_t digits, unsigned logbase) -+{ -+ static char codetab[] = "0123456789ABCDEF"; -+ int i = digits; -+ -+ do -+ { -+ where[--i] = codetab[(v & ((1 << logbase) - 1))]; -+ v >>= logbase; -+ } -+ while (i); -+ -+ return v != 0; -+} -+ -+static void -+field_width_error (const char *filename, const char *fieldname) -+{ -+ error (0, 0, _("%s: field width not sufficient for storing %s"), -+ filename, fieldname); -+} -+ -+static void -+field_width_warning (const char *filename, const char *fieldname) -+{ -+ if (warn_option & CPIO_WARN_TRUNCATE) -+ error (0, 0, _("%s: truncating %s"), filename, fieldname); -+} - - void --write_out_header (struct new_cpio_header *file_hdr, int out_des) -+to_ascii_or_warn (char *where, uintmax_t n, size_t digits, -+ unsigned logbase, -+ const char *filename, const char *fieldname) - { -- if (archive_format == arf_newascii || archive_format == arf_crcascii) -+ if (to_ascii (where, n, digits, logbase)) -+ field_width_warning (filename, fieldname); -+} -+ -+int -+to_ascii_or_error (char *where, uintmax_t n, size_t digits, -+ unsigned logbase, -+ const char *filename, const char *fieldname) -+{ -+ if (to_ascii (where, n, digits, logbase)) - { -- char ascii_header[112]; -- char *magic_string; -+ field_width_error (filename, fieldname); -+ return 1; -+ } -+ return 0; -+} - -- if (archive_format == arf_crcascii) -- magic_string = "070702"; -- else -- magic_string = "070701"; -- sprintf (ascii_header, -- "%6s%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx", -- magic_string, -- file_hdr->c_ino, file_hdr->c_mode, file_hdr->c_uid, -- file_hdr->c_gid, file_hdr->c_nlink, file_hdr->c_mtime, -- file_hdr->c_filesize, file_hdr->c_dev_maj, file_hdr->c_dev_min, -- file_hdr->c_rdev_maj, file_hdr->c_rdev_min, file_hdr->c_namesize, -- file_hdr->c_chksum); -- tape_buffered_write (ascii_header, out_des, 110L); -- -- /* Write file name to output. */ -- tape_buffered_write (file_hdr->c_name, out_des, (long) file_hdr->c_namesize); -- tape_pad_output (out_des, file_hdr->c_namesize + 110); -- } -- else if (archive_format == arf_oldascii || archive_format == arf_hpoldascii) -- { -- char ascii_header[78]; -- dev_t dev; -- dev_t rdev; -+int -+write_out_new_ascii_header (const char *magic_string, -+ struct new_cpio_header *file_hdr, int out_des) -+{ -+ char ascii_header[110]; -+ char *p; - -- if (archive_format == arf_oldascii) -- { -- dev = makedev (file_hdr->c_dev_maj, file_hdr->c_dev_min); -- rdev = makedev (file_hdr->c_rdev_maj, file_hdr->c_rdev_min); -- } -- else -- { -- /* HP/UX cpio creates archives that look just like ordinary archives, -- but for devices it sets major = 0, minor = 1, and puts the -- actual major/minor number in the filesize field. */ -- switch (file_hdr->c_mode & CP_IFMT) -- { -- case CP_IFCHR: -- case CP_IFBLK: -+ (void)strncpy(ascii_header, magic_string, sizeof(ascii_header) - 1); -+ ascii_header[sizeof(ascii_header) -1] = '\0'; -+ p = ascii_header + strlen(ascii_header); -+ to_ascii_or_warn (p, file_hdr->c_ino, 8, LG_16, -+ file_hdr->c_name, _("inode number")); -+ p += 8; -+ to_ascii_or_warn (p, file_hdr->c_mode, 8, LG_16, file_hdr->c_name, -+ _("file mode")); -+ p += 8; -+ to_ascii_or_warn (p, file_hdr->c_uid, 8, LG_16, file_hdr->c_name, -+ _("uid")); -+ p += 8; -+ to_ascii_or_warn (p, file_hdr->c_gid, 8, LG_16, file_hdr->c_name, -+ _("gid")); -+ p += 8; -+ to_ascii_or_warn (p, file_hdr->c_nlink, 8, LG_16, file_hdr->c_name, -+ _("number of links")); -+ p += 8; -+ to_ascii_or_warn (p, file_hdr->c_mtime, 8, LG_16, file_hdr->c_name, -+ _("modification time")); -+ p += 8; -+ if (to_ascii_or_error (p, file_hdr->c_filesize, 8, LG_16, file_hdr->c_name, -+ _("file size"))) -+ return 1; -+ p += 8; -+ if (to_ascii_or_error (p, file_hdr->c_dev_maj, 8, LG_16, file_hdr->c_name, -+ _("device major number"))) -+ return 1; -+ p += 8; -+ if (to_ascii_or_error (p, file_hdr->c_dev_min, 8, LG_16, file_hdr->c_name, -+ _("device minor number"))) -+ return 1; -+ p += 8; -+ if (to_ascii_or_error (p, file_hdr->c_rdev_maj, 8, LG_16, file_hdr->c_name, -+ _("rdev major"))) -+ return 1; -+ p += 8; -+ if (to_ascii_or_error (p, file_hdr->c_rdev_min, 8, LG_16, file_hdr->c_name, -+ _("rdev minor"))) -+ return 1; -+ p += 8; -+ if (to_ascii_or_error (p, file_hdr->c_namesize, 8, LG_16, file_hdr->c_name, -+ _("name size"))) -+ return 1; -+ p += 8; -+ to_ascii (p, file_hdr->c_chksum & 0xffffffff, 8, LG_16); -+ -+ tape_buffered_write (ascii_header, out_des, sizeof ascii_header); -+ -+ /* Write file name to output. */ -+ tape_buffered_write (file_hdr->c_name, out_des, (long) file_hdr->c_namesize); -+ tape_pad_output (out_des, file_hdr->c_namesize + sizeof ascii_header); -+ return 0; -+} -+ -+int -+write_out_old_ascii_header (dev_t dev, dev_t rdev, -+ struct new_cpio_header *file_hdr, int out_des) -+{ -+ char ascii_header[76]; -+ char *p = ascii_header; -+ -+ to_ascii (p, file_hdr->c_magic, 6, LG_8); -+ p += 6; -+ to_ascii_or_warn (p, dev, 6, LG_8, file_hdr->c_name, _("device number")); -+ p += 6; -+ to_ascii_or_warn (p, file_hdr->c_ino, 6, LG_8, file_hdr->c_name, -+ _("inode number")); -+ p += 6; -+ to_ascii_or_warn (p, file_hdr->c_mode, 6, LG_8, file_hdr->c_name, -+ _("file mode")); -+ p += 6; -+ to_ascii_or_warn (p, file_hdr->c_uid, 6, LG_8, file_hdr->c_name, _("uid")); -+ p += 6; -+ to_ascii_or_warn (p, file_hdr->c_gid, 6, LG_8, file_hdr->c_name, _("gid")); -+ p += 6; -+ to_ascii_or_warn (p, file_hdr->c_nlink, 6, LG_8, file_hdr->c_name, -+ _("number of links")); -+ p += 6; -+ to_ascii_or_warn (p, rdev, 6, LG_8, file_hdr->c_name, _("rdev")); -+ p += 6; -+ to_ascii_or_warn (p, file_hdr->c_mtime, 11, LG_8, file_hdr->c_name, -+ _("modification time")); -+ p += 11; -+ if (to_ascii_or_error (p, file_hdr->c_namesize, 6, LG_8, file_hdr->c_name, -+ _("name size"))) -+ return 1; -+ p += 6; -+ if (to_ascii_or_error (p, file_hdr->c_filesize, 11, LG_8, file_hdr->c_name, -+ _("file size"))) -+ return 1; -+ -+ tape_buffered_write (ascii_header, out_des, sizeof ascii_header); -+ -+ /* Write file name to output. */ -+ tape_buffered_write (file_hdr->c_name, out_des, file_hdr->c_namesize); -+ return 0; -+} -+ -+void -+hp_compute_dev (struct new_cpio_header *file_hdr, dev_t *pdev, dev_t *prdev) -+{ -+ /* HP/UX cpio creates archives that look just like ordinary archives, -+ but for devices it sets major = 0, minor = 1, and puts the -+ actual major/minor number in the filesize field. */ -+ switch (file_hdr->c_mode & CP_IFMT) -+ { -+ case CP_IFCHR: -+ case CP_IFBLK: - #ifdef CP_IFSOCK -- case CP_IFSOCK: -+ case CP_IFSOCK: - #endif - #ifdef CP_IFIFO -- case CP_IFIFO: -+ case CP_IFIFO: - #endif -- file_hdr->c_filesize = makedev (file_hdr->c_rdev_maj, -- file_hdr->c_rdev_min); -- rdev = 1; -- break; -- default: -- dev = makedev (file_hdr->c_dev_maj, file_hdr->c_dev_min); -- rdev = makedev (file_hdr->c_rdev_maj, file_hdr->c_rdev_min); -- break; -- } -- } -+ file_hdr->c_filesize = makedev (file_hdr->c_rdev_maj, -+ file_hdr->c_rdev_min); -+ *pdev = *prdev = makedev (0, 1); -+ break; -+ -+ default: -+ *pdev = makedev (file_hdr->c_dev_maj, file_hdr->c_dev_min); -+ *prdev = makedev (file_hdr->c_rdev_maj, file_hdr->c_rdev_min); -+ break; -+ } -+} - -- if ((warn_option & CPIO_WARN_TRUNCATE) && (file_hdr->c_ino >> 16) != 0) -- error (0, 0, _("%s: truncating inode number"), file_hdr->c_name); -+int -+write_out_binary_header (dev_t rdev, -+ struct new_cpio_header *file_hdr, int out_des) -+{ -+ struct old_cpio_header short_hdr; - -- /* Debian hack: The type of dev_t has changed in glibc. Fixed output -- to ensure that a long int is passed to sprintf. This has been -- reported to "bug-gnu-utils@prep.ai.mit.edu". (1998/5/26) -BEM */ -- sprintf (ascii_header, -- "%06ho%06lo%06lo%06lo%06lo%06lo%06lo%06lo%011lo%06lo%011lo", -- file_hdr->c_magic & 0xFFFF, (long) dev & 0xFFFF, -- file_hdr->c_ino & 0xFFFF, file_hdr->c_mode & 0xFFFF, -- file_hdr->c_uid & 0xFFFF, file_hdr->c_gid & 0xFFFF, -- file_hdr->c_nlink & 0xFFFF, (long) rdev & 0xFFFF, -- file_hdr->c_mtime, file_hdr->c_namesize & 0xFFFF, -- file_hdr->c_filesize); -- tape_buffered_write (ascii_header, out_des, 76L); -+ short_hdr.c_magic = 070707; -+ short_hdr.c_dev = makedev (file_hdr->c_dev_maj, file_hdr->c_dev_min); - -- /* Write file name to output. */ -- tape_buffered_write (file_hdr->c_name, out_des, (long) file_hdr->c_namesize); -- } -- else if (archive_format == arf_tar || archive_format == arf_ustar) -- { -- write_out_tar_header (file_hdr, out_des); -- } -- else -- { -- struct old_cpio_header short_hdr; -+ if ((warn_option & CPIO_WARN_TRUNCATE) && (file_hdr->c_ino >> 16) != 0) -+ error (0, 0, _("%s: truncating inode number"), file_hdr->c_name); - -- short_hdr.c_magic = 070707; -- short_hdr.c_dev = makedev (file_hdr->c_dev_maj, file_hdr->c_dev_min); -+ short_hdr.c_ino = file_hdr->c_ino & 0xFFFF; -+ if (short_hdr.c_ino != file_hdr->c_ino) -+ field_width_warning (file_hdr->c_name, _("inode number")); -+ -+ short_hdr.c_mode = file_hdr->c_mode & 0xFFFF; -+ if (short_hdr.c_mode != file_hdr->c_mode) -+ field_width_warning (file_hdr->c_name, _("file mode")); -+ -+ short_hdr.c_uid = file_hdr->c_uid & 0xFFFF; -+ if (short_hdr.c_uid != file_hdr->c_uid) -+ field_width_warning (file_hdr->c_name, _("uid")); -+ -+ short_hdr.c_gid = file_hdr->c_gid & 0xFFFF; -+ if (short_hdr.c_gid != file_hdr->c_gid) -+ field_width_warning (file_hdr->c_name, _("gid")); -+ -+ short_hdr.c_nlink = file_hdr->c_nlink & 0xFFFF; -+ if (short_hdr.c_nlink != file_hdr->c_nlink) -+ field_width_warning (file_hdr->c_name, _("number of links")); -+ -+ short_hdr.c_rdev = rdev; -+ short_hdr.c_mtimes[0] = file_hdr->c_mtime >> 16; -+ short_hdr.c_mtimes[1] = file_hdr->c_mtime & 0xFFFF; -+ -+ short_hdr.c_namesize = file_hdr->c_namesize & 0xFFFF; -+ if (short_hdr.c_namesize != file_hdr->c_namesize) -+ { -+ field_width_error (file_hdr->c_name, _("name size")); -+ return 1; -+ } -+ -+ short_hdr.c_filesize = file_hdr->c_filesize; -+ if (short_hdr.c_filesize != file_hdr->c_filesize) -+ { -+ field_width_error (file_hdr->c_name, _("file size")); -+ return 1; -+ } -+ -+ short_hdr.c_filesizes[0] = file_hdr->c_filesize >> 16; -+ short_hdr.c_filesizes[1] = file_hdr->c_filesize & 0xFFFF; - -- if ((warn_option & CPIO_WARN_TRUNCATE) && (file_hdr->c_ino >> 16) != 0) -- error (0, 0, _("%s: truncating inode number"), file_hdr->c_name); -+ /* Output the file header. */ -+ tape_buffered_write ((char *) &short_hdr, out_des, 26); - -- short_hdr.c_ino = file_hdr->c_ino & 0xFFFF; -- short_hdr.c_mode = file_hdr->c_mode & 0xFFFF; -- short_hdr.c_uid = file_hdr->c_uid & 0xFFFF; -- short_hdr.c_gid = file_hdr->c_gid & 0xFFFF; -- short_hdr.c_nlink = file_hdr->c_nlink & 0xFFFF; -- if (archive_format != arf_hpbinary) -- short_hdr.c_rdev = makedev (file_hdr->c_rdev_maj, file_hdr->c_rdev_min); -- else -- { -- switch (file_hdr->c_mode & CP_IFMT) -- { -- /* HP/UX cpio creates archives that look just like ordinary -- archives, but for devices it sets major = 0, minor = 1, and -- puts the actual major/minor number in the filesize field. */ -- case CP_IFCHR: -- case CP_IFBLK: --#ifdef CP_IFSOCK -- case CP_IFSOCK: --#endif --#ifdef CP_IFIFO -- case CP_IFIFO: --#endif -- file_hdr->c_filesize = makedev (file_hdr->c_rdev_maj, -- file_hdr->c_rdev_min); -- short_hdr.c_rdev = makedev (0, 1); -- break; -- default: -- short_hdr.c_rdev = makedev (file_hdr->c_rdev_maj, -- file_hdr->c_rdev_min); -- break; -- } -- } -- short_hdr.c_mtimes[0] = file_hdr->c_mtime >> 16; -- short_hdr.c_mtimes[1] = file_hdr->c_mtime & 0xFFFF; -+ /* Write file name to output. */ -+ tape_buffered_write (file_hdr->c_name, out_des, file_hdr->c_namesize); - -- short_hdr.c_namesize = file_hdr->c_namesize & 0xFFFF; -+ tape_pad_output (out_des, file_hdr->c_namesize + 26); -+ return 0; -+} - -- short_hdr.c_filesizes[0] = file_hdr->c_filesize >> 16; -- short_hdr.c_filesizes[1] = file_hdr->c_filesize & 0xFFFF; -+ -+/* Write out header FILE_HDR, including the file name, to file -+ descriptor OUT_DES. */ - -- /* Output the file header. */ -- tape_buffered_write ((char *) &short_hdr, out_des, 26L); -+int -+write_out_header (struct new_cpio_header *file_hdr, int out_des) -+{ -+ dev_t dev; -+ dev_t rdev; -+ -+ switch (archive_format) -+ { -+ case arf_newascii: -+ return write_out_new_ascii_header ("070701", file_hdr, out_des); -+ -+ case arf_crcascii: -+ return write_out_new_ascii_header ("070702", file_hdr, out_des); -+ -+ case arf_oldascii: -+ return write_out_old_ascii_header (makedev (file_hdr->c_dev_maj, -+ file_hdr->c_dev_min), -+ makedev (file_hdr->c_rdev_maj, -+ file_hdr->c_rdev_min), -+ file_hdr, out_des); -+ -+ case arf_hpoldascii: -+ hp_compute_dev (file_hdr, &dev, &rdev); -+ return write_out_old_ascii_header (dev, rdev, file_hdr, out_des); -+ -+ case arf_tar: -+ case arf_ustar: -+ if (is_tar_filename_too_long (file_hdr->c_name)) -+ { -+ error (0, 0, _("%s: file name too long"), file_hdr->c_name); -+ return 1; -+ } -+ write_out_tar_header (file_hdr, out_des); /* FIXME: No error checking */ -+ return 0; - -- /* Write file name to output. */ -- tape_buffered_write (file_hdr->c_name, out_des, (long) file_hdr->c_namesize); -+ case arf_binary: -+ return write_out_binary_header (makedev (file_hdr->c_rdev_maj, -+ file_hdr->c_rdev_min), -+ file_hdr, out_des); -+ -+ case arf_hpbinary: -+ hp_compute_dev (file_hdr, &dev, &rdev); -+ /* FIXME: dev ignored. Should it be? */ -+ return write_out_binary_header (rdev, file_hdr, out_des); - -- tape_pad_output (out_des, file_hdr->c_namesize + 26); -+ default: -+ abort (); - } - } - -@@ -593,14 +755,7 @@ process_copy_out () - file_hdr.c_namesize = strlen (p) + 1; - } - #endif -- if ((archive_format == arf_tar || archive_format == arf_ustar) -- && is_tar_filename_too_long (file_hdr.c_name)) -- { -- error (0, 0, _("%s: file name too long"), -- file_hdr.c_name); -- continue; -- } -- -+ - /* Copy the named file to the output. */ - switch (file_hdr.c_mode & CP_IFMT) - { -@@ -613,8 +768,8 @@ process_copy_out () - file_hdr.c_dev_min))) - { - file_hdr.c_tar_linkname = otherfile; -- write_out_header (&file_hdr, out_file_des); -- break; -+ if (write_out_header (&file_hdr, out_file_des)) -+ continue; - } - } - if ( (archive_format == arf_newascii || archive_format == arf_crcascii) -@@ -643,7 +798,8 @@ process_copy_out () - file_hdr.c_filesize, - input_name.ds_string); - -- write_out_header (&file_hdr, out_file_des); -+ if (write_out_header (&file_hdr, out_file_des)) -+ continue; - copy_files_disk_to_tape (in_file_des, out_file_des, file_hdr.c_filesize, input_name.ds_string); - warn_if_file_changed(input_name.ds_string, file_hdr.c_filesize, - file_hdr.c_mtime); -@@ -673,7 +829,8 @@ process_copy_out () - - case CP_IFDIR: - file_hdr.c_filesize = 0; -- write_out_header (&file_hdr, out_file_des); -+ if (write_out_header (&file_hdr, out_file_des)) -+ continue; - break; - - case CP_IFCHR: -@@ -702,14 +859,16 @@ process_copy_out () - file_hdr.c_mode = (file_stat.st_mode & 07777); - file_hdr.c_mode |= CP_IFREG; - file_hdr.c_tar_linkname = otherfile; -- write_out_header (&file_hdr, out_file_des); -+ if (write_out_header (&file_hdr, out_file_des)) -+ continue; - break; - } - add_inode (file_hdr.c_ino, file_hdr.c_name, - file_hdr.c_dev_maj, file_hdr.c_dev_min); - } - file_hdr.c_filesize = 0; -- write_out_header (&file_hdr, out_file_des); -+ if (write_out_header (&file_hdr, out_file_des)) -+ continue; - break; - - #ifdef CP_IFLNK -@@ -738,12 +897,14 @@ process_copy_out () - { - link_name[link_size] = '\0'; - file_hdr.c_tar_linkname = link_name; -- write_out_header (&file_hdr, out_file_des); -+ if (write_out_header (&file_hdr, out_file_des)) -+ continue; - } - } - else - { -- write_out_header (&file_hdr, out_file_des); -+ if (write_out_header (&file_hdr, out_file_des)) -+ continue; - tape_buffered_write (link_name, out_file_des, link_size); - tape_pad_output (out_file_des, link_size); - } |