From 5cd6f8910de61c39af2c6821909bcab36bb983e6 Mon Sep 17 00:00:00 2001 From: Greg Frost 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 +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 ++#include + + /* + * 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