#!/bin/sh
# Set initial variables:
CWD=`pwd`
if [ "$TMP" = "" ]; then
  TMP=/tmp
fi
PKG=$TMP/package-dhcpcd

VERSION=1.3.22-pl4
PACKAGE=1.3.22pl4
ARCH=${ARCH:-i486}
BUILD=${BUILD:-2}

if [ "$ARCH" = "i386" ]; then
  SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
elif [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mcpu=i686"
elif [ "$ARCH" = "s390" ]; then
  SLKCFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2"
fi

if [ ! -d $TMP ]; then
  mkdir -p $TMP # location to build the source
fi
rm -rf $PKG
mkdir -p $PKG

# Explode the package framework:
cd $PKG
explodepkg $CWD/_dhcpcd.tar.gz

cd $TMP
rm -rf dhcpcd-$VERSION
tar xzvf $CWD/dhcpcd-$VERSION.tar.gz
cd dhcpcd-$VERSION
chown -R root.root .
find . -perm 777 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
find . -perm 444 -exec chmod 644 {} \;
# Do not use i686 instructions:
zcat $CWD/dhcpcd.noarchforce.diff.gz | patch -p1 --verbose || exit
# Patch an issue that could allow a user on the same network to crash dhcpcd:
zcat $CWD/dhcpcd.CAN-2005-1848.diff.gz | patch -p1 --verbose || exit
# i686 code alignment is fine, though:
CFLAGS="$SLKCFLAGS" \
./configure \
  --prefix=/usr
make clean
make
strip dhcpcd
cat dhcpcd > $PKG/sbin/dhcpcd
cat dhcpcd.8 | gzip -9c > $PKG/usr/man/man8/dhcpcd.8.gz
cat << EOF > $PKG/etc/dhcpc/dhcpcd-eth0.exe
#!/bin/sh
echo "(dhcpcd)  IP address changed to \$1" | logger
EOF
chmod 750 $PKG/etc/dhcpc/dhcpcd-eth0.exe
mkdir -p $PKG/usr/doc/dhcpcd-$VERSION
cp -a pcmcia $PKG/usr/doc/dhcpcd-$VERSION
cp -a AUTHORS COPYING ChangeLog INSTALL NEWS README dhcpcd*lsm $PKG/usr/doc/dhcpcd-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

# Build the package:
cd $PKG
makepkg -l y -c n $TMP/dhcpcd-$PACKAGE-$ARCH-$BUILD.tgz