# Copyright 1999-2004 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.12b.ebuild,v 1.7 2004/10/31 05:25:01 vapier Exp $ inherit eutils flag-o-matic CRYPT_PATCH_P="${PN}-2.12b-cryptoapi-losetup" DESCRIPTION="Various useful Linux utilities" HOMEPAGE="http://www.kernel.org/pub/linux/utils/util-linux/" SRC_URI="mirror://kernel/linux/utils/${PN}/${P}.tar.gz ftp://ftp.cwi.nl/pub/aeb/${PN}/${P}.tar.gz crypt? ( mirror://gentoo/${CRYPT_PATCH_P}.patch.bz2 )" LICENSE="GPL-2" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" IUSE="crypt nls static pam selinux uclibc" DEPEND="virtual/libc >=sys-libs/ncurses-5.2-r2 >=sys-fs/e2fsprogs-1.34 selinux? ( sys-libs/libselinux ) pam? ( sys-apps/pam-login ) crypt? ( app-crypt/hashalot )" # We need perl because one script ( chkdupexe ) is # written in frickin perl; otherwise we dont need it ... RDEPEND="${DEPEND} dev-lang/perl nls? ( sys-devel/gettext )" src_unpack() { unpack ${A} cd ${S} # CryptoAPI losetup patch for the cryptoapi sepecific # to the 2.6 linux kernel. Needs hashalot. # Original patch location: # http://www.stwing.org/~sluskyb/util-linux/losetup-combined.patch # Mailing list post with info: # http://www.kerneli.org/pipermail/cryptoapi-devel/2003-September/000634.html # Follow thread for usage. use crypt && epatch ${DISTDIR}/${CRYPT_PATCH_P}.patch.bz2 # Fix rare failures with -j4 or higher epatch ${FILESDIR}/${PN}-2.11z-parallel-make.patch # Fix unreadable df output epatch ${FILESDIR}/no-symlink-resolve.patch # access() is a macro which uses R_OK however # R_OK is not defined on sparc during a bootstrap # unless we actually include unistd.h -solar (May 07 2004) epatch ${FILESDIR}/${PN}-2.12-swapon-unistd.patch # Add the O option to agetty to display DNS domainname in the issue # file, thanks to Marius Mauch , bug #22275. # # NOTE: Removing this will break future baselayout, so PLEASE # consult with me before doing so. # # (17 Jul 2003) epatch ${FILESDIR}/${PN}-2.11z-agetty-domainname-option.patch # Add NFS4 support (kernel 2.5/2.6). # use crypt \ # && epatch ${FILESDIR}/${PN}-2.11z-01-nfsv4-crypt.dif \ # || epatch ${FILESDIR}/${PN}-2.11z-01-nfsv4.dif # This patch should allow us to remove -fPIC # out of the filter-flags we need this be able to emit position # independent code so we can link our elf executables as shared # objects. "prelink" should now also be able to take advantage epatch ${FILESDIR}/${P}-pic.patch ## see below for details on pic.patch case ${ARCH} in "x86"|"hppa"|"sparc"|"ppc"|"amd64") ;; *) filter-flags -fPIC ;; esac # Add support to read fat/fat32 labels, bug #36722 epatch ${FILESDIR}/${P}-fat-LABEL-support.patch # Add support for gcloop use crypt || epatch ${FILESDIR}/${P}-gcloop.patch use crypt && epatch ${FILESDIR}/${P}-gcloop-with-crypt.patch # Enable pam only if we use it use pam && sed -i "s:HAVE_PAM=no:HAVE_PAM=yes:" MCONFIG use selinux && sed -i "s:HAVE_SELINUX=no:HAVE_SELINUX=yes:" MCONFIG sed -i \ -e "s:-pipe -O2 \$(CPUOPT) -fomit-frame-pointer:${CFLAGS}:" \ -e "s:CPU=.*:CPU=${CHOST%%-*}:" \ -e "s:HAVE_KILL=no:HAVE_KILL=yes:" \ -e "s:HAVE_SLN=no:HAVE_SLN=yes:" \ -e "s:HAVE_TSORT=no:HAVE_TSORT=yes:" \ -e "s:usr/man:usr/share/man:" \ -e "s:usr/info:usr/share/info:" \ -e "s:SUIDMODE=.*4755:SUIDMODE=4711:" \ MCONFIG || die "MCONFIG sed" if ! use nls ; then sed -i -e 's/DISABLE_NLS=no/DISABLE_NLS=yes/' MCONFIG || die "MCONFIG nls sed" fi # 2.6 kernels have a broken blkpg.h (if included in userspace ...) if [ -n "`grep __user /usr/include/linux/blkpg.h`" ] ; then mkdir ${S}/partx/linux sed -e 's:__user::g' /usr/include/linux/blkpg.h > \ ${S}/partx/linux/blkpg.h fi # Install rdev on amd64 platform epatch ${FILESDIR}/${PN}-2.12-amd64_rdev_installation.patch use uclibc && sed -e 's/sys_siglist\[sig\]/strsignal(sig)/' -i ${S}/mount/fstab.c } src_compile() { # opt to use non-lazy bindings for suids installed by this package. append-ldflags -Wl,-z,now use static && append-ldflags -static econf || die "configure failed" emake || die "emake failed" if [ ! -x "partx/partx" ] ; then cd ${S}/partx CFLAGS="-I." \ make || die "make partx failed" else ewarn "Build system now builds partx!" fi cd ${S}/sys-utils && makeinfo *.texi || die "makeinfo failed" } src_install() { make DESTDIR=${D} install || die "install failed" if [ ! -x "${D}/sbin/partx" ] ; then into / dosbin partx/{addpart,delpart,partx} else ewarn "Build system now installs partx!" fi dodoc HISTORY MAINTAINER README VERSION docinto licenses dodoc licenses/* HISTORY docinto examples dodoc example.files/* }