#!/bin/sh -ex
#
# Script to build a Debian binary package
# Version 1.5
#
# Robert Leslie <rob@mars.org>

test $# -eq 4 || exit 1

PKG="$1"
VER="$2"
ARC="$3"
TMP="$4"

rm -rf $TMP
umask 022

install -m 755 -d $TMP/DEBIAN
sed -e "2s/=/$VER/" -e "3s/=/$ARC/" debian/control > $TMP/DEBIAN/control
chown 0.0 $TMP/DEBIAN/control
chmod 644 $TMP/DEBIAN/control

install -m 644 debian/conffiles $TMP/DEBIAN/.

install -m 755 debian/prerm $TMP/DEBIAN/.
install -m 755 debian/postrm $TMP/DEBIAN/.
install -m 755 debian/preinst $TMP/DEBIAN/.
install -m 755 debian/postinst $TMP/DEBIAN/.

# init script

install -m 755 -d $TMP/etc/init.d
install -m 755 debian/sendmail.init $TMP/etc/init.d/sendmail

# sendmail proper and support programs

install -m 755 -d $TMP/usr/{bin,sbin,lib}
install -m 755 -d $TMP/usr/lib/sm.bin
install -m 755 -d $TMP/var/log

(
    TMP="$(pwd)/$TMP"

    cd src
    ./makesendmail install-sendmail  \
	DESTDIR="$TMP"  \
	BINGRP="root"  \
	STDIR="$TMP/var/log"  \
	BINMODE="4755"

    cd ../mailstats
    make -f Makefile.dist install-mailstats  \
	DESTDIR="$TMP"  \
	BINOWN="root"  \
	BINGRP="root"  \
	BINMODE="755"

    cd ../makemap
    make -f Makefile.dist install-makemap  \
	DESTDIR="$TMP"  \
	BINOWN="root"  \
	BINGRP="root"  \
	BINMODE="755"

    cd ../praliases
    make -f Makefile.dist install-praliases  \
	DESTDIR="$TMP"  \
	BINOWN="root"  \
	BINGRP="root"  \
	BINMODE="755"

    cd ../rmail
    install -m 755 rmail $TMP/usr/bin/.

    cd ../smrsh
    make -f Makefile.dist install-smrsh  \
	BINDIR="$TMP/usr/sbin"  \
	BINOWN="root"  \
	BINGRP="root"  \
	BINMODE="755"
)

strip $TMP/usr/sbin/{sendmail,mailstats,makemap,praliases,smrsh}  \
    $TMP/usr/bin/rmail

chmod 644 $TMP/usr/lib/sendmail.hf

for file in $TMP/usr/bin/{hoststat,mailq,newaliases,purgestat}  \
    $TMP/usr/lib/sendmail
do
    rm -f $file && ln -s ../sbin/sendmail $file
done

# man pages

install -m 755 -d $TMP/usr/man/{man1,man5,man8}

for file in src/*.[158]  \
	mailstats/*.8 makemap/*.8 praliases/*.8 smrsh/*.8 rmail/*.8
do
    base=$(basename $file)
    ext=$(echo $file | sed -e 's/.*\(.\)$/\1/')
    sed -e 's#/usr/adm/sm.bin#/usr/lib/sm.bin#g'  \
	-e 's#/etc/sendmail.hf#/usr/lib/sendmail.hf#g'  \
	-e 's#/bin:/usr/bin:/usr/ucb#/usr/bin:/bin#g'  \
	< $file | gzip -9c > $TMP/usr/man/man$ext/$base.gz
done

install -m 644 debian/sendmailconfig.man $TMP/usr/man/man8/sendmailconfig.8
gzip -9 $TMP/usr/man/man8/sendmailconfig.8

# configuration files

install -m 755 debian/sendmailconfig $TMP/usr/sbin/.

install -m 644 debian/aliases $TMP/etc/.

for dir in cf domain feature hack m4 mailer ostype sh siteconfig
do
    install -m 755 -d $TMP/usr/lib/sendmail.cf/$dir
done

install -m 644 debian/debproto.mc $TMP/usr/lib/sendmail.cf/cf/.
install -m 644 cf/domain/generic.m4 $TMP/usr/lib/sendmail.cf/domain/.
install -m 644 cf/feature/*.m4 $TMP/usr/lib/sendmail.cf/feature/.
install -m 644 cf/m4/*.m4 $TMP/usr/lib/sendmail.cf/m4/.
install -m 644 cf/mailer/*.m4 $TMP/usr/lib/sendmail.cf/mailer/.
install -m 644 debian/debian.m4 $TMP/usr/lib/sendmail.cf/ostype/.
install -m 644 cf/sh/*.sh $TMP/usr/lib/sendmail.cf/sh/.

# log file (created from postinst)

rm -rf $TMP/var

# documentation

install -m 755 -d $TMP/usr/doc/$PKG
install -m 644 debian/copyright $TMP/usr/doc/$PKG/.

for doc in doc/{changes/changes,intro/intro,op/op,usenix/usenix}
do
    install -m 644 $doc.txt $doc.ps $TMP/usr/doc/$PKG/.
done

install -m 644 FAQ KNOWNBUGS $TMP/usr/doc/$PKG/.
install -m 644 cf/README $TMP/usr/doc/$PKG/cf.README

gzip -9v $TMP/usr/doc/$PKG/*.{txt,ps} $TMP/usr/doc/$PKG/{FAQ,cf.README}

install -m 644 debian/changelog.Debian $TMP/usr/doc/$PKG/.
