#!/bin/sh
#
# Copyright 2004 Dagmar d'Surreal <rivyqntzne@tznvy.pbz>
# Available under the terms of the GNU GPL.
#

NAME="dhcp"
VERSION="3.0.4"
REVISION="1"

PKG_SOURCEURL='ftp://ftp.isc.org/isc/dhcp/dhcp-$VERSION.tar.gz'

PKG_PATCH[0]='dhcp-3.0.3-usrlocalremoval.diff'
PKG_PATCH[1]='default-dhclient.conf'
PKG_PATCH[2]='default-dhcpd.conf'
PKG_PATCH[3]="dhcp-3.0.2-extended_option_environment.patch"
PKG_PATCH[4]="dhcp-3.0.2-dhclient-no_isc_blurb.patch"
PKG_PATCH[5]="dhcp-3.0.2-dhclient_nodelay.patch"
PKG_PATCH[6]="dhcp-3.0.2-dhclient_decline_backoff.patch"
PKG_PATCH[7]="dhcp-3.0.2-dhclient_script_fast+arping-1.patch"
PKG_PATCH[8]="dhcp-3.0.2-dhclient-script-dbus-dhcdbd.patch"
PKG_PATCH[9]="dhclient-ntp.patch"
PKG_PATCH[10]="dhcp-3.0.3-tr.patch"
PKG_PATCH[11]="dhcp-3.0.2-gmake.patch"
PKG_PATCH[12]="dhcp-3.0.3-dhclient-resolvconf.patch"
PKG_PATCH[13]="dhcp-3.0.3-dhclient-metric.patch"
PKG_PATCH[14]="dhcp-3.0.3-dhclient-hostname.patch"
PKG_PATCH[15]="dhcp-3.0.3-dhclient-mtu.patch"
PKG_PATCH[16]="dhcp-3.0.3-libdst.patch"

. $DLG_ROOT/config
. $DLG_ROOT/SCRIPTS/dropline-functions.sh

PKG_DOCFILES="$PKG_DOCFILES RELNOTES"
# This one isn't really a configuration file but it has to be protected.
configfile /var/state/dhcp/dhcpd.leases
configfile /etc/dhclient.conf
configfile /etc/dhcpd.conf

# This thing basically ignores cflags.
prepare
analyzesource

applypatch 0 1
applypatch 3 1
applypatch 4 1
applypatch 5 1
applypatch 6 1
applypatch 7 1
applypatch 8 1
applypatch 9 1
applypatch 10 1
applypatch 11 1
applypatch 12 0
applypatch 13 0
applypatch 14 0
applypatch 15 0
applypatch 16 0

# This does what little we can to compensate for the cflags.
cd $PKG_BUILDROOT
if [ -z "$PKG_ARCH" ]; then
  sed -i -e "s/DEBUG = -g/DEBUG = -O2/;" Makefile.conf
else
  sed -i -e "s/DEBUG = -g/DEBUG = -O2 -march=$PKG_ARCH/;" Makefile.conf
fi

spewdo "cd $PKG_BUILDROOT"
spew 2 "Running the configure script..."
set_title "$NAME-$VERSION-$REVISION: configure phase"
loggedcommand configure "./configure"

make
makeinstall

spewdo "createdir $PKG_STAGEROOT$PKG_DOCDIR/examples/"
spewdo "cp $PKG_SRCROOT/client/dhclient.conf $PKG_STAGEROOT$PKG_DOCDIR/examples/"
spewdo "cp $PKG_SRCROOT/server/dhcpd.conf $PKG_STAGEROOT$PKG_DOCDIR/examples/"
tidydocumentation

# We save a *little* space this way, but not much.
spewdo "strip -g $PKG_STAGEROOT/sbin/* >/dev/null 2>&1"
spewdo "strip -g $PKG_STAGEROOT/usr/sbin/* >/dev/null 2>&1"

spewdo "createdir $PKG_STAGEROOT/etc"
findpatch dhclientconf ${PKG_PATCH[1]}
findpatch dhcpdconf ${PKG_PATCH[2]}
if [ ! -e $dhclientconf ]; then
  exit 1
elif [ ! -e $dhcpdconf ]; then
  exit 1
fi

spewdo "install -m 644 -o root -g root $dhclientconf $PKG_STAGEROOT/etc/dhclient.conf"
spewdo "install -m 644 -o root -g root $dhcpdconf $PKG_STAGEROOT/etc/dhcpd.conf"
spewdo "touch $PKG_STAGEROOT/var/state/dhcp/dhcpd.leases"

analyzebinaries
finalizepackage
packagize
cleanup
