All pastes #92237 Raw Edit

tomfitzyuk

public text v1 · immutable
#92237 ·published 2006-07-19 11:33 UTC
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
}