summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2008-10-16 03:06:16 +0000
committerRobin H. Johnson <robbat2@gentoo.org>2008-10-16 03:06:16 +0000
commit1698835085d2d7234af08a57f3249ec483a746d0 (patch)
tree79f79d8de14626dd0bd3e122c546aa6e2a6b93e7 /sys-apps
parentmasking java use flag for astyle (diff)
downloadgentoo-2-1698835085d2d7234af08a57f3249ec483a746d0.tar.gz
gentoo-2-1698835085d2d7234af08a57f3249ec483a746d0.tar.bz2
gentoo-2-1698835085d2d7234af08a57f3249ec483a746d0.zip
Fix automagical linking against libselinux per bug #230073.
(Portage version: 2.2_rc11/cvs/Linux 2.6.27-rc1-10246-gca5de40 x86_64)
Diffstat (limited to 'sys-apps')
-rw-r--r--sys-apps/coreutils/ChangeLog10
-rw-r--r--sys-apps/coreutils/coreutils-6.10-r3.ebuild155
-rw-r--r--sys-apps/coreutils/coreutils-6.12-r2.ebuild155
-rw-r--r--sys-apps/coreutils/files/coreutils-6.10-selinux-opt.patch39
4 files changed, 358 insertions, 1 deletions
diff --git a/sys-apps/coreutils/ChangeLog b/sys-apps/coreutils/ChangeLog
index 0dc8c5a2e188..25e5d6bac010 100644
--- a/sys-apps/coreutils/ChangeLog
+++ b/sys-apps/coreutils/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for sys-apps/coreutils
# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/coreutils/ChangeLog,v 1.237 2008/07/27 19:39:23 loki_val Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/coreutils/ChangeLog,v 1.238 2008/10/16 03:06:15 robbat2 Exp $
+
+*coreutils-6.12-r2 (16 Oct 2008)
+*coreutils-6.10-r3 (16 Oct 2008)
+
+ 16 Oct 2008; Robin H. Johnson <robbat2@gentoo.org>
+ +files/coreutils-6.10-selinux-opt.patch, +coreutils-6.10-r3.ebuild,
+ +coreutils-6.12-r2.ebuild:
+ Fix automagical linking against libselinux per bug #230073.
*coreutils-6.12-r1 (27 Jul 2008)
diff --git a/sys-apps/coreutils/coreutils-6.10-r3.ebuild b/sys-apps/coreutils/coreutils-6.10-r3.ebuild
new file mode 100644
index 000000000000..cb0cf28cadd3
--- /dev/null
+++ b/sys-apps/coreutils/coreutils-6.10-r3.ebuild
@@ -0,0 +1,155 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/coreutils/coreutils-6.10-r3.ebuild,v 1.1 2008/10/16 03:06:16 robbat2 Exp $
+
+inherit eutils flag-o-matic toolchain-funcs autotools
+
+PATCH_VER="1.3"
+DESCRIPTION="Standard GNU file utilities (chmod, cp, dd, dir, ls...), text utilities (sort, tr, head, wc..), and shell utilities (whoami, who,...)"
+HOMEPAGE="http://www.gnu.org/software/coreutils/"
+SRC_URI="ftp://alpha.gnu.org/gnu/coreutils/${P}.tar.lzma
+ mirror://gnu/${PN}/${P}.tar.lzma
+ mirror://gentoo/${P}.tar.lzma
+ mirror://gentoo/${P}-patches-${PATCH_VER}.tar.lzma
+ http://dev.gentoo.org/~vapier/dist/${P}-patches-${PATCH_VER}.tar.lzma"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="acl nls selinux static xattr vanilla"
+
+RDEPEND="selinux? ( sys-libs/libselinux )
+ acl? ( sys-apps/acl )
+ xattr? ( sys-apps/attr )
+ nls? ( >=sys-devel/gettext-0.15 )
+ !<sys-apps/util-linux-2.13
+ !net-mail/base64
+ !sys-apps/mktemp
+ >=sys-libs/ncurses-5.3-r5"
+DEPEND="${RDEPEND}
+ app-arch/lzma-utils
+ >=sys-devel/automake-1.10.1
+ >=sys-devel/autoconf-2.61
+ >=sys-devel/m4-1.4-r1"
+
+pkg_setup() {
+ # fixup expr for #123342
+ if [[ $(/bin/expr a : '\(a\)') != "a" ]] ; then
+ if [[ -x /bin/busybox ]] ; then
+ ln -sf /bin/busybox /bin/expr
+ else
+ eerror "Your expr binary appears to be broken, please fix it."
+ eerror "For more info, see http://bugs.gentoo.org/123342"
+ die "your expr is broke"
+ fi
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ if ! use vanilla ; then
+ EPATCH_SUFFIX="patch" \
+ PATCHDIR="${WORKDIR}/patch" \
+ EPATCH_EXCLUDE="001_all_coreutils-gen-progress-bar.patch" \
+ epatch
+ fi
+
+ #Fix bug 230073
+ # Do not blindly include libselinux
+ epatch "${FILESDIR}/${PN}"-6.10-selinux-opt.patch
+
+ # Since we've patched many .c files, the make process will try to
+ # re-build the manpages by running `./bin --help`. When doing a
+ # cross-compile, we can't do that since 'bin' isn't a native bin.
+ # Also, it's not like we changed the usage on any of these things,
+ # so let's just update the timestamps and skip the help2man step.
+ touch man/*.1
+ # There's no reason for this crap to use the private version
+ sed -i 's:__mempcpy:mempcpy:g' lib/*.c
+
+ use vanilla || AT_M4DIR="m4" eautoreconf
+}
+
+src_compile() {
+ if ! type -p cvs > /dev/null ; then
+ # Fix issues with gettext's autopoint if cvs is not installed,
+ # bug #28920.
+ export AUTOPOINT="/bin/true"
+ fi
+
+ local myconf=""
+ [[ ${USERLAND} == "GNU" ]] || myconf="${myconf} --bindir=/usr/libexec/gnu"
+ if echo "#include <regex.h>" | $(tc-getCPP) > /dev/null ; then
+ myconf="${myconf} --without-included-regex"
+ fi
+
+ # cross-compile workaround #177061
+ [[ ${CHOST} == *-linux* ]] && export fu_cv_sys_stat_statvfs=yes
+
+ use static && append-ldflags -static
+ # kill/uptime - procps
+ # groups/su - shadow
+ # hostname - net-tools
+ econf \
+ --enable-install-program="arch" \
+ --enable-no-install-program="groups,hostname,kill,su,uptime" \
+ --enable-largefile \
+ $(use_enable nls) \
+ $(use_enable acl) \
+ $(use_enable xattr) \
+ $(use_enable selinux) \
+ ${myconf} \
+ || die "econf"
+ emake || die "emake"
+}
+
+src_test() {
+ # Non-root tests will fail if the full path isnt
+ # accessible to non-root users
+ chmod -R go-w "${WORKDIR}"
+ chmod a+rx "${WORKDIR}"
+ addwrite /dev/full
+ export RUN_EXPENSIVE_TESTS="yes"
+ #export FETISH_GROUPS="portage wheel"
+ make -k check || die "make check failed"
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+ rm -f "${D}"/usr/lib/charset.alias
+ dodoc AUTHORS ChangeLog* NEWS README* THANKS TODO
+
+ insinto /etc
+ newins src/dircolors.hin DIR_COLORS || die
+
+ # workaround bug in build system where `group` does not
+ # work with --enable-no-install-program configure option
+ rm "${D}"/usr/bin/groups "${D}"/usr/share/man/man1/groups.1 || die
+
+ if [[ ${USERLAND} == "GNU" ]] ; then
+ cd "${D}"/usr/bin
+ dodir /bin
+ # move critical binaries into /bin (required by FHS)
+ local fhs="cat chgrp chmod chown cp date dd df echo false ln ls
+ mkdir mknod mv pwd rm rmdir stty sync true uname"
+ mv ${fhs} ../../bin/ || die "could not move fhs bins"
+ # move critical binaries into /bin (common scripts)
+ local com="basename chroot cut dir dirname du env expr head mkfifo
+ mktemp readlink seq sleep sort tail touch tr tty vdir wc yes"
+ mv ${com} ../../bin/ || die "could not move common bins"
+ # create a symlink for uname in /usr/bin/ since autotools require it
+ local x
+ for x in ${com} uname ; do
+ dosym /bin/${x} /usr/bin/${x} || die
+ done
+ else
+ # For now, drop the man pages, collides with the ones of the system.
+ rm -rf "${D}"/usr/share/man
+ fi
+}
+
+pkg_postinst() {
+ ewarn "Make sure you run 'hash -r' in your active shells."
+}
diff --git a/sys-apps/coreutils/coreutils-6.12-r2.ebuild b/sys-apps/coreutils/coreutils-6.12-r2.ebuild
new file mode 100644
index 000000000000..7819bf390896
--- /dev/null
+++ b/sys-apps/coreutils/coreutils-6.12-r2.ebuild
@@ -0,0 +1,155 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/coreutils/coreutils-6.12-r2.ebuild,v 1.1 2008/10/16 03:06:16 robbat2 Exp $
+
+inherit eutils flag-o-matic toolchain-funcs autotools
+
+PATCH_VER="1.0"
+DESCRIPTION="Standard GNU file utilities (chmod, cp, dd, dir, ls...), text utilities (sort, tr, head, wc..), and shell utilities (whoami, who,...)"
+HOMEPAGE="http://www.gnu.org/software/coreutils/"
+SRC_URI="ftp://alpha.gnu.org/gnu/coreutils/${P}.tar.lzma
+ mirror://gnu/${PN}/${P}.tar.lzma
+ mirror://gentoo/${P}.tar.lzma
+ mirror://gentoo/${P}-patches-${PATCH_VER}.tar.lzma
+ http://dev.gentoo.org/~vapier/dist/${P}-patches-${PATCH_VER}.tar.lzma"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="acl nls selinux static xattr vanilla"
+
+RDEPEND="selinux? ( sys-libs/libselinux )
+ acl? ( sys-apps/acl )
+ xattr? ( sys-apps/attr )
+ nls? ( >=sys-devel/gettext-0.15 )
+ !<sys-apps/util-linux-2.13
+ !net-mail/base64
+ !sys-apps/mktemp
+ >=sys-libs/ncurses-5.3-r5"
+DEPEND="${RDEPEND}
+ app-arch/lzma-utils
+ >=sys-devel/automake-1.10.1
+ >=sys-devel/autoconf-2.61
+ >=sys-devel/m4-1.4-r1"
+
+pkg_setup() {
+ # fixup expr for #123342
+ if [[ $(/bin/expr a : '\(a\)') != "a" ]] ; then
+ if [[ -x /bin/busybox ]] ; then
+ ln -sf /bin/busybox /bin/expr
+ else
+ eerror "Your expr binary appears to be broken, please fix it."
+ eerror "For more info, see http://bugs.gentoo.org/123342"
+ die "your expr is broke"
+ fi
+ fi
+}
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ if ! use vanilla ; then
+ EPATCH_SUFFIX="patch" \
+ PATCHDIR="${WORKDIR}/patch" \
+ EPATCH_EXCLUDE="001_all_coreutils-gen-progress-bar.patch" \
+ epatch
+ fi
+
+ #Fix bug 224483
+ #sys-apps/coreutils-6.12 - touch uses unknown system call utimensat
+ epatch "${FILESDIR}"/gnulib-utimens-update.patch
+
+ #Fix bug 230073
+ # Do not blindly include libselinux
+ epatch "${FILESDIR}/${PN}"-6.10-selinux-opt.patch
+
+ # Since we've patched many .c files, the make process will try to
+ # re-build the manpages by running `./bin --help`. When doing a
+ # cross-compile, we can't do that since 'bin' isn't a native bin.
+ # Also, it's not like we changed the usage on any of these things,
+ # so let's just update the timestamps and skip the help2man step.
+ touch man/*.1
+ # There's no reason for this crap to use the private version
+ sed -i 's:__mempcpy:mempcpy:g' lib/*.c
+
+ use vanilla || AT_M4DIR="m4" eautoreconf
+}
+
+src_compile() {
+ if ! type -p cvs > /dev/null ; then
+ # Fix issues with gettext's autopoint if cvs is not installed,
+ # bug #28920.
+ export AUTOPOINT="/bin/true"
+ fi
+
+ local myconf=""
+ [[ ${USERLAND} == "GNU" ]] || myconf="${myconf} --bindir=/usr/libexec/gnu"
+ if echo "#include <regex.h>" | $(tc-getCPP) > /dev/null ; then
+ myconf="${myconf} --without-included-regex"
+ fi
+
+ # cross-compile workaround #177061
+ [[ ${CHOST} == *-linux* ]] && export fu_cv_sys_stat_statvfs=yes
+
+ use static && append-ldflags -static
+ # kill/uptime - procps
+ # groups/su - shadow
+ # hostname - net-tools
+ econf \
+ --enable-install-program="arch" \
+ --enable-no-install-program="groups,hostname,kill,su,uptime" \
+ --enable-largefile \
+ $(use_enable nls) \
+ $(use_enable acl) \
+ $(use_enable xattr) \
+ $(use_enable selinux) \
+ ${myconf} \
+ || die "econf"
+ emake || die "emake"
+}
+
+src_test() {
+ # Non-root tests will fail if the full path isnt
+ # accessible to non-root users
+ chmod -R go-w "${WORKDIR}"
+ chmod a+rx "${WORKDIR}"
+ addwrite /dev/full
+ export RUN_EXPENSIVE_TESTS="yes"
+ #export FETISH_GROUPS="portage wheel"
+ make -k check || die "make check failed"
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+ rm -f "${D}"/usr/lib/charset.alias
+ dodoc AUTHORS ChangeLog* NEWS README* THANKS TODO
+
+ insinto /etc
+ newins src/dircolors.hin DIR_COLORS || die
+
+ if [[ ${USERLAND} == "GNU" ]] ; then
+ cd "${D}"/usr/bin
+ dodir /bin
+ # move critical binaries into /bin (required by FHS)
+ local fhs="cat chgrp chmod chown cp date dd df echo false ln ls
+ mkdir mknod mv pwd rm rmdir stty sync true uname"
+ mv ${fhs} ../../bin/ || die "could not move fhs bins"
+ # move critical binaries into /bin (common scripts)
+ local com="basename chroot cut dir dirname du env expr head mkfifo
+ mktemp readlink seq sleep sort tail touch tr tty vdir wc yes"
+ mv ${com} ../../bin/ || die "could not move common bins"
+ # create a symlink for uname in /usr/bin/ since autotools require it
+ local x
+ for x in ${com} uname ; do
+ dosym /bin/${x} /usr/bin/${x} || die
+ done
+ else
+ # For now, drop the man pages, collides with the ones of the system.
+ rm -rf "${D}"/usr/share/man
+ fi
+}
+
+pkg_postinst() {
+ ewarn "Make sure you run 'hash -r' in your active shells."
+}
diff --git a/sys-apps/coreutils/files/coreutils-6.10-selinux-opt.patch b/sys-apps/coreutils/files/coreutils-6.10-selinux-opt.patch
new file mode 100644
index 000000000000..3c03f8e7ab62
--- /dev/null
+++ b/sys-apps/coreutils/files/coreutils-6.10-selinux-opt.patch
@@ -0,0 +1,39 @@
+Disable automagical building of stuff with libselinux.
+
+Gentoo-Bug: 230073
+Acked-by: Robin H. Johnson <robbat2@gentoo.org>
+
+--- coreutils-6.10/m4/gnulib-comp.m4.orig 2008-07-06 18:44:54.000000000 +0200
++++ coreutils-6.10/m4/gnulib-comp.m4 2008-07-06 20:17:37.000000000 +0200
+@@ -263,16 +263,25 @@
+ gl_SAVEWD
+ # FIXME: put this in an .m4 file?
+ # For runcon.
+- AC_CHECK_HEADERS([selinux/flask.h])
+- AC_LIBOBJ([selinux-at])
+- ac_save_LIBS="$LIBS"
++ AC_LIBOBJ([selinux-at])
++ AC_ARG_ENABLE([selinux],
++ AC_HELP_STRING([--disable-selinux], [disable support for SELinux]),
++ , [enable_selinux=auto])
++ if test "x$enable_selinux" != "xno" ; then
++ AC_CHECK_HEADERS([selinux/flask.h])
++ ac_save_LIBS="$LIBS"
+ AC_SEARCH_LIBS(setfilecon, selinux,
+ [test "$ac_cv_search_setfilecon" = "none required" ||
+ LIB_SELINUX=$ac_cv_search_setfilecon])
+ AC_SUBST(LIB_SELINUX)
+- LIBS="$ac_save_LIBS"
+- gl_HEADERS_SELINUX_SELINUX_H
+- gl_HEADERS_SELINUX_CONTEXT_H
++ LIBS="$ac_save_LIBS"
++ gl_HEADERS_SELINUX_SELINUX_H
++ gl_HEADERS_SELINUX_CONTEXT_H
++ else
++ AC_SUBST(LIB_SELINUX,"")
++ AC_SUBST(SELINUX_CONTEXT_H,selinux/context.h)
++ AC_SUBST(SELINUX_SELINUX_H,selinux/selinux.h)
++ fi
+ gl_FUNC_SETENV
+ gl_STDLIB_MODULE_INDICATOR([setenv])
+ gl_SETTIME