#!/bin/bash
set -e

#http_proxy=http://proxyserver.lan:3128
#ftp_proxy=http://proxyserver.lan:3128
#export http_proxy ftp_proxy

VERSION_DEBIAN="${1}"
VERSION="${2}"
VERSION_DEBIAN_BINNMU="${3}"

K_TEMP="${VERSION%%~*}"
K_TEMP="${K_TEMP%%-*}"

K_VERSION="$(echo ${K_TEMP} | cut -d\. -f1)"
K_PATCHLEVEL="$(echo ${K_TEMP} | cut -d\. -f2)"
K_SUBLEVEL="$(echo ${K_TEMP} | cut -d\. -f3)"

case "${VERSION}" in
	2\.*)
		MAJOR_VER="${K_VERSION}.${K_PATCHLEVEL}.${K_SUBLEVEL}"
		K_PATCHLEVEL_SYM="${K_PATCHLEVEL}"
		;;
	*)
		MAJOR_VER="${K_VERSION}.${K_PATCHLEVEL}"
		K_PATCHLEVEL_SYM="x"
		;;
esac

RC_VER="${VERSION#*\~}"
[ "x${VERSION%\~*}" = "x${RC_VER}" ] && RC_VER=""

TMP_DIR="$(mktemp -d -p /tmp linux-liquorix.XXXXXX)"
pushd "${TMP_DIR}"
	if [ -z "$RC_VER" ]; then
		# stable kernel
		UP_TARBALL="linux-${MAJOR_VER}.tar.bz2"
		wget -Nc "http://www.kernel.org/pub/linux/kernel/v${K_VERSION}.${K_PATCHLEVEL_SYM}/${UP_TARBALL}"

		if [ -n "${K_SUBLEVEL}" ]; then
			ORIG_TARBALL="linux-liquorix_${K_VERSION}.${K_PATCHLEVEL}.${K_SUBLEVEL}.orig.tar.bz2"
		else
			ORIG_TARBALL="linux-liquorix_${K_VERSION}.${K_PATCHLEVEL}.orig.tar.bz2"
		fi
	else
		# rc kernel
		UP_TARBALL="linux-${MAJOR_VER}-${RC_VER}.tar.bz2"
		#wget -Nc "http://www.kernel.org/pub/linux/kernel/v${K_VERSION}.${K_PATCHLEVEL_SYM}/testing/${UP_TARBALL}"
		cp /home/debbuilder/testkernel/private/${UP_TARBALL} ./
		if [ -n "${K_SUBLEVEL}" ]; then
			ORIG_TARBALL="linux-liquorix_${K_VERSION}.${K_PATCHLEVEL}.${K_SUBLEVEL}~${RC_VER}.orig.tar.bz2"
		else
			ORIG_TARBALL="linux-liquorix_${K_VERSION}.${K_PATCHLEVEL}~${RC_VER}.orig.tar.bz2"
		fi
	fi
popd >/dev/null 2>&1

mkdir "${TMP_DIR}/linux-${VERSION}"
pushd "${TMP_DIR}/linux-${VERSION}" >/dev/null 2>&1
	tar --strip 1 -xjf "${TMP_DIR}/${UP_TARBALL}"
	rm "${TMP_DIR}/${UP_TARBALL}"

	# remove shipped firmware images
	rm -rf	firmware \
		drivers/video/nvidia \
		drivers/video/riva \
		sound/pci/cs46xx/imgs

	# remove individual blobby files throughout the tree
	rm	Documentation/netlabel/draft-ietf-cipso-ipsecurity-01.txt \
		arch/powerpc/sysdev/micropatch.c \
		drivers/media/usb/dvb-usb/af9005-script.h \
		drivers/media/i2c/vs6624.c \
		drivers/net/appletalk/cops.c \
		drivers/net/appletalk/cops.h \
		drivers/net/appletalk/cops_ffdrv.h \
		drivers/net/appletalk/cops_ltdrv.h \
		drivers/staging/ft1000/ft1000-pcmcia/boot.h \
		drivers/staging/ft1000/ft1000-*/*.img \
		drivers/staging/keucr/init.h \
		drivers/staging/wlags49_h2/ap_h2.c \
		drivers/staging/wlags49_h2/ap_h25.c \
		drivers/staging/wlags49_h2/sta_h2.c \
		drivers/staging/wlags49_h2/sta_h25.c \
		sound/pci/cs46xx/cs46xx_image.h

	#unifdef drivers/staging/rtl8192e/r8192E_hwimg.c -UREMOVE_DFSG
	[ "x$(md5sum -b drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c | awk '{print $1}')" = "x7a968f2691c625f33ee004d6ba90bd61" ] || false
	sed -i	-e '23,2792d' \
		drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c

	echo "mark pruned modules as BROKEN"
	patch -p1 < ${0%$(basename $0)}/../patches/dfsg/orig/disable-pruned-modules.patch
popd >/dev/null 2>&1

pushd "${TMP_DIR}" >/dev/null 2>&1
	echo ""
	echo "create pruned ${ORIG_TARBALL}"
	tar	\
		--exclude \*\\.orig \
		--posix \
		--numeric-owner \
		--owner=0 \
		--group=0 \
		-cjf "${TMP_DIR}/${ORIG_TARBALL}" \
			"linux-${VERSION}"

	rm -rf ${TMP_DIR}/linux-${VERSION}
popd >/dev/null 2>&1

echo "COMPLETED: ${TMP_DIR}/${ORIG_TARBALL}"
