--- trunk/include/kernel.sminc 2012/01/14 01:48:34 9880 +++ trunk/include/kernel.sminc 2013/08/14 10:49:25 18718 @@ -2,16 +2,20 @@ # $Id$ # needed extra vars: -# ${KERNEL_TYPE}: needed, 'sources', 'headers' or 'image' -# ${BRANCH}: needed, style branch of the kernel -# ${KERNEL_CONFIG}: optional, needed if you want to override the default -# searchpath ${SOURCEDIR}/${PNAME}/config-${PVER}-${BRANCH}-${PBUILD} +# ${KERNEL_TYPE}: needed, 'sources', 'headers' or 'image' +# ${BRANCH}: needed, style branch of the kernel +# ${KERNEL_CONFIG}: optional, needed if you want to override the default +# searchpath ${SOURCEDIR}/${PNAME}/config-${PVER}-${BRANCH}-${PBUILD} +# +# ${PSUBVER}: optional, only needed for 2.6.x.x naming scheme +# ${EXTRAVERSION}: optinal, extra version for the kernel name +# default setting is ${PSUBVER}-${BRANCH}-${PBUILD} +# ${KERNEL_IMAGE_PATH}: override the default KERNEL_IMAGE_PATH (to build xen images for e.g.) +# ${COMPRESS_MODULES}: compresses the kernel modules with given compressor (gzip|bzip2|xz) +# ${LINUX_FIRMWARE}: remove included firmware bits if requested +# set the version here like USE_LINUX_FIRMARE="20110605" +# version "internal" keeps the bits too # -# ${PSUBVER}: optional, only needed for 2.6.x.x naming scheme -# ${EXTRAVERSION}: optinal, extra version for the kernel name -# default setting is ${PSUBVER}-${BRANCH}-${PBUILD} -# ${KERNEL_IMAGE_PATH}: override the default KERNEL_IMAGE_PATH (to build xen images for e.g.) -# ${COMPRESS_MODULES}: compresses the kernel modules with given compressor (gzip|bzip2|xz) sminclude mtools @@ -23,15 +27,6 @@ KERNEL_ARCH_EXTENSION="" fi -# remove included firmware bits if requested -# set the version here like USE_LINUX_FIRMARE="20110605" -# version "internal" keeps the bits too -if [[ ! -z ${LINUX_FIRMWARE} ]] && [[ ${LINUX_FIRMWARE} != internal ]] -then - DEPEND="${DEPEND} - >= sys-kernel/linux-firmware-${LINUX_FIRMWARE}" -fi - if [[ ! -z ${COMPRESS_MODULES} ]] then case ${COMPRESS_MODULES} in @@ -86,10 +81,17 @@ case ${KERNEL_TYPE} in image) : ${PROVIDE="virtual/kernel"} - : ${DEPEND=">= sys-apps/module-init-tools-3.2 + : ${DEPEND=">= virtual/module-tools >= sys-fs/udev-115 - >= sys-apps/mkinitrd-5.0.8 + >= virtual/initramfs-tools >= virtual/initscripts"} + if [[ ! -z ${LINUX_FIRMWARE} ]] && [[ ${LINUX_FIRMWARE} != internal ]] + then + DEPEND="${DEPEND} + >= sys-kernel/linux-firmware-${LINUX_FIRMWARE}" + fi + SDEPEND="${SDEPEND} + >= sys-dev/bc-1.06" : ${DESCRIPTION="Kernel image of the '${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}' kernel branch."} ;; @@ -113,6 +115,12 @@ KBRANCH="${BRANCH}" SPECIAL_VARS="${SPECIAL_VARS} KPVER KPBUILD KBRANCH" +# dummy function to apply kernel patches +kernel_apply_patches() +{ + return 0 +} + kernel_src_prepare() { munpack ${SRCFILE} || die @@ -123,6 +131,7 @@ chmod -R a+r-w+X,u+w ${SRCDIR} || die cd ${SRCDIR} + kernel_apply_patches || die # fixes INSTALL_PATH to /boot and EXTRAVERSION sed -i -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' \ @@ -133,7 +142,7 @@ if [[ ${PVER%%.*} -gt 2 ]] then local sublevel="$(echo ${PVER} | cut -d. -f3)" - sed -i "s:^\(SUBLEVEL =\).*:\1 ${sublevel}:" Makefile || die + sed -i "s:^\(SUBLEVEL =\).*:\1 ${sublevel}:" Makefile || die fi } @@ -192,7 +201,7 @@ minstalldir /boot || die # install modules - make ARCH=${ARCH/i*86/x86} INSTALL_MOD_PATH=${BINDIR} modules_install || die + make ARCH=${ARCH/i*86/x86} INSTALL_MOD_PATH=${BINDIR}/usr modules_install || die # install kernelimage if [[ -z ${KERNEL_IMAGE_PATH} ]] @@ -236,31 +245,31 @@ || die # fix build symlink - if [ -L ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/build ] + if [ -L ${BINDIR}/usr/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/build ] then echo "fixing build symlink" - rm ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/build || die + rm ${BINDIR}/usr/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/build || die mlink /usr/src/linux-${PVER}-${BRANCH}-${PBUILD} \ - /lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/build \ + /usr/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/build \ || die fi # and fixing source symlink - if [ -L ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/source ] + if [ -L ${BINDIR}/usr/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/source ] then echo "fixing source symlink" - rm ${BINDIR}/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/source || die + rm ${BINDIR}/usr/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/source || die mlink /usr/src/linux-${PVER}-${BRANCH}-${PBUILD} \ - /lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/source \ + /usr/lib/modules/${PVER}-${BRANCH}-${PBUILD}${KERNEL_ARCH_EXTENSION}/source \ || die fi # remove firmware bits if $LINUX_FIRMWARE was set if [[ ! -z ${LINUX_FIRMWARE} ]] && [[ ${LINUX_FIRMWARE} != internal ]] then - if [[ -d ${BINDIR}/lib/firmware ]] + if [[ -d ${BINDIR}/usr/lib/firmware ]] then - rm -rv ${BINDIR}/lib/firmware + rm -rv ${BINDIR}/usr/lib/firmware fi fi @@ -399,7 +408,7 @@ if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]] then # remove old image entry from grub - new-kernel-pkg -v --rminitrd --remove ${KPVER}-${KBRANCH}-${KPBUILD} + new-kernel-pkg -v --rminitrd --rmmoddep --remove ${KPVER}-${KBRANCH}-${KPBUILD} fi } @@ -434,21 +443,23 @@ { # check for linux-VERSION/include as the kernel-image installs # the file Modules.symver in the linux-VERSION directory - if [ ! -d ${MROOT}/usr/src/linux-${KPVER}-${KBRANCH}-${KPBUILD}/include ] + if mqueryfeature "kernelsrcunpack" && + [ ! -d ${MROOT}/usr/src/linux-${KPVER}-${KBRANCH}-${KPBUILD}/include ] then echo "Unpacking linux-${KPVER}-${KBRANCH}-${KPBUILD} source tarball ... " tar xvjf ${MROOT}/usr/src/linux-${KPVER}-${KBRANCH}-${KPBUILD}.tar.bz2 -C ${MROOT}/usr/src fi - if [ ! -d ${MROOT}/usr/src/kernel-modules-${KPVER}-${KBRANCH}-${KPBUILD} ] && + if mqueryfeature "kernelsrcunpack" && + [ ! -d ${MROOT}/usr/src/kernel-modules-${KPVER}-${KBRANCH}-${KPBUILD} ] && [ -f ${MROOT}/usr/src/kernel-modules-${KPVER}-${KBRANCH}-${KPBUILD}.tar.bz2 ] then echo "Unpacking kernel-modules-${KPVER}-${KBRANCH}-${KPBUILD} source tarball ... " tar xvjf ${MROOT}/usr/src/kernel-modules-${KPVER}-${KBRANCH}-${KPBUILD}.tar.bz2 -C ${MROOT}/usr/src fi - # if not exist create linux symlink - if [ ! -h ${MROOT}/usr/src/linux ] + # create linux symlink + if mqueryfeature "linuxsymlink" then echo "Creating linux -> linux-${KPVER}-${KBRANCH}-${KPBUILD} symlink ... " [ ! -d ${MROOT}/usr/src ] && install ${MROOT}/usr/src @@ -456,8 +467,8 @@ ${MROOT}/usr/src/linux || die fi - # if not exist create kernel-modules symlink - if [ ! -h ${MROOT}/usr/src/kernel-modules ] && + # create kernel-modules symlink + if mqueryfeature "linuxsymlink" && [ -d ${MROOT}/usr/src/kernel-modules-${KPVER}-${KBRANCH}-${KPBUILD} ] then echo "Creating kernel-modules -> kernel-modules-${KPVER}-${KBRANCH}-${KPBUILD} symlink ... "