rpms/cpio/devel cpio-2.9-chmodRaceC.patch, NONE, 1.1 cpio-2.9-exitCode.patch, NONE, 1.1 cpio-2.9-lstat.patch, NONE, 1.1 cpio-2.9-rh.patch, NONE, 1.1 .cvsignore, 1.6, 1.7 cpio.spec, 1.52, 1.53 sources, 1.7, 1.8 cpio-2.5-nolibnsl.patch, 1.5, NONE cpio-2.6-checksum.patch, 1.1, NONE cpio-2.6-chmodRaceC.patch, 1.2, NONE cpio-2.6-dirTraversal.patch, 1.1, NONE cpio-2.6-initHeaderStruct.patch, 1.1, NONE cpio-2.6-lfs.patch, 1.4, NONE cpio-2.6-lstat.patch, 1.1, NONE cpio-2.6-rh.patch, 1.2, NONE cpio-2.6-umask.patch, 1.1, NONE cpio-2.6-warnings.patch, 1.2, NONE cpio-2.6-writeOutHeaderBufferOverflow.patch, 1.3, NONE

Radek Brich (rbrich) fedora-extras-commits at redhat.com
Thu Jul 19 09:44:24 UTC 2007


Author: rbrich

Update of /cvs/extras/rpms/cpio/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14168

Modified Files:
	.cvsignore cpio.spec sources 
Added Files:
	cpio-2.9-chmodRaceC.patch cpio-2.9-exitCode.patch 
	cpio-2.9-lstat.patch cpio-2.9-rh.patch 
Removed Files:
	cpio-2.5-nolibnsl.patch cpio-2.6-checksum.patch 
	cpio-2.6-chmodRaceC.patch cpio-2.6-dirTraversal.patch 
	cpio-2.6-initHeaderStruct.patch cpio-2.6-lfs.patch 
	cpio-2.6-lstat.patch cpio-2.6-rh.patch cpio-2.6-umask.patch 
	cpio-2.6-warnings.patch 
	cpio-2.6-writeOutHeaderBufferOverflow.patch 
Log Message:
version update 2.9

cpio-2.9-chmodRaceC.patch:

--- NEW FILE cpio-2.9-chmodRaceC.patch ---
--- cpio-2.9/src/copypass.c.chmodRaceC	2007-06-28 14:10:01.000000000 +0200
+++ cpio-2.9/src/copypass.c	2007-07-19 10:43:26.000000000 +0200
@@ -239,15 +239,23 @@ process_copy_pass ()
 		  cdf_flag = 1;
 		}
 #endif
-	      res = mkdir (output_name.ds_string, in_file_stat.st_mode);
+	      res = mkdir (output_name.ds_string, in_file_stat.st_mode & ~077);
 
 	    }
 	  else
-	    res = 0;
+            {
+              if (!no_chown_flag && (out_file_stat.st_mode & 077) != 0
+                  && chmod (output_name.ds_string, out_file_stat.st_mode & 07700) < 0)
+                {
+                  error (0, errno, "%s: chmod", output_name.ds_string);
+                  continue;
+                }
+              res = 0;
+            }
 	  if (res < 0 && create_dir_flag)
 	    {
 	      create_all_directories (output_name.ds_string);
-	      res = mkdir (output_name.ds_string, in_file_stat.st_mode);
+	      res = mkdir (output_name.ds_string, in_file_stat.st_mode & ~077);
 	    }
 	  if (res < 0)
 	    {
@@ -290,12 +298,12 @@ process_copy_pass ()
 
 	  if (link_res < 0)
 	    {
-	      res = mknod (output_name.ds_string, in_file_stat.st_mode,
+	      res = mknod (output_name.ds_string, in_file_stat.st_mode & ~077,
 			   in_file_stat.st_rdev);
 	      if (res < 0 && create_dir_flag)
 		{
 		  create_all_directories (output_name.ds_string);
-		  res = mknod (output_name.ds_string, in_file_stat.st_mode,
+		  res = mknod (output_name.ds_string, in_file_stat.st_mode & ~077,
 			       in_file_stat.st_rdev);
 		}
 	      if (res < 0)
--- cpio-2.9/src/copyin.c.chmodRaceC	2007-06-28 12:51:09.000000000 +0200
+++ cpio-2.9/src/copyin.c	2007-07-19 10:37:50.000000000 +0200
@@ -186,11 +186,12 @@ list_file(struct cpio_file_stat* file_hd
 
 static int
 try_existing_file (struct cpio_file_stat* file_hdr, int in_file_des,
-		   int *existing_dir)
+		   int *existing_dir, mode_t *existing_mode)
 {
   struct stat file_stat;
 
   *existing_dir = false;
+  *existing_mode = 0;
   if (lstat (file_hdr->c_name, &file_stat) == 0)
     {
       if (S_ISDIR (file_stat.st_mode)
@@ -200,6 +201,7 @@ try_existing_file (struct cpio_file_stat
 	     we are trying to create, don't complain about
 	     it.  */
 	  *existing_dir = true;
+	  *existing_mode = file_stat.st_mode;
 	  return 0;
 	}
       else if (!unconditional_flag
@@ -567,7 +569,7 @@ copyin_regular_file (struct cpio_file_st
 }
 
 static void
-copyin_directory (struct cpio_file_stat *file_hdr, int existing_dir)
+copyin_directory (struct cpio_file_stat *file_hdr, int existing_dir, mode_t existing_mode)
 {
   int res;			/* Result of various function calls.  */
 #ifdef HPUX_CDF
@@ -610,14 +612,22 @@ copyin_directory (struct cpio_file_stat 
 	  cdf_flag = 1;
 	}
 #endif
-      res = mkdir (file_hdr->c_name, file_hdr->c_mode);
+      res = mkdir (file_hdr->c_name, file_hdr->c_mode & ~077);
     }
   else
-    res = 0;
+    {
+      if (!no_chown_flag && (existing_mode & 077) != 0
+         && chmod (file_hdr->c_name, existing_mode & 07700) < 0)
+       {
+         error (0, errno, "%s: chmod", file_hdr->c_name);
+         return;
+       }
+      res = 0;
+    }
   if (res < 0 && create_dir_flag)
     {
       create_all_directories (file_hdr->c_name);
-      res = mkdir (file_hdr->c_name, file_hdr->c_mode);
+      res = mkdir (file_hdr->c_name, file_hdr->c_mode & ~077);
     }
   if (res < 0)
     {
@@ -692,12 +702,12 @@ copyin_device (struct cpio_file_stat* fi
       return;
     }
   
-  res = mknod (file_hdr->c_name, file_hdr->c_mode,
+  res = mknod (file_hdr->c_name, file_hdr->c_mode & ~077,
 	    makedev (file_hdr->c_rdev_maj, file_hdr->c_rdev_min));
   if (res < 0 && create_dir_flag)
     {
       create_all_directories (file_hdr->c_name);
-      res = mknod (file_hdr->c_name, file_hdr->c_mode,
+      res = mknod (file_hdr->c_name, file_hdr->c_mode & ~077,
 	    makedev (file_hdr->c_rdev_maj, file_hdr->c_rdev_min));
     }
   if (res < 0)
@@ -772,9 +782,10 @@ static void
 copyin_file (struct cpio_file_stat* file_hdr, int in_file_des)
 {
   int existing_dir;
+  mode_t existing_mode;
 
   if (!to_stdout_option
-      && try_existing_file (file_hdr, in_file_des, &existing_dir) < 0)
+      && try_existing_file (file_hdr, in_file_des, &existing_dir, &existing_mode) < 0)
     return;
 
   /* Do the real copy or link.  */
@@ -785,7 +796,7 @@ copyin_file (struct cpio_file_stat* file
       break;
 
     case CP_IFDIR:
-      copyin_directory (file_hdr, existing_dir);
+      copyin_directory(file_hdr, existing_dir, existing_mode);
       break;
 
     case CP_IFCHR:

cpio-2.9-exitCode.patch:

--- NEW FILE cpio-2.9-exitCode.patch ---
--- cpio-2.9/src/copyout.c.exitCode	2007-06-28 10:54:43.000000000 +0200
+++ cpio-2.9/src/copyout.c	2007-07-16 16:23:05.000000000 +0200
@@ -297,7 +297,7 @@ to_ascii (char *where, uintmax_t v, size
 static void
 field_width_error (const char *filename, const char *fieldname)
 {
-  error (0, 0, _("%s: field width not sufficient for storing %s"),
+  error (1, 0, _("%s: field width not sufficient for storing %s"),
 	 filename, fieldname);
 }
 

cpio-2.9-lstat.patch:

--- NEW FILE cpio-2.9-lstat.patch ---
--- cpio-2.9/configure.ac.lstat	2007-07-16 15:19:52.000000000 +0200
+++ cpio-2.9/configure.ac	2007-07-16 15:19:37.000000000 +0200
@@ -45,7 +45,7 @@ AC_CHECK_TYPE(gid_t, int)
 AC_HEADER_STDC
 AC_HEADER_DIRENT
 
-AC_CHECK_FUNCS([fchmod fchown])
+AC_CHECK_FUNCS([fchmod fchown lstat])
 
 # gnulib modules
 gl_INIT

cpio-2.9-rh.patch:

--- NEW FILE cpio-2.9-rh.patch ---
--- cpio-2.9/doc/cpio.info.rh	2007-06-28 15:25:08.000000000 +0200
+++ cpio-2.9/doc/cpio.info	2007-07-16 15:10:20.000000000 +0200
@@ -266,7 +266,8 @@ File: cpio.info,  Node: Options,  Prev: 
      Set the I/O block size to BLOCK-SIZE * 512 bytes.
 
 `-c'
-     Use the old portable (ASCII) archive format.
+     Identical to "-H newc", use the new (SVR4) portable format.
+     If you wish the old portable (ASCII) archive format, use "-H odc" instead.
 
 `-C IO-SIZE'
 `--io-size=IO-SIZE'
--- cpio-2.9/src/main.c.rh	2007-06-28 12:46:41.000000000 +0200
+++ cpio-2.9/src/main.c	2007-07-16 15:09:10.000000000 +0200
@@ -111,7 +111,7 @@ static struct argp_option options[] = {
   {"block-size", BLOCK_SIZE_OPTION, N_("BLOCK-SIZE"), 0,
    N_("Set the I/O block size to BLOCK-SIZE * 512 bytes"), GRID+1 },
   {NULL, 'c', NULL, 0,
-   N_("Use the old portable (ASCII) archive format"), GRID+1 },
+   N_("Identical to \"-H newc\", use the new (SVR4) portable format.If you wish the old portable (ASCII) archive format, use \"-H odc\" instead."), GRID+1 },
   {"dot", 'V', NULL, 0, 
    N_("Print a \".\" for each file processed"), GRID+1 },
   {"io-size", 'C', N_("NUMBER"), 0,
@@ -338,6 +338,7 @@ parse_opt (int key, char *arg, struct ar
     case 'c':		/* Use the old portable ASCII format.  */
       if (archive_format != arf_unknown)
 	error (0, EXIT_FAILURE, _("Archive format multiply defined"));
+#define SVR4_COMPAT
 #ifdef SVR4_COMPAT
       archive_format = arf_newascii; /* -H newc.  */
 #else


Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/cpio/devel/.cvsignore,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- .cvsignore	25 Nov 2006 16:54:44 -0000	1.6
+++ .cvsignore	19 Jul 2007 09:43:52 -0000	1.7
@@ -1,2 +1,2 @@
-cpio-2.6.tar.gz
+cpio-2.9.tar.gz
 cpio.1


Index: cpio.spec
===================================================================
RCS file: /cvs/extras/rpms/cpio/devel/cpio.spec,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- cpio.spec	20 Feb 2007 16:30:05 -0000	1.52
+++ cpio.spec	19 Jul 2007 09:43:52 -0000	1.53
@@ -2,25 +2,17 @@
 
 Summary: A GNU archiving program
 Name: cpio
-Version: 2.6
-Release: 27%{?dist}
+Version: 2.9
+Release: 1%{?dist}
 License: GPL
 Group: Applications/Archiving
 URL: http://www.gnu.org/software/cpio/
 Source: ftp://ftp.gnu.org/gnu/cpio/cpio-%{version}.tar.gz
-Source1:cpio.1
-Patch0: cpio-2.6-rh.patch
-Patch1: cpio-2.5-nolibnsl.patch
-Patch2: cpio-2.6-lfs.patch
-Patch3: cpio-2.6-lstat.patch
-Patch4: cpio-2.6-umask.patch
-Patch5: cpio-2.6-chmodRaceC.patch
-Patch6: cpio-2.6-dirTraversal.patch
-Patch7: cpio-2.6-warnings.patch
-Patch8: cpio-2.6-checksum.patch
-Patch9: cpio-2.6-writeOutHeaderBufferOverflow.patch
-Patch10:cpio-2.6-initHeaderStruct.patch
-Patch11:cpio-2.6-setLocale.patch
+Source1: cpio.1
+Patch1: cpio-2.6-setLocale.patch
+Patch2: cpio-2.9-rh.patch
+Patch3: cpio-2.9-chmodRaceC.patch
+Patch4: cpio-2.9-exitCode.patch
 Requires(post): /sbin/install-info
 Requires(preun): /sbin/install-info
 BuildRequires: texinfo, autoconf, gettext
@@ -42,18 +34,10 @@
 
 %prep
 %setup -q
-%patch0  -p1 -b .rh
-%patch1  -p1 -b .nolibnsl
-%patch2  -p1 -b .lfs
-%patch3  -p1 -b .lstat
-%patch4  -p1 -b .umask
-%patch5  -p1 -b .chmodRaceC
-%patch6  -p1 -b .dirTraversal
-%patch7  -p1 -b .warnings
-%patch8  -p1 -b .checksum
-%patch9  -p1 -b .bufferOverflow
-%patch10 -p1 -b .initHeaderStruct
-%patch11 -p1 -b .setLocale.patch
+%patch1  -p1 -b .setLocale
+%patch2  -p1 -b .rh
+%patch3  -p1 -b .chmodRaceC
+%patch4  -p1 -b .exitCode
 
 autoheader
 
@@ -68,9 +52,9 @@
 make DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" install
 
 
-rm $RPM_BUILD_ROOT/%{_mandir}/man1/mt.1*
-rm $RPM_BUILD_ROOT/%{_infodir}/dir
-rm $RPM_BUILD_ROOT/%{_libexecdir}/rmt
+rm $RPM_BUILD_ROOT%{_libexecdir}/rmt
+rm $RPM_BUILD_ROOT%{_mandir}/man1/*.1*
+install -c -p -m 0644 %{SOURCE1} ${RPM_BUILD_ROOT}%{_mandir}/man1
 
 %find_lang %{name}
 
@@ -93,6 +77,9 @@
 %{_infodir}/*.info*
 
 %changelog
+* Thu Jul 19 2007 Radek Brich <rbrich at redhat.com> 2.9-1
+- update to 2.9, GPLv3
+
 * Tue Feb 20 2007 Peter Vrabec <pvrabec at redhat.com> 2.6-27
 - fix typo in changelog
 


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/cpio/devel/sources,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- sources	25 Nov 2006 16:54:44 -0000	1.7
+++ sources	19 Jul 2007 09:43:52 -0000	1.8
@@ -1,2 +1,2 @@
-76b4145f33df088a5bade3bf4373d17d  cpio-2.6.tar.gz
+2bb997a33555d4dc79d45d0cdf02cedd  cpio-2.9.tar.gz
 df0cc989cf5d0c65af7eaa5f0de88ac9  cpio.1


--- cpio-2.5-nolibnsl.patch DELETED ---


--- cpio-2.6-checksum.patch DELETED ---


--- cpio-2.6-chmodRaceC.patch DELETED ---


--- cpio-2.6-dirTraversal.patch DELETED ---


--- cpio-2.6-initHeaderStruct.patch DELETED ---


--- cpio-2.6-lfs.patch DELETED ---


--- cpio-2.6-lstat.patch DELETED ---


--- cpio-2.6-rh.patch DELETED ---


--- cpio-2.6-umask.patch DELETED ---


--- cpio-2.6-warnings.patch DELETED ---


--- cpio-2.6-writeOutHeaderBufferOverflow.patch DELETED ---




More information about the fedora-extras-commits mailing list