forgot to mention that emulators/fedora/base works for me too (i386) with
this diff.

Rui Reis


On Sun, Apr 15, 2007 at 03:12:26PM +0100, Rui Reis wrote:
> Here's an update to archivers/gcpio.
> 
> what's new:
> * Improved error checking and diagnostics
> * Fixed CAN-1999-1572
> * Allow to use --sparse in both copy-in and copy-pass.
> * Fix bug that eventually caused copying out the same hard-linked file 
> several times to archive.
> * Fix several LFS-related issues.
> 
> works for me on i386, amd64, sparc and sparc64.
> 
> please test and comment.
> 
> Rui Reis
> 
> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/archivers/gcpio/Makefile,v
> retrieving revision 1.10
> diff -u -r1.10 Makefile
> --- Makefile  20 Oct 2005 21:45:18 -0000      1.10
> +++ Makefile  15 Apr 2007 01:37:51 -0000
> @@ -2,7 +2,7 @@
>  
>  COMMENT=     "GNU copy-in/out (cpio)"
>  
> -DISTNAME=    cpio-2.6
> +DISTNAME=    cpio-2.7
>  PKGNAME=     g${DISTNAME}
>  CATEGORIES=  archivers
>  
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/archivers/gcpio/distinfo,v
> retrieving revision 1.5
> diff -u -r1.5 distinfo
> --- distinfo  5 Apr 2007 15:37:40 -0000       1.5
> +++ distinfo  15 Apr 2007 01:37:51 -0000
> @@ -1,5 +1,5 @@
> -MD5 (cpio-2.6.tar.gz) = drQUXzPfCIpbreO/Q3PRfQ==
> -RMD160 (cpio-2.6.tar.gz) = gka90Iq4cn+agELTPd/jpjMkdrg=
> -SHA1 (cpio-2.6.tar.gz) = Wk6hVlGZCZlP4Fkz3II6vPB+PiE=
> -SHA256 (cpio-2.6.tar.gz) = lUxXBeoYYaRD16YXU+MiZwHCAvyOOYynL2dONWHM9sI=
> -SIZE (cpio-2.6.tar.gz) = 556018
> +MD5 (cpio-2.7.tar.gz) = iFjTRNOS8yYhAyA54b97lQ==
> +RMD160 (cpio-2.7.tar.gz) = gWVZK6+z73coYj39S0BSRf3GDeo=
> +SHA1 (cpio-2.7.tar.gz) = dFtpVhSJXtyFwGnIHgAPB+rKtH4=
> +SHA256 (cpio-2.7.tar.gz) = uupeFtELMXS/WqL9CFy+Pz97CATiLVOIHPlySzHqt6I=
> +SIZE (cpio-2.7.tar.gz) = 895534
> Index: patches/patch-configure
> ===================================================================
> RCS file: /cvs/ports/archivers/gcpio/patches/patch-configure,v
> retrieving revision 1.1
> diff -u -r1.1 patch-configure
> --- patches/patch-configure   20 Oct 2005 21:45:18 -0000      1.1
> +++ patches/patch-configure   15 Apr 2007 01:37:51 -0000
> @@ -1,12 +1,12 @@
> -$OpenBSD: patch-configure,v 1.1 2005/10/20 21:45:18 naddy Exp $
> ---- configure.orig   Thu Oct 20 23:11:17 2005
> -+++ configure        Thu Oct 20 23:11:43 2005
> -@@ -16167,7 +16167,7 @@ s,@host_vendor@,$host_vendor,;t t
> - s,@host_os@,$host_os,;t t
> - s,@LIBICONV@,$LIBICONV,;t t
> - s,@LTLIBICONV@,$LTLIBICONV,;t t
> --s,@INTLLIBS@,$INTLLIBS,;t t
> -+s,@INTLLIBS@,$LTLIBINTL,;t t
> - s,@LIBINTL@,$LIBINTL,;t t
> - s,@LTLIBINTL@,$LTLIBINTL,;t t
> - s,@POSUB@,$POSUB,;t t
> +$OpenBSD$
> +--- configure.orig   Sun Apr 15 01:57:52 2007
> ++++ configure        Sun Apr 15 01:58:30 2007
> +@@ -35249,7 +35249,7 @@ MSGMERGE!$MSGMERGE$ac_delim
> + INTL_MACOSX_LIBS!$INTL_MACOSX_LIBS$ac_delim
> + LIBICONV!$LIBICONV$ac_delim
> + LTLIBICONV!$LTLIBICONV$ac_delim
> +-INTLLIBS!$INTLLIBS$ac_delim
> ++INTLLIBS!$LTLIBINTL$ac_delim
> + LIBINTL!$LIBINTL$ac_delim
> + LTLIBINTL!$LTLIBINTL$ac_delim
> + POSUB!$POSUB$ac_delim
> Index: patches/patch-doc_Makefile_in
> ===================================================================
> RCS file: /cvs/ports/archivers/gcpio/patches/patch-doc_Makefile_in,v
> retrieving revision 1.1
> diff -u -r1.1 patch-doc_Makefile_in
> --- patches/patch-doc_Makefile_in     20 Oct 2005 21:45:18 -0000      1.1
> +++ patches/patch-doc_Makefile_in     15 Apr 2007 01:37:51 -0000
> @@ -1,12 +1,12 @@
> -$OpenBSD: patch-doc_Makefile_in,v 1.1 2005/10/20 21:45:18 naddy Exp $
> ---- doc/Makefile.in.orig     Thu Oct 20 21:47:43 2005
> -+++ doc/Makefile.in  Thu Oct 20 21:47:57 2005
> -@@ -206,7 +206,7 @@ sharedstatedir = @sharedstatedir@
> +$OpenBSD$
> +--- doc/Makefile.in.orig     Sun Apr 15 02:18:12 2007
> ++++ doc/Makefile.in  Sun Apr 15 02:18:26 2007
> +@@ -290,7 +290,7 @@ sharedstatedir = @sharedstatedir@
>   sysconfdir = @sysconfdir@
>   target_alias = @target_alias@
>   info_TEXINFOS = cpio.texi
>  -man_MANS = cpio.1 mt.1
>  +man_MANS = cpio.1
> - EXTRA_DIST = $(man_MANS)
> + EXTRA_DIST = $(man_MANS) gendocs_template
>   all: all-am
>   
> Index: patches/patch-lib_system_h
> ===================================================================
> RCS file: /cvs/ports/archivers/gcpio/patches/patch-lib_system_h,v
> retrieving revision 1.1
> diff -u -r1.1 patch-lib_system_h
> --- patches/patch-lib_system_h        20 Oct 2005 21:45:18 -0000      1.1
> +++ patches/patch-lib_system_h        15 Apr 2007 01:37:51 -0000
> @@ -1,12 +1,12 @@
> -$OpenBSD: patch-lib_system_h,v 1.1 2005/10/20 21:45:18 naddy Exp $
> ---- lib/system.h.orig        Thu Oct 20 21:27:34 2005
> -+++ lib/system.h     Thu Oct 20 21:27:49 2005
> -@@ -467,7 +467,7 @@ char *getenv ();
> -   ((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 1000 \
> -    + 1 + TYPE_SIGNED (t))
> +$OpenBSD$
> +--- lib/system.h.orig        Sat Apr 14 18:08:21 2007
> ++++ lib/system.h     Sat Apr 14 18:08:43 2007
> +@@ -425,7 +425,7 @@ char *getenv ();
>   
> --#define UINTMAX_STRSIZE_BOUND (INT_STRLEN_BOUND (uintmax_t) + 1)
> -+#define UINTMAX_STRSIZE_BOUND (INT_STRLEN_BOUND (uint64_t) + 1)
> + #include <intprops.h>
> + 
> +-#define UINTMAX_STRSIZE_BOUND INT_BUFSIZE_BOUND (uintmax_t)
> ++#define UINTMAX_STRSIZE_BOUND INT_BUFSIZE_BOUND (uint64_t)
>   
>   /* Prototypes for external functions.  */
>   
> Index: patches/patch-src_copyin_c
> ===================================================================
> RCS file: patches/patch-src_copyin_c
> diff -N patches/patch-src_copyin_c
> --- patches/patch-src_copyin_c        20 Oct 2005 21:45:18 -0000      1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,100 +0,0 @@
> -$OpenBSD: patch-src_copyin_c,v 1.1 2005/10/20 21:45:18 naddy Exp $
> ---- src/copyin.c.orig        Wed Sep  8 13:10:02 2004
> -+++ src/copyin.c     Thu Oct 20 23:33:40 2005
> -@@ -389,19 +389,20 @@ create_final_defers ()
> -       continue;
> -     }
> - 
> --      if (close (out_file_des) < 0)
> --    error (0, errno, "%s", d->header.c_name);
> --
> -       /* 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;
> -@@ -1335,6 +1336,48 @@ 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 leading file name components that contain "..", and leading 
> slashes.  */
> -+  size_t prefix_len = 0;
> -+
> -+  for (p = file_name; *p;)
> -+    {
> -+      if (p[0] == '.' && p[1] == '.' && ((p[2] == '/') || !p[2]))
> -+    prefix_len = p + 2 - file_name;
> -+
> -+      do
> -+    {
> -+      if (*p++ == '/')
> -+        break;
> -+    }
> -+      while (*p);
> -+    }
> -+
> -+  for (p = file_name + prefix_len; *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 +1488,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 (no_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
> Index: patches/patch-src_copypass_c
> ===================================================================
> RCS file: patches/patch-src_copypass_c
> diff -N patches/patch-src_copypass_c
> --- patches/patch-src_copypass_c      20 Oct 2005 21:45:18 -0000      1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,29 +0,0 @@
> -$OpenBSD: patch-src_copypass_c,v 1.1 2005/10/20 21:45:18 naddy Exp $
> ---- src/copypass.c.orig      Mon Sep  6 14:09:04 2004
> -+++ src/copypass.c   Thu Oct 20 23:33:41 2005
> -@@ -181,19 +181,20 @@ 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);
> --
> -           /* 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;
> Index: patches/patch-src_main_c
> ===================================================================
> RCS file: patches/patch-src_main_c
> diff -N patches/patch-src_main_c
> --- patches/patch-src_main_c  20 Oct 2005 21:45:18 -0000      1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,19 +0,0 @@
> -$OpenBSD: patch-src_main_c,v 1.1 2005/10/20 21:45:18 naddy Exp $
> ---- src/main.c.orig  Tue Nov 23 01:42:18 2004
> -+++ src/main.c       Thu Oct 20 21:57:59 2005
> -@@ -740,7 +740,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 +750,7 @@ main (int argc, char *argv[])
> - #endif
> - 
> -   process_args (argc, argv);
> -+  umask (0);
> - 
> -   initialize_buffers ();
> - 
> Index: pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/archivers/gcpio/pkg/PLIST,v
> retrieving revision 1.4
> diff -u -r1.4 PLIST
> --- pkg/PLIST 20 Oct 2005 21:45:18 -0000      1.4
> +++ pkg/PLIST 15 Apr 2007 01:37:51 -0000
> @@ -6,14 +6,19 @@
>  share/locale/de/LC_MESSAGES/cpio.mo
>  share/locale/es/LC_MESSAGES/cpio.mo
>  share/locale/fr/LC_MESSAGES/cpio.mo
> +share/locale/ga/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/rw/
> +share/locale/rw/LC_MESSAGES/
> +share/locale/rw/LC_MESSAGES/cpio.mo
>  share/locale/sv/LC_MESSAGES/cpio.mo
>  share/locale/tr/LC_MESSAGES/cpio.mo
> +share/locale/uk/LC_MESSAGES/cpio.mo
> +share/locale/vi/LC_MESSAGES/cpio.mo
>  share/locale/zh_CN/LC_MESSAGES/cpio.mo

Reply via email to