From a6e8ae1f83285e5f422744eda3aaa446aafde316 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Thu, 16 Oct 2014 17:47:37 +0000 Subject: Add fix from upstream for libblkid probing. (Portage version: 2.2.14_rc1/cvs/Linux x86_64, signed Manifest commit with key D2E96200) --- sys-apps/util-linux/ChangeLog | 8 +- .../files/util-linux-2.25.1-blkid-probe-fix.patch | 43 +++++ sys-apps/util-linux/util-linux-2.25.1-r1.ebuild | 174 +++++++++++++++++++++ 3 files changed, 224 insertions(+), 1 deletion(-) create mode 100644 sys-apps/util-linux/files/util-linux-2.25.1-blkid-probe-fix.patch create mode 100644 sys-apps/util-linux/util-linux-2.25.1-r1.ebuild (limited to 'sys-apps/util-linux') diff --git a/sys-apps/util-linux/ChangeLog b/sys-apps/util-linux/ChangeLog index a7028bf14fc4..86efd9fc47f9 100644 --- a/sys-apps/util-linux/ChangeLog +++ b/sys-apps/util-linux/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for sys-apps/util-linux # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/util-linux/ChangeLog,v 1.484 2014/09/05 13:20:22 polynomial-c Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/util-linux/ChangeLog,v 1.485 2014/10/16 17:47:37 vapier Exp $ + +*util-linux-2.25.1-r1 (16 Oct 2014) + + 16 Oct 2014; Mike Frysinger + +files/util-linux-2.25.1-blkid-probe-fix.patch, +util-linux-2.25.1-r1.ebuild: + Add fix from upstream for libblkid probing. *util-linux-2.25.1 (05 Sep 2014) diff --git a/sys-apps/util-linux/files/util-linux-2.25.1-blkid-probe-fix.patch b/sys-apps/util-linux/files/util-linux-2.25.1-blkid-probe-fix.patch new file mode 100644 index 000000000000..f994a74a6696 --- /dev/null +++ b/sys-apps/util-linux/files/util-linux-2.25.1-blkid-probe-fix.patch @@ -0,0 +1,43 @@ +From 00749bc366fe6106df918660a92a388cfff4f35f Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Tue, 7 Oct 2014 12:44:34 +0200 +Subject: [PATCH] libblkid: zeroize errno on blkid_probe_get_buffer() success + +Since 37f4060225df0591ab8e1dd676dbc8115d900d4f prober functions are +sensitive to errno, it seems more robust to set errno=0 with in +blkid_probe_get_buffer() on success than set the zero on all places +where we call blkid_probe_get_buffer(). + +Addresses: https://github.com/karelzak/util-linux/issues/119 +Signed-off-by: Karel Zak +--- + libblkid/src/probe.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/libblkid/src/probe.c b/libblkid/src/probe.c +index 4fea3cc..3f7e43b 100644 +--- a/libblkid/src/probe.c ++++ b/libblkid/src/probe.c +@@ -539,8 +539,10 @@ unsigned char *blkid_probe_get_buffer(blkid_probe pr, + struct list_head *p; + struct blkid_bufinfo *bf = NULL; + +- if (pr->size <= 0) ++ if (pr->size <= 0) { ++ errno = EINVAL; + return NULL; ++ } + + if (pr->parent && + pr->parent->devno == pr->devno && +@@ -602,6 +604,7 @@ unsigned char *blkid_probe_get_buffer(blkid_probe pr, + list_add_tail(&bf->bufs, &pr->buffers); + } + ++ errno = 0; + return off ? bf->data + (off - bf->off) : bf->data; + } + +-- +2.1.2 + diff --git a/sys-apps/util-linux/util-linux-2.25.1-r1.ebuild b/sys-apps/util-linux/util-linux-2.25.1-r1.ebuild new file mode 100644 index 000000000000..368c30a98a9f --- /dev/null +++ b/sys-apps/util-linux/util-linux-2.25.1-r1.ebuild @@ -0,0 +1,174 @@ +# Copyright 1999-2014 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.25.1-r1.ebuild,v 1.1 2014/10/16 17:47:37 vapier Exp $ + +EAPI="4" + +PYTHON_COMPAT=( python2_7 python3_{2,3,4} ) + +inherit eutils toolchain-funcs libtool flag-o-matic bash-completion-r1 \ + python-single-r1 multilib-minimal + +MY_PV=${PV/_/-} +MY_P=${PN}-${MY_PV} + +if [[ ${PV} == 9999 ]] ; then + inherit git-2 autotools + EGIT_REPO_URI="git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git" +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~arm-linux ~x86-linux" + SRC_URI="mirror://kernel/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz" +fi + +DESCRIPTION="Various useful Linux utilities" +HOMEPAGE="http://www.kernel.org/pub/linux/utils/util-linux/" + +LICENSE="GPL-2 LGPL-2.1 BSD-4 MIT public-domain" +SLOT="0" +IUSE="caps +cramfs fdformat ncurses nls pam python selinux slang static-libs +suid test tty-helpers udev unicode" + +RDEPEND="!sys-process/schedutils + !sys-apps/setarch + !=sys-libs/ncurses-5.2-r2 ) + pam? ( sys-libs/pam ) + python? ( ${PYTHON_DEPS} ) + selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] ) + slang? ( sys-libs/slang ) + udev? ( virtual/udev ) + abi_x86_32? ( + !<=app-emulation/emul-linux-x86-baselibs-20140406-r2 + !app-emulation/emul-linux-x86-baselibs[-abi_x86_32] + )" +DEPEND="${RDEPEND} + virtual/pkgconfig + nls? ( sys-devel/gettext ) + test? ( sys-devel/bc ) + virtual/os-headers" + +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" + +S=${WORKDIR}/${MY_P} + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +src_prepare() { + epatch "${FILESDIR}"/${P}-blkid-probe-fix.patch + if [[ ${PV} == 9999 ]] ; then + po/update-potfiles + eautoreconf + fi + elibtoolize +} + +lfs_fallocate_test() { + # Make sure we can use fallocate with LFS #300307 + cat <<-EOF > "${T}"/fallocate.${ABI}.c + #define _GNU_SOURCE + #include + main() { return fallocate(0, 0, 0, 0); } + EOF + append-lfs-flags + $(tc-getCC) ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} "${T}"/fallocate.${ABI}.c -o /dev/null >/dev/null 2>&1 \ + || export ac_cv_func_fallocate=no + rm -f "${T}"/fallocate.${ABI}.c +} + +multilib_src_configure() { + lfs_fallocate_test + export ac_cv_header_security_pam_misc_h=$(multilib_native_usex pam) #485486 + # We manually set --libdir to the default since on prefix, econf will set it to + # a value which the configure script does not recognize. This makes it set the + # usrlib_execdir to a bad value. bug #518898#c2, fixed upstream for >2.25 + ECONF_SOURCE=${S} \ + econf \ + --enable-fs-paths-extra="${EPREFIX}/usr/sbin:${EPREFIX}/bin:${EPREFIX}/usr/bin" \ + --libdir='${prefix}/'"$(get_libdir)" \ + $(multilib_native_use_enable nls) \ + --enable-agetty \ + --with-bashcompletiondir="$(get_bashcompdir)" \ + --enable-bash-completion \ + $(multilib_native_use_enable caps setpriv) \ + --disable-chfn-chsh \ + $(multilib_native_use_enable cramfs) \ + $(multilib_native_use_enable fdformat) \ + --with-ncurses=$(multilib_native_usex ncurses $(usex unicode auto yes) no) \ + --disable-kill \ + --disable-login \ + $(multilib_native_use_enable tty-helpers mesg) \ + --disable-nologin \ + --enable-partx \ + $(multilib_native_use_with python) \ + --enable-raw \ + --enable-rename \ + --disable-reset \ + --enable-schedutils \ + --disable-su \ + $(multilib_native_use_enable tty-helpers wall) \ + $(multilib_native_use_enable tty-helpers write) \ + $(multilib_native_use_enable suid makeinstall-chown) \ + $(multilib_native_use_enable suid makeinstall-setuid) \ + $(use_with selinux) \ + $(multilib_native_use_with slang) \ + $(use_enable static-libs static) \ + $(multilib_native_use_with udev) \ + $(tc-has-tls || echo --disable-tls) +} + +multilib_src_compile() { + if multilib_is_native_abi; then + default + else + # build libraries only + emake -f Makefile -f - mylibs \ + <<< 'mylibs: $(usrlib_exec_LTLIBRARIES) $(pkgconfig_DATA)' + fi +} + +multilib_src_test() { + multilib_is_native_abi && emake check +} + +multilib_src_install() { + if multilib_is_native_abi; then + default + else + emake DESTDIR="${D}" install-usrlib_execLTLIBRARIES \ + install-pkgconfigDATA install-uuidincHEADERS \ + install-nodist_blkidincHEADERS install-nodist_mountincHEADERS \ + install-nodist_smartcolsincHEADERS + fi + + if multilib_is_native_abi; then + # need the libs in / + gen_usr_ldscript -a blkid mount smartcols uuid + + use python && python_optimize + fi +} + +multilib_src_install_all() { + dodoc AUTHORS NEWS README* Documentation/{TODO,*.txt,releases/*} + + # e2fsprogs-libs didnt install .la files, and .pc work fine + prune_libtool_files +} + +pkg_postinst() { + if ! use tty-helpers; then + elog "The mesg/wall/write tools have been disabled due to USE=-tty-helpers." + fi + + if [[ -z ${REPLACING_VERSIONS} ]]; then + elog "The agetty util now clears the terminal by default. You" + elog "might want to add --noclear to your /etc/inittab lines." + fi +} -- cgit v1.2.3-65-gdbad