# Copyright 1999-2004 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sys-kernel/xfs-sources/xfs-sources-2.4.20-r5.ebuild,v 1.1 2004/01/07 13:55:10 plasmaroo Exp $ IUSE="build crypt" # OKV=original kernel version, KV=patched kernel version. They can be the same. # Kernel ebuilds using the kernel.eclass can remove any patch that you # do not want to apply by simply setting the KERNEL_EXCLUDE shell # variable to the string you want to exclude (for instance # KERNEL_EXCLUDE="evms" would not patch any patches whose names match # *evms*). Kernels are only tested in the default configuration, but # this may be useful if you know that a particular patch is causing a # conflict with a patch you personally want to apply, or some other # similar situation. ETYPE="sources" inherit kernel OKV=2.4.20 EXTRAVERSION=-xfs-r5 KV=${OKV}${EXTRAVERSION} S=${WORKDIR}/linux-${KV} # Documentation on the patches contained in this kernel will be installed # to /usr/share/doc/xfs-sources-${PV}/patches.txt.gz DESCRIPTION="Full sources for the XFS Specialized Gentoo Linux kernel" SRC_URI="mirror://kernel/linux/kernel/v2.4/linux-${OKV}.tar.bz2 mirror://gentoo/patches-${KV/${PR}/r3}.tar.bz2" KEYWORDS="x86 -ppc -sparc " SLOT="${KV}" src_unpack() { unpack ${A} mv ${WORKDIR}/${KV/${PR}/r3} ${WORKDIR}/${KV} mv linux-${OKV} linux-${KV} || die cd ${KV} # Kill patches we aren't suppposed to use, don't worry about # failures, if they aren't there that is a good thing! # If the compiler isn't gcc3 drop the gcc3 patches if [[ "${COMPILER}" == "gcc3" ]];then einfo "You are using gcc3, check out the special" einfo "processor types just for you" else einfo "Your compiler is not gcc3, dropping patches..." for file in *gcc3*;do einfo "Dropping ${file}..." rm -f ${file} done fi # This is the ratified crypt USE flag, enables IPSEC and patch-int if [ -z "`use crypt`" ]; then einfo "No Cryptographic support, dropping patches..." for file in 8*;do einfo "Dropping ${file}..." rm -f ${file} done else einfo "Cryptographic support enabled..." fi kernel_src_unpack cd ${S} epatch ${FILESDIR}/xfs-sources-2.4.20-gcc33.patch epatch ${FILESDIR}/do_brk_fix.patch || die "Failed to patch do_brk() vulnerability!" epatch ${FILESDIR}/${PN}.CAN-2003-0985.patch || die "Failed to patch mremap() vulnerability!" epatch ${FILESDIR}/${P}.rtc_fix.patch || die "Failed to patch RTC vulnerabilities!" }