rendered paste body# $Id: PKGBUILD,v 1.149 2006/07/16 09:53:24 tpowa Exp $
# Maintainer: judd <jvinet@zeroflux.org>
pkgname=kernel26
basekernel=2.6.17
pkgver=2.6.17.6
pkgrel=1
pkgdesc="The Linux Kernel and modules"
arch=(i686 x86_64)
url="http://www.kernel.org"
backup=('boot/kconfig26')
depends=('module-init-tools' 'mkinitcpio' 'mkinitrd')
# pwc, ieee80211 and hostap-driver26 modules are included in kernel26 now
# kernel24 support is dropped since glibc24
replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi' 'alsa-driver' 'ieee80211' 'hostap-driver26' 'pwc')
install=kernel26.install
source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$basekernel.tar.bz2 \
http://www.kernel.org/pub/linux/kernel/v2.6/patch-$pkgver.bz2 \
#http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.17-rc6.bz2 \
#http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.17-rc6-git11.bz2 \
ftp://152.104.238.194/cn/nic/rtl8111brtl8168b/linux-r1000\(103\).zip r1000-build.patch \
config config.x86_64 logo_linux_clut224.ppm logo_linux_mono.pbm logo_linux_vga16.ppm \
mkinitcpio-$pkgname.conf \
#ftp://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/release/$basekernel/acpi-release-20060310-$basekernel.diff.bz2 \
powernow-k7.patch acpi-dsdt-initrd-v0.8.1-2.6.16.patch pata-fix.diff pwc-2.6.18-backport.patch.bz2 pcspeaker_x86_64.patch)
md5sums=('37ddefe96625502161f075b9d907f21e' 'd8598f06ed1ce41b4ea51d9eb7ed4277'\
'f2224191a05cbd2b64cc590c2e6a5958' '364367f84c718d0a08407ae7459df825'\
'2f663bb1519c0ea62ef3f472d5a1bdf3' '7508ad0fe9f4f9dadb9c56fe078b53e8'\
'5a62bcc7e96601052c7405459b483826' 'ed6b42fea2f5d27f7eb920746ccc1ebb'\
'a995ec849ea43d3c89d607bbdd1e7d09' '8baffc788327d96b55d2e3a1ae31fe1c'\
'a714ea45ed6fbafbdebfdaeeea42f33d' 'beaf6eb33317bcaf5cd93d68cec84ef5'\
'102690223f44ceb67d0073921c9a5c7d' 'c8996eed54b66f710ccbd7d18375d744'\
'436539e3b79a17389af543386f1b1bb1')
build() {
[ "${CARCH}" = "i686" ] && KARCH=i386
[ "${CARCH}" = "x86_64" ] && KARCH=x86_64
cd $startdir/src/linux-$basekernel
# add upstream patch from 2.6.17 series
#patch -Np1 -i ../patch-2.6.17-rc6 || return 1
#patch -Np1 -i ../patch-2.6.17-rc6-git11 || return 1
patch -Np1 -i ../patch-$pkgver || return 1
# fixes smp bug in powernow-k7
# is probably fixed upstream in 2.6.18 series
patch -Np1 -i ../powernow-k7.patch || return 1
# add acpi custom dsdt patch
patch -Np1 -i ../acpi-dsdt-initrd-v0.8.1-2.6.16.patch || return 1
# add pata fix for sata_promise
patch -Np1 -i ../pata-fix.diff || return 1
# trying to fix pwc driver
patch -Np1 -i ../pwc-2.6.18-backport.patch || return 1
# trying to fix pcspeaker for x86_64
if [ "${CARCH}" = "x86_64" ]; then
patch -Np1 -i ../pcspeaker_x86_64.patch || return 1
fi
# remove the extraversion from Makefile
sed -i 's|^EXTRAVERSION = .*$|EXTRAVERSION =|g' Makefile
# Arch logo!
cp ../logo_linux_clut224.ppm drivers/video/logo/
cp ../logo_linux_mono.pbm drivers/video/logo/
cp ../logo_linux_vga16.ppm drivers/video/logo/
if [ "${CARCH}" = "x86_64" ]; then
cat ../config.x86_64 >./.config
else
# get rid of the 'i' in i686
carch=`echo $CARCH | sed 's|i||'`
cat ../config | sed "s|#CARCH#|$carch|g" >./.config
fi
# build the full kernel version to use in pathnames
. ./.config
_kernver="${basekernel}${CONFIG_LOCALVERSION}"
# load configuration
yes "" | make config
# build!
make bzImage modules || return 1
mkdir -p $startdir/pkg/{lib/modules,boot}
make INSTALL_MOD_PATH=$startdir/pkg modules_install || return 1
cp System.map $startdir/pkg/boot/System.map26
cp arch/$KARCH/boot/bzImage $startdir/pkg/boot/vmlinuz26 # for x86_64
install -D -m644 Makefile \
$startdir/pkg/usr/src/linux-${_kernver}/Makefile
install -D -m644 kernel/Makefile \
$startdir/pkg/usr/src/linux-${_kernver}/kernel/Makefile
install -D -m644 .config \
$startdir/pkg/usr/src/linux-${_kernver}/.config
install -D -m644 .kernelrelease \
$startdir/pkg/usr/src/linux-${_kernver}/.kernelrelease
install -D -m644 .config $startdir/pkg/boot/kconfig26
mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include
mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/kernel
for i in acpi asm-generic asm-$KARCH config linux math-emu media net pcmcia scsi sound video; do
cp -a include/$i $startdir/pkg/usr/src/linux-${_kernver}/include/
done
# copy files necessary for later builds, like nvidia and vmware
cp Module.symvers $startdir/pkg/usr/src/linux-${_kernver}
cp -a scripts $startdir/pkg/usr/src/linux-${_kernver}
mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/.tmp_versions
cp arch/$KARCH/Makefile $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/
cp arch/$KARCH/Makefile.cpu $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/
cp arch/$KARCH/kernel/asm-offsets.s $startdir/pkg/usr/src/linux-${_kernver}/arch/$KARCH/kernel/
# add headers for lirc package
mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video
cp drivers/media/video/*.h $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/
for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102 usbvideo zc0301; do
mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/$i
cp -a drivers/media/video/$i/*.h $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video/$i
done
# add dm headers
mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/drivers/md
cp drivers/md/*.h $startdir/pkg/usr/src/linux-${_kernver}/drivers/md
# add inotify.h
mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/include/linux
cp include/linux/inotify.h $startdir/pkg/usr/src/linux-${_kernver}/include/linux/
# add CLUSTERIP file for iptables
mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/net/ipv4/netfilter/
cp net/ipv4/netfilter/ipt_CLUSTERIP.c $startdir/pkg/usr/src/linux-${_kernver}/net/ipv4/netfilter/
# copy in Kconfig files
for i in `find . -name "Kconfig*"`; do
mkdir -p $startdir/pkg/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'`
cp $i $startdir/pkg/usr/src/linux-${_kernver}/$i
done
cd $startdir/pkg/usr/src/linux-${_kernver}/include && ln -s asm-$KARCH asm
chown -R root.root $startdir/pkg/usr/src/linux-${_kernver}
cd $startdir/pkg/lib/modules/${_kernver} && \
(rm -f source build; ln -sf ../../../usr/src/linux-${_kernver} build)
# fix lirc until lirc is fixed upstream for 2.6.17
cd $startdir/pkg/usr/src/linux-${_kernver}/drivers/media/video
ln -s bt8xx/bttv.h bttv.h
ln -s bt8xx/bttvp.h bttvp.h
ln -s bt8xx/bt848.h bt848.h
# install fallback mkinitcpio.conf file for kernel
install -m644 -D $startdir/src/mkinitcpio-$pkgname.conf $startdir/pkg/boot/mkinitcpio-$pkgname.conf
# set correct depmod command for install
sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/kernel26.install
# install r1000 driver for newer realtek network cards
cd $startdir/src/r1000
patch -Np0 -i ../r1000-build.patch || return 1
make KDIR=$startdir/src/linux-$basekernel modules
install -D -m644 $startdir/src/r1000/src/r1000.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/net/r1000.ko
}