#!/bin/sh
set -x

tmpdir=$(mktemp -d -t "build-openafs.$$.XXXXXXXXXX") || exit $?
trap 'rm -rf "$tmpdir"' EXIT

while read dist kernels; do
    for kernel in $kernels; do
	kversion=$(echo "$kernel" | sed 's/^.*-headers-//')
	echo "Building for kernel $kversion..."
	mkdir -p "$tmpdir/$dist/$kversion"
	schroot -c "$dist-sbuild" -u root -- sh -xec "
	    #echo 'deb http://localhost:9999/ubuntu edgy-backports main restricted universe multiverse' >> /etc/apt/sources.list
	    #echo 'deb-src http://localhost:9999/ubuntu edgy-backports main restricted universe multiverse' >> /etc/apt/sources.list
	    apt-get -y update
            apt-get -y install module-assistant '$kernel'
            module-assistant -i -t -l '$kversion' get openafs
            module-assistant -i -t -l '$kversion' unpack openafs
            touch \"/usr/src/openafs-modules-${kversion}_\$(dpkg-query --showformat='\${Version}' --show openafs-modules-source)+\$(dpkg-query --showformat='\${Version}' --show '$kernel')_$(echo "$dist" | sed 's/.*-//').changes.pt\"
            trap \"mv /var/cache/modass/*buildlog* '$tmpdir/$dist/$kversion'\" EXIT
            eval \"\$(dpkg-architecture)\"
	    if [ \"\$DEB_HOST_ARCH\" != amd64 ] && fgrep -x CONFIG_X86_64=y '/lib/modules/${kversion}/build/.config'; then
                apt-get -y install binutils-multiarch util-linux
		type linux64 >/dev/null || apt-get -y install linux32
		export KPKG_ARCH=amd64
		export PERSONALITY=linux64
		export PATH=/afs/sipb.mit.edu/project/debathena/packages/third/openafs/hacked-arch:\$PATH
	    fi
	    if ! [ -e /usr/src/modules/openafs/debian/genchanges* ]; then
		install -m a=rx,u+w /afs/sipb.mit.edu/project/debathena/packages/third/openafs/genchanges.sh /usr/src/modules/openafs/debian/		
	    fi
            if [ \"$dist\" = \"lenny-i386\" || \"$dist\" = \"lenny-amd64\" ]; then
		install -m a=rx,u+w /afs/sipb.mit.edu/project/debathena/packages/third/openafs/genchanges.sh /usr/src/modules/openafs/debian/genchanges
            fi
            $PERSONALITY SIGNCHANGES=1 module-assistant -i -t -l '$kversion' auto-build openafs
            mv /usr/src/openafs-modules* '$tmpdir/$dist/$kversion'" \
            </dev/null
	if [ $? -ne 0 ]; then
	    echo "$dist $kernel" >> /mit/debathena/packages/third/openafs/failed.log
	fi
	mkdir -p "$dist"
	mv "$tmpdir/$dist/$kversion"/* "$dist"/
	rm "$tmpdir/$dist/$kversion" -rf
    done
done
