Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Dec 2011 15:33:13 +0000 (UTC)
From:      Martin Matuska <mm@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r228777 - head/contrib/libarchive/cpio
Message-ID:  <201112211533.pBLFXDh5074830@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mm
Date: Wed Dec 21 15:33:13 2011
New Revision: 228777
URL: http://svn.freebsd.org/changeset/base/228777

Log:
  Merge FreeBSD changes from usr.bin/cpio to contrib/libarchive/cpio:
  
  r204111 (uqs):
  Fix common misspelling of hierarchy
  
  r211054 (kientzle);
  Fix -R when used with -p.  Previously, the
  uname and gname weren't overwritten, so the
  disk restore would use those to lookup the
  original uid/gid again.  Clearing the uname
  and gname prevents this.
  
  r212263 (gjb):
  Fix typo in bsdcpio manual:
  s/libarchive_formats/libarchive-formats
  
  MFC after:	2 weeks

Modified:
  head/contrib/libarchive/cpio/bsdcpio.1
  head/contrib/libarchive/cpio/cmdline.c
  head/contrib/libarchive/cpio/cpio.c
  head/contrib/libarchive/cpio/cpio.h
Directory Properties:
  head/contrib/libarchive/cpio/   (props changed)

Modified: head/contrib/libarchive/cpio/bsdcpio.1
==============================================================================
--- head/contrib/libarchive/cpio/bsdcpio.1	Wed Dec 21 15:30:49 2011	(r228776)
+++ head/contrib/libarchive/cpio/bsdcpio.1	Wed Dec 21 15:33:13 2011	(r228777)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd December 21, 2007
+.Dd September 5, 2010
 .Dt BSDCPIO 1
 .Os
 .Sh NAME
@@ -140,7 +140,7 @@ The POSIX.1 tar format.
 The default format is
 .Ar odc .
 See
-.Xr libarchive_formats 5
+.Xr libarchive-formats 5
 for more complete information about the
 formats currently supported by the underlying
 .Xr libarchive 3
@@ -295,7 +295,7 @@ for more information.
 .Sh EXAMPLES
 The
 .Nm
-command is traditionally used to copy file heirarchies in conjunction
+command is traditionally used to copy file hierarchies in conjunction
 with the
 .Xr find 1
 command.

Modified: head/contrib/libarchive/cpio/cmdline.c
==============================================================================
--- head/contrib/libarchive/cpio/cmdline.c	Wed Dec 21 15:30:49 2011	(r228776)
+++ head/contrib/libarchive/cpio/cmdline.c	Wed Dec 21 15:33:13 2011	(r228777)
@@ -285,6 +285,8 @@ cpio_getopt(struct cpio *cpio)
  * A period can be used instead of the colon.
  *
  * Sets uid/gid return as appropriate, -1 indicates uid/gid not specified.
+ * TODO: If the spec uses uname/gname, then return those to the caller
+ * as well.  If the spec provides uid/gid, just return names as NULL.
  *
  * Returns NULL if no error, otherwise returns error string for display.
  *

Modified: head/contrib/libarchive/cpio/cpio.c
==============================================================================
--- head/contrib/libarchive/cpio/cpio.c	Wed Dec 21 15:30:49 2011	(r228776)
+++ head/contrib/libarchive/cpio/cpio.c	Wed Dec 21 15:33:13 2011	(r228777)
@@ -273,15 +273,21 @@ main(int argc, char *argv[])
 			cpio->quiet = 1;
 			break;
 		case 'R': /* GNU cpio, also --owner */
+			/* TODO: owner_parse should return uname/gname
+			 * also; use that to set [ug]name_override. */
 			errmsg = owner_parse(cpio->optarg, &uid, &gid);
 			if (errmsg) {
 				lafe_warnc(-1, "%s", errmsg);
 				usage();
 			}
-			if (uid != -1)
+			if (uid != -1) {
 				cpio->uid_override = uid;
-			if (gid != -1)
+				cpio->uname_override = NULL;
+			}
+			if (gid != -1) {
 				cpio->gid_override = gid;
+				cpio->gname_override = NULL;
+			}
 			break;
 		case 'r': /* POSIX 1997 */
 			cpio->option_rename = 1;
@@ -575,10 +581,14 @@ file_to_archive(struct cpio *cpio, const
 		return (r);
 	}
 
-	if (cpio->uid_override >= 0)
+	if (cpio->uid_override >= 0) {
 		archive_entry_set_uid(entry, cpio->uid_override);
-	if (cpio->gid_override >= 0)
+		archive_entry_set_uname(entry, cpio->uname_override);
+	}
+	if (cpio->gid_override >= 0) {
 		archive_entry_set_gid(entry, cpio->gid_override);
+		archive_entry_set_gname(entry, cpio->gname_override);
+	}
 
 	/*
 	 * Generate a destination path for this entry.

Modified: head/contrib/libarchive/cpio/cpio.h
==============================================================================
--- head/contrib/libarchive/cpio/cpio.h	Wed Dec 21 15:30:49 2011	(r228776)
+++ head/contrib/libarchive/cpio/cpio.h	Wed Dec 21 15:33:13 2011	(r228777)
@@ -68,7 +68,9 @@ struct cpio {
 	size_t		  pass_destpath_alloc;
 	char		 *pass_destpath;
 	int		  uid_override;
+	char		 *uname_override;
 	int		  gid_override;
+	char		 *gname_override;
 	int		  day_first; /* true if locale prefers day/mon */
 
 	/* If >= 0, then close this when done. */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201112211533.pBLFXDh5074830>