rpms/util-linux-ng/F-12 util-linux-ng-2.16-mount-nocanonicalize.patch, NONE, 1.1 util-linux-ng.spec, 1.72, 1.73

kzak kzak at fedoraproject.org
Mon Apr 12 18:56:01 UTC 2010


Author: kzak

Update of /cvs/pkgs/rpms/util-linux-ng/F-12
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv29293

Modified Files:
	util-linux-ng.spec 
Added Files:
	util-linux-ng-2.16-mount-nocanonicalize.patch 
Log Message:
* Mon Apr 12 2010 Karel Zak <kzak at redhat.com> 2.16.2-9
- fix #577947 - need --no-canonicalize option for mount


util-linux-ng-2.16-mount-nocanonicalize.patch:
 mount.8    |    8 ++++++++
 mount.c    |    8 ++++++--
 sundries.c |   13 ++++++++++---
 sundries.h |    1 +
 umount.8   |    4 ++++
 umount.c   |   10 ++++++++--
 6 files changed, 37 insertions(+), 7 deletions(-)

--- NEW FILE util-linux-ng-2.16-mount-nocanonicalize.patch ---
diff -up util-linux-ng-2.16.2/mount/mount.8.kzak util-linux-ng-2.16.2/mount/mount.8
--- util-linux-ng-2.16.2/mount/mount.8.kzak	2009-11-30 15:54:35.000000000 +0100
+++ util-linux-ng-2.16.2/mount/mount.8	2010-04-12 17:32:22.000000000 +0200
@@ -439,6 +439,14 @@ This is necessary for example when
 .I /etc
 is on a read-only filesystem.
 .TP
+.B \-\-no\-canonicalize
+Don't canonicalize paths. The mount command canonicalizes all paths 
+(from command line or fstab) and stores canonicalized paths to the 
+.IR /etc/mtab
+file. This option can be used together with the
+.B \-f
+flag for already canonicalized absolut paths.
+.TP
 .BI \-p " num"
 In case of a loop mount with encryption, read the passphrase from
 file descriptor
diff -up util-linux-ng-2.16.2/mount/mount.c.kzak util-linux-ng-2.16.2/mount/mount.c
--- util-linux-ng-2.16.2/mount/mount.c.kzak	2010-04-12 17:40:39.000000000 +0200
+++ util-linux-ng-2.16.2/mount/mount.c	2010-04-12 17:34:34.000000000 +0200
@@ -1878,6 +1878,7 @@ static struct option longopts[] = {
 	{ "make-rslave", 0, 0, 141 },
 	{ "make-rprivate", 0, 0, 142 },
 	{ "make-runbindable", 0, 0, 143 },
+	{ "no-canonicalize", 0, 0, 144 },
 	{ "internal-only", 0, 0, 'i' },
 	{ NULL, 0, 0, 0 }
 };
@@ -2170,7 +2171,9 @@ main(int argc, char *argv[]) {
 		case 143:
 			mounttype = (MS_UNBINDABLE | MS_REC);
 			break;
-
+		case 144:
+			nocanonicalize = 1;
+			break;
 		case '?':
 		default:
 			usage (stderr, EX_USAGE);
@@ -2209,7 +2212,8 @@ main(int argc, char *argv[]) {
 
 	if (restricted &&
 	    (types || options || readwrite || nomtab || mount_all ||
-	     fake || mounttype || (argc + specseen) != 1)) {
+	     nocanonicalize || fake || mounttype || (argc + specseen) != 1)) {
+
 		die (EX_USAGE, _("mount: only root can do that"));
 	}
 
diff -up util-linux-ng-2.16.2/mount/sundries.c.kzak util-linux-ng-2.16.2/mount/sundries.c
--- util-linux-ng-2.16.2/mount/sundries.c.kzak	2009-11-30 15:42:33.000000000 +0100
+++ util-linux-ng-2.16.2/mount/sundries.c	2010-04-12 17:29:49.000000000 +0200
@@ -21,6 +21,7 @@
 
 int mount_quiet;
 int verbose;
+int nocanonicalize;
 char *progname;
 
 char *
@@ -270,9 +271,9 @@ canonicalize_spec (const char *path)
 {
 	char *res;
 
-	if (path == NULL)
+	if (!path)
 		return NULL;
-	if (is_pseudo_fs(path))
+	if (nocanonicalize || is_pseudo_fs(path))
 		return xstrdup(path);
 
 	res = canonicalize_path(path);
@@ -283,8 +284,14 @@ canonicalize_spec (const char *path)
 
 char *canonicalize (const char *path)
 {
-	char *res = canonicalize_path(path);
+	char *res;
 
+	if (!path)
+		return NULL;
+	else if (nocanonicalize)
+		return xstrdup(path);
+
+	res = canonicalize_path(path);
 	if (!res)
 		die(EX_SYSERR, _("not enough memory"));
 	return res;
diff -up util-linux-ng-2.16.2/mount/sundries.h.kzak util-linux-ng-2.16.2/mount/sundries.h
--- util-linux-ng-2.16.2/mount/sundries.h.kzak	2009-10-16 22:50:03.000000000 +0200
+++ util-linux-ng-2.16.2/mount/sundries.h	2010-04-12 17:29:49.000000000 +0200
@@ -16,6 +16,7 @@
 /* global mount, umount, and losetup variables */
 extern int mount_quiet;
 extern int verbose;
+extern int nocanonicalize;
 extern char *progname;
 
 #define streq(s, t)	(strcmp ((s), (t)) == 0)
diff -up util-linux-ng-2.16.2/mount/umount.8.kzak util-linux-ng-2.16.2/mount/umount.8
--- util-linux-ng-2.16.2/mount/umount.8.kzak	2009-10-16 22:50:03.000000000 +0200
+++ util-linux-ng-2.16.2/mount/umount.8	2010-04-12 17:34:44.000000000 +0200
@@ -119,6 +119,10 @@ Lazy unmount. Detach the filesystem from
 and cleanup all references to the filesystem as soon as it is not busy
 anymore.
 (Requires kernel 2.4.11 or later.)
+.IP "\fB\-\-no\-canonicalize\fP"
+Don't canonicalize paths. For more details about this option see the
+.B mount(8)
+man page.
 
 .SH "THE LOOP DEVICE"
 The
diff -up util-linux-ng-2.16.2/mount/umount.c.kzak util-linux-ng-2.16.2/mount/umount.c
--- util-linux-ng-2.16.2/mount/umount.c.kzak	2009-10-16 22:50:03.000000000 +0200
+++ util-linux-ng-2.16.2/mount/umount.c	2010-04-12 17:34:44.000000000 +0200
@@ -388,6 +388,8 @@ static struct option longopts[] =
   { "version", 0, 0, 'V' },
   { "read-only", 0, 0, 'r' },
   { "types", 1, 0, 't' },
+
+  { "no-canonicalize", 0, 0, 144 },
   { NULL, 0, 0, 0 }
 };
 
@@ -672,7 +674,10 @@ main (int argc, char *argv[]) {
 			types = optarg;
 			break;
 		case 'i':
-  			external_allowed = 0;
+			external_allowed = 0;
+			break;
+		case 144:
+			nocanonicalize = 1;
 			break;
 		case 0:
 			break;
@@ -691,7 +696,8 @@ main (int argc, char *argv[]) {
 		}
 	}
 
-	if (restricted && (all || types || nomtab || force || remount)) {
+	if (restricted &&
+	    (all || types || nomtab || force || remount || nocanonicalize)) {
 		die (2, _("umount: only root can do that"));
 	}
 


Index: util-linux-ng.spec
===================================================================
RCS file: /cvs/pkgs/rpms/util-linux-ng/F-12/util-linux-ng.spec,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -p -r1.72 -r1.73
--- util-linux-ng.spec	12 Apr 2010 13:53:52 -0000	1.72
+++ util-linux-ng.spec	12 Apr 2010 18:56:01 -0000	1.73
@@ -2,7 +2,7 @@
 Summary: A collection of basic system utilities
 Name: util-linux-ng
 Version: 2.16.2
-Release: 8%{?dist}
+Release: 9%{?dist}
 License: GPLv2 and GPLv2+ and BSD with advertising and Public Domain
 Group: System Environment/Base
 URL: ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng
@@ -118,7 +118,8 @@ Patch11: util-linux-ng-2.16-blkid-atarai
 Patch12: util-linux-ng-2.16-blkid-minix.patch
 # 494070 - Anaconda tries to mount zfs filesystem as EXT3 and install fails
 Patch13: util-linux-ng-2.16-blkid-zfs.patch
-
+# 577947 - need --no-canonicalize option for mount
+Patch14: util-linux-ng-2.16-mount-nocanonicalize.patch
 
 %description
 The util-linux-ng package contains a large variety of low-level system
@@ -218,6 +219,7 @@ cp %{SOURCE8} %{SOURCE9} .
 %patch11 -p1
 %patch12 -p1
 %patch13 -p1
+%patch14 -p1
 
 %build
 unset LINGUAS || :
@@ -728,6 +730,9 @@ fi
 
 
 %changelog
+* Mon Apr 12 2010 Karel Zak <kzak at redhat.com> 2.16.2-9
+- fix #577947 - need --no-canonicalize option for mount
+
 * Mon Apr 12 2010 Karel Zak <kzak at redhat.com> 2.16.2-8
 - fix #581252 - remounting tmpfs fails because of hidden rootcontext=
 



More information about the scm-commits mailing list