diff -U 3 -brN -x .svn -- core/PKGBUILD mod/PKGBUILD --- core/PKGBUILD 2009-02-04 00:04:46.000000000 -0500 +++ mod/PKGBUILD 2009-02-04 23:05:44.000000000 -0500 @@ -1,9 +1,11 @@ # $Id: PKGBUILD 25277 2009-01-25 10:01:21Z tpowa $ # Maintainer: Tobias Powalowski # Maintainer: Thomas Baechler -pkgname=kernel26 +# pkgname=kernel26 # Build stock -ARCH kernel +pkgname=kernel26-custom # Build kernel with a different name +_kernelname=${pkgname#kernel26} _basekernel=2.6.28 -pkgver=2.6.28.2 +pkgver=${_basekernel}.2 pkgrel=1 _patchname="patch-${pkgver}-${pkgrel}-ARCH" pkgdesc="The Linux Kernel and modules" @@ -21,6 +23,10 @@ 'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv' 'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs' 'gspcav1' 'atl2' 'wlan-ng26') +# Firmwares are included only in stock kernel to avoid conflicts +if [ "${_kernelname}" != "" ]; then +depends=(${depends[*]} 'kernel26') +fi install=kernel26.install source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2 ftp://ftp.archlinux.org/other/kernel26/${_patchname}.bz2 @@ -48,6 +54,9 @@ else cat ../config >./.config fi + if [ "${_kernelname}" != "" ]; then + sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config + fi # get kernel version make prepare _kernver="$(make kernelrelease)" @@ -63,8 +72,9 @@ make bzImage modules || return 1 mkdir -p ${pkgdir}/{lib/modules,boot} make INSTALL_MOD_PATH=${pkgdir} modules_install || return 1 - cp System.map ${pkgdir}/boot/System.map26 - cp arch/$KARCH/boot/bzImage ${pkgdir}/boot/vmlinuz26 + cp System.map ${pkgdir}/boot/System.map26${_kernelname} + cp arch/$KARCH/boot/bzImage ${pkgdir}/boot/vmlinuz26${_kernelname} + cp .config ${pkgdir}/boot/config${_kernelname} install -D -m644 Makefile \ ${pkgdir}/usr/src/linux-${_kernver}/Makefile install -D -m644 kernel/Makefile \ @@ -143,10 +153,27 @@ cd ${pkgdir}/lib/modules/${_kernver} && \ (rm -f source build; ln -sf ../../../usr/src/linux-${_kernver} build) # install fallback mkinitcpio.conf file and preset file for kernel - install -m644 -D ${srcdir}/${pkgname}.preset ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset || return 1 + install -m644 -D ${srcdir}/kernel26.preset ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset || return 1 # set correct depmod command for install - sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/kernel26.install + sed \ + -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \ + -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_basekernel}${_kernelname}/g" \ + -i $startdir/kernel26.install + sed \ + -e "s|source .*|source /etc/mkinitcpio.d/kernel26${_kernelname}.kver|g" \ + -e "s/ALL_kver=.*/ALL_kver='${_basekernel}${_kernelname}'/g" \ + -e "s|default_image=.*|default_image=\"/boot/${pkgname}.img\"|g" \ + -e "s|fallback_image=.*|fallback_image=\"/boot/${pkgname}-fallback.img\"|g" \ + -i ${pkgdir}/etc/mkinitcpio.d/${pkgname}.preset + echo -e "# DO NOT EDIT THIS FILE\nALL_kver='${_kernver}'" > ${startdir}/pkg/etc/mkinitcpio.d/${pkgname}.kver # remove unneeded architectures rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa} + + # FIXME: If not building stock kernel, remove the firmware + # directory or else it would conflict. Maybe theese files could + # be provided by another package? + if [ "${_kernelname}" != "" ]; then + rm -fr ${pkgdir}/lib/firmware + fi } diff -U 3 -brN -x .svn -- core/kernel26.install mod/kernel26.install --- core/kernel26.install 2009-02-04 00:04:46.000000000 -0500 +++ mod/kernel26.install 2009-02-04 23:04:31.000000000 -0500 @@ -1,6 +1,7 @@ # arg 1: the new package version # arg 2: the old package version +KERNEL_NAME= KERNEL_VERSION=2.6.28-ARCH post_install () { @@ -16,7 +17,7 @@ echo ">>> http://wiki.archlinux.org/index.php/Mkinitcpio" echo "" echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..." - /sbin/mkinitcpio -p kernel26 + /sbin/mkinitcpio -p kernel26${KERNEL_NAME} } post_upgrade() { @@ -88,8 +89,8 @@ echo ">>> Please change your bootloader config files:" echo ">>> Grub: /boot/grub/menu.lst | Lilo: /etc/lilo.conf" echo "------------------------------------------------" - echo "| - initrd26.img to kernel26.img |" - echo "| - initrd26-full.img to kernel26-fallback.img |" + echo "| - initrd26.img to kernel26${KERNEL_NAME}.img |" + echo "| - initrd26-full.img to kernel26${KERNEL_NAME}-fallback.img |" echo "------------------------------------------------" fi if [ "`vercmp $2 2.6.19`" -lt 0 ]; then @@ -121,11 +122,11 @@ echo "" echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..." if [ "`vercmp $2 2.6.19`" -lt 0 ]; then - /sbin/mkinitcpio -p kernel26 -m "ATTENTION:\nIf you get a kernel panic below + /sbin/mkinitcpio -p kernel26${KERNEL_NAME} -m "ATTENTION:\nIf you get a kernel panic below and are using an Intel chipset, append 'earlymodules=piix' to the kernel commandline" else - /sbin/mkinitcpio -p kernel26 + /sbin/mkinitcpio -p kernel26${KERNEL_NAME} fi if [ "`vercmp $2 2.6.21`" -lt 0 ]; then echo "" diff -U 3 -brN -x .svn -- core/kernel26.preset mod/kernel26.preset --- core/kernel26.preset 2009-02-04 00:04:46.000000000 -0500 +++ mod/kernel26.preset 2009-02-04 23:04:20.000000000 -0500 @@ -4,6 +4,7 @@ # DO NOT EDIT THIS LINE: source /etc/mkinitcpio.d/kernel26.kver ######################################## +ALL_kver='2.6.28' ALL_config="/etc/mkinitcpio.conf" PRESETS=('default' 'fallback')