summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/util-linux/0001-libmount-FS-id-and-parent-ID-could-be-zero.patch98
-rw-r--r--core/util-linux/0001-switch_root-verify-initramfs-by-f_type-not-devno.patch59
-rw-r--r--core/util-linux/PKGBUILD26
-rw-r--r--core/util-linux/move_is_mountinfo.patch46
4 files changed, 6 insertions, 223 deletions
diff --git a/core/util-linux/0001-libmount-FS-id-and-parent-ID-could-be-zero.patch b/core/util-linux/0001-libmount-FS-id-and-parent-ID-could-be-zero.patch
deleted file mode 100644
index 01a8d441b..000000000
--- a/core/util-linux/0001-libmount-FS-id-and-parent-ID-could-be-zero.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 6c373810f5b1d32824371e9dff6ee5a006388f98 Mon Sep 17 00:00:00 2001
-From: Karel Zak <kzak@redhat.com>
-Date: Thu, 20 Feb 2014 16:59:11 +0100
-Subject: [PATCH] libmount: FS id and parent ID could be zero
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It seems that linux 3.14 is able to produce things like:
-
- 19 0 8:3 / / rw,relatime - ext4 /dev/sda3 rw,data=ordered
- ^
-
-Reported-by: Mantas Mikulėnas <grawity@gmail.com>
-Signed-off-by: Karel Zak <kzak@redhat.com>
----
- libmount/src/tab.c | 12 ++++--------
- misc-utils/findmnt.c | 5 +++--
- 2 files changed, 7 insertions(+), 10 deletions(-)
-
-diff --git a/libmount/src/tab.c b/libmount/src/tab.c
-index 4c2f8a4..332312b 100644
---- a/libmount/src/tab.c
-+++ b/libmount/src/tab.c
-@@ -505,7 +505,7 @@ int mnt_table_get_root_fs(struct libmnt_table *tb, struct libmnt_fs **root)
- assert(tb);
- assert(root);
-
-- if (!tb || !root)
-+ if (!tb || !root || !is_mountinfo(tb))
- return -EINVAL;
-
- DBG(TAB, mnt_debug_h(tb, "lookup root fs"));
-@@ -515,8 +515,6 @@ int mnt_table_get_root_fs(struct libmnt_table *tb, struct libmnt_fs **root)
- mnt_reset_iter(&itr, MNT_ITER_FORWARD);
- while(mnt_table_next_fs(tb, &itr, &fs) == 0) {
- int id = mnt_fs_get_parent_id(fs);
-- if (!id)
-- break; /* @tab is not a mountinfo file? */
-
- if (!*root || id < root_id) {
- *root = fs;
-@@ -524,7 +522,7 @@ int mnt_table_get_root_fs(struct libmnt_table *tb, struct libmnt_fs **root)
- }
- }
-
-- return root_id ? 0 : -EINVAL;
-+ return *root ? 0 : -EINVAL;
- }
-
- /**
-@@ -545,15 +543,13 @@ int mnt_table_next_child_fs(struct libmnt_table *tb, struct libmnt_iter *itr,
- struct libmnt_fs *fs;
- int parent_id, lastchld_id = 0, chld_id = 0;
-
-- if (!tb || !itr || !parent)
-+ if (!tb || !itr || !parent || !is_mountinfo(tb))
- return -EINVAL;
-
- DBG(TAB, mnt_debug_h(tb, "lookup next child of '%s'",
- mnt_fs_get_target(parent)));
-
- parent_id = mnt_fs_get_id(parent);
-- if (!parent_id)
-- return -EINVAL;
-
- /* get ID of the previously returned child */
- if (itr->head && itr->p != itr->head) {
-@@ -584,7 +580,7 @@ int mnt_table_next_child_fs(struct libmnt_table *tb, struct libmnt_iter *itr,
- }
- }
-
-- if (!chld_id)
-+ if (!*chld)
- return 1; /* end of iterator */
-
- /* set the iterator to the @chld for the next call */
-diff --git a/misc-utils/findmnt.c b/misc-utils/findmnt.c
-index fb21174..988cd73 100644
---- a/misc-utils/findmnt.c
-+++ b/misc-utils/findmnt.c
-@@ -822,8 +822,9 @@ static int tab_is_tree(struct libmnt_table *tb)
- if (!itr)
- return 0;
-
-- if (mnt_table_next_fs(tb, itr, &fs) == 0)
-- rc = mnt_fs_get_id(fs) > 0 && mnt_fs_get_parent_id(fs) > 0;
-+ rc = (mnt_table_next_fs(tb, itr, &fs) == 0 &&
-+ mnt_fs_is_kernel(fs) &&
-+ mnt_fs_get_root(fs));
-
- mnt_free_iter(itr);
- return rc;
---
-1.9.1
-
diff --git a/core/util-linux/0001-switch_root-verify-initramfs-by-f_type-not-devno.patch b/core/util-linux/0001-switch_root-verify-initramfs-by-f_type-not-devno.patch
deleted file mode 100644
index 56191a30e..000000000
--- a/core/util-linux/0001-switch_root-verify-initramfs-by-f_type-not-devno.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 751c39383adaf5ff5a860516238d524b0e20f835 Mon Sep 17 00:00:00 2001
-From: Dave Reisner <dreisner@archlinux.org>
-Date: Wed, 2 Apr 2014 10:41:30 -0400
-Subject: [PATCH] switch_root: verify initramfs by f_type, not devno
-
-As of linux 3.14, the initramfs device will have both major and
-minor 0, causing our paranoia check to fail. Make this version agnostic
-by checking the filesystem type, rather than a device number.
-
-[adopted from master for backport into 2.24.x branch]
-
-Signed-off-by: Dave Reisner <dreisner@archlinux.org>
----
- sys-utils/switch_root.c | 15 +++++++++------
- 1 file changed, 9 insertions(+), 6 deletions(-)
-
-diff --git a/sys-utils/switch_root.c b/sys-utils/switch_root.c
-index f26f7da..40e222d 100644
---- a/sys-utils/switch_root.c
-+++ b/sys-utils/switch_root.c
-@@ -23,6 +23,7 @@
- #include <sys/mount.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-+#include <sys/statfs.h>
- #include <sys/param.h>
- #include <fcntl.h>
- #include <stdio.h>
-@@ -33,6 +34,8 @@
- #include <ctype.h>
- #include <dirent.h>
-
-+#include <linux/magic.h>
-+
- #include "c.h"
- #include "nls.h"
- #include "closestream.h"
-@@ -174,12 +177,12 @@ static int switchroot(const char *newroot)
- if (cfd >= 0) {
- pid = fork();
- if (pid <= 0) {
-- if (fstat(cfd, &sb) == 0) {
-- if (sb.st_dev == makedev(0, 1))
-- recursiveRemove(cfd);
-- else
-- warn(_("old root filesystem is not an initramfs"));
-- }
-+ struct statfs stfs;
-+ if (fstatfs(cfd, &stfs) == 0 &&
-+ (stfs.f_type == RAMFS_MAGIC || stfs.f_type == TMPFS_MAGIC))
-+ recursiveRemove(cfd);
-+ else
-+ warn(_("old root filesystem is not an initramfs"));
-
- if (pid == 0)
- exit(EXIT_SUCCESS);
---
-1.9.1
-
diff --git a/core/util-linux/PKGBUILD b/core/util-linux/PKGBUILD
index 64d725582..3b641f13e 100644
--- a/core/util-linux/PKGBUILD
+++ b/core/util-linux/PKGBUILD
@@ -1,12 +1,12 @@
-# $Id: PKGBUILD 210105 2014-04-09 22:22:03Z thomas $
+# $Id: PKGBUILD 213600 2014-05-26 15:24:06Z dreisner $
# Maintainer: Tom Gundersen <teg@jklm.no>
# Maintainer: Dave Reisner <dreisner@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgbase=util-linux
pkgname=(util-linux libutil-linux)
-pkgver=2.24.1
-pkgrel=6
+pkgver=2.24.2
+pkgrel=1
pkgdesc="Miscellaneous system utilities for Linux"
url="http://www.kernel.org/pub/linux/utils/util-linux/"
arch=('i686' 'x86_64')
@@ -19,26 +19,12 @@ source=("ftp://ftp.kernel.org/pub/linux/utils/$pkgname/v2.24/$pkgname-$pkgver.ta
uuidd.tmpfiles
pam-login
pam-common
- pam-su
- move_is_mountinfo.patch
- 0001-switch_root-verify-initramfs-by-f_type-not-devno.patch
- 0001-libmount-FS-id-and-parent-ID-could-be-zero.patch)
-md5sums=('88d46ae23ca599ac5af9cf96b531590f'
+ pam-su)
+md5sums=('3f191727a0d28f7204b755cf1b6ea0aa'
'a39554bfd65cccfd8254bb46922f4a67'
'4368b3f98abd8a32662e094c54e7f9b1'
'a31374fef2cba0ca34dfc7078e2969e4'
- 'fa85e5cce5d723275b14365ba71a8aad'
- '4cdc5f9a6e51b032274761a82937d438'
- 'b7ca79a0d5318b7cd813bb2573a3f9a9'
- '2f4bc305bd11d6bfaa81e6c1eb0c6f1b')
-
-prepare() {
- cd "$pkgname-$pkgver"
-
- patch -p1 -i "${srcdir}/move_is_mountinfo.patch"
- patch -p1 -i "${srcdir}/0001-libmount-FS-id-and-parent-ID-could-be-zero.patch"
- patch -p1 -i "${srcdir}/0001-switch_root-verify-initramfs-by-f_type-not-devno.patch"
-}
+ 'fa85e5cce5d723275b14365ba71a8aad')
build() {
cd "$pkgname-$pkgver"
diff --git a/core/util-linux/move_is_mountinfo.patch b/core/util-linux/move_is_mountinfo.patch
deleted file mode 100644
index ad9387efc..000000000
--- a/core/util-linux/move_is_mountinfo.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/libmount/src/tab.c b/libmount/src/tab.c
-index 3633b6a..8ae49c8 100644
---- a/libmount/src/tab.c
-+++ b/libmount/src/tab.c
-@@ -47,6 +47,20 @@
- #include "strutils.h"
- #include "loopdev.h"
-
-+static int is_mountinfo(struct libmnt_table *tb)
-+{
-+ struct libmnt_fs *fs;
-+
-+ if (!tb)
-+ return 0;
-+
-+ fs = list_first_entry(&tb->ents, struct libmnt_fs, ents);
-+ if (fs && mnt_fs_is_kernel(fs) && mnt_fs_get_root(fs))
-+ return 1;
-+
-+ return 0;
-+}
-+
- /**
- * mnt_new_table:
- *
-@@ -1229,20 +1335,6 @@ err:
- return NULL;
- }
-
--static int is_mountinfo(struct libmnt_table *tb)
--{
-- struct libmnt_fs *fs;
--
-- if (!tb)
-- return 0;
--
-- fs = list_first_entry(&tb->ents, struct libmnt_fs, ents);
-- if (fs && mnt_fs_is_kernel(fs) && mnt_fs_get_root(fs))
-- return 1;
--
-- return 0;
--}
--
- /**
- * mnt_table_is_fs__mounted:
- * @tb: /proc/self/mountinfo file