Revert "util-linux: update to latest Gentoo version"

This reverts commit edf380c4e17af3a927af2b11003b892b2f9294cd

This broke the commit queue. See http://chromegw.corp.google.com/i/chromiumos/builders/x86%20generic%20paladin/builds/2519

BUG=chromium-os:26483
TEST=none

Change-Id: I616f63c0f96208db5e591a5a8542800b90f8b0a9
Reviewed-on: https://gerrit.chromium.org/gerrit/19493
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: David James <davidjames@chromium.org>
This commit is contained in:
David James 2012-04-02 17:17:47 -07:00
parent 5462804c3d
commit f5d5c36f9e
6 changed files with 216 additions and 35 deletions

View File

@ -0,0 +1,13 @@
DEFINED_PHASES=configure install prepare
DEPEND=!sys-process/schedutils !sys-apps/setarch !<sys-libs/e2fsprogs-libs-1.41.8 !<sys-fs/e2fsprogs-1.41.8 cramfs? ( sys-libs/zlib ) ncurses? ( >=sys-libs/ncurses-5.2-r2 ) perl? ( dev-lang/perl ) selinux? ( sys-libs/libselinux ) slang? ( sys-libs/slang ) nls? ( sys-devel/gettext ) virtual/os-headers
DESCRIPTION=Various useful Linux utilities
EAPI=3
HOMEPAGE=http://www.kernel.org/pub/linux/utils/util-linux/
IUSE=+cramfs crypt loop-aes ncurses nls old-linux perl selinux slang uclibc unicode
KEYWORDS=alpha amd64 arm hppa ia64 m68k ~mips ppc ~ppc64 s390 sh sparc x86 ~x86-linux
LICENSE=GPL-2
RDEPEND=!sys-process/schedutils !sys-apps/setarch !<sys-libs/e2fsprogs-libs-1.41.8 !<sys-fs/e2fsprogs-1.41.8 cramfs? ( sys-libs/zlib ) ncurses? ( >=sys-libs/ncurses-5.2-r2 ) perl? ( dev-lang/perl ) selinux? ( sys-libs/libselinux ) slang? ( sys-libs/slang )
SLOT=0
SRC_URI=mirror://kernel/linux/utils/util-linux/v2.19/util-linux-2.19.1.tar.bz2 loop-aes? ( http://loop-aes.sourceforge.net/updates/util-linux-2.19.1-20110510.diff.bz2 )
_eclasses_=eutils 33ef77a15337022e05342d2c772a7a5a flag-o-matic 01a8b1eb019305bc4b4a8bd0b04e4cd8 libtool 0fd90d183673bf1107465ec45849d1ea multilib 5f4ad6cf85e365e8f0c6050ddd21659e portability 0be430f759a631e692678ed796e09f5c toolchain-funcs 6526ac6fc9aedf391efb91fcd75ace68 user 9e552f935106ff0bc92af16da64b4b29
_md5_=9c0d5faa1cf1f1a62d22b51e608dc46d

View File

@ -1,13 +0,0 @@
DEFINED_PHASES=configure install postinst prepare
DEPEND=!sys-process/schedutils !sys-apps/setarch !<sys-apps/sysvinit-2.88-r3 !<sys-libs/e2fsprogs-libs-1.41.8 !<sys-fs/e2fsprogs-1.41.8 cramfs? ( sys-libs/zlib ) ncurses? ( >=sys-libs/ncurses-5.2-r2 ) perl? ( dev-lang/perl ) selinux? ( sys-libs/libselinux ) slang? ( sys-libs/slang ) nls? ( sys-devel/gettext ) virtual/os-headers
DESCRIPTION=Various useful Linux utilities
EAPI=3
HOMEPAGE=http://www.kernel.org/pub/linux/utils/util-linux/
IUSE=+cramfs crypt ddate loop-aes ncurses nls old-linux perl selinux slang static-libs uclibc unicode
KEYWORDS=~alpha amd64 arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~x86-linux
LICENSE=GPL-2 GPL-3 LGPL-2.1 BSD-4 MIT public-domain
RDEPEND=!sys-process/schedutils !sys-apps/setarch !<sys-apps/sysvinit-2.88-r3 !<sys-libs/e2fsprogs-libs-1.41.8 !<sys-fs/e2fsprogs-1.41.8 cramfs? ( sys-libs/zlib ) ncurses? ( >=sys-libs/ncurses-5.2-r2 ) perl? ( dev-lang/perl ) selinux? ( sys-libs/libselinux ) slang? ( sys-libs/slang )
SLOT=0
SRC_URI=mirror://kernel/linux/utils/util-linux/v2.21/util-linux-2.21.tar.xz loop-aes? ( http://loop-aes.sourceforge.net/updates/util-linux-2.20-20110905.diff.bz2 )
_eclasses_=eutils 33ef77a15337022e05342d2c772a7a5a flag-o-matic 01a8b1eb019305bc4b4a8bd0b04e4cd8 libtool 0fd90d183673bf1107465ec45849d1ea multilib 5f4ad6cf85e365e8f0c6050ddd21659e portability 0be430f759a631e692678ed796e09f5c toolchain-funcs 6526ac6fc9aedf391efb91fcd75ace68 user 9e552f935106ff0bc92af16da64b4b29
_md5_=b6d81b0a2a3938f75ee47424a9da8609

View File

@ -1 +1,2 @@
DIST util-linux-2.21.1.tar.xz 2975120 RMD160 877752a63a0eae362d439b04db06a7be726469ae SHA1 49e130a456516e15c6bb0238f370f2125ad1cfe2 SHA256 6ffaffb46bfb1aa403f83f0c8d2700e5ec35ffcb35a0573adb10404ed16c9004
DIST util-linux-2.19.1-20110510.diff.bz2 47865 RMD160 0983ac7a48031e4b3e0ddce213887526cfa17bc0 SHA1 e73c7bca691b5d83c1b2725d53a5b669fb268495 SHA256 e04f541ca48951284331e71cbf142d777750dbc9baa051ed9e9913c7dab32b7f
DIST util-linux-2.19.1.tar.bz2 4396543 RMD160 e4763d21a3a32029ccc525a0222e271f0946a4fd SHA1 96af5d4a37c42296dae5365ba533316216a6b347 SHA256 d3eac4afcc687b3ae1ffedcab2dc12df84c7ba7045cce31386d2b7040a011c7d

View File

@ -0,0 +1,86 @@
https://bugs.gentoo.org/366213
From f53edda83ebcfd7015c3f35196d6cbd7bc2d8369 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Wed, 11 May 2011 16:57:27 +0200
Subject: [PATCH] mount: -a segfaults when 4th field is omitted (mount
options)
# echo 'tmpd /tmp/x tmpfs' >> /etc/fstab
# mkdir /tmp/x
# mount -a
segfault
Reported-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Karel Zak <kzak@redhat.com>
---
mount/mount.c | 8 +++++---
mount/mount_mntent.c | 5 +++--
mount/sundries.c | 2 ++
3 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/mount/mount.c b/mount/mount.c
index ba71149..29963c2 100644
--- a/mount/mount.c
+++ b/mount/mount.c
@@ -1163,7 +1163,9 @@ is_mounted_same_loopfile(const char *node0, const char *loopfile, unsigned long
res = loopfile_used_with((char *) mnt->m.mnt_fsname,
loopfile, offset);
- else if ((p = strstr(mnt->m.mnt_opts, "loop="))) {
+ else if (mnt->m.mnt_opts &&
+ (p = strstr(mnt->m.mnt_opts, "loop=")))
+ {
char *dev = xstrdup(p+5);
if ((p = strchr(dev, ',')))
*p = '\0';
@@ -2052,8 +2054,8 @@ is_fstab_entry_mounted(struct mntentchn *mc, int verbose)
goto yes;
/* extra care for loop devices */
- if ((strstr(mc->m.mnt_opts, "loop=") ||
- (stat(mc->m.mnt_fsname, &st) == 0 && S_ISREG(st.st_mode)))) {
+ if ((mc->m.mnt_opts && strstr(mc->m.mnt_opts, "loop=")) ||
+ (stat(mc->m.mnt_fsname, &st) == 0 && S_ISREG(st.st_mode))) {
char *p = get_option_value(mc->m.mnt_opts, "offset=");
uintmax_t offset = 0;
diff --git a/mount/mount_mntent.c b/mount/mount_mntent.c
index d90def3..f42c0ad 100644
--- a/mount/mount_mntent.c
+++ b/mount/mount_mntent.c
@@ -70,7 +70,7 @@ my_addmntent (mntFILE *mfp, struct my_mntent *mnt) {
m1 = mangle(mnt->mnt_fsname);
m2 = mangle(mnt->mnt_dir);
m3 = mangle(mnt->mnt_type);
- m4 = mangle(mnt->mnt_opts);
+ m4 = mnt->mnt_opts ? mangle(mnt->mnt_opts) : "rw";
res = fprintf (mfp->mntent_fp, "%s %s %s %s %d %d\n",
m1, m2, m3, m4, mnt->mnt_freq, mnt->mnt_passno);
@@ -78,7 +78,8 @@ my_addmntent (mntFILE *mfp, struct my_mntent *mnt) {
free(m1);
free(m2);
free(m3);
- free(m4);
+ if (mnt->mnt_opts)
+ free(m4);
return (res < 0) ? 1 : 0;
}
diff --git a/mount/sundries.c b/mount/sundries.c
index ae4501a..2dec37f 100644
--- a/mount/sundries.c
+++ b/mount/sundries.c
@@ -217,6 +217,8 @@ matching_opts (const char *options, const char *test_opts) {
if (test_opts == NULL)
return 1;
+ if (options == NULL)
+ options = "";
len = strlen(test_opts);
q = alloca(len+1);
--
1.7.6

View File

@ -0,0 +1,92 @@
https://bugs.gentoo.org/370051
From b3b0c657818aa6191e6494f88d671601dd9d837d Mon Sep 17 00:00:00 2001
From: Petr Uzel <petr.uzel@suse.cz>
Date: Wed, 29 Jun 2011 10:24:09 +0200
Subject: [PATCH] umount: do not hang with disconnected NFS mounts
Since util-linux commit f4612577c942a3683b97632ad0b49671897c2070,
umount stat(2)s its argument to check whether it can be associated
with some loop device. This could hang with broken NFS mounts.
Fix by first checking mtab if umount's argument is mounted and only if
we fail, check if there is a loop device associated.
http://marc.info/?l=util-linux-ng&m=130924963804836&w=2
Reported-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
Signed-off-by: Petr Uzel <petr.uzel@suse.cz>
---
mount/umount.c | 42 ++++++++++++++++++++++--------------------
1 files changed, 22 insertions(+), 20 deletions(-)
diff --git a/mount/umount.c b/mount/umount.c
index 0349cb3..96c940e 100644
--- a/mount/umount.c
+++ b/mount/umount.c
@@ -600,6 +600,7 @@ umount_file (char *arg) {
int fstab_has_user, fstab_has_users, fstab_has_owner, fstab_has_group;
int ok, status = 0;
struct stat statbuf;
+ char *loopdev = NULL;
if (!*arg) { /* "" would be expanded to `pwd` */
die(2, _("Cannot unmount \"\"\n"));
@@ -608,26 +609,7 @@ umount_file (char *arg) {
file = canonicalize(arg); /* mtab paths are canonicalized */
- /* if file is a regular file, check if it is associated
- * with some loop device
- */
- if (!stat(file, &statbuf) && S_ISREG(statbuf.st_mode)) {
- char *loopdev = NULL;
- switch (find_loopdev_by_backing_file(file, &loopdev)) {
- case 0:
- if (verbose)
- printf(_("%s is associated with %s, trying to unmount it\n"),
- arg, loopdev);
- file = loopdev;
- break;
- case 2:
- if (verbose)
- printf(_("%s is associated with more than one loop device: not unmounting\n"),
- arg);
- break;
- }
- }
-
+try_loopdev:
if (verbose > 1)
printf(_("Trying to unmount %s\n"), file);
@@ -659,6 +641,26 @@ umount_file (char *arg) {
if (!mc && verbose)
printf(_("Could not find %s in mtab\n"), file);
+ /* not found in mtab - check if it is associated with some loop device
+ * (only if it is a regular file)
+ */
+ if (!mc && !loopdev && !stat(file, &statbuf) && S_ISREG(statbuf.st_mode)) {
+ switch (find_loopdev_by_backing_file(file, &loopdev)) {
+ case 0:
+ if (verbose)
+ printf(_("%s is associated with %s\n"),
+ arg, loopdev);
+ file = loopdev;
+ goto try_loopdev;
+ break;
+ case 2:
+ if (verbose)
+ printf(_("%s is associated with more than one loop device: not unmounting\n"),
+ arg);
+ break;
+ }
+ }
+
if (restricted) {
char *mtab_user = NULL;
--
1.7.6

View File

@ -1,12 +1,12 @@
# Copyright 1999-2012 Gentoo Foundation
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-apps/util-linux/util-linux-2.21.1.ebuild,v 1.3 2012/03/30 20:31:38 vapier Exp $
# $Header: /var/cvsroot/gentoo-x86/sys-apps/util-linux/util-linux-2.19.1-r1.ebuild,v 1.10 2011/11/17 18:48:41 phajdan.jr Exp $
EAPI="3"
EGIT_REPO_URI="git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git"
inherit eutils toolchain-funcs libtool flag-o-matic
[[ ${PV} == "9999" ]] && inherit git-2 autotools
[[ ${PV} == "9999" ]] && inherit git autotools
MY_PV=${PV/_/-}
MY_P=${PN}-${MY_PV}
@ -18,18 +18,17 @@ if [[ ${PV} == "9999" ]] ; then
SRC_URI=""
#KEYWORDS=""
else
SRC_URI="mirror://kernel/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz
loop-aes? ( http://loop-aes.sourceforge.net/updates/util-linux-2.20-20110905.diff.bz2 )"
KEYWORDS="alpha amd64 arm hppa ia64 m68k mips ppc ppc64 s390 sh sparc x86 ~x86-linux"
SRC_URI="mirror://kernel/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.bz2
loop-aes? ( http://loop-aes.sourceforge.net/updates/util-linux-2.19.1-20110510.diff.bz2 )"
KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ~ppc64 s390 sh sparc x86 ~x86-linux"
fi
LICENSE="GPL-2 GPL-3 LGPL-2.1 BSD-4 MIT public-domain"
LICENSE="GPL-2"
SLOT="0"
IUSE="+cramfs crypt ddate loop-aes ncurses nls old-linux perl selinux slang static-libs uclibc unicode"
IUSE="+cramfs crypt loop-aes ncurses nls old-linux perl selinux slang uclibc unicode"
RDEPEND="!sys-process/schedutils
!sys-apps/setarch
!<sys-apps/sysvinit-2.88-r3
!<sys-libs/e2fsprogs-libs-1.41.8
!<sys-fs/e2fsprogs-1.41.8
cramfs? ( sys-libs/zlib )
@ -43,12 +42,19 @@ DEPEND="${RDEPEND}
src_prepare() {
if [[ ${PV} == "9999" ]] ; then
po/update-potfiles
autopoint --force
eautoreconf
else
use loop-aes && epatch "${WORKDIR}"/util-linux-*.diff
fi
epatch "${FILESDIR}"/${P}-mount-a-segv.patch #366213
if ! use loop-aes ; then
epatch "${FILESDIR}"/${P}-umount-l-nfs.patch #370051
else
ewarn "loop-aes is incompatible with current solution of #370051 bug!"
ewarn "Therefore you're vulnerable to that bug now!"
ewarn "Look at https://bugs.gentoo.org/show_bug.cgi?id=370051."
fi
use uclibc && sed -i -e s/versionsort/alphasort/g -e s/strverscmp.h/dirent.h/g mount/lomount.c
elibtoolize
}
@ -66,6 +72,7 @@ lfs_fallocate_test() {
rm -f "${T}"/fallocate.c
}
usex() { use $1 && echo ${2:-yes} || echo ${3:-no} ; }
src_configure() {
lfs_fallocate_test
econf \
@ -73,9 +80,9 @@ src_configure() {
$(use_enable nls) \
--enable-agetty \
$(use_enable cramfs) \
$(use_enable ddate) \
$(use_enable old-linux elvtune) \
--with-ncurses=$(usex ncurses $(usex unicode auto yes) no) \
--disable-init \
--disable-kill \
--disable-last \
--disable-mesg \
@ -87,15 +94,15 @@ src_configure() {
--enable-schedutils \
--disable-wall \
--enable-write \
--without-pam \
$(use_with selinux) \
$(use_with slang) \
$(use_enable static-libs static) \
$(tc-has-tls || echo --disable-tls)
}
src_install() {
emake install DESTDIR="${D}" || die
dodoc AUTHORS NEWS README* Documentation/{TODO,*.txt}
emake install DESTDIR="${D}" || die "install failed"
dodoc AUTHORS NEWS README* TODO docs/*
if ! use perl ; then #284093
rm "${ED}"/usr/bin/chkdupexe || die
@ -103,17 +110,12 @@ src_install() {
fi
# need the libs in /
gen_usr_ldscript -a blkid mount uuid
gen_usr_ldscript -a blkid uuid
# e2fsprogs-libs didnt install .la files, and .pc work fine
find "${ED}" -name '*.la' -delete
rm -f "${ED}"/usr/$(get_libdir)/*.la
if use crypt ; then
newinitd "${FILESDIR}"/crypto-loop.initd crypto-loop || die
newconfd "${FILESDIR}"/crypto-loop.confd crypto-loop || die
fi
}
pkg_postinst() {
elog "The agetty util now clears the terminal by default. You"
elog "might want to add --noclear to your /etc/inittab lines."
}