[arch-commits] Commit in util-linux/trunk (4 files)
Tom Gundersen
tomegun at archlinux.org
Sun Mar 4 21:47:12 UTC 2012
Date: Sunday, March 4, 2012 @ 16:47:12
Author: tomegun
Revision: 152118
add some patches
Added:
util-linux/trunk/libmount-cosmetic-changes-around-none.patch
util-linux/trunk/libmount-don-t-treat-none-differently.patch
util-linux/trunk/mount-new-add-internal-only-i-to-non-root-allowed-op.patch
Modified:
util-linux/trunk/PKGBUILD
------------------------------------------------------------+
PKGBUILD | 17 -
libmount-cosmetic-changes-around-none.patch | 57 +++++
libmount-don-t-treat-none-differently.patch | 107 +++++++++++
mount-new-add-internal-only-i-to-non-root-allowed-op.patch | 32 +++
4 files changed, 204 insertions(+), 9 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2012-03-04 15:08:47 UTC (rev 152117)
+++ PKGBUILD 2012-03-04 21:47:12 UTC (rev 152118)
@@ -4,7 +4,7 @@
pkgname=util-linux
pkgver=2.21
-pkgrel=4
+pkgrel=5
pkgdesc="Miscellaneous system utilities for Linux"
url="http://www.kernel.org/pub/linux/utils/util-linux/"
arch=('i686' 'x86_64')
@@ -20,7 +20,10 @@
libmount-canonicalize-targets-from-fstab-on-mount-a.patch
mount-new-cleanup-mount-a-return-codes.patch
libmount-use-mount.-type-s-for-NFS-only.patch
- libmount-allow-empty-source-for-mount-2-syscall.patch)
+ libmount-allow-empty-source-for-mount-2-syscall.patch
+ mount-new-add-internal-only-i-to-non-root-allowed-op.patch
+ libmount-don-t-treat-none-differently.patch
+ libmount-cosmetic-changes-around-none.patch)
optdepends=('perl: for chkdupexe support')
build() {
@@ -35,6 +38,9 @@
patch -p1 -i ../mount-new-cleanup-mount-a-return-codes.patch
patch -p1 -i ../libmount-use-mount.-type-s-for-NFS-only.patch
patch -p1 -i ../libmount-allow-empty-source-for-mount-2-syscall.patch
+ patch -p1 -i ../mount-new-add-internal-only-i-to-non-root-allowed-op.patch
+ patch -p1 -i ../libmount-don-t-treat-none-differently.patch
+ patch -p1 -i ../libmount-cosmetic-changes-around-none.patch
./configure --prefix=/usr \
--libdir=/usr/lib \
@@ -58,10 +64,3 @@
# delete stray empty dir, fixed upstream
rm -r usr/share/man/ru
}
-md5sums=('208aa058f4117759d2939d1be7d662fc'
- 'c4011222a19b020d9b8465c3c7e443f6'
- '8c1bf7b10e22e2b835441e6ae2d804d6'
- '7b92423c588ed35229a9a166349c29a9'
- 'c483ab2d52609b5857d096b256a5075c'
- 'e31037773db7f3244b71db434f60e6f0'
- '2de5ae7916e79970e90bf06542e43d86')
Added: libmount-cosmetic-changes-around-none.patch
===================================================================
--- libmount-cosmetic-changes-around-none.patch (rev 0)
+++ libmount-cosmetic-changes-around-none.patch 2012-03-04 21:47:12 UTC (rev 152118)
@@ -0,0 +1,57 @@
+From 41d6af28c3475987a085dc085c2348e22dc7fbdd Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak at redhat.com>
+Date: Fri, 2 Mar 2012 11:23:34 +0100
+Subject: [PATCH] libmount: cosmetic changes around "none"
+
+Signed-off-by: Karel Zak <kzak at redhat.com>
+---
+ libmount/src/context.c | 6 +++++-
+ libmount/src/context_mount.c | 7 +++++--
+ 2 files changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/libmount/src/context.c b/libmount/src/context.c
+index 1f30292..f97dd36 100644
+--- a/libmount/src/context.c
++++ b/libmount/src/context.c
+@@ -1165,6 +1165,10 @@ int mnt_context_prepare_srcpath(struct libmnt_context *cxt)
+
+ src = mnt_fs_get_source(cxt->fs);
+
++ if (!src && (cxt->mountflags & MS_PROPAGATION))
++ /* mount --make-{shared,private,...} */
++ return mnt_fs_set_source(cxt->fs, "none");
++
+ /* ignore filesystems without source or filesystems
+ * where the source is quasi-path (//foo/bar)
+ */
+@@ -1203,7 +1207,7 @@ int mnt_context_prepare_srcpath(struct libmnt_context *cxt)
+
+ if ((cxt->mountflags & (MS_BIND | MS_MOVE | MS_PROPAGATION)) ||
+ mnt_fs_is_pseudofs(cxt->fs)) {
+- DBG(CXT, mnt_debug_h(cxt, "PROPAGATION/pseudo FS source: %s", path));
++ DBG(CXT, mnt_debug_h(cxt, "BIND/MOVE/pseudo FS source: %s", path));
+ return rc;
+ }
+
+diff --git a/libmount/src/context_mount.c b/libmount/src/context_mount.c
+index 098243b..c56ffd4 100644
+--- a/libmount/src/context_mount.c
++++ b/libmount/src/context_mount.c
+@@ -453,9 +453,12 @@ static int do_mount(struct libmnt_context *cxt, const char *try_type)
+
+ if (!target)
+ return -EINVAL;
+- if (!src)
++ if (!src) {
++ /* unnecessary, should be already resolved in
++ * mnt_context_prepare_srcpath(), but for sure... */
++ DBG(CXT, mnt_debug_h(cxt, "WARNING: source is NULL -- using \"none\"!"));
+ src = "none";
+-
++ }
+ type = try_type ? : mnt_fs_get_fstype(cxt->fs);
+
+ if (!(flags & MS_MGC_MSK))
+--
+1.7.9.2
+
Added: libmount-don-t-treat-none-differently.patch
===================================================================
--- libmount-don-t-treat-none-differently.patch (rev 0)
+++ libmount-don-t-treat-none-differently.patch 2012-03-04 21:47:12 UTC (rev 152118)
@@ -0,0 +1,107 @@
+From d0ce7c07e66f4e458d290083fdcf62218d151883 Mon Sep 17 00:00:00 2001
+From: Dave Reisner <d at falconindy.com>
+Date: Thu, 1 Mar 2012 22:47:00 -0500
+Subject: [PATCH] libmount: don't treat "none" differently
+
+This causes more problems than it solves. In the latest edition:
+
+ # mount -t proc none foo
+ mount: foo: mount failed: Invalid argument
+
+A check for source and target fails in mnt_context_apply_fstab()
+because, even though they were indeed specified on the cmdline,
+__mnt_fs_set_source_ptr() altered this and NULL'd out the source.
+
+If you're able to mount this device via other means, other tools start
+reporting oddities, such as mount's output:
+
+ (null) on /foo type proc (rw,relatime)
+
+or findmnt:
+
+ TARGET SOURCE FSTYPE OPTIONS
+ /foo proc rw,relatime
+
+Simply treat "none" like any other source when passed in.
+
+[kzak at redhat.com: - don't translate NULL to "none" in mnt_fs_set_source()]
+
+Signed-off-by: Dave Reisner <dreisner at archlinux.org>
+Signed-off-by: Karel Zak <kzak at redhat.com>
+---
+ libmount/src/fs.c | 7 ++-----
+ libmount/src/tab.c | 7 +++----
+ libmount/src/tab_parse.c | 7 +------
+ 3 files changed, 6 insertions(+), 15 deletions(-)
+
+diff --git a/libmount/src/fs.c b/libmount/src/fs.c
+index a28e66c..5e4139c 100644
+--- a/libmount/src/fs.c
++++ b/libmount/src/fs.c
+@@ -304,11 +304,7 @@ int __mnt_fs_set_source_ptr(struct libmnt_fs *fs, char *source)
+
+ assert(fs);
+
+- if (source && !strcmp(source, "none")) {
+- free(source);
+- source = NULL;
+-
+- } else if (source && strchr(source, '=')) {
++ if (source && strchr(source, '=')) {
+ if (blkid_parse_tag_string(source, &t, &v) != 0)
+ return -1;
+ }
+@@ -341,6 +337,7 @@ int mnt_fs_set_source(struct libmnt_fs *fs, const char *source)
+
+ if (!fs)
+ return -EINVAL;
++
+ if (source) {
+ p = strdup(source);
+ if (!p)
+diff --git a/libmount/src/tab.c b/libmount/src/tab.c
+index 21b05c7..7dd9654 100644
+--- a/libmount/src/tab.c
++++ b/libmount/src/tab.c
+@@ -480,9 +480,8 @@ struct libmnt_fs *mnt_table_find_target(struct libmnt_table *tb, const char *pat
+ * The 2nd, 3rd and 4th iterations are not performed when @tb cache is not
+ * set (see mnt_table_set_cache()).
+ *
+- * Note that valid source path is NULL; the libmount uses NULL instead of
+- * "none". The "none" is used in /proc/{mounts,self/mountninfo} for pseudo
+- * filesystems.
++ * Note that NULL is a valid source path; it will be replaced with "none". The
++ * "none" is used in /proc/{mounts,self/mountinfo} for pseudo filesystems.
+ *
+ * Returns: a tab entry or NULL.
+ */
+@@ -505,7 +504,7 @@ struct libmnt_fs *mnt_table_find_srcpath(struct libmnt_table *tb, const char *pa
+
+ p = mnt_fs_get_srcpath(fs);
+
+- if (path == NULL && src == NULL)
++ if (path == NULL && (src == NULL || !strcmp(src, "none")))
+ return fs; /* source is "none" */
+ if (path && p && streq_except_trailing_slash(p, path))
+ return fs;
+diff --git a/libmount/src/tab_parse.c b/libmount/src/tab_parse.c
+index 0f618bb..5bc55ae 100644
+--- a/libmount/src/tab_parse.c
++++ b/libmount/src/tab_parse.c
+@@ -180,12 +180,7 @@ static int mnt_parse_mountinfo_line(struct libmnt_fs *fs, char *s)
+ unmangle_string(fs->vfs_optstr);
+ unmangle_string(fstype);
+ unmangle_string(src);
+-
+- if (!strcmp(fs->fs_optstr, "none")) {
+- free(fs->fs_optstr);
+- fs->fs_optstr = NULL;
+- } else
+- unmangle_string(fs->fs_optstr);
++ unmangle_string(fs->fs_optstr);
+
+ rc = __mnt_fs_set_fstype_ptr(fs, fstype);
+ if (!rc) {
+--
+1.7.9.2
+
Added: mount-new-add-internal-only-i-to-non-root-allowed-op.patch
===================================================================
--- mount-new-add-internal-only-i-to-non-root-allowed-op.patch (rev 0)
+++ mount-new-add-internal-only-i-to-non-root-allowed-op.patch 2012-03-04 21:47:12 UTC (rev 152118)
@@ -0,0 +1,32 @@
+From 50d0ad9875af9e478cd2577ac42041b16170a691 Mon Sep 17 00:00:00 2001
+From: Raghavendra D Prabhu <rprabhu at wnohang.net>
+Date: Sun, 26 Feb 2012 16:36:42 +0530
+Subject: [PATCH] mount: (new) add 'internal-only(i)' to non-root allowed
+ options
+
+Commit ce433404 introduced the change, which causes something like mount -i
+<user-mount-path> to break which worked well before util-linux-2.21, now it
+gives message 'mount: only root can use "--internal-only" option' when that
+shouldn't be the case when it is already in fstab.
+
+Signed-off-by: Raghavendra D Prabhu <rprabhu at wnohang.net>
+---
+ sys-utils/mount.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sys-utils/mount.c b/sys-utils/mount.c
+index 23abc91..8f5dcdb 100644
+--- a/sys-utils/mount.c
++++ b/sys-utils/mount.c
+@@ -712,7 +712,7 @@ int main(int argc, char **argv)
+ longopts, NULL)) != -1) {
+
+ /* only few options are allowed for non-root users */
+- if (mnt_context_is_restricted(cxt) && !strchr("hlLUVvpr", c))
++ if (mnt_context_is_restricted(cxt) && !strchr("hlLUVvpri", c))
+ exit_non_root(option_to_longopt(c, longopts));
+
+ switch(c) {
+--
+1.7.9.2
+
More information about the arch-commits
mailing list