#!/bin/sh

# package: Create a Debian package out of a tarball of Athena sources 
# generated by athena-tarball.
# Anders Kaseorg <andersk@mit.edu>

set -e

tarball=$1
if [ -z "$tarball" ]; then
    echo "Usage: $0 <tarball>" >&2
    exit 2
fi

PACKAGE=$(echo "$tarball" | sed 's/_[^_]*$//')
VERSION=$(echo "$tarball" | sed 's/^.*_//; s/\.orig\.tar\.gz$//')
echo "Creating $PACKAGE-$VERSION"

dir="$PACKAGE-$VERSION"
if [ -e "$dir" ]; then
    echo "$0: error: $dir already exists." >&2
    exit 1
fi

tmpdir=$(mktemp -dt "athena-debianize.$$.XXXXXXXXXX")
trap 'rm -rf "$tmpdir"' EXIT
tar -C "$tmpdir" -xzf "$tarball"
mv "$tmpdir"/* "$dir"
rm -rf "$tmpdir"
trap - EXIT

cp -Ta "$(dirname "$0")/debian.in" "$dir/debian"

(
    cd "$dir"
    
    dch --create --package "$PACKAGE" --newversion "$VERSION-0debathena1" --distribution unstable --noquery
    
    BUILD_DEPENDS=@cdbs@
    DEB_CONFIGURE_EXTRA_FLAGS=
    if [ -f "configure.in" ]; then
	if grep -q 'ATHENA_UTIL_COM_ERR' configure.in >/dev/null; then
	    BUILD_DEPENDS=${BUILD_DEPENDS},\ comerr-dev
	fi
	if grep -q 'ATHENA_UTIL_SS' configure.in >/dev/null; then
	    BUILD_DEPENDS=${BUILD_DEPENDS},\ ss-dev, libncurses-dev, libreadline-dev
	fi
	if grep -q 'ATHENA_MOTIF' configure.in >/dev/null; then
	    BUILD_DEPENDS=${BUILD_DEPENDS},\ libmotif-dev
	    DEB_CONFIGURE_EXTRA_FLAGS=${DEB_CONFIGURE_EXTRA_FLAGS}\ '--with-motif'
	fi
	if grep -q 'ATHENA_AFS' configure.in >/dev/null; then
	    BUILD_DEPENDS=${BUILD_DEPENDS},\ libopenafs-dev
	    DEB_CONFIGURE_EXTRA_FLAGS=${DEB_CONFIGURE_EXTRA_FLAGS}\ '--with-afs=/usr'
	fi
	if grep -q 'ATHENA_KRB' configure.in >/dev/null; then
	    BUILD_DEPENDS=${BUILD_DEPENDS},\ libkrb5-dev
	    if grep -q 'ATHENA_KRB4' configure.in >/dev/null; then
		DEB_CONFIGURE_EXTRA_FLAGS=${DEB_CONFIGURE_EXTRA_FLAGS}\ '--with-krb4=$(shell krb5-config --prefix krb4)'
	    fi
	    if grep -q 'ATHENA_KRB5' configure.in >/dev/null; then
		DEB_CONFIGURE_EXTRA_FLAGS=${DEB_CONFIGURE_EXTRA_FLAGS}\ '--with-krb5'
	    fi
	fi
	if grep -q 'ATHENA_HESIOD' configure.in >/dev/null; then
	    BUILD_DEPENDS=${BUILD_DEPENDS},\ libhesiod-dev
	    DEB_CONFIGURE_EXTRA_FLAGS=${DEB_CONFIGURE_EXTRA_FLAGS}\ '--with-hesiod'
	fi
	if grep -q 'ATHENA_ARES' configure.in >/dev/null; then
	    BUILD_DEPENDS=${BUILD_DEPENDS},\ libares-dev
	    DEB_CONFIGURE_EXTRA_FLAGS=${DEB_CONFIGURE_EXTRA_FLAGS}\ '--with-ares'
	fi
	if grep -q 'ATHENA_ZEPHYR' configure.in >/dev/null; then
	    BUILD_DEPENDS=${BUILD_DEPENDS},\ libzephyr-dev,\ libzephyr3-krb
	    DEB_CONFIGURE_EXTRA_FLAGS=${DEB_CONFIGURE_EXTRA_FLAGS}\ '--with-zephyr'
	fi
	if grep -q 'AC_PATH_XTRA' configure.in >/dev/null; then
	    BUILD_DEPENDS=${BUILD_DEPENDS},\ libx11-dev,\ libxt-dev
	fi
	if grep -qe '-I\$ATHTOOLROOT/usr/athena/include' configure.in >/dev/null; then
	    echo 'NOTE: you probably need more Build-Depends'
	fi
    fi

    sed -i "s|#DEB_CONFIGURE_EXTRA_FLAGS#|${DEB_CONFIGURE_EXTRA_FLAGS# }|g; /^DEB_CONFIGURE_EXTRA_FLAGS += $/ {$!N;d}" debian/rules
    sed -i "s|#PACKAGE#|$PACKAGE|g; s|#BUILD_DEPENDS#|$BUILD_DEPENDS|g" debian/control.in
    debian/rules -s debian/control
)

:
