#!/bin/bash
set -e
set -x
sourcerepo=$HOME/scm/linux-2.6
rev=$1
if [ "$rev" = "" ]; then
    echo "usage: $0 <commit>" 1>&2
    exit 1
fi
HEAD=$(cd $sourcerepo && git show --pretty=oneline $rev | head -n1 | cut -d' ' -f1 | cut -b1-16)
buildrepo=/tmpfs/linux-2.6
rm -fr $buildrepo
mkdir $buildrepo
cd $buildrepo

ssh nova "cd $sourcerepo && git archive $rev" | tar xf -

#git clone $sourcerepo $buildrepo
#cd $buildrepo
#git reset --hard "$rev"

outputdir=$HOME/obj/linux-2.6/$HEAD
mkdir $outputdir
rmdir $outputdir
VERSION=$HEAD
BUILDROOT=build-$VERSION
: ${CONFIG:=arch/arm/configs/gta02_packaging_defconfig}
: ${PARALLEL:=4}
: ${CROSS_COMPILE:=arm-linux-gnueabi-}
export CROSS_COMPILE

mkdir $BUILDROOT
cp $CONFIG $BUILDROOT/.config
make mrproper
make O=$BUILDROOT ARCH=arm silentoldconfig
make -j$PARALLEL O=$BUILDROOT ARCH=arm CONFIG_DEBUG_SECTION_MISMATCH=y EXTRAVERSION=-$VERSION
${CROSS_COMPILE}objcopy -O binary -R .note -R .comment -S $BUILDROOT/arch/arm/boot/compressed/vmlinux $BUILDROOT/linux.bin
mkimage -A arm -O linux -T kernel -C none -a 30008000 -e 30008000 -n $VERSION -d $BUILDROOT/linux.bin $BUILDROOT/uImage-$VERSION.bin
mkdir -p $BUILDROOT/staging
make O=$BUILDROOT ARCH=arm modules_install INSTALL_MOD_PATH=staging
cd $BUILDROOT/staging
mkdir $outputdir
tar czf $outputdir/modules-$VERSION.tar.gz .
cd ../..
cp $BUILDROOT/uImage-$VERSION.bin \
$BUILDROOT/arch/arm/boot/zImage $BUILDROOT/vmlinux \
$BUILDROOT/System.map $outputdir

KERNELVERSION=$(cd $BUILDROOT/staging/lib/modules && echo *|cut -d'-' -f1)
FULLVERSION=${KERNELVERSION}-$VERSION
pkg="linux-image-${KERNELVERSION}-${VERSION}_${KERNELVERSION}-${VERSION}"
mkdir $pkg
mkdir $pkg/DEBIAN
cat > $pkg/DEBIAN/control <<EOF
Package: linux-image-$FULLVERSION
Priority: optional
Section: kernel
Maintainer: Timo Juhani Lindfors <timo.lindfors@iki.fi>
Architecture: armel
Version: $FULLVERSION
Depends: libc6
Description: unofficial linux kernel $FULLVERSION
EOF
mv $BUILDROOT/staging/lib $pkg
mkdir $pkg/boot
mv $BUILDROOT/uImage-$VERSION.bin $pkg/boot/uImage-$FULLVERSION.bin
cp $BUILDROOT/.config $pkg/boot/config-$FULLVERSION
find $pkg/lib/modules -name "*.ko" -type f | xargs strip --strip-debug
rm -fr $pkg/lib/firmware
rm -f $pkg/kernel/fs/cifs/cifs.ko
rm -f $pkg/kernel/net/ipv6/ipv6.ko
rm -f $pkg/kernel/fs/reiserfs/reiserfs.ko
mkdir -p $pkg/usr/share/doc/linux-image-$FULLVERSION
(cd $sourcerepo && git log -10 -p $rev) > $pkg/usr/share/doc/linux-image-$FULLVERSION/gitlog
bzip2 -9 $pkg/usr/share/doc/linux-image-$FULLVERSION/gitlog
fakeroot dpkg-deb --build "$pkg" $outputdir
