summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/dhcp
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core-testing/dhcp')
-rw-r--r--abs/core-testing/dhcp/ChangeLog8
-rw-r--r--abs/core-testing/dhcp/PKGBUILD33
-rw-r--r--abs/core-testing/dhcp/dhcp-3.0.3-tr.c.patch10
-rw-r--r--abs/core-testing/dhcp/dhcp-4.1.0-missing-ipv6-not-fatal.patch50
-rw-r--r--abs/core-testing/dhcp/dhcp.conf.d6
-rwxr-xr-xabs/core-testing/dhcp/dhcpd3
6 files changed, 79 insertions, 31 deletions
diff --git a/abs/core-testing/dhcp/ChangeLog b/abs/core-testing/dhcp/ChangeLog
new file mode 100644
index 0000000..7b9cb47
--- /dev/null
+++ b/abs/core-testing/dhcp/ChangeLog
@@ -0,0 +1,8 @@
+
+2009-07-19 K. Piche <kevin@archlinux.org>
+ * dhcp 4.1.0.p1-1
+ * Adopted RedHat patch to fix bug where dhcpd won't start if ipv6 module
+ is not loaded. Fixes FS#12792.
+ * Added /etc/conf.d/dhcp feature contributed by Fabiano Furtado Pessoa
+ Coelho <fusca14@gmail.com>
+
diff --git a/abs/core-testing/dhcp/PKGBUILD b/abs/core-testing/dhcp/PKGBUILD
index f426778..db15ac3 100644
--- a/abs/core-testing/dhcp/PKGBUILD
+++ b/abs/core-testing/dhcp/PKGBUILD
@@ -1,46 +1,39 @@
-# $Id: PKGBUILD 23123 2009-01-03 02:43:02Z kevin $
+# $Id: PKGBUILD 46754 2009-07-20 03:16:44Z kevin $
# Maintainer: judd <jvinet@zeroflux.org>
pkgname=dhcp
-pkgver=4.1.0
+# separate patch levels with a period to maintain proper versioning.
+pkgver=4.1.0.p1
+_pkgver=4.1.0p1
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/"
+url="https://www.isc.org/software/dhcp"
depends=('openssl>=0.9.8a')
-backup=('etc/dhcpd.conf' 'etc/dhclient.conf')
+backup=('etc/dhcpd.conf' 'etc/conf.d/dhcp')
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')
+source=(http://ftp.isc.org/isc/${pkgname}/${pkgname}-${_pkgver}.tar.gz
+dhcpd dhcp.conf.d dhcp-4.1.0-missing-ipv6-not-fatal.patch)
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
- patch -p1 -i ../dhcp-3.0.3-tr.c.patch || return 1
+ cd ${srcdir}/${pkgname}-${_pkgver}
# Define _GNU_SOURCE to fix IPV6.
sed '/^CFLAGS="$CFLAGS/ s/INGS"/INGS -D_GNU_SOURCE"/' -i configure
+ # Make not having ipv6 non-fatal.
+ patch -Np1 -i ${srcdir}/dhcp-4.1.0-missing-ipv6-not-fatal.patch
./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
+ install -D -m644 ${srcdir}/dhcp.conf.d ${pkgdir}/etc/conf.d/${pkgname}
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 \
+ 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
deleted file mode 100644
index e262c5e..0000000
--- a/abs/core-testing/dhcp/dhcp-3.0.3-tr.c.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- 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-4.1.0-missing-ipv6-not-fatal.patch b/abs/core-testing/dhcp/dhcp-4.1.0-missing-ipv6-not-fatal.patch
new file mode 100644
index 0000000..ebf3865
--- /dev/null
+++ b/abs/core-testing/dhcp/dhcp-4.1.0-missing-ipv6-not-fatal.patch
@@ -0,0 +1,50 @@
+diff -Naur dhcp-4.1.0a2/common/discover.c dhcp-4.1.0a2-mcn/common/discover.c
+--- dhcp-4.1.0a2/common/discover.c 2008-08-29 18:48:57.000000000 +0100
++++ dhcp-4.1.0a2-mcn/common/discover.c 2008-10-02 13:02:06.000000000 +0100
+@@ -443,15 +443,17 @@
+ }
+
+ #ifdef DHCPv6
+- ifaces->fp6 = fopen("/proc/net/if_inet6", "r");
+- if (ifaces->fp6 == NULL) {
+- log_error("Error opening '/proc/net/if_inet6' to "
+- "list IPv6 interfaces; %m");
+- close(ifaces->sock);
+- ifaces->sock = -1;
+- fclose(ifaces->fp);
+- ifaces->fp = NULL;
+- return 0;
++ if (local_family == AF_INET6) {
++ ifaces->fp6 = fopen("/proc/net/if_inet6", "r");
++ if (ifaces->fp6 == NULL) {
++ log_error("Error opening '/proc/net/if_inet6' to "
++ "list IPv6 interfaces; %m");
++ close(ifaces->sock);
++ ifaces->sock = -1;
++ fclose(ifaces->fp);
++ ifaces->fp = NULL;
++ return 0;
++ }
+ }
+ #endif
+
+@@ -720,7 +722,8 @@
+ }
+ #ifdef DHCPv6
+ if (!(*err)) {
+- return next_iface6(info, err, ifaces);
++ if (local_family == AF_INET6)
++ return next_iface6(info, err, ifaces);
+ }
+ #endif
+ return 0;
+@@ -736,7 +739,8 @@
+ close(ifaces->sock);
+ ifaces->sock = -1;
+ #ifdef DHCPv6
+- fclose(ifaces->fp6);
++ if (local_family == AF_INET6)
++ fclose(ifaces->fp6);
+ ifaces->fp6 = NULL;
+ #endif
+ }
diff --git a/abs/core-testing/dhcp/dhcp.conf.d b/abs/core-testing/dhcp/dhcp.conf.d
new file mode 100644
index 0000000..99ba6d1
--- /dev/null
+++ b/abs/core-testing/dhcp/dhcp.conf.d
@@ -0,0 +1,6 @@
+#
+# Arguments to be passed to the DHCP server daemon
+#
+
+DHCP_ARGS="-q"
+
diff --git a/abs/core-testing/dhcp/dhcpd b/abs/core-testing/dhcp/dhcpd
index 0aebcc8..1fbb31e 100755
--- a/abs/core-testing/dhcp/dhcpd
+++ b/abs/core-testing/dhcp/dhcpd
@@ -2,6 +2,7 @@
. /etc/rc.conf
. /etc/rc.d/functions
+. /etc/conf.d/dhcp
PIDFILE="/var/run/dhcpd.pid"
PID=`cat $PIDFILE 2>/dev/null`
@@ -9,7 +10,7 @@ case "$1" in
start)
stat_busy "Starting DHCP Server"
if [ "$PID" = "" ]; then
- /usr/sbin/dhcpd -q
+ /usr/sbin/dhcpd $DHCP_ARGS
fi
if [ "$PID" != "" -o $? -gt 0 ]; then
stat_fail