summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-10-17 22:01:41 +0000
committerMike Frysinger <vapier@gentoo.org>2011-10-17 22:01:41 +0000
commitb64eb5e4ca032cabc04bceb44543638423a32e68 (patch)
treec3e8b7ac86945b1a119ef9b0a73e7bfa220fa4e0 /sys-apps/util-linux
parentMark alpha/arm/hppa/ia64/m68k/s390/sh stable #384305. (diff)
downloadgentoo-2-b64eb5e4ca032cabc04bceb44543638423a32e68.tar.gz
gentoo-2-b64eb5e4ca032cabc04bceb44543638423a32e68.tar.bz2
gentoo-2-b64eb5e4ca032cabc04bceb44543638423a32e68.zip
Add fixes from upstream for dmesg stopping with blank newlines #385305 by Maxime Gervais. Add fix from upstream for nfs/btrfs unmounting #385323 by Thomas Arnett.
(Portage version: 2.2.0_alpha65/cvs/Linux x86_64)
Diffstat (limited to 'sys-apps/util-linux')
-rw-r--r--sys-apps/util-linux/ChangeLog11
-rw-r--r--sys-apps/util-linux/files/util-linux-2.20-dmesg-newline.patch102
-rw-r--r--sys-apps/util-linux/files/util-linux-2.20-sysfs-init.patch32
-rw-r--r--sys-apps/util-linux/util-linux-2.20-r1.ebuild119
4 files changed, 263 insertions, 1 deletions
diff --git a/sys-apps/util-linux/ChangeLog b/sys-apps/util-linux/ChangeLog
index 49e63c106433..9d2c1fc87735 100644
--- a/sys-apps/util-linux/ChangeLog
+++ b/sys-apps/util-linux/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for sys-apps/util-linux
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/util-linux/ChangeLog,v 1.353 2011/10/17 22:00:09 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/util-linux/ChangeLog,v 1.354 2011/10/17 22:01:41 vapier Exp $
+
+*util-linux-2.20-r1 (17 Oct 2011)
+
+ 17 Oct 2011; Mike Frysinger <vapier@gentoo.org> +util-linux-2.20-r1.ebuild,
+ +files/util-linux-2.20-dmesg-newline.patch,
+ +files/util-linux-2.20-sysfs-init.patch:
+ Add fixes from upstream for dmesg stopping with blank newlines #385305 by
+ Maxime Gervais. Add fix from upstream for nfs/btrfs unmounting #385323 by
+ Thomas Arnett.
17 Oct 2011; Mike Frysinger <vapier@gentoo.org> util-linux-2.19.1-r1.ebuild:
Mark alpha/arm/hppa/ia64/m68k/s390/sh stable #384305.
diff --git a/sys-apps/util-linux/files/util-linux-2.20-dmesg-newline.patch b/sys-apps/util-linux/files/util-linux-2.20-dmesg-newline.patch
new file mode 100644
index 000000000000..6225e51b79bc
--- /dev/null
+++ b/sys-apps/util-linux/files/util-linux-2.20-dmesg-newline.patch
@@ -0,0 +1,102 @@
+https://bugs.gentoo.org/385305
+
+From 22f69825778f992ff98ed100252bf5e00a15d9d1 Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak@redhat.com>
+Date: Wed, 31 Aug 2011 12:28:39 +0200
+Subject: [PATCH] dmesg: fix for non-CONFIG_PRINTK_TIME kernels
+
+ * dmesg(1) incorrectly assumes that lines like "<6>\n"
+ are broken.
+
+ * it's more robust to assume the end of the record is "\n<"
+
+ * print \n for empty lines
+
+Reported-by: "Gabor Z. Papp" <gzp@papp.hu>
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+ sys-utils/dmesg.c | 16 ++++++++--------
+ 1 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/sys-utils/dmesg.c b/sys-utils/dmesg.c
+index 6090f4e..8e7bb4b 100644
+--- a/sys-utils/dmesg.c
++++ b/sys-utils/dmesg.c
+@@ -442,12 +442,12 @@ static int get_next_record(struct dmesg_control *ctl, struct dmesg_record *rec)
+
+ if (!begin)
+ begin = p;
+- if (*p == '\n')
+- end = p;
+ if (i + 1 == rec->next_size) {
+ end = p + 1;
+ i++;
+- }
++ } else if (*p == '\n' && *(p + 1) == '<')
++ end = p;
++
+ if (begin && !*begin)
+ begin = NULL; /* zero(s) at the end of the buffer? */
+ if (!begin || !end)
+@@ -469,9 +469,6 @@ static int get_next_record(struct dmesg_control *ctl, struct dmesg_record *rec)
+ }
+ }
+
+- if (end <= begin)
+- return -1; /* error */
+-
+ if (*begin == '[' && (*(begin + 1) == ' ' ||
+ isdigit(*(begin + 1)))) {
+ if (ctl->delta || ctl->ctime) {
+@@ -534,12 +531,15 @@ static void print_buffer(const char *buf, size_t size,
+ }
+
+ while (get_next_record(ctl, &rec) == 0) {
+- if (!rec.mesg_size)
+- continue;
+
+ if (!accept_record(ctl, &rec))
+ continue;
+
++ if (!rec.mesg_size) {
++ putchar('\n');
++ continue;
++ }
++
+ if (ctl->decode && rec.level >= 0 && rec.facility >= 0)
+ printf("%-6s:%-6s: ", facility_names[rec.facility].name,
+ level_names[rec.level].name);
+--
+1.7.6.1
+
+From 31c9099a81d3a9c70fdceb198eebed678173d954 Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak@redhat.com>
+Date: Fri, 2 Sep 2011 14:42:04 +0200
+Subject: [PATCH] dmesg: remove extra space only after time stamp
+
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+ sys-utils/dmesg.c | 5 ++---
+ 1 files changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/sys-utils/dmesg.c b/sys-utils/dmesg.c
+index 8e7bb4b..b3713a0 100644
+--- a/sys-utils/dmesg.c
++++ b/sys-utils/dmesg.c
+@@ -480,11 +480,10 @@ static int get_next_record(struct dmesg_control *ctl, struct dmesg_record *rec)
+ break;
+ }
+ }
++ if (begin < end && *begin == ' ')
++ begin++;
+ }
+
+- if (begin < end && *begin == ' ')
+- begin++;
+-
+ rec->mesg = begin;
+ rec->mesg_size = end - begin;
+
+--
+1.7.6.1
+
diff --git a/sys-apps/util-linux/files/util-linux-2.20-sysfs-init.patch b/sys-apps/util-linux/files/util-linux-2.20-sysfs-init.patch
new file mode 100644
index 000000000000..ac93787596a5
--- /dev/null
+++ b/sys-apps/util-linux/files/util-linux-2.20-sysfs-init.patch
@@ -0,0 +1,32 @@
+From 3a18db62e661fbb307ad3a53c18afabc92d3c63e Mon Sep 17 00:00:00 2001
+From: Petr Uzel <petr.uzel@suse.cz>
+Date: Tue, 13 Sep 2011 11:08:46 +0200
+Subject: [PATCH] lib: do not attempt to close(0) in sysfs_deinit()
+
+If the 'open' fails we 'goto err' which runs 'sysfs_deinit()' on a 'cxt'
+which hasn't been fully initialised. The 'dir_fd' is still 0, so
+sysfs_deinit calls "close(0)".
+
+Addresses: https://bugzilla.novell.com/show_bug.cgi?id=714151
+Reported-by: Diego Ercolani <diego.ercolani@gmail.com>
+Analysed-by: Neil Brown <nfbrown@suse.com>
+Signed-off-by: Petr Uzel <petr.uzel@suse.cz>
+---
+ lib/sysfs.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/lib/sysfs.c b/lib/sysfs.c
+index eec1f24..ebb3bb5 100644
+--- a/lib/sysfs.c
++++ b/lib/sysfs.c
+@@ -140,6 +140,7 @@ int sysfs_init(struct sysfs_cxt *cxt, dev_t devno, struct sysfs_cxt *parent)
+ int fd, rc = 0;
+
+ memset(cxt, 0, sizeof(*cxt));
++ cxt->dir_fd = -1;
+
+ if (!sysfs_devno_path(devno, path, sizeof(path)))
+ goto err;
+--
+1.7.6.1
+
diff --git a/sys-apps/util-linux/util-linux-2.20-r1.ebuild b/sys-apps/util-linux/util-linux-2.20-r1.ebuild
new file mode 100644
index 000000000000..e7f823789aa8
--- /dev/null
+++ b/sys-apps/util-linux/util-linux-2.20-r1.ebuild
@@ -0,0 +1,119 @@
+# 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.20-r1.ebuild,v 1.1 2011/10/17 22:01:41 vapier 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.20-20110905.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 ddate loop-aes ncurses nls old-linux perl selinux slang static-libs 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 )
+ 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
+ po/update-potfiles
+ autopoint --force
+ eautoreconf
+ else
+ use loop-aes && epatch "${WORKDIR}"/util-linux-*.diff
+ fi
+ epatch "${FILESDIR}"/${P}-dmesg-newline.patch
+ epatch "${FILESDIR}"/${P}-sysfs-init.patch
+ 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 ddate) \
+ $(use_enable old-linux elvtune) \
+ --with-ncurses=$(usex ncurses $(usex unicode auto yes) no) \
+ --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) \
+ $(use_enable static-libs static) \
+ $(tc-has-tls || echo --disable-tls)
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die "install failed"
+ dodoc AUTHORS NEWS README* TODO docs/*
+ use ddate || find "${ED}"/usr/share/man -name 'ddate.1*' -delete
+
+ 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
+}