From 5cd6f8910de61c39af2c6821909bcab36bb983e6 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sat, 20 Jun 2009 10:19:54 +0930
Subject: dhcp: added package for use with diskless FEs

---
 abs/core-testing/dhcp/PKGBUILD              | 46 +++++++++++++++++++++++++++++
 abs/core-testing/dhcp/dhcp-3.0.3-tr.c.patch | 10 +++++++
 abs/core-testing/dhcp/dhcp.install          | 15 ++++++++++
 abs/core-testing/dhcp/dhcpd                 | 39 ++++++++++++++++++++++++
 4 files changed, 110 insertions(+)
 create mode 100644 abs/core-testing/dhcp/PKGBUILD
 create mode 100644 abs/core-testing/dhcp/dhcp-3.0.3-tr.c.patch
 create mode 100644 abs/core-testing/dhcp/dhcp.install
 create mode 100755 abs/core-testing/dhcp/dhcpd

diff --git a/abs/core-testing/dhcp/PKGBUILD b/abs/core-testing/dhcp/PKGBUILD
new file mode 100644
index 0000000..f426778
--- /dev/null
+++ b/abs/core-testing/dhcp/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 23123 2009-01-03 02:43:02Z kevin $
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=dhcp
+pkgver=4.1.0
+pkgrel=1
+pkgdesc="A DHCP server, client, and relay agent"
+arch=(i686 x86_64)
+license=('custom:isc-dhcp')
+url="http://www.isc.org/sw/dhcp/"
+depends=('openssl>=0.9.8a')
+backup=('etc/dhcpd.conf' 'etc/dhclient.conf')
+install=dhcp.install
+source=(http://ftp.isc.org/isc/dhcp/dhcp-${pkgver}.tar.gz dhcp-3.0.3-tr.c.patch
+dhcpd)
+md5sums=('1fffed2e8c3d67b111316d6a9b33db7a' '39866416303b674df08b66b2d094e523'
+         '025b8fe98b6c0814428b671b1819a810')
+
+build() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  patch -p1 -i ../dhcp-3.0.3-tr.c.patch || return 1
+  # Define _GNU_SOURCE to fix IPV6.
+  sed '/^CFLAGS="$CFLAGS/ s/INGS"/INGS -D_GNU_SOURCE"/' -i configure
+  ./configure --prefix=/usr --sysconfdir=/etc \
+      --with-srv-lease-file=/var/state/dhcp/dhcpd.leases \
+      --with-srv6-lease-file=/var/state/dhcp/dhcpd6.leases
+  make || return 1
+  make DESTDIR=${pkgdir} install
+
+  #install -D -m644 server/dhcpd.conf ${pkgdir}/etc/dhcpd.conf
+  #install -D -m644 client/dhclient.conf ${pkgdir}/etc/dhclient.conf
+  install -D -m755 ${srcdir}/dhcpd ${pkgdir}/etc/rc.d/dhcpd
+  mkdir -p ${pkgdir}/var/state/dhcp
+  #touch ${pkgdir}/var/state/dhcp/dhcpd.leases
+  #chmod -R 644 ${pkgdir}/usr/share/man/*
+  #chmod 755 ${pkgdir}/usr/share/man/man{1,3,5,8}
+  #sed -i 's|etc/dhclient-script|sbin/dhclient-script|g' \
+  #${pkgdir}/etc/dhclient.conf
+  #rm -f ${pkgdir}/var/state/dhcp/dhcpd.leases
+  #rm -f ${pkgdir}/sbin/{dhclient,dhclient-script}
+  rm -f ${pkgdir}/etc/dhclient.conf
+  rm -f ${pkgdir}/usr/sbin/dhclient
+  rm -f ${pkgdir}/usr/share/man/man{5,8}/dhclient*
+  # install licenses
+  install -m644 -D ${srcdir}/${pkgname}-${pkgver}/LICENSE \
+                   ${pkgdir}/usr/share/licenses/dhcp/LICENSE
+}
diff --git a/abs/core-testing/dhcp/dhcp-3.0.3-tr.c.patch b/abs/core-testing/dhcp/dhcp-3.0.3-tr.c.patch
new file mode 100644
index 0000000..e262c5e
--- /dev/null
+++ b/abs/core-testing/dhcp/dhcp-3.0.3-tr.c.patch
@@ -0,0 +1,10 @@
+--- work.linux-2.2/common/tr.c	2005/08/14 11:34:24	1.1
++++ work.linux-2.2/common/tr.c	2005/08/14 11:35:16
+@@ -40,6 +40,7 @@ static char copyright[] =
+ #include "includes/netinet/if_ether.h"
+ #include "netinet/if_tr.h"
+ #include <sys/time.h>
++#include <linux/types.h>
+ 
+ /*
+  * token ring device handling subroutines.  These are required as token-ring
diff --git a/abs/core-testing/dhcp/dhcp.install b/abs/core-testing/dhcp/dhcp.install
new file mode 100644
index 0000000..edb84b1
--- /dev/null
+++ b/abs/core-testing/dhcp/dhcp.install
@@ -0,0 +1,15 @@
+# arg 1:  the new package version
+post_install() {
+  [ -f var/state/dhcp/dhcpd.leases ] || : >var/state/dhcp/dhcpd.leases
+  echo "If dhcpd doesn' start ensure the ipv6 kernel module is loaded."
+}
+
+# arg 1:  the new package version
+# arg 2:  the old package version
+post_upgrade() {
+  post_install $1
+}
+
+op=$1
+shift
+$op $*
diff --git a/abs/core-testing/dhcp/dhcpd b/abs/core-testing/dhcp/dhcpd
new file mode 100755
index 0000000..0aebcc8
--- /dev/null
+++ b/abs/core-testing/dhcp/dhcpd
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PIDFILE="/var/run/dhcpd.pid"
+PID=`cat $PIDFILE 2>/dev/null`
+case "$1" in
+  start)
+    stat_busy "Starting DHCP Server"
+    if [ "$PID" = "" ]; then 
+       /usr/sbin/dhcpd -q
+    fi
+    if [ "$PID" != "" -o $? -gt 0 ]; then
+      stat_fail
+    else
+      add_daemon dhcpd
+      stat_done
+    fi
+    ;;
+  stop)
+    stat_busy "Stopping DHCP Server"
+    [ ! -z "$PID" ]  && kill $PID &> /dev/null
+    rm -f $PIDFILE
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      rm_daemon dhcpd
+      stat_done
+    fi
+    ;;
+  restart)
+    $0 stop
+    sleep 1
+    $0 start
+    ;;
+  *)
+    echo "usage: $0 {start|stop|restart}"  
+esac
-- 
cgit v0.12

