From e0ac4fd3706f8521fe343229d94dd9725ca18280 Mon Sep 17 00:00:00 2001 From: Michael Hanson Date: Wed, 8 Dec 2010 21:05:20 +0000 Subject: dhcp: upgrade --- abs/core/dhcp/ChangeLog | 5 +- abs/core/dhcp/PKGBUILD | 66 +++++++++--- abs/core/dhcp/dhclient-script-pathFixes.patch | 118 +++++++++++++++++++++ .../dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch | 39 +++++++ abs/core/dhcp/dhcp.install | 6 +- 5 files changed, 214 insertions(+), 20 deletions(-) create mode 100644 abs/core/dhcp/dhclient-script-pathFixes.patch create mode 100644 abs/core/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch diff --git a/abs/core/dhcp/ChangeLog b/abs/core/dhcp/ChangeLog index 7b9cb47..9cffaa9 100644 --- a/abs/core/dhcp/ChangeLog +++ b/abs/core/dhcp/ChangeLog @@ -1,5 +1,8 @@ -2009-07-19 K. Piche +2010-07-16 kevin + * dhcp 4.2.0-1 + +2009-07-19 kevin * 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. diff --git a/abs/core/dhcp/PKGBUILD b/abs/core/dhcp/PKGBUILD index db15ac3..af4e49a 100644 --- a/abs/core/dhcp/PKGBUILD +++ b/abs/core/dhcp/PKGBUILD @@ -1,39 +1,77 @@ -# $Id: PKGBUILD 46754 2009-07-20 03:16:44Z kevin $ +# $Id: PKGBUILD 85736 2010-07-19 02:41:06Z kevin $ # Maintainer: judd -pkgname=dhcp +pkgbase=dhcp +pkgname=('dhcp' + 'dhclient') # separate patch levels with a period to maintain proper versioning. -pkgver=4.1.0.p1 -_pkgver=4.1.0p1 +pkgver=4.2.0 +_pkgver=4.2.0 pkgrel=1 -pkgdesc="A DHCP server, client, and relay agent" -arch=(i686 x86_64) +arch=('i686' 'x86_64') license=('custom:isc-dhcp') url="https://www.isc.org/software/dhcp" -depends=('openssl>=0.9.8a') -backup=('etc/dhcpd.conf' 'etc/conf.d/dhcp') -install=dhcp.install source=(http://ftp.isc.org/isc/${pkgname}/${pkgname}-${_pkgver}.tar.gz -dhcpd dhcp.conf.d dhcp-4.1.0-missing-ipv6-not-fatal.patch) +dhcpd dhcp.conf.d dhcp-4.1.1-missing-ipv6-not-fatal.patch dhclient-script-pathFixes.patch) +md5sums=('83abd7c4f9c24d8dd024ca5a71380c0a' + 'df22cffa7d7415ece7bb025b7bf774dd' + '49da3192e5c885e3c7d02f447c2dea5e' + 'fd64aeb4f399dcc41ea43089a3811094' + 'ddcc5cd576ec631ade6c4da21952b50b') build() { 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 + patch -Np0 -i ${srcdir}/dhcp-4.1.1-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 +} +package_dhcp(){ + pkgdesc="A DHCP server, client, and relay agent" + depends=('openssl>=0.9.8a') + backup=('etc/dhcpd.conf' 'etc/conf.d/dhcp') + install=dhcp.install + + cd ${srcdir}/${pkgname}-${_pkgver} + make DESTDIR=${pkgdir} install install -D -m755 ${srcdir}/dhcpd ${pkgdir}/etc/rc.d/dhcpd - install -D -m644 ${srcdir}/dhcp.conf.d ${pkgdir}/etc/conf.d/${pkgname} + install -D -m644 ${srcdir}/dhcp.conf.d ${pkgdir}/etc/conf.d/${pkgbase} mkdir -p ${pkgdir}/var/state/dhcp 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}/${pkgbase}-${_pkgver}/LICENSE \ ${pkgdir}/usr/share/licenses/dhcp/LICENSE } + +package_dhclient(){ + + pkgdesc="dhclient is standalone client from the dhcp package" + depends=('bash') + + cd ${srcdir}/${pkgname}-${_pkgver}/client/scripts + patch -Np1 -i ${srcdir}/dhclient-script-pathFixes.patch linux || return 1 + cd ${srcdir}/${pkgname}-${_pkgver}/client + make DESTDIR=${pkgdir} install + install -m755 -d ${startdir}/pkg/var/lib/dhclient + + #not needed after fresh install + rm -f ${pkgdir}/var/lib/dhclient/dhcpd.leases + + #move dhclient.conf to dhclient.conf.example + mv ${pkgdir}/etc/dhclient.conf ${pkgdir}/etc/dhclient.conf.example + + # install dhclient linux script + mkdir ${pkgdir}/sbin + install -m755 -D ${srcdir}/${pkgname}-${_pkgver}/client/scripts/linux \ + ${pkgdir}/sbin/dhclient-script + # install licenses + install -m644 -D ${srcdir}/${pkgname}-${_pkgver}/LICENSE \ + ${pkgdir}/usr/share/licenses/dhclient/LICENSE +} diff --git a/abs/core/dhcp/dhclient-script-pathFixes.patch b/abs/core/dhcp/dhclient-script-pathFixes.patch new file mode 100644 index 0000000..e19c328 --- /dev/null +++ b/abs/core/dhcp/dhclient-script-pathFixes.patch @@ -0,0 +1,118 @@ +--- linux 2009-04-21 16:21:09.000000000 +0200 ++++ linux_new 2010-06-30 19:06:20.000000000 +0200 +@@ -23,7 +23,7 @@ + # of the $1 in its args. + + # 'ip' just looks too weird. /sbin/ip looks less weird. +-ip=/sbin/ip ++ip=/usr/sbin/ip + + make_resolv_conf() { + if [ x"$new_domain_name_servers" != x ]; then +@@ -112,9 +112,9 @@ + if [ x$reason = xPREINIT ]; then + if [ x$alias_ip_address != x ]; then + # Bring down alias interface. Its routes will disappear too. +- ifconfig $interface:0- inet 0 ++ /sbin/ifconfig $interface:0- inet 0 + fi +- ifconfig $interface 0 up ++ /sbin/ifconfig $interface 0 up + + # We need to give the kernel some time to get the interface up. + sleep 1 +@@ -141,32 +141,32 @@ + if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \ + [ x$alias_ip_address != x$old_ip_address ]; then + # Possible new alias. Remove old alias. +- ifconfig $interface:0- inet 0 ++ /sbin/ifconfig $interface:0- inet 0 + fi + if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then + # IP address changed. Bringing down the interface will delete all routes, + # and clear the ARP cache. +- ifconfig $interface inet 0 down ++ /sbin/ifconfig $interface inet 0 down + + fi + if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \ + [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then + +- ifconfig $interface inet $new_ip_address $new_subnet_arg \ ++ /sbin/ifconfig $interface inet $new_ip_address $new_subnet_arg \ + $new_broadcast_arg $mtu_arg + # Add a network route to the computed network address. + for router in $new_routers; do + if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then +- route add -host $router dev $interface ++ /sbin/route add -host $router dev $interface + fi +- route add default gw $router $metric_arg dev $interface ++ /sbin/route add default gw $router $metric_arg dev $interface + done + fi + if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ]; + then +- ifconfig $interface:0- inet 0 +- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg +- route add -host $alias_ip_address $interface:0 ++ /sbin/ifconfig $interface:0- inet 0 ++ /sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg ++ /sbin/route add -host $alias_ip_address $interface:0 + fi + make_resolv_conf + exit_with_hooks 0 +@@ -176,42 +176,42 @@ + || [ x$reason = xSTOP ]; then + if [ x$alias_ip_address != x ]; then + # Turn off alias interface. +- ifconfig $interface:0- inet 0 ++ /sbin/ifconfig $interface:0- inet 0 + fi + if [ x$old_ip_address != x ]; then + # Shut down interface, which will delete routes and clear arp cache. +- ifconfig $interface inet 0 down ++ /sbin/ifconfig $interface inet 0 down + fi + if [ x$alias_ip_address != x ]; then +- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg +- route add -host $alias_ip_address $interface:0 ++ /sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg ++ /sbin/route add -host $alias_ip_address $interface:0 + fi + exit_with_hooks 0 + fi + + if [ x$reason = xTIMEOUT ]; then + if [ x$alias_ip_address != x ]; then +- ifconfig $interface:0- inet 0 ++ /sbin/ifconfig $interface:0- inet 0 + fi +- ifconfig $interface inet $new_ip_address $new_subnet_arg \ ++ /sbin/ifconfig $interface inet $new_ip_address $new_subnet_arg \ + $new_broadcast_arg $mtu_arg + set $new_routers + if ping -q -c 1 $1; then + if [ x$new_ip_address != x$alias_ip_address ] && \ + [ x$alias_ip_address != x ]; then +- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg +- route add -host $alias_ip_address dev $interface:0 ++ /sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg ++ /sbin/route add -host $alias_ip_address dev $interface:0 + fi + for router in $new_routers; do + if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then +- route add -host $router dev $interface ++ /sbin/route add -host $router dev $interface + fi +- route add default gw $router $metric_arg dev $interface ++ /sbin/route add default gw $router $metric_arg dev $interface + done + make_resolv_conf + exit_with_hooks 0 + fi +- ifconfig $interface inet 0 down ++ /sbin/ifconfig $interface inet 0 down + exit_with_hooks 1 + fi + diff --git a/abs/core/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch b/abs/core/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch new file mode 100644 index 0000000..cc5ddb8 --- /dev/null +++ b/abs/core/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch @@ -0,0 +1,39 @@ +--- common/discover.c 2009-09-29 21:44:49.000000000 +0200 ++++ common/discover.c_new 2010-06-30 19:40:02.000000000 +0200 +@@ -443,7 +443,7 @@ + } + + #ifdef DHCPv6 +- if (local_family == AF_INET6) { ++ if ((local_family == AF_INET6) && !access("/proc/net/if_inet6", R_OK)) { + ifaces->fp6 = fopen("/proc/net/if_inet6", "r"); + if (ifaces->fp6 == NULL) { + log_error("Error opening '/proc/net/if_inet6' to " +@@ -454,6 +454,8 @@ + ifaces->fp = NULL; + return 0; + } ++ } else { ++ ifaces->fp6 = NULL; + } + #endif + +@@ -721,7 +723,7 @@ + return 1; + } + #ifdef DHCPv6 +- if (!(*err)) { ++ if (!(*err) && ifaces->fp6) { + if (local_family == AF_INET6) + return next_iface6(info, err, ifaces); + } +@@ -740,7 +742,8 @@ + ifaces->sock = -1; + #ifdef DHCPv6 + if (local_family == AF_INET6) { +- fclose(ifaces->fp6); ++ if(ifaces->fp6) ++ fclose(ifaces->fp6); + ifaces->fp6 = NULL; + } + #endif diff --git a/abs/core/dhcp/dhcp.install b/abs/core/dhcp/dhcp.install index edb84b1..c0ad39e 100644 --- a/abs/core/dhcp/dhcp.install +++ b/abs/core/dhcp/dhcp.install @@ -1,7 +1,7 @@ # 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." + #echo "If dhcpd doesn't start, ensure the ipv6 kernel module is loaded." } # arg 1: the new package version @@ -9,7 +9,3 @@ post_install() { post_upgrade() { post_install $1 } - -op=$1 -shift -$op $* -- cgit v0.12