#!/bin/sh # Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is # permitted provided that the following conditions are met: # # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. KERNNAME=generic VERSION=${VERSION:-2.6.29.6} ARCH=${ARCH:-x86_64} KARCH=${KARCH:-x86} BUILD=${BUILD:-1} TMP=${TMP:-/tmp} CWD=$(pwd) PKG=$TMP/package-kernel rm -rf $PKG mkdir -p $TMP $PKG # First try to find the loot in the current dir, then look # in /usr/src/linux-$VERSION: if [ -r $CWD/bzImage ]; then KERNEL=$CWD/bzImage elif [ -r $CWD/vmlinuz ]; then KERNEL=$CWD/vmlinuz elif [ -r $CWD/vmlinuz* ]; then KERNEL=$CWD/vmlinuz* else KERNEL=/usr/src/linux-$VERSION/arch/${KARCH}/boot/bzImage fi if [ -r $CWD/System.map.gz ]; then gzip -d $CWD/System.map.gz elif [ -r $CWD/System.map.bz2 ]; then bzip2 -d $CWD/System.map.bz2 fi if [ -r $CWD/System.map ]; then SYSMAP=$CWD/System.map elif [ -r $CWD/System.map* ]; then SYSMAP=$CWD/System.map* else SYSMAP=/usr/src/linux-$VERSION/System.map fi if [ -r $CWD/config ]; then CONFIG=$CWD/config elif [ -r $CWD/config* ]; then CONFIG=$CWD/config* elif [ -r $CWD/.config ]; then CONFIG=$CWD/.config else CONFIG=/usr/src/linux-$VERSION/.config fi cat << EOF Building kernel-$KERNNAME-${VERSION}-$ARCH-$BUILD.txz using these source files. Please check and then hit enter to make the package. KERNEL = $KERNEL SYSMAP = $SYSMAP CONFIG = $CONFIG EOF read junk; rm -rf $PKG mkdir -p $PKG mkdir -p $PKG/boot cp $KERNEL $PKG/boot/vmlinuz-$KERNNAME-${VERSION} ( cd $PKG/boot ; ln -sf vmlinuz-$KERNNAME-${VERSION} vmlinuz ) cp $SYSMAP $PKG/boot/System.map-$KERNNAME-${VERSION} ( cd $PKG/boot ; ln -sf System.map-$KERNNAME-${VERSION} System.map ) cp $CONFIG $PKG/boot/config-$KERNNAME-${VERSION} ( cd $PKG/boot ; ln -sf config-$KERNNAME-${VERSION} config ) mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc # Build the package: cd $PKG /sbin/makepkg -l y -c n $TMP/kernel-$KERNNAME-${VERSION}-$ARCH-$BUILD.txz