mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-28 17:11:34 +02:00
util-linux: import from upstream Gentoo
Grab the latest stable version from upstream. BUG=chromium-os:24839 TEST=`emerge util-linux` works TEST=`emerge-arm-generic util-linux` works TEST=build_packages+build_image for x86-alex boots up CQ-DEPEND=Ie30c3b74003fa8aa99109ebf60d77f61864a2c1c Change-Id: Id029e027711451a79baa57f11af8049e545a9551 Reviewed-on: https://gerrit.chromium.org/gerrit/12624 Reviewed-by: Ben Chan <benchan@chromium.org> Reviewed-by: David James <davidjames@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org> Commit-Ready: Mike Frysinger <vapier@chromium.org>
This commit is contained in:
parent
60b16d6bf0
commit
5f8a90b910
9
sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/crypto-loop.confd
vendored
Normal file
9
sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/crypto-loop.confd
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
# /etc/conf.d/crypto-loop: Configuration file for /etc/init.d/crypto-loop
|
||||
|
||||
# More info can be found in the init.d script
|
||||
|
||||
# Specify loopback configurations here. The format of this file is
|
||||
# shown in the following commented-out example. One line per loopback
|
||||
# configuration. For possible hash values, see `man hashalot`.
|
||||
|
||||
# loop=/dev/loop0 hash='' cipher=serpent keysize=256 device=/dev/system/test other=''
|
70
sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/crypto-loop.initd
vendored
Executable file
70
sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/crypto-loop.initd
vendored
Executable file
@ -0,0 +1,70 @@
|
||||
#!/sbin/runscript
|
||||
# Copyright 1999-2005 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/sys-apps/util-linux/files/crypto-loop.initd,v 1.4 2008/10/26 03:16:48 vapier Exp $
|
||||
|
||||
depend() {
|
||||
if [ -x /etc/init.d/root ]; then
|
||||
need root
|
||||
else
|
||||
need checkroot
|
||||
fi
|
||||
need modules
|
||||
before localmount
|
||||
}
|
||||
|
||||
start() {
|
||||
local status="0"
|
||||
|
||||
ebegin "Starting crypto loop devices"
|
||||
|
||||
if [ -e /etc/conf.d/crypto-loop ] ; then
|
||||
egrep "^loop" /etc/conf.d/crypto-loop | \
|
||||
while read loopline ; do
|
||||
eval ${loopline}
|
||||
|
||||
local configured=$(awk -v MOUNT="${device}" \
|
||||
'($2 == MOUNT) { print "yes" }' /proc/mounts)
|
||||
|
||||
if [ "${configured}" != "yes" ] ; then
|
||||
einfo " Loop ${loop} on device ${device} (cipher ${cipher}, key size ${keysize}): "
|
||||
|
||||
if [ -n "${hash}" ] ; then
|
||||
/usr/sbin/hashalot -n ${keysize} ${hash} </dev/tty|\
|
||||
/sbin/losetup -p 0 -e ${cipher}-${keysize} ${loop} ${device} ${other}
|
||||
else
|
||||
/sbin/losetup -e ${cipher}-${keysize} ${loop} ${device} ${other}
|
||||
fi
|
||||
|
||||
if [ $? -ne 0 ] ; then
|
||||
ewarn "Failure configuring ${loop}. Skipping."
|
||||
status=1
|
||||
fi
|
||||
else
|
||||
ewarn " Loop ${loop} on device ${device} are already configured"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
ewend ${status} "Failed to start some loop devices."
|
||||
|
||||
# We do not fail if some loop devices did not start ...
|
||||
return 0
|
||||
}
|
||||
|
||||
stop() {
|
||||
local status="0"
|
||||
for loop in $(ls /dev/loop[0-9] 2>/dev/null) ; do
|
||||
losetup ${loop} > /dev/null 2>&1
|
||||
if [ $? -eq 0 ] ; then
|
||||
( umount ${loop} || swapoff "${loop}" ) >/dev/null 2>&1
|
||||
if ! /sbin/losetup -d ${loop} > /dev/null 2>&1; then
|
||||
ewarn "Failure deconfiguring ${loop}."
|
||||
status=1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
ewend ${status}
|
||||
}
|
||||
|
||||
|
||||
# vim:ts=4
|
@ -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
|
||||
|
@ -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
|
||||
|
121
sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.19.1-r1.ebuild
vendored
Normal file
121
sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.19.1-r1.ebuild
vendored
Normal file
@ -0,0 +1,121 @@
|
||||
# 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.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 autotools
|
||||
|
||||
MY_PV=${PV/_/-}
|
||||
MY_P=${PN}-${MY_PV}
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
DESCRIPTION="Various useful Linux utilities"
|
||||
HOMEPAGE="http://www.kernel.org/pub/linux/utils/util-linux/"
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
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"
|
||||
SLOT="0"
|
||||
IUSE="+cramfs crypt loop-aes ncurses nls old-linux perl selinux slang uclibc unicode"
|
||||
|
||||
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 )"
|
||||
DEPEND="${RDEPEND}
|
||||
nls? ( sys-devel/gettext )
|
||||
virtual/os-headers"
|
||||
|
||||
src_prepare() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
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
|
||||
}
|
||||
|
||||
lfs_fallocate_test() {
|
||||
# Make sure we can use fallocate with LFS #300307
|
||||
cat <<-EOF > "${T}"/fallocate.c
|
||||
#define _GNU_SOURCE
|
||||
#include <fcntl.h>
|
||||
main() { return fallocate(0, 0, 0, 0); }
|
||||
EOF
|
||||
append-lfs-flags
|
||||
$(tc-getCC) ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} "${T}"/fallocate.c -o /dev/null >/dev/null 2>&1 \
|
||||
|| export ac_cv_func_fallocate=no
|
||||
rm -f "${T}"/fallocate.c
|
||||
}
|
||||
|
||||
usex() { use $1 && echo ${2:-yes} || echo ${3:-no} ; }
|
||||
src_configure() {
|
||||
lfs_fallocate_test
|
||||
econf \
|
||||
--enable-fs-paths-extra=/usr/sbin \
|
||||
$(use_enable nls) \
|
||||
--enable-agetty \
|
||||
$(use_enable cramfs) \
|
||||
$(use_enable old-linux elvtune) \
|
||||
--with-ncurses=$(usex ncurses $(usex unicode auto yes) no) \
|
||||
--disable-init \
|
||||
--disable-kill \
|
||||
--disable-last \
|
||||
--disable-mesg \
|
||||
--enable-partx \
|
||||
--enable-raw \
|
||||
--enable-rename \
|
||||
--disable-reset \
|
||||
--disable-login-utils \
|
||||
--enable-schedutils \
|
||||
--disable-wall \
|
||||
--enable-write \
|
||||
--without-pam \
|
||||
$(use_with selinux) \
|
||||
$(use_with slang) \
|
||||
$(tc-has-tls || echo --disable-tls)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake install DESTDIR="${D}" || die "install failed"
|
||||
dodoc AUTHORS NEWS README* TODO docs/*
|
||||
|
||||
if ! use perl ; then #284093
|
||||
rm "${ED}"/usr/bin/chkdupexe || die
|
||||
rm "${ED}"/usr/share/man/man1/chkdupexe.1 || die
|
||||
fi
|
||||
|
||||
# need the libs in /
|
||||
gen_usr_ldscript -a blkid uuid
|
||||
# e2fsprogs-libs didnt install .la files, and .pc work fine
|
||||
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
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user