aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Lecher <jlec@gentoo.org>2013-06-13 14:57:18 +0200
committerJustin Lecher <jlec@gentoo.org>2013-06-13 14:57:18 +0200
commit8a86115f1ba95df631c27109752fc7c7070d36c6 (patch)
tree9002c949c1800228a711b6d39279b243da1416d3 /net-misc
parentdev-python/dimensionful: Bump to EAPI=5 and distutils-r1.eclass (diff)
downloadsci-8a86115f1ba95df631c27109752fc7c7070d36c6.tar.gz
sci-8a86115f1ba95df631c27109752fc7c7070d36c6.tar.bz2
sci-8a86115f1ba95df631c27109752fc7c7070d36c6.zip
Obsolete package
Signed-off-by: Justin Lecher <jlec@gentoo.org>
Diffstat (limited to 'net-misc')
-rw-r--r--net-misc/dhcp/ChangeLog61
-rw-r--r--net-misc/dhcp/Manifest1
-rw-r--r--net-misc/dhcp/dhcp-4.2.3_p2-r1.ebuild245
-rw-r--r--net-misc/dhcp/files/dhcp-3.0-fix-perms.patch15
-rw-r--r--net-misc/dhcp/files/dhcp-3.0.3-dhclient-dbus.patch84
-rw-r--r--net-misc/dhcp/files/dhcp-3.0.3-dhclient-no-down.patch70
-rw-r--r--net-misc/dhcp/files/dhcp-4.0-dhclient-ntp.patch216
-rw-r--r--net-misc/dhcp/files/dhcp-4.2.0-PPP.patch150
-rw-r--r--net-misc/dhcp/files/dhcp-4.2.0-errwarn-message.patch31
-rw-r--r--net-misc/dhcp/files/dhcp-4.2.2-bind-build-flags.patch14
-rw-r--r--net-misc/dhcp/files/dhcp-4.2.2-bind-disable.patch13
-rw-r--r--net-misc/dhcp/files/dhcp-4.2.2-bind-parallel-build.patch14
-rw-r--r--net-misc/dhcp/files/dhcp-4.2.2-dhclient-resolvconf.patch409
-rw-r--r--net-misc/dhcp/files/dhcp-4.2.2-dhclient-stdin-conf.patch113
-rw-r--r--net-misc/dhcp/files/dhcp-4.2.2-gpxe-cid.patch132
-rw-r--r--net-misc/dhcp/files/dhcp-4.2.2-improved-xid.patch138
-rw-r--r--net-misc/dhcp/files/dhcp-4.2.2-lpf-ib.patch538
-rw-r--r--net-misc/dhcp/files/dhcp-4.2.2-nogateway.patch46
-rw-r--r--net-misc/dhcp/files/dhcp-4.2.2-xen-checksum.patch249
-rw-r--r--net-misc/dhcp/files/dhcp-4.2.3-options.patch391
-rw-r--r--net-misc/dhcp/files/dhcpd.conf228
-rw-r--r--net-misc/dhcp/files/dhcpd.init294
-rwxr-xr-xnet-misc/dhcp/files/dhcpd.init5114
-rw-r--r--net-misc/dhcp/files/dhcrelay.conf13
-rwxr-xr-xnet-misc/dhcp/files/dhcrelay.init229
-rw-r--r--net-misc/dhcp/metadata.xml10
26 files changed, 0 insertions, 3218 deletions
diff --git a/net-misc/dhcp/ChangeLog b/net-misc/dhcp/ChangeLog
deleted file mode 100644
index 0b811b859..000000000
--- a/net-misc/dhcp/ChangeLog
+++ /dev/null
@@ -1,61 +0,0 @@
-# ChangeLog for net-misc/dhcp
-# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: $
-
-*dhcp-4.2.3_p2-r1 (15 Mar 2012)
-
- 15 Mar 2012; Alexey Shvetsov <alexxy@gentoo.org> +dhcp-4.2.3_p2-r1.ebuild,
- +files/dhcp-4.2.0-PPP.patch, +files/dhcp-4.2.2-xen-checksum.patch,
- +files/dhcp-4.2.3-options.patch, -dhcp-4.2.3_p1-r1.ebuild:
- [net-misc/dhcp] Import more patches to make also client work
-
- 15 Mar 2012; Alexey Shvetsov <alexxy@gentoo.org>
- +files/dhcp-4.2.2-gpxe-cid.patch, +files/dhcp-4.2.2-improved-xid.patch,
- +files/dhcp-4.2.2-lpf-ib.patch, -files/dhcp-4.2.0-ib-options.patch,
- -files/dhcp-4.2.0-improved-xid.patch, -files/dhcp-4.2.0-lpf-ib.patch,
- dhcp-4.2.3_p1-r1.ebuild:
- [net-misc/dhcp] Import patches from F17
-
- 15 Mar 2012; Alexey Shvetsov <alexxy@gentoo.org>
- files/dhcp-4.2.0-ib-options.patch:
- [net-misc/dhcp] once again
-
- 15 Mar 2012; Alexey Shvetsov <alexxy@gentoo.org>
- files/dhcp-4.2.0-ib-options.patch:
- [net-misc/dhcp] once again
-
- 15 Mar 2012; Alexey Shvetsov <alexxy@gentoo.org>
- files/dhcp-4.2.0-ib-options.patch:
- [net-misc/dhcp] wrong one =D
-
- 15 Mar 2012; Alexey Shvetsov <alexxy@gentoo.org>
- files/dhcp-4.2.0-ib-options.patch:
- [net-misc/dhcp] Opps fix patch
-
-*dhcp-4.2.3_p1-r1 (15 Mar 2012)
-
- 15 Mar 2012; Alexey Shvetsov <alexxy@gentoo.org> +dhcp-4.2.3_p1-r1.ebuild,
- +files/dhcp-4.2.0-ib-options.patch, +files/dhcp-4.2.2-bind-build-flags.patch,
- +files/dhcp-4.2.2-bind-disable.patch,
- +files/dhcp-4.2.2-bind-parallel-build.patch,
- +files/dhcp-4.2.2-dhclient-resolvconf.patch,
- +files/dhcp-4.2.2-dhclient-stdin-conf.patch,
- +files/dhcp-4.2.2-nogateway.patch, +files/dhcpd.conf2, +files/dhcpd.init5,
- -ChangeLog, -dhcp-4.2.1_p1-r1.ebuild, -files/dhcp-3.0-paranoia.patch,
- -files/dhcp-3.0.2-gmake.patch, -files/dhcp-3.0.3-dhclient-hostname.patch,
- -files/dhcp-3.0.3-dhclient-metric.patch, -files/dhcp-3.0.3-dhclient-mtu.patch,
- -files/dhcp-3.0.3-dhclient-ntp.patch, -files/dhcp-3.0.3-libdst.patch,
- -files/dhcp-3.0.3-no_isc_blurb.patch,
- -files/dhcp-3.0.4-dhclient-stdin-conf.patch,
- -files/dhcp-3.0.5-bpf-nofallback.patch,
- -files/dhcp-3.1.0a1-dhclient-resolvconf.patch,
- -files/dhcp-3.1.2_p1-CVE-2009-1892.patch,
- -files/dhcp-3.1.3-dhclient-no-down.patch,
- -files/dhcp-4.0.1-dhclient-stdin-conf.patch, -files/dhcp-4.2.0-options.patch,
- -files/dhcp-4.2.0-xen-checksum.patch,
- -files/dhcp-4.2.1-dhclient-resolvconf.patch,
- -files/dhcp-4.2.1-nogateway.patch, -files/dhcpd.conf, -files/dhcpd.init3,
- -files/dhcrelay.init, files/dhcp-4.2.0-improved-xid.patch,
- files/dhcp-4.2.0-lpf-ib.patch, metadata.xml:
- [net-misc/dhcp] Enable infiniband in new version
-
diff --git a/net-misc/dhcp/Manifest b/net-misc/dhcp/Manifest
deleted file mode 100644
index 5e3658ed5..000000000
--- a/net-misc/dhcp/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST dhcp-4.2.3-P2.tar.gz 9527546 SHA256 5cf7ae2cad9c4ca0103748b2476ec8ea78484e408f8fe597e4e0a4afb051b469 SHA512 539000628cdd2bc3b092aac545434dadbc74908a67b73adafcd4800ef65d69a004ea2f6a9964a11be00020b683febd071baaa0d371ca08491321bf3264334e2a WHIRLPOOL a824aa30121bfa6d4f41148d18028ad4c459a803cfccf8ce62f4704be0e6ec4d96736dd1a5b7a789a7c9ddb6afcbb97cc4bb02c8a325a0657ced7e03438c01b4
diff --git a/net-misc/dhcp/dhcp-4.2.3_p2-r1.ebuild b/net-misc/dhcp/dhcp-4.2.3_p2-r1.ebuild
deleted file mode 100644
index e0d862510..000000000
--- a/net-misc/dhcp/dhcp-4.2.3_p2-r1.ebuild
+++ /dev/null
@@ -1,245 +0,0 @@
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/dhcp/dhcp-4.2.3_p1.ebuild,v 1.7 2012/01/01 15:03:13 armin76 Exp $
-
-EAPI="2"
-
-inherit eutils user toolchain-funcs
-
-MY_PV="${PV//_alpha/a}"
-MY_PV="${MY_PV//_beta/b}"
-MY_PV="${MY_PV//_rc/rc}"
-MY_PV="${MY_PV//_p/-P}"
-MY_P="${PN}-${MY_PV}"
-DESCRIPTION="ISC Dynamic Host Configuration Protocol (DHCP) client/server"
-HOMEPAGE="http://www.isc.org/products/DHCP"
-SRC_URI="ftp://ftp.isc.org/isc/dhcp/${MY_P}.tar.gz
- ftp://ftp.isc.org/isc/dhcp/${MY_PV}/${MY_P}.tar.gz"
-
-LICENSE="as-is BSD"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd"
-IUSE="+client ipv6 infiniband kernel_linux ldap selinux +server ssl vim-syntax"
-
-DEPEND="selinux? ( sec-policy/selinux-dhcp )
- kernel_linux? ( sys-apps/net-tools )
- ldap? (
- net-nds/openldap
- ssl? ( dev-libs/openssl )
- )"
-RDEPEND="${DEPEND}
- vim-syntax? ( app-vim/dhcpd-syntax )"
-
-S="${WORKDIR}/${MY_P}"
-
-src_unpack() {
- unpack ${A}
- # handle local bind hell
- cd "${S}"/bind
- unpack ./bind.tar.gz
-}
-
-src_prepare() {
- # Gentoo patches - these will probably never be accepted upstream
- # Fix some permission issues
- epatch "${FILESDIR}"/${PN}-3.0-fix-perms.patch
- # Enable dhclient to equery NTP servers
- epatch "${FILESDIR}"/${PN}-4.0-dhclient-ntp.patch
- # resolvconf support in dhclient-script
- epatch "${FILESDIR}"/${PN}-4.2.2-dhclient-resolvconf.patch
- # Stop downing the interface on Linux as that breaks link daemons
- # such as wpa_supplicant and netplug
- epatch "${FILESDIR}"/${PN}-3.0.3-dhclient-no-down.patch
- epatch "${FILESDIR}"/${PN}-4.2.0-errwarn-message.patch
- # Enable dhclient to get extra configuration from stdin
- epatch "${FILESDIR}"/${PN}-4.2.2-dhclient-stdin-conf.patch
- epatch "${FILESDIR}"/${PN}-4.2.2-nogateway.patch #265531
-
- # NetworkManager support patches
- # If they fail to apply to future versions they will be dropped
- # Add dbus support to dhclient
- epatch "${FILESDIR}"/${PN}-3.0.3-dhclient-dbus.patch
-
- # infiniband patches
- if use infiniband; then
- epatch "${FILESDIR}"/${PN}-4.2.3-options.patch
- epatch "${FILESDIR}"/${PN}-4.2.2-xen-checksum.patch
- epatch "${FILESDIR}"/${PN}-4.2.0-PPP.patch
- epatch "${FILESDIR}"/${PN}-4.2.2-lpf-ib.patch
- epatch "${FILESDIR}"/${PN}-4.2.2-improved-xid.patch
- epatch "${FILESDIR}"/${PN}-4.2.2-gpxe-cid.patch
- fi
-
- # Brand the version with Gentoo
- sed -i \
- -e "/VERSION=/s:'$: Gentoo-${PR}':" \
- configure || die
-
- # Change the hook script locations of the scripts
- sed -i \
- -e 's,/etc/dhclient-exit-hooks,/etc/dhcp/dhclient-exit-hooks,g' \
- -e 's,/etc/dhclient-enter-hooks,/etc/dhcp/dhclient-enter-hooks,g' \
- client/scripts/* || die
-
- # No need for the linux script to force bash #158540
- sed -i -e 's,#!/bin/bash,#!/bin/sh,' client/scripts/linux || die
-
- # Quiet the freebsd logger a little
- sed -i -e '/LOGGER=/ s/-s -p user.notice //g' client/scripts/freebsd || die
-
- # Remove these options from the sample config
- sed -i \
- -e "/\(script\|host-name\|domain-name\) / d" \
- client/dhclient.conf || die
-
- if use client && ! use server ; then
- sed -i -r \
- -e '/^SUBDIRS/s:\<(dhcpctl|relay|server)\>::g' \
- Makefile.in || die
- elif ! use client && use server ; then
- sed -i -r \
- -e '/^SUBDIRS/s:\<client\>::' \
- Makefile.in || die
- fi
-
- # Only install different man pages if we don't have en
- if [[ " ${LINGUAS} " != *" en "* ]]; then
- # Install Japanese man pages
- if [[ " ${LINGUAS} " == *" ja "* && -d doc/ja_JP.eucJP ]]; then
- einfo "Installing Japanese documention"
- cp doc/ja_JP.eucJP/dhclient* client
- cp doc/ja_JP.eucJP/dhcp* common
- fi
- fi
- # Now remove the non-english docs so there are no errors later
- rm -rf doc/ja_JP.eucJP
-
- # make the bind build work
- binddir=${S}/bind
- cd "${binddir}" || die
- cat <<-EOF > bindvar.tmp
- binddir=${binddir}
- GMAKE=${MAKE:-gmake}
- EOF
- epatch "${FILESDIR}"/${PN}-4.2.2-bind-disable.patch
- cd bind-*/
- epatch "${FILESDIR}"/${PN}-4.2.2-bind-parallel-build.patch #380717
- epatch "${FILESDIR}"/${PN}-4.2.2-bind-build-flags.patch
-}
-
-src_configure() {
- # bind defaults to stupid `/usr/bin/ar`
- tc-export AR BUILD_CC
- export ac_cv_path_AR=${AR}
-
- # this is tested for by the bind build system, and can cause trouble
- # when cross-building; since dhcp itself doesn't make use of libcap,
- # simply disable it.
- export ac_cv_lib_cap_cap_set_proc=no
-
- # Use FHS sane paths ... some of these have configure options,
- # but not all, so just do it all here.
- local e="/etc/dhcp" r="/var/run/dhcp" l="/var/lib/dhcp"
- cat <<-EOF >> includes/site.h
- #define _PATH_DHCPD_CONF "${e}/dhcpd.conf"
- #define _PATH_DHCLIENT_CONF "${e}/dhclient.conf"
- #define _PATH_DHCPD_DB "${l}/dhcpd.leases"
- #define _PATH_DHCPD6_DB "${l}/dhcpd6.leases"
- #define _PATH_DHCLIENT_DB "${l}/dhclient.leases"
- #define _PATH_DHCLIENT6_DB "${l}/dhclient6.leases"
- #define _PATH_DHCPD_PID "${r}/dhcpd.pid"
- #define _PATH_DHCPD6_PID "${r}/dhcpd6.pid"
- #define _PATH_DHCLIENT_PID "${r}/dhcpclient.pid"
- #define _PATH_DHCLIENT6_PID "${r}/dhcpclient6.pid"
- #define _PATH_DHCRELAY_PID "${r}/dhcrelay.pid"
- #define _PATH_DHCRELAY6_PID "${r}/dhcrelay6.pid"
- EOF
-
- econf \
- --enable-paranoia \
- --enable-early-chroot \
- --sysconfdir=${e} \
- $(use_enable ipv6 dhcpv6) \
- $(use_with ldap) \
- $(use ldap && use_with ssl ldapcrypto || echo --without-ldapcrypto)
-
- # configure local bind cruft. symtable option requires
- # perl and we don't want to require that #383837.
- cd bind/bind-*/ || die
- eval econf \
- $(sed -n '/ [.].configure /{s:^[^-]*::;s:>.*::;p}' ../Makefile) \
- --disable-symtable \
- --without-make-clean
-}
-
-src_compile() {
- # build local bind cruft first
- emake -C bind/bind-*/lib/export install || die
- # then build standard dhcp code
- emake || die
-}
-
-src_install() {
- emake install DESTDIR="${D}" || die
-
- dodoc README RELNOTES doc/{api+protocol,IANA-arp-parameters}
- dohtml doc/References.html
-
- if [[ -e client/dhclient ]] ; then
- # move the client to /
- dodir /sbin
- mv "${D}"/usr/sbin/dhclient "${D}"/sbin/ || die
-
- exeinto /sbin
- if use kernel_linux ; then
- newexe "${S}"/client/scripts/linux dhclient-script || die
- else
- newexe "${S}"/client/scripts/freebsd dhclient-script || die
- fi
- fi
-
- if [[ -e server/dhcpd ]] ; then
- if use ldap ; then
- insinto /etc/openldap/schema
- doins contrib/ldap/dhcp.* || die
- dosbin contrib/ldap/dhcpd-conf-to-ldap || die
- fi
-
- newinitd "${FILESDIR}"/dhcpd.init5 dhcpd || die
- newconfd "${FILESDIR}"/dhcpd.conf2 dhcpd || die
- newinitd "${FILESDIR}"/dhcrelay.init2 dhcrelay || die
- newconfd "${FILESDIR}"/dhcrelay.conf dhcrelay || die
- fi
-
- # the default config files aren't terribly useful #384087
- sed -i '/^[^#]/s:^:#:' "${D}"/etc/dhcp/*.conf || die
-}
-
-pkg_preinst() {
- enewgroup dhcp
- enewuser dhcp -1 -1 /var/lib/dhcp dhcp
-
- # Keep the user files over the sample ones. The
- # hashing is to ignore the crappy defaults #384087.
- local f h
- for f in dhclient:da7c8496a96452190aecf9afceef4510 dhcpd:10979e7b71134bd7f04d2a60bd58f070 ; do
- h=${f#*:}
- f="/etc/dhcp/${f%:*}.conf"
- if [ -e "${ROOT}"${f} ] ; then
- case $(md5sum "${ROOT}"${f}) in
- ${h}*) ;;
- *) cp -p "${ROOT}"${f} "${D}"${f};;
- esac
- fi
- done
-}
-
-pkg_postinst() {
- if [[ -e "${ROOT}"/etc/init.d/dhcp ]] ; then
- ewarn
- ewarn "WARNING: The dhcp init script has been renamed to dhcpd"
- ewarn "/etc/init.d/dhcp and /etc/conf.d/dhcp need to be removed and"
- ewarn "and dhcp should be removed from the default runlevel"
- ewarn
- fi
-}
diff --git a/net-misc/dhcp/files/dhcp-3.0-fix-perms.patch b/net-misc/dhcp/files/dhcp-3.0-fix-perms.patch
deleted file mode 100644
index 13debb20e..000000000
--- a/net-misc/dhcp/files/dhcp-3.0-fix-perms.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- server/dhcpd.c 2003-11-05 14:08:09.000000000 -0800
-+++ server/dhcpd.c 2003-11-05 14:15:32.000000000 -0800
-@@ -602,6 +602,12 @@
- if (lftest)
- exit (0);
-
-+#if defined (PARANOIA)
-+ /* Set proper permissions... */
-+ if (lchown (path_dhcpd_db, set_uid, set_gid))
-+ log_fatal ("lchown(%s, %d, %d): %m", path_dhcpd_db, (int) set_uid, (int) set_gid);
-+#endif /* PARANOIA */
-+
- /* Discover all the network interfaces and initialize them. */
- discover_interfaces (DISCOVER_SERVER);
-
diff --git a/net-misc/dhcp/files/dhcp-3.0.3-dhclient-dbus.patch b/net-misc/dhcp/files/dhcp-3.0.3-dhclient-dbus.patch
deleted file mode 100644
index 579d72f48..000000000
--- a/net-misc/dhcp/files/dhcp-3.0.3-dhclient-dbus.patch
+++ /dev/null
@@ -1,84 +0,0 @@
---- client/scripts/bsdos
-+++ client/scripts/bsdos
-@@ -47,6 +47,11 @@
- . /etc/dhcp/dhclient-exit-hooks
- fi
- # probably should do something with exit status of the local script
-+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+ dbus-send --system --dest=com.redhat.dhcp \
-+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+ fi
- exit $exit_status
- }
-
---- client/scripts/freebsd
-+++ client/scripts/freebsd
-@@ -57,6 +57,11 @@
- . /etc/dhcp/dhclient-exit-hooks
- fi
- # probably should do something with exit status of the local script
-+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+ dbus-send --system --dest=com.redhat.dhcp \
-+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+ fi
- exit $exit_status
- }
-
---- client/scripts/linux
-+++ client/scripts/linux
-@@ -69,6 +69,11 @@
- . /etc/dhcp/dhclient-exit-hooks
- fi
- # probably should do something with exit status of the local script
-+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+ dbus-send --system --dest=com.redhat.dhcp \
-+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+ fi
- exit $exit_status
- }
-
---- client/scripts/netbsd
-+++ client/scripts/netbsd
-@@ -47,6 +47,11 @@
- . /etc/dhcp/dhclient-exit-hooks
- fi
- # probably should do something with exit status of the local script
-+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+ dbus-send --system --dest=com.redhat.dhcp \
-+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+ fi
- exit $exit_status
- }
-
---- client/scripts/openbsd
-+++ client/scripts/openbsd
-@@ -47,6 +47,11 @@
- . /etc/dhcp/dhclient-exit-hooks
- fi
- # probably should do something with exit status of the local script
-+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+ dbus-send --system --dest=com.redhat.dhcp \
-+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+ fi
- exit $exit_status
- }
-
---- client/scripts/solaris
-+++ client/scripts/solaris
-@@ -47,6 +47,11 @@
- . /etc/dhcp/dhclient-exit-hooks
- fi
- # probably should do something with exit status of the local script
-+ if [ x$dhc_dbus != x -a $exit_status -eq 0 ]; then
-+ dbus-send --system --dest=com.redhat.dhcp \
-+ --type=method_call /com/redhat/dhcp/$interface com.redhat.dhcp.set \
-+ 'string:'"`env | grep -Ev '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`"
-+ fi
- exit $exit_status
- }
-
diff --git a/net-misc/dhcp/files/dhcp-3.0.3-dhclient-no-down.patch b/net-misc/dhcp/files/dhcp-3.0.3-dhclient-no-down.patch
deleted file mode 100644
index 518efec11..000000000
--- a/net-misc/dhcp/files/dhcp-3.0.3-dhclient-no-down.patch
+++ /dev/null
@@ -1,70 +0,0 @@
---- client/scripts/linux
-+++ client/scripts/linux
-@@ -118,9 +118,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
-+ ifconfig $interface:0- inet 0.0.0.0
- fi
-- ifconfig $interface 0 up
-+ ifconfig $interface 0.0.0.0 up
-
- # We need to give the kernel some time to get the interface up.
- sleep 1
-@@ -145,12 +145,12 @@
- 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
-+ ifconfig $interface:0- inet 0.0.0.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
-+ ifconfig $interface inet 0.0.0.0
-
- fi
- if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \
-@@ -171,7 +171,7 @@
- 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 0.0.0.0
- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
- route add -host $alias_ip_address $interface:0
- fi
-@@ -183,11 +183,11 @@
- || [ x$reason = xSTOP ]; then
- if [ x$alias_ip_address != x ]; then
- # Turn off alias interface.
-- ifconfig $interface:0- inet 0
-+ ifconfig $interface:0- inet 0.0.0.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
-+ ifconfig $interface inet 0.0.0.0
- fi
- if [ x$alias_ip_address != x ]; then
- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
-@@ -198,7 +198,7 @@
-
- if [ x$reason = xTIMEOUT ]; then
- if [ x$alias_ip_address != x ]; then
-- ifconfig $interface:0- inet 0
-+ ifconfig $interface:0- inet 0.0.0.0
- fi
- ifconfig $interface inet $new_ip_address $new_subnet_arg \
- $new_broadcast_arg $mtu_arg
-@@ -223,7 +223,7 @@
- make_resolv_conf
- exit_with_hooks 0
- fi
-- ifconfig $interface inet 0 down
-+ ifconfig $interface inet 0.0.0.0
- exit_with_hooks 1
- fi
-
diff --git a/net-misc/dhcp/files/dhcp-4.0-dhclient-ntp.patch b/net-misc/dhcp/files/dhcp-4.0-dhclient-ntp.patch
deleted file mode 100644
index d3f29714b..000000000
--- a/net-misc/dhcp/files/dhcp-4.0-dhclient-ntp.patch
+++ /dev/null
@@ -1,216 +0,0 @@
-diff -uNr dhcp-4.0.0.ORIG/client/clparse.c dhcp-4.0.0/client/clparse.c
---- dhcp-4.0.0.ORIG/client/clparse.c 2008-09-01 11:38:51.000000000 +0100
-+++ dhcp-4.0.0/client/clparse.c 2008-09-01 11:48:17.000000000 +0100
-@@ -37,7 +37,7 @@
-
- struct client_config top_level_config;
-
--#define NUM_DEFAULT_REQUESTED_OPTS 9
-+#define NUM_DEFAULT_REQUESTED_OPTS 10
- struct option *default_requested_options[NUM_DEFAULT_REQUESTED_OPTS + 1];
-
- static void parse_client_default_duid(struct parse *cfile);
-@@ -98,15 +98,20 @@
- dhcp_universe.code_hash, &code, 0, MDL);
-
- /* 8 */
-- code = D6O_NAME_SERVERS;
-+ code = DHO_NTP_SERVERS;
- option_code_hash_lookup(&default_requested_options[7],
-- dhcpv6_universe.code_hash, &code, 0, MDL);
-+ dhcp_universe.code_hash, &code, 0, MDL);
-
- /* 9 */
-- code = D6O_DOMAIN_SEARCH;
-+ code = D6O_NAME_SERVERS;
- option_code_hash_lookup(&default_requested_options[8],
- dhcpv6_universe.code_hash, &code, 0, MDL);
-
-+ /* 10 */
-+ code = D6O_DOMAIN_SEARCH;
-+ option_code_hash_lookup(&default_requested_options[9],
-+ dhcpv6_universe.code_hash, &code, 0, MDL);
-+
- for (code = 0 ; code < NUM_DEFAULT_REQUESTED_OPTS ; code++) {
- if (default_requested_options[code] == NULL)
- log_fatal("Unable to find option definition for "
-diff -uNr dhcp-4.0.0.ORIG/client/scripts/bsdos dhcp-4.0.0/client/scripts/bsdos
---- dhcp-4.0.0.ORIG/client/scripts/bsdos 2008-09-01 11:38:51.000000000 +0100
-+++ dhcp-4.0.0/client/scripts/bsdos 2008-09-01 11:39:30.000000000 +0100
-@@ -29,6 +29,26 @@
-
- mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
- fi
-+ # If we're making confs, may as well make an ntp.conf too
-+ make_ntp_conf
-+}
-+
-+make_ntp_conf() {
-+ if [ x$PEER_NTP = x ] || [ x$PEER_NTP = xyes ]; then
-+ if [ x$new_ntp_servers != x ]; then
-+ conf="# Generated by dhclient for interface $interface\n"
-+ conf="${conf}restrict default noquery notrust nomodify\n"
-+ conf="${conf}restrict 127.0.0.1\n"
-+ for ntpserver in $new_ntp_servers; do
-+ conf="${conf}restrict $ntpserver nomodify notrap noquery\n"
-+ conf="${conf}server $ntpserver\n"
-+ done
-+ conf="${conf}driftfile /var/lib/ntp/ntp.drift\n"
-+ conf="${conf}logfile /var/log/ntp.log\n"
-+ printf "${conf}" > /etc/ntp.conf
-+ chmod 644 /etc/ntp.conf
-+ fi
-+ fi
- }
-
- # Must be used on exit. Invokes the local dhcp client exit hooks, if any.
-diff -uNr dhcp-4.0.0.ORIG/client/scripts/freebsd dhcp-4.0.0/client/scripts/freebsd
---- dhcp-4.0.0.ORIG/client/scripts/freebsd 2008-09-01 11:38:51.000000000 +0100
-+++ dhcp-4.0.0/client/scripts/freebsd 2008-09-01 11:39:30.000000000 +0100
-@@ -73,6 +73,26 @@
- fi
- fi
- fi
-+ # If we're making confs, may as well make an ntp.conf too
-+ make_ntp_conf
-+}
-+
-+make_ntp_conf() {
-+ if [ x$PEER_NTP = x ] || [ x$PEER_NTP = xyes ]; then
-+ if [ "x$new_ntp_servers" != x ]; then
-+ conf="# Generated by dhclient for interface $interface\n"
-+ conf="${conf}restrict default noquery notrust nomodify\n"
-+ conf="${conf}restrict 127.0.0.1\n"
-+ for ntpserver in $new_ntp_servers; do
-+ conf="${conf}restrict $ntpserver nomodify notrap noquery\n"
-+ conf="${conf}server $ntpserver\n"
-+ done
-+ conf="${conf}driftfile /var/lib/ntp/ntp.drift\n"
-+ conf="${conf}logfile /var/log/ntp.log\n"
-+ printf "${conf}" > /etc/ntp.conf
-+ chmod 644 /etc/ntp.conf
-+ fi
-+ fi
- }
-
- # Must be used on exit. Invokes the local dhcp client exit hooks, if any.
-diff -uNr dhcp-4.0.0.ORIG/client/scripts/linux dhcp-4.0.0/client/scripts/linux
---- dhcp-4.0.0.ORIG/client/scripts/linux 2008-09-01 11:38:51.000000000 +0100
-+++ dhcp-4.0.0/client/scripts/linux 2008-09-01 11:39:30.000000000 +0100
-@@ -55,6 +55,26 @@
-
- mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
- fi
-+ # If we're making confs, may as well make an ntp.conf too
-+ make_ntp_conf
-+}
-+
-+make_ntp_conf() {
-+ if [ x$PEER_NTP = x ] || [ x$PEER_NTP = xyes ]; then
-+ if [ "x$new_ntp_servers" != x ]; then
-+ conf="# Generated by dhclient for interface $interface\n"
-+ conf="${conf}restrict default noquery notrust nomodify\n"
-+ conf="${conf}restrict 127.0.0.1\n"
-+ for ntpserver in $new_ntp_servers; do
-+ conf="${conf}restrict $ntpserver nomodify notrap noquery\n"
-+ conf="${conf}server $ntpserver\n"
-+ done
-+ conf="${conf}driftfile /var/lib/ntp/ntp.drift\n"
-+ conf="${conf}logfile /var/log/ntp.log\n"
-+ printf "${conf}" > /etc/ntp.conf
-+ chmod 644 /etc/ntp.conf
-+ fi
-+ fi
- }
-
- # Must be used on exit. Invokes the local dhcp client exit hooks, if any.
-diff -uNr dhcp-4.0.0.ORIG/client/scripts/netbsd dhcp-4.0.0/client/scripts/netbsd
---- dhcp-4.0.0.ORIG/client/scripts/netbsd 2008-09-01 11:38:51.000000000 +0100
-+++ dhcp-4.0.0/client/scripts/netbsd 2008-09-01 11:39:30.000000000 +0100
-@@ -29,6 +29,26 @@
-
- mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
- fi
-+ # If we're making confs, may as well make an ntp.conf too
-+ make_ntp_conf
-+}
-+
-+make_ntp_conf() {
-+ if [ x$PEER_NTP = x ] || [ x$PEER_NTP = xyes ]; then
-+ if [ "x$new_ntp_servers" != x ]; then
-+ conf="# Generated by dhclient for interface $interface\n"
-+ conf="${conf}restrict default noquery notrust nomodify\n"
-+ conf="${conf}restrict 127.0.0.1\n"
-+ for ntpserver in $new_ntp_servers; do
-+ conf="${conf}restrict $ntpserver nomodify notrap noquery\n"
-+ conf="${conf}server $ntpserver\n"
-+ done
-+ conf="${conf}driftfile /var/lib/ntp/ntp.drift\n"
-+ conf="${conf}logfile /var/log/ntp.log\n"
-+ printf "${conf}" > /etc/ntp.conf
-+ chmod 644 /etc/ntp.conf
-+ fi
-+ fi
- }
-
- # Must be used on exit. Invokes the local dhcp client exit hooks, if any.
-diff -uNr dhcp-4.0.0.ORIG/client/scripts/openbsd dhcp-4.0.0/client/scripts/openbsd
---- dhcp-4.0.0.ORIG/client/scripts/openbsd 2008-09-01 11:38:51.000000000 +0100
-+++ dhcp-4.0.0/client/scripts/openbsd 2008-09-01 11:39:30.000000000 +0100
-@@ -29,6 +29,26 @@
-
- mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
- fi
-+ # If we're making confs, may as well make an ntp.conf too
-+ make_ntp_conf
-+}
-+
-+make_ntp_conf() {
-+ if [ x$PEER_NTP = x ] || [ x$PEER_NTP = xyes ]; then
-+ if [ "x$new_ntp_servers" != x ]; then
-+ conf="# Generated by dhclient for interface $interface\n"
-+ conf="${conf}restrict default noquery notrust nomodify\n"
-+ conf="${conf}restrict 127.0.0.1\n"
-+ for ntpserver in $new_ntp_servers; do
-+ conf="${conf}restrict $ntpserver nomodify notrap noquery\n"
-+ conf="${conf}server $ntpserver\n"
-+ done
-+ conf="${conf}driftfile /var/lib/ntp/ntp.drift\n"
-+ conf="${conf}logfile /var/log/ntp.log\n"
-+ printf "${conf}" > /etc/ntp.conf
-+ chmod 644 /etc/ntp.conf
-+ fi
-+ fi
- }
-
- # Must be used on exit. Invokes the local dhcp client exit hooks, if any.
-diff -uNr dhcp-4.0.0.ORIG/client/scripts/solaris dhcp-4.0.0/client/scripts/solaris
---- dhcp-4.0.0.ORIG/client/scripts/solaris 2008-09-01 11:38:51.000000000 +0100
-+++ dhcp-4.0.0/client/scripts/solaris 2008-09-01 11:39:30.000000000 +0100
-@@ -17,6 +17,26 @@
-
- mv /etc/resolv.conf.dhclient /etc/resolv.conf
- fi
-+ # If we're making confs, may as well make an ntp.conf too
-+ make_ntp_conf
-+}
-+
-+make_ntp_conf() {
-+ if [ x$PEER_NTP = x ] || [ x$PEER_NTP = xyes ]; then
-+ if [ "x$new_ntp_servers" != x ]; then
-+ conf="# Generated by dhclient for interface $interface\n"
-+ conf="${conf}restrict default noquery notrust nomodify\n"
-+ conf="${conf}restrict 127.0.0.1\n"
-+ for ntpserver in $new_ntp_servers; do
-+ conf="${conf}restrict $ntpserver nomodify notrap noquery\n"
-+ conf="${conf}server $ntpserver\n"
-+ done
-+ conf="${conf}driftfile /var/lib/ntp/ntp.drift\n"
-+ conf="${conf}logfile /var/log/ntp.log\n"
-+ printf "${conf}" > /etc/ntp.conf
-+ chmod 644 /etc/ntp.conf
-+ fi
-+ fi
- }
-
- # Must be used on exit. Invokes the local dhcp client exit hooks, if any.
diff --git a/net-misc/dhcp/files/dhcp-4.2.0-PPP.patch b/net-misc/dhcp/files/dhcp-4.2.0-PPP.patch
deleted file mode 100644
index bef2be7f0..000000000
--- a/net-misc/dhcp/files/dhcp-4.2.0-PPP.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-diff -up dhcp-4.2.0-P1/client/dhc6.c.PPP dhcp-4.2.0-P1/client/dhc6.c
---- dhcp-4.2.0-P1/client/dhc6.c.PPP 2010-11-05 10:47:37.000000000 +0100
-+++ dhcp-4.2.0-P1/client/dhc6.c 2010-11-09 15:54:12.000000000 +0100
-@@ -129,7 +129,7 @@ extern int stateless;
- * is not how it is intended. Upcoming rearchitecting the client should
- * address this "one daemon model."
- */
--void
-+isc_result_t
- form_duid(struct data_string *duid, const char *file, int line)
- {
- struct interface_info *ip;
-@@ -141,6 +141,15 @@ form_duid(struct data_string *duid, cons
- if (ip == NULL)
- log_fatal("Impossible condition at %s:%d.", MDL);
-
-+ while (ip && ip->hw_address.hbuf[0] == HTYPE_RESERVED) {
-+ /* Try the other interfaces */
-+ log_debug("Cannot form default DUID from interface %s.", ip->name);
-+ ip = ip->next;
-+ }
-+ if (ip == NULL) {
-+ return ISC_R_UNEXPECTED;
-+ }
-+
- if ((ip->hw_address.hlen == 0) ||
- (ip->hw_address.hlen > sizeof(ip->hw_address.hbuf)))
- log_fatal("Impossible hardware address length at %s:%d.", MDL);
-@@ -176,6 +185,8 @@ form_duid(struct data_string *duid, cons
- memcpy(duid->buffer->data + 4, ip->hw_address.hbuf + 1,
- ip->hw_address.hlen - 1);
- }
-+
-+ return ISC_R_SUCCESS;
- }
-
- /*
-@@ -5289,7 +5300,8 @@ make_client6_options(struct client_state
- */
- if ((oc = lookup_option(&dhcpv6_universe, *op,
- D6O_CLIENTID)) == NULL) {
-- if (!option_cache(&oc, &default_duid, NULL, clientid_option,
-+ if (default_duid.len == 0 ||
-+ !option_cache(&oc, &default_duid, NULL, clientid_option,
- MDL))
- log_fatal("Failure assembling a DUID.");
-
-diff -up dhcp-4.2.0-P1/client/dhclient.c.PPP dhcp-4.2.0-P1/client/dhclient.c
---- dhcp-4.2.0-P1/client/dhclient.c.PPP 2010-11-05 10:47:37.000000000 +0100
-+++ dhcp-4.2.0-P1/client/dhclient.c 2010-11-09 15:37:26.000000000 +0100
-@@ -911,8 +911,8 @@ main(int argc, char **argv) {
- if (default_duid.buffer != NULL)
- data_string_forget(&default_duid, MDL);
-
-- form_duid(&default_duid, MDL);
-- write_duid(&default_duid);
-+ if (form_duid(&default_duid, MDL) == ISC_R_SUCCESS)
-+ write_duid(&default_duid);
- }
-
- for (ip = interfaces ; ip != NULL ; ip = ip->next) {
-diff -up dhcp-4.2.0-P1/common/bpf.c.PPP dhcp-4.2.0-P1/common/bpf.c
---- dhcp-4.2.0-P1/common/bpf.c.PPP 2010-11-05 10:47:37.000000000 +0100
-+++ dhcp-4.2.0-P1/common/bpf.c 2010-11-09 15:42:42.000000000 +0100
-@@ -599,6 +599,22 @@ get_hw_addr(const char *name, struct har
- memcpy(&hw->hbuf[1], LLADDR(sa), sa->sdl_alen);
- break;
- #endif /* IFT_FDDI */
-+#if defined(IFT_PPP)
-+ case IFT_PPP:
-+ if (local_family != AF_INET6)
-+ log_fatal("Unsupported device type %d for \"%s\"",
-+ sa->sdl_type, name);
-+ hw->hlen = 0;
-+ hw->hbuf[0] = HTYPE_RESERVED;
-+ /* 0xdeadbeef should never occur on the wire,
-+ * and is a signature that something went wrong.
-+ */
-+ hw->hbuf[1] = 0xde;
-+ hw->hbuf[2] = 0xad;
-+ hw->hbuf[3] = 0xbe;
-+ hw->hbuf[4] = 0xef;
-+ break;
-+#endif
- default:
- log_fatal("Unsupported device type %d for \"%s\"",
- sa->sdl_type, name);
-diff -up dhcp-4.2.0-P1/common/lpf.c.PPP dhcp-4.2.0-P1/common/lpf.c
---- dhcp-4.2.0-P1/common/lpf.c.PPP 2010-11-05 10:47:37.000000000 +0100
-+++ dhcp-4.2.0-P1/common/lpf.c 2010-11-09 15:45:40.000000000 +0100
-@@ -502,6 +502,22 @@ get_hw_addr(const char *name, struct har
- hw->hbuf[0] = HTYPE_FDDI;
- memcpy(&hw->hbuf[1], sa->sa_data, 16);
- break;
-+#if defined(ARPHRD_PPP)
-+ case ARPHRD_PPP:
-+ if (local_family != AF_INET6)
-+ log_fatal("Unsupported device type %d for \"%s\"",
-+ sa->sa_family, name);
-+ hw->hlen = 0;
-+ hw->hbuf[0] = HTYPE_RESERVED;
-+ /* 0xdeadbeef should never occur on the wire,
-+ * and is a signature that something went wrong.
-+ */
-+ hw->hbuf[1] = 0xde;
-+ hw->hbuf[2] = 0xad;
-+ hw->hbuf[3] = 0xbe;
-+ hw->hbuf[4] = 0xef;
-+ break;
-+#endif
- default:
- log_fatal("Unsupported device type %ld for \"%s\"",
- (long int)sa->sa_family, name);
-diff -up dhcp-4.2.0-P1/includes/dhcpd.h.PPP dhcp-4.2.0-P1/includes/dhcpd.h
---- dhcp-4.2.0-P1/includes/dhcpd.h.PPP 2010-11-05 10:47:37.000000000 +0100
-+++ dhcp-4.2.0-P1/includes/dhcpd.h 2010-11-09 15:46:58.000000000 +0100
-@@ -2733,7 +2733,7 @@ void dhcpv4_client_assignments(void);
- void dhcpv6_client_assignments(void);
-
- /* dhc6.c */
--void form_duid(struct data_string *duid, const char *file, int line);
-+isc_result_t form_duid(struct data_string *duid, const char *file, int line);
- void dhc6_lease_destroy(struct dhc6_lease **src, const char *file, int line);
- void start_init6(struct client_state *client);
- void start_info_request6(struct client_state *client);
-diff -up dhcp-4.2.0-P1/includes/dhcp.h.PPP dhcp-4.2.0-P1/includes/dhcp.h
---- dhcp-4.2.0-P1/includes/dhcp.h.PPP 2010-11-05 10:47:37.000000000 +0100
-+++ dhcp-4.2.0-P1/includes/dhcp.h 2010-11-09 15:48:53.000000000 +0100
-@@ -80,6 +80,8 @@ struct dhcp_packet {
- #define HTYPE_IEEE802 6 /* IEEE 802.2 Token Ring... */
- #define HTYPE_FDDI 8 /* FDDI... */
-
-+#define HTYPE_RESERVED 0 /* RFC 5494 */
-+
- /* Magic cookie validating dhcp options field (and bootp vendor
- extensions field). */
- #define DHCP_OPTIONS_COOKIE "\143\202\123\143"
-diff -up dhcp-4.2.0-P1/server/dhcpv6.c.PPP dhcp-4.2.0-P1/server/dhcpv6.c
---- dhcp-4.2.0-P1/server/dhcpv6.c.PPP 2010-11-05 10:47:37.000000000 +0100
-+++ dhcp-4.2.0-P1/server/dhcpv6.c 2010-11-09 15:50:17.000000000 +0100
-@@ -300,6 +300,9 @@ generate_new_server_duid(void) {
- if (p->hw_address.hlen > 0) {
- break;
- }
-+ if (p->next == NULL && p->hw_address.hbuf[0] == HTYPE_RESERVED) {
-+ log_error("Can not generate DUID from interfaces which do not have hardware addresses, please configure server-duid!");
-+ }
- }
- if (p == NULL) {
- return ISC_R_UNEXPECTED;
diff --git a/net-misc/dhcp/files/dhcp-4.2.0-errwarn-message.patch b/net-misc/dhcp/files/dhcp-4.2.0-errwarn-message.patch
deleted file mode 100644
index f882a1345..000000000
--- a/net-misc/dhcp/files/dhcp-4.2.0-errwarn-message.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-ripped from Fedora & tweaked
-
---- dhcp-4.2.0/omapip/errwarn.c
-+++ dhcp-4.2.0/omapip/errwarn.c
-@@ -76,20 +76,13 @@
-
- #if !defined (NOMINUM)
- log_error ("%s", "");
-- log_error ("If you did not get this software from ftp.isc.org, please");
-- log_error ("get the latest from ftp.isc.org and install that before");
-- log_error ("requesting help.");
-+ log_error ("This version of ISC DHCP is based on the release available");
-+ log_error ("on ftp.isc.org. Features have been added and other changes");
-+ log_error ("have been made to the base software release in order to make");
-+ log_error ("it work better with this distribution.");
- log_error ("%s", "");
-- log_error ("If you did get this software from ftp.isc.org and have not");
-- log_error ("yet read the README, please read it before requesting help.");
-- log_error ("If you intend to request help from the dhcp-server@isc.org");
-- log_error ("mailing list, please read the section on the README about");
-- log_error ("submitting bug reports and requests for help.");
-- log_error ("%s", "");
-- log_error ("Please do not under any circumstances send requests for");
-- log_error ("help directly to the authors of this software - please");
-- log_error ("send them to the appropriate mailing list as described in");
-- log_error ("the README file.");
-+ log_error ("Please report for this software via the Gentoo Bugzilla site:");
-+ log_error (" http://bugs.gentoo.org/");
- log_error ("%s", "");
- log_error ("exiting.");
- #endif
diff --git a/net-misc/dhcp/files/dhcp-4.2.2-bind-build-flags.patch b/net-misc/dhcp/files/dhcp-4.2.2-bind-build-flags.patch
deleted file mode 100644
index ae3363828..000000000
--- a/net-misc/dhcp/files/dhcp-4.2.2-bind-build-flags.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-bind sets up BUILD_XXX vars for building native tools, but then
-doesn't use them for the "gen" tool
-
---- a/bind/lib/export/dns/Makefile.in
-+++ b/bind/lib/export/dns/Makefile.in
-@@ -166,7 +166,7 @@
- ./gen -s ${srcdir} > code.h
-
- gen: ${srcdir}/gen.c
-- ${CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS}
-+ ${BUILD_CC} ${BUILD_CFLAGS} ${CINCLUDES} ${BUILD_LDFLAGS} -o $@ ${srcdir}/gen.c ${BUILD_LIBS}
-
- #We don't need rbtdb64 for this library
- #rbtdb64.@O@: rbtdb.c
diff --git a/net-misc/dhcp/files/dhcp-4.2.2-bind-disable.patch b/net-misc/dhcp/files/dhcp-4.2.2-bind-disable.patch
deleted file mode 100644
index 4c7810e89..000000000
--- a/net-misc/dhcp/files/dhcp-4.2.2-bind-disable.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-we take care of building this ourselves in the ebuild so
-build settings are properly respected
-
---- dhcp-4.2.2/bind/Makefile
-+++ dhcp-4.2.2/bind/Makefile
-@@ -29,6 +29,7 @@
- bindsrcdir=bind-${version}
-
- all:
-+disable:
- # Extract the source from the tarball, if it hasn't been already.
- @if test -d ${bindsrcdir} ; then \
- echo ${bindsrcdir} already unpacked... ; \
diff --git a/net-misc/dhcp/files/dhcp-4.2.2-bind-parallel-build.patch b/net-misc/dhcp/files/dhcp-4.2.2-bind-parallel-build.patch
deleted file mode 100644
index 6136154f6..000000000
--- a/net-misc/dhcp/files/dhcp-4.2.2-bind-parallel-build.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-fix the bind subdir parallel builds
-
-https://bugs.gentoo.org/380717
-
---- a/bind/lib/export/isc/Makefile.in
-+++ b/bind/lib/export/isc/Makefile.in
-@@ -114,6 +114,7 @@
- -DLIBAGE=${LIBAGE} \
- -c ${srcdir}/version.c
-
-+${OBJS}: | subdirs
- libisc.@SA@: ${OBJS}
- ${AR} ${ARFLAGS} $@ ${OBJS}
- ${RANLIB} $@
diff --git a/net-misc/dhcp/files/dhcp-4.2.2-dhclient-resolvconf.patch b/net-misc/dhcp/files/dhcp-4.2.2-dhclient-resolvconf.patch
deleted file mode 100644
index 95a0d6564..000000000
--- a/net-misc/dhcp/files/dhcp-4.2.2-dhclient-resolvconf.patch
+++ /dev/null
@@ -1,409 +0,0 @@
---- a/client/scripts/bsdos
-+++ b/client/scripts/bsdos
-@@ -1,40 +1,46 @@
- #!/bin/sh
-
- make_resolv_conf() {
-+ if [ x"$PEER_DNS" != x ] && [ x$"PEER_DNS" != xyes ]; then
-+ return 0
-+ fi
-+ local conf=
- if [ x"$new_domain_name_servers" != x ]; then
-- cat /dev/null > /etc/resolv.conf.dhclient
- if [ "x$new_domain_search" != x ]; then
-- echo search $new_domain_search >> /etc/resolv.conf.dhclient
-+ conf="${conf}search ${new_domain_search}\n"
- elif [ "x$new_domain_name" != x ]; then
- # Note that the DHCP 'Domain Name Option' is really just a domain
- # name, and that this practice of using the domain name option as
- # a search path is both nonstandard and deprecated.
-- echo search $new_domain_name >> /etc/resolv.conf.dhclient
-+ conf="${conf}search ${new_domain_name}\n"
- fi
- for nameserver in $new_domain_name_servers; do
-- echo nameserver $nameserver >> /etc/resolv.conf.dhclient
-+ conf="${conf}nameserver ${nameserver}\n"
- done
--
-- mv /etc/resolv.conf.dhclient /etc/resolv.conf
- elif [ "x${new_dhcp6_name_servers}" != x ] ; then
-- cat /dev/null > /etc/resolv.conf.dhclient6
-- chmod 644 /etc/resolv.conf.dhclient6
--
- if [ "x${new_dhcp6_domain_search}" != x ] ; then
-- echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
-+ conf="${conf}search ${new_dhcp6_domain_search}\n"
- fi
- for nameserver in ${new_dhcp6_name_servers} ; do
- # If the nameserver has a link-local address
- # add a <zone_id> (interface name) to it.
- case $nameserver in
- fe80:*) zone_id="%$interface";;
- FE80:*) zone_id="%$interface";;
- *) zone_id='';;
- esac
-- echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6
-+ conf="${conf}nameserver ${nameserver}$zone_id\n"
- done
-+ fi
-
-- mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
-+ if [ x"$conf" != x ]; then
-+ conf="# Generated by dhclient or interface $interface\n${conf}"
-+ if type resolvconf >/dev/null 2>&1; then
-+ printf "${conf}" | resolvconf -a $interface
-+ else
-+ printf "${conf}" > /etc/resolv.conf
-+ chmod 644 /etc/resolv.conf
-+ fi
- fi
- }
-
---- a/client/scripts/freebsd
-+++ b/client/scripts/freebsd
-@@ -11,73 +11,45 @@
- fi
-
- make_resolv_conf() {
-+ if [ x"$PEER_DNS" != x ] && [ x$"PEER_DNS" != xyes ]; then
-+ return 0
-+ fi
-+ local conf=
- if [ x"$new_domain_name_servers" != x ]; then
-- ( cat /dev/null > /etc/resolv.conf.dhclient )
-- exit_status=$?
-- if [ $exit_status -ne 0 ]; then
-- $LOGGER "Unable to create /etc/resolv.conf.dhclient: Error $exit_status"
-- else
-- if [ "x$new_domain_search" != x ]; then
-- ( echo search $new_domain_search >> /etc/resolv.conf.dhclient )
-- exit_status=$?
-- elif [ "x$new_domain_name" != x ]; then
-- # Note that the DHCP 'Domain Name Option' is really just a domain
-- # name, and that this practice of using the domain name option as
-- # a search path is both nonstandard and deprecated.
-- ( echo search $new_domain_name >> /etc/resolv.conf.dhclient )
-- exit_status=$?
-- fi
-- for nameserver in $new_domain_name_servers; do
-- if [ $exit_status -ne 0 ]; then
-- break
-- fi
-- ( echo nameserver $nameserver >>/etc/resolv.conf.dhclient )
-- exit_status=$?
-- done
--
-- # If there were no errors, attempt to mv the new file into place.
-- if [ $exit_status -eq 0 ]; then
-- ( mv /etc/resolv.conf.dhclient /etc/resolv.conf )
-- exit_status=$?
-- fi
--
-- if [ $exit_status -ne 0 ]; then
-- $LOGGER "Error while writing new /etc/resolv.conf."
-- fi
-+ if [ "x$new_domain_search" != x ]; then
-+ conf="${conf}search ${new_domain_search}\n"
-+ elif [ "x$new_domain_name" != x ]; then
-+ # Note that the DHCP 'Domain Name Option' is really just a domain
-+ # name, and that this practice of using the domain name option as
-+ # a search path is both nonstandard and deprecated.
-+ conf="${conf}search ${new_domain_name}\n"
- fi
-+ for nameserver in $new_domain_name_servers; do
-+ conf="${conf}nameserver ${nameserver}\n"
-+ done
- elif [ "x${new_dhcp6_name_servers}" != x ] ; then
-- ( cat /dev/null > /etc/resolv.conf.dhclient6 )
-- exit_status=$?
-- if [ $exit_status -ne 0 ] ; then
-- $LOGGER "Unable to create /etc/resolv.conf.dhclient6: Error $exit_status"
-- else
-- if [ "x${new_dhcp6_domain_search}" != x ] ; then
-- ( echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6 )
-- exit_status=$?
-- fi
-- for nameserver in ${new_dhcp6_name_servers} ; do
-- if [ $exit_status -ne 0 ] ; then
-- break
-- fi
- # If the nameserver has a link-local address
- # add a <zone_id> (interface name) to it.
- case $nameserver in
- fe80:*) zone_id="%$interface";;
- FE80:*) zone_id="%$interface";;
- *) zone_id='';;
- esac
-- ( echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6 )
-- exit_status=$?
-- done
--
-- if [ $exit_status -eq 0 ] ; then
-- ( mv /etc/resolv.conf.dhclient6 /etc/resolv.conf )
-- exit_status=$?
-- fi
-+ if [ "x${new_dhcp6_domain_search}" != x ] ; then
-+ conf="${conf}search ${new_dhcp6_domain_search}\n"
-+ fi
-+ for nameserver in ${new_dhcp6_name_servers} ; do
-+ conf="${conf}nameserver ${nameserver}$zone_id\n"
-+ done
-+ fi
-
-- if [ $exit_status -ne 0 ] ; then
-- $LOGGER "Error while writing new /etc/resolv.conf."
-- fi
-+ if [ x"$conf" != x ]; then
-+ conf="# Generated by dhclient or interface $interface\n${conf}"
-+ if type resolvconf >/dev/null 2>&1; then
-+ printf "${conf}" | resolvconf -a $interface
-+ else
-+ printf "${conf}" > /etc/resolv.conf
-+ chmod 644 /etc/resolv.conf
- fi
- fi
- }
---- a/client/scripts/linux
-+++ b/client/scripts/linux
-@@ -26,44 +26,49 @@
- ip=/sbin/ip
-
- make_resolv_conf() {
-+ if [ x"$PEER_DNS" != x ] && [ x$"PEER_DNS" != xyes ]; then
-+ return 0
-+ fi
-+ local conf=
- if [ x"$new_domain_name_servers" != x ]; then
-- cat /dev/null > /etc/resolv.conf.dhclient
-- chmod 644 /etc/resolv.conf.dhclient
-- if [ x"$new_domain_search" != x ]; then
-- echo search $new_domain_search >> /etc/resolv.conf.dhclient
-- elif [ x"$new_domain_name" != x ]; then
-+ if [ "x$new_domain_search" != x ]; then
-+ conf="${conf}search ${new_domain_search}\n"
-+ elif [ "x$new_domain_name" != x ]; then
- # Note that the DHCP 'Domain Name Option' is really just a domain
- # name, and that this practice of using the domain name option as
- # a search path is both nonstandard and deprecated.
-- echo search $new_domain_name >> /etc/resolv.conf.dhclient
-+ conf="${conf}search ${new_domain_name}\n"
- fi
- for nameserver in $new_domain_name_servers; do
-- echo nameserver $nameserver >>/etc/resolv.conf.dhclient
-+ conf="${conf}nameserver ${nameserver}\n"
- done
--
-- mv /etc/resolv.conf.dhclient /etc/resolv.conf
- elif [ "x${new_dhcp6_name_servers}" != x ] ; then
-- cat /dev/null > /etc/resolv.conf.dhclient6
-- chmod 644 /etc/resolv.conf.dhclient6
--
- if [ "x${new_dhcp6_domain_search}" != x ] ; then
-- echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
-+ conf="${conf}search ${new_dhcp6_domain_search}\n"
- fi
- shopt -s nocasematch
- for nameserver in ${new_dhcp6_name_servers} ; do
- # If the nameserver has a link-local address
- # add a <zone_id> (interface name) to it.
- if [[ "$nameserver" =~ ^fe80:: ]]
- then
- zone_id="%$interface"
- else
- zone_id=
- fi
-- echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6
-+ conf="${conf}nameserver ${nameserver}$zone_id\n"
- done
- shopt -u nocasematch
-+ fi
-
-- mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
-+ if [ x"$conf" != x ]; then
-+ conf="# Generated by dhclient or interface $interface\n${conf}"
-+ if type resolvconf >/dev/null 2>&1; then
-+ printf "${conf}" | resolvconf -a $interface
-+ else
-+ printf "${conf}" > /etc/resolv.conf
-+ chmod 644 /etc/resolv.conf
-+ fi
- fi
- }
-
---- a/client/scripts/netbsd
-+++ b/client/scripts/netbsd
-@@ -1,40 +1,46 @@
- #!/bin/sh
-
- make_resolv_conf() {
-- if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then
-- cat /dev/null > /etc/resolv.conf.dhclient
-- if [ "x$new_domain_search" != x ]; then
-- echo search $new_domain_search >> /etc/resolv.conf.dhclient
-- elif [ "x$new_domain_name" != x ]; then
-+ if [ x"$PEER_DNS" != x ] && [ x$"PEER_DNS" != xyes ]; then
-+ return 0
-+ fi
-+ local conf=
-+ if [ x"$new_domain_name_servers" != x ]; then
-+ if [ "x$new_domain_search" != x ]; then
-+ conf="${conf}search ${new_domain_search}\n"
-+ elif [ "x$new_domain_name" != x ]; then
- # Note that the DHCP 'Domain Name Option' is really just a domain
- # name, and that this practice of using the domain name option as
- # a search path is both nonstandard and deprecated.
-- echo search $new_domain_name >> /etc/resolv.conf.dhclient
-+ conf="${conf}search ${new_domain_name}\n"
- fi
- for nameserver in $new_domain_name_servers; do
-- echo nameserver $nameserver >>/etc/resolv.conf.dhclient
-+ conf="${conf}nameserver ${nameserver}\n"
- done
--
-- mv /etc/resolv.conf.dhclient /etc/resolv.conf
- elif [ "x${new_dhcp6_name_servers}" != x ] ; then
-- cat /dev/null > /etc/resolv.conf.dhclient6
-- chmod 644 /etc/resolv.conf.dhclient6
--
- if [ "x${new_dhcp6_domain_search}" != x ] ; then
-- echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
-+ conf="${conf}search ${new_dhcp6_domain_search}\n"
- fi
- for nameserver in ${new_dhcp6_name_servers} ; do
- # If the nameserver has a link-local address
- # add a <zone_id> (interface name) to it.
- case $nameserver in
- fe80:*) zone_id="%$interface";;
- FE80:*) zone_id="%$interface";;
- *) zone_id='';;
- esac
-- echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6
-+ conf="${conf}nameserver ${nameserver}$zone_id\n"
- done
-+ fi
-
-- mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
-+ if [ x"$conf" != x ]; then
-+ conf="# Generated by dhclient or interface $interface\n${conf}"
-+ if type resolvconf >/dev/null 2>&1; then
-+ printf "${conf}" | resolvconf -a $interface
-+ else
-+ printf "${conf}" > /etc/resolv.conf
-+ chmod 644 /etc/resolv.conf
-+ fi
- fi
- }
-
---- a/client/scripts/openbsd
-+++ b/client/scripts/openbsd
-@@ -1,40 +1,46 @@
- #!/bin/sh
-
- make_resolv_conf() {
-- if [ x"$new_domain_name_servers" != x ]; then
-- cat /dev/null > /etc/resolv.conf.dhclient
-- if [ x"$new_domain_search" != x ]; then
-- echo search $new_domain_search >> /etc/resolv.conf.dhclient
-- elif [ x"$new_domain_name" != x ]; then
-+ if [ x"$PEER_DNS" != x ] && [ x$"PEER_DNS" != xyes ]; then
-+ return 0
-+ fi
-+ local conf=
-+ if [ x"$new_domain_name_servers" != x ]; then
-+ if [ "x$new_domain_search" != x ]; then
-+ conf="${conf}search ${new_domain_search}\n"
-+ elif [ "x$new_domain_name" != x ]; then
- # Note that the DHCP 'Domain Name Option' is really just a domain
- # name, and that this practice of using the domain name option as
- # a search path is both nonstandard and deprecated.
-- echo search $new_domain_name >> /etc/resolv.conf.dhclient
-+ conf="${conf}search ${new_domain_name}\n"
- fi
- for nameserver in $new_domain_name_servers; do
-- echo nameserver $nameserver >>/etc/resolv.conf.dhclient
-+ conf="${conf}nameserver ${nameserver}\n"
- done
--
-- mv /etc/resolv.conf.dhclient /etc/resolv.conf
- elif [ "x${new_dhcp6_name_servers}" != x ] ; then
-- cat /dev/null > /etc/resolv.conf.dhclient6
-- chmod 644 /etc/resolv.conf.dhclient6
--
- if [ "x${new_dhcp6_domain_search}" != x ] ; then
-- echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
-+ conf="${conf}search ${new_dhcp6_domain_search}\n"
- fi
- for nameserver in ${new_dhcp6_name_servers} ; do
- # If the nameserver has a link-local address
- # add a <zone_id> (interface name) to it.
- case $nameserver in
- fe80:*) zone_id="%$interface";;
- FE80:*) zone_id="%$interface";;
- *) zone_id='';;
- esac
-- echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6
-+ conf="${conf}nameserver ${nameserver}$zone_id\n"
- done
-+ fi
-
-- mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
-+ if [ x"$conf" != x ]; then
-+ conf="# Generated by dhclient or interface $interface\n${conf}"
-+ if type resolvconf >/dev/null 2>&1; then
-+ printf "${conf}" | resolvconf -a $interface
-+ else
-+ printf "${conf}" > /etc/resolv.conf
-+ chmod 644 /etc/resolv.conf
-+ fi
- fi
- }
-
---- a/client/scripts/solaris
-+++ b/client/scripts/solaris
-@@ -1,21 +1,39 @@
- #!/bin/sh
-
- make_resolv_conf() {
-+ if [ x"$PEER_DNS" != x ] && [ x$"PEER_DNS" != xyes ]; then
-+ return 0
-+ fi
-+ local conf=
- if [ x"$new_domain_name_servers" != x ]; then
-- cat /dev/null > /etc/resolv.conf.dhclient
-- if [ x"$new_domain_search" != x ]; then
-- echo search $new_domain_search >> /etc/resolv.conf.dhclient
-- elif [ x"$new_domain_name" != x ]; then
-+ if [ "x$new_domain_search" != x ]; then
-+ conf="${conf}search ${new_domain_search}\n"
-+ elif [ "x$new_domain_name" != x ]; then
- # Note that the DHCP 'Domain Name Option' is really just a domain
- # name, and that this practice of using the domain name option as
- # a search path is both nonstandard and deprecated.
-- echo search $new_domain_name >> /etc/resolv.conf.dhclient
-+ conf="${conf}search ${new_domain_name}\n"
- fi
- for nameserver in $new_domain_name_servers; do
-- echo nameserver $nameserver >>/etc/resolv.conf.dhclient
-+ conf="${conf}nameserver ${nameserver}\n"
-+ done
-+ elif [ "x${new_dhcp6_name_servers}" != x ] ; then
-+ if [ "x${new_dhcp6_domain_search}" != x ] ; then
-+ conf="${conf}search ${new_dhcp6_domain_search}\n"
-+ fi
-+ for nameserver in ${new_dhcp6_name_servers} ; do
-+ conf="${conf}nameserver ${nameserver}\n"
- done
-+ fi
-
-- mv /etc/resolv.conf.dhclient /etc/resolv.conf
-+ if [ x"$conf" != x ]; then
-+ conf="# Generated by dhclient or interface $interface\n${conf}"
-+ if type resolvconf >/dev/null 2>&1; then
-+ printf "${conf}" | resolvconf -a $interface
-+ else
-+ printf "${conf}" > /etc/resolv.conf
-+ chmod 644 /etc/resolv.conf
-+ fi
- fi
- }
-
diff --git a/net-misc/dhcp/files/dhcp-4.2.2-dhclient-stdin-conf.patch b/net-misc/dhcp/files/dhcp-4.2.2-dhclient-stdin-conf.patch
deleted file mode 100644
index bf5a54c32..000000000
--- a/net-misc/dhcp/files/dhcp-4.2.2-dhclient-stdin-conf.patch
+++ /dev/null
@@ -1,113 +0,0 @@
---- dhcp-4.2.2/client/clparse.c
-+++ dhcp-4.2.2/client/clparse.c
-@@ -182,6 +182,10 @@ isc_result_t read_client_conf ()
- #endif
- }
-
-+ /* Read any extra configuration from stdin */
-+ extern int read_client_conf_stdin (struct interface_info *ip, struct client_config *client);
-+ read_client_conf_stdin (NULL, &top_level_config);
-+
- /* Set up state and config structures for clients that don't
- have per-interface configuration statements. */
- config = (struct client_config *)0;
-@@ -211,23 +215,13 @@ isc_result_t read_client_conf ()
- return status;
- }
-
--int read_client_conf_file (const char *name, struct interface_info *ip,
-+int read_client_conf_actual (struct parse *cfile, struct interface_info *ip,
- struct client_config *client)
- {
-- int file;
-- struct parse *cfile;
- const char *val;
- int token;
- isc_result_t status;
-
-- if ((file = open (name, O_RDONLY)) < 0)
-- return uerr2isc (errno);
--
-- cfile = NULL;
-- status = new_parse(&cfile, file, NULL, 0, path_dhclient_conf, 0);
-- if (status != ISC_R_SUCCESS || cfile == NULL)
-- return status;
--
- do {
- token = peek_token (&val, (unsigned *)0, cfile);
- if (token == END_OF_FILE)
-@@ -238,10 +232,74 @@ int read_client_conf_file (const char *name, struct interface_info *ip,
- status = (cfile -> warnings_occurred
- ? DHCP_R_BADPARSE
- : ISC_R_SUCCESS);
-+ return status;
-+}
-+
-+int read_client_conf_file (const char *name, struct interface_info *ip,
-+ struct client_config *client)
-+{
-+ int file;
-+ struct parse *cfile;
-+ isc_result_t status;
-+
-+ if ((file = open (name, O_RDONLY)) < 0)
-+ return uerr2isc (errno);
-+
-+ cfile = (struct parse *)0;
-+ new_parse (&cfile, file, (char *)0, 0, path_dhclient_conf, 0);
-+ status = read_client_conf_actual(cfile, ip, client);
- end_parse (&cfile);
- return status;
- }
-
-+int read_client_conf_stdin (struct interface_info *ip,
-+ struct client_config *client)
-+{
-+ int file;
-+ char *buffer = NULL, *p;
-+ unsigned buflen, len = 0;
-+ struct parse *cfile;
-+ size_t bytes;
-+ isc_result_t status;
-+
-+ file = fileno(stdin);
-+ if (isatty (file))
-+ return ISC_R_NOTFOUND;
-+ if (fcntl (file, F_SETFL, O_NONBLOCK) < 0)
-+ log_fatal ("could not set stdin to non blocking!");
-+
-+ buflen = BUFSIZ;
-+ buffer = malloc (BUFSIZ + 1);
-+ p = buffer;
-+ do {
-+ bytes = read (file, p, BUFSIZ);
-+ if (bytes == 0)
-+ break;
-+ if (bytes == -1)
-+ log_fatal ("failed to read stdin!");
-+ if (bytes >= BUFSIZ) {
-+ buflen += BUFSIZ;
-+ len += BUFSIZ;
-+ buffer = realloc (buffer, buflen + 1);
-+ if (!buffer)
-+ log_fatal ("not enough buffer to read stdin!");
-+ p = buffer + len;
-+ } else {
-+ len += bytes;
-+ break;
-+ }
-+ } while(1);
-+ buffer[len] = '\0';
-+
-+ cfile = (struct parse *)0;
-+ status = new_parse (&cfile, -1, buffer, len, "stdin", 0);
-+ if (status == ISC_R_SUCCESS) {
-+ status = read_client_conf_actual (cfile, ip, client);
-+ end_parse (&cfile);
-+ }
-+ free(buffer);
-+ return status;
-+}
-
- /* lease-file :== client-lease-statements END_OF_FILE
- client-lease-statements :== <nil>
diff --git a/net-misc/dhcp/files/dhcp-4.2.2-gpxe-cid.patch b/net-misc/dhcp/files/dhcp-4.2.2-gpxe-cid.patch
deleted file mode 100644
index c0be4c239..000000000
--- a/net-misc/dhcp/files/dhcp-4.2.2-gpxe-cid.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-diff -up dhcp-4.2.2/client/dhclient.c.gpxe-cid dhcp-4.2.2/client/dhclient.c
---- dhcp-4.2.2/client/dhclient.c.gpxe-cid 2011-09-16 18:23:20.190453902 +0200
-+++ dhcp-4.2.2/client/dhclient.c 2011-09-16 18:27:15.568463599 +0200
-@@ -58,6 +58,13 @@ const char *path_dhclient_pid = NULL;
- static char path_dhclient_script_array[] = _PATH_DHCLIENT_SCRIPT;
- char *path_dhclient_script = path_dhclient_script_array;
-
-+/* Default Prefix */
-+static unsigned char default_prefix[12] = {
-+ 0xff, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x02, 0x00,
-+ 0x00, 0x02, 0xc9, 0x00
-+};
-+
- /* False (default) => we write and use a pid file */
- isc_boolean_t no_pid_file = ISC_FALSE;
-
-@@ -1250,6 +1257,12 @@ int find_subnet (struct subnet **sp,
- static void setup_ib_interface(struct interface_info *ip)
- {
- struct group *g;
-+ struct hardware *hw = &ip->hw_address;
-+ char client_id[64];
-+ char *arg_conf = NULL;
-+ int arg_conf_len = 0;
-+ isc_result_t status;
-+ struct parse *cfile = (struct parse *)0;
-
- /* Set the broadcast flag */
- ip->client->config->bootp_broadcast_always = 1;
-@@ -1266,8 +1279,39 @@ static void setup_ib_interface(struct in
- }
- }
-
-- /* No client ID specified */
-- log_fatal("dhcp-client-identifier must be specified for InfiniBand");
-+ /*
-+ * No client ID specified, make up one based on a default
-+ * "prefix" and the port GUID.
-+ *
-+ * NOTE: This is compatible with what gpxe does.
-+ */
-+ sprintf(client_id, "%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x:%.2x",
-+ default_prefix[0], default_prefix[1], default_prefix[2],
-+ default_prefix[3], default_prefix[4], default_prefix[5],
-+ default_prefix[6], default_prefix[7], default_prefix[8],
-+ default_prefix[9], default_prefix[10], default_prefix[11],
-+ hw->hbuf[1], hw->hbuf[2], hw->hbuf[3], hw->hbuf[4],
-+ hw->hbuf[5], hw->hbuf[6], hw->hbuf[7], hw->hbuf[8]);
-+
-+ arg_conf_len = asprintf(&arg_conf,
-+ "send dhcp-client-identifier %s;",
-+ client_id);
-+
-+ if ((arg_conf == 0) || (arg_conf_len <= 0))
-+ log_fatal("Unable to send option dhcp-client-identifier");
-+
-+ status = new_parse(&cfile, -1, arg_conf, arg_conf_len,
-+ "Automatic Infiniband client identifier", 0);
-+
-+ if ((status != ISC_R_SUCCESS) || (cfile->warnings_occurred))
-+ log_fatal("Failed to parse Infiniband client identifier");
-+
-+ parse_client_statement(cfile, NULL, ip->client->config);
-+
-+ if (cfile->warnings_occurred)
-+ log_fatal("Failed to parse Infiniband client identifier");
-+
-+ end_parse(&cfile);
- }
-
- /* Individual States:
-diff -up dhcp-4.2.2/common/lpf.c.gpxe-cid dhcp-4.2.2/common/lpf.c
---- dhcp-4.2.2/common/lpf.c.gpxe-cid 2011-09-16 18:23:20.183453996 +0200
-+++ dhcp-4.2.2/common/lpf.c 2011-09-16 18:25:28.235804421 +0200
-@@ -591,6 +591,37 @@ void maybe_setup_fallback ()
- }
- }
-
-+static unsigned char * get_ib_hw_addr(char * name)
-+{
-+ struct ifaddrs *ifaddrs;
-+ struct ifaddrs *ifa;
-+ struct sockaddr_ll *sll = NULL;
-+ static unsigned char hw_addr[8];
-+
-+ if (getifaddrs(&ifaddrs) == -1)
-+ return NULL;
-+
-+ for (ifa = ifaddrs; ifa != NULL; ifa = ifa->ifa_next) {
-+ if (ifa->ifa_addr == NULL)
-+ continue;
-+ if (ifa->ifa_addr->sa_family != AF_PACKET)
-+ continue;
-+ if (ifa->ifa_flags & IFF_LOOPBACK)
-+ continue;
-+ if (strcmp(ifa->ifa_name, name) == 0) {
-+ sll = (struct sockaddr_ll *)(void *)ifa->ifa_addr;
-+ break;
-+ }
-+ }
-+ if (sll == NULL) {
-+ freeifaddrs(ifaddrs);
-+ return NULL;
-+ }
-+ memcpy(hw_addr, &sll->sll_addr[sll->sll_halen - 8], 8);
-+ freeifaddrs(ifaddrs);
-+ return (unsigned char *)&hw_addr;
-+}
-+
- void
- get_hw_addr(struct interface_info *info)
- {
-@@ -599,6 +630,7 @@ get_hw_addr(struct interface_info *info)
- struct ifaddrs *ifaddrs;
- struct ifaddrs *ifa;
- struct sockaddr_ll *sll = NULL;
-+ unsigned char *hw_addr;
-
- if (getifaddrs(&ifaddrs) == -1)
- log_fatal("Failed to get interfaces");
-@@ -660,6 +692,10 @@ get_hw_addr(struct interface_info *info)
-
- hw->hlen = 1;
- hw->hbuf[0] = HTYPE_INFINIBAND;
-+ hw_addr = get_ib_hw_addr(name);
-+ if (!hw_addr)
-+ log_fatal("Failed getting %s hw addr", name);
-+ memcpy (&hw->hbuf [1], hw_addr, 8);
- break;
- #if defined(ARPHRD_PPP)
- case ARPHRD_PPP:
diff --git a/net-misc/dhcp/files/dhcp-4.2.2-improved-xid.patch b/net-misc/dhcp/files/dhcp-4.2.2-improved-xid.patch
deleted file mode 100644
index f49fc7845..000000000
--- a/net-misc/dhcp/files/dhcp-4.2.2-improved-xid.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-diff -up dhcp-4.2.2/client/dhclient.c.improved-xid dhcp-4.2.2/client/dhclient.c
---- dhcp-4.2.2/client/dhclient.c.improved-xid 2011-09-16 18:18:00.649730661 +0200
-+++ dhcp-4.2.2/client/dhclient.c 2011-09-16 18:22:36.815035513 +0200
-@@ -898,6 +898,26 @@ main(int argc, char **argv) {
- }
- }
-
-+ /* We create a backup seed before rediscovering interfaces in order to
-+ have a seed built using all of the available interfaces
-+ It's interesting if required interfaces doesn't let us defined
-+ a really unique seed due to a lack of valid HW addr later
-+ (this is the case with DHCP over IB)
-+ We only use the last device as using a sum could broke the
-+ uniqueness of the seed among multiple nodes
-+ */
-+ unsigned backup_seed = 0;
-+ for (ip = interfaces; ip; ip = ip -> next) {
-+ int junk;
-+ if ( ip -> hw_address.hlen <= sizeof seed )
-+ continue;
-+ memcpy (&junk,
-+ &ip -> hw_address.hbuf [ip -> hw_address.hlen -
-+ sizeof seed], sizeof seed);
-+ backup_seed = junk;
-+ }
-+
-+
- /* At this point, all the interfaces that the script thinks
- are relevant should be running, so now we once again call
- discover_interfaces(), and this time ask it to actually set
-@@ -912,14 +932,36 @@ main(int argc, char **argv) {
- Not much entropy, but we're booting, so we're not likely to
- find anything better. */
- seed = 0;
-+ int seed_flag = 0;
- for (ip = interfaces; ip; ip = ip->next) {
- int junk;
-+ if ( ip -> hw_address.hlen <= sizeof seed )
-+ continue;
- memcpy(&junk,
- &ip->hw_address.hbuf[ip->hw_address.hlen -
- sizeof seed], sizeof seed);
- seed += junk;
-+ seed_flag = 1;
- }
-- srandom(seed + cur_time + (unsigned)getpid());
-+ if ( seed_flag == 0 ) {
-+ if ( backup_seed != 0 ) {
-+ seed = backup_seed;
-+ log_info ("xid: rand init seed (0x%x) built using all"
-+ " available interfaces",seed);
-+ }
-+ else {
-+ seed = cur_time^((unsigned) gethostid()) ;
-+ log_info ("xid: warning: no netdev with useable HWADDR found"
-+ " for seed's uniqueness enforcement");
-+ log_info ("xid: rand init seed (0x%x) built using gethostid",
-+ seed);
-+ }
-+ /* we only use seed and no current time as a broadcast reply */
-+ /* will certainly be used by the hwaddrless interface */
-+ srandom(seed);
-+ }
-+ else
-+ srandom(seed + cur_time + (unsigned)getpid());
-
- /* Setup specific Infiniband options */
- for (ip = interfaces; ip; ip = ip->next) {
-@@ -1457,7 +1499,7 @@ void dhcpack (packet)
- return;
- }
-
-- log_info ("DHCPACK from %s", piaddr (packet -> client_addr));
-+ log_info ("DHCPACK from %s (xid=0x%x)", piaddr (packet -> client_addr), client -> xid);
-
- lease = packet_to_lease (packet, client);
- if (!lease) {
-@@ -2174,7 +2216,7 @@ void dhcpnak (packet)
- return;
- }
-
-- log_info ("DHCPNAK from %s", piaddr (packet -> client_addr));
-+ log_info ("DHCPNAK from %s (xid=0x%x)", piaddr (packet -> client_addr), client -> xid);
-
- if (!client -> active) {
- #if defined (DEBUG)
-@@ -2300,10 +2342,10 @@ void send_discover (cpp)
- client -> packet.secs = htons (65535);
- client -> secs = client -> packet.secs;
-
-- log_info ("DHCPDISCOVER on %s to %s port %d interval %ld",
-+ log_info ("DHCPDISCOVER on %s to %s port %d interval %ld (xid=0x%x)",
- client -> name ? client -> name : client -> interface -> name,
- inet_ntoa (sockaddr_broadcast.sin_addr),
-- ntohs (sockaddr_broadcast.sin_port), (long)(client -> interval));
-+ ntohs (sockaddr_broadcast.sin_port), (long)(client -> interval), client -> xid);
-
- /* Send out a packet. */
- result = send_packet (client -> interface, (struct packet *)0,
-@@ -2584,10 +2626,10 @@ void send_request (cpp)
- client -> packet.secs = htons (65535);
- }
-
-- log_info ("DHCPREQUEST on %s to %s port %d",
-+ log_info ("DHCPREQUEST on %s to %s port %d (xid=0x%x)",
- client -> name ? client -> name : client -> interface -> name,
- inet_ntoa (destination.sin_addr),
-- ntohs (destination.sin_port));
-+ ntohs (destination.sin_port), client -> xid);
-
- if (destination.sin_addr.s_addr != INADDR_BROADCAST &&
- fallback_interface)
-@@ -2618,10 +2660,10 @@ void send_decline (cpp)
-
- int result;
-
-- log_info ("DHCPDECLINE on %s to %s port %d",
-+ log_info ("DHCPDECLINE on %s to %s port %d (xid=0x%x)",
- client -> name ? client -> name : client -> interface -> name,
- inet_ntoa (sockaddr_broadcast.sin_addr),
-- ntohs (sockaddr_broadcast.sin_port));
-+ ntohs (sockaddr_broadcast.sin_port), client -> xid);
-
- /* Send out a packet. */
- result = send_packet (client -> interface, (struct packet *)0,
-@@ -2661,10 +2703,10 @@ void send_release (cpp)
- return;
- }
-
-- log_info ("DHCPRELEASE on %s to %s port %d",
-+ log_info ("DHCPRELEASE on %s to %s port %d (xid=0x%x)",
- client -> name ? client -> name : client -> interface -> name,
- inet_ntoa (destination.sin_addr),
-- ntohs (destination.sin_port));
-+ ntohs (destination.sin_port), client -> xid);
-
- if (fallback_interface)
- result = send_packet (fallback_interface,
diff --git a/net-misc/dhcp/files/dhcp-4.2.2-lpf-ib.patch b/net-misc/dhcp/files/dhcp-4.2.2-lpf-ib.patch
deleted file mode 100644
index 4034028b8..000000000
--- a/net-misc/dhcp/files/dhcp-4.2.2-lpf-ib.patch
+++ /dev/null
@@ -1,538 +0,0 @@
-diff -up dhcp-4.2.2/client/dhclient.c.lpf-ib dhcp-4.2.2/client/dhclient.c
---- dhcp-4.2.2/client/dhclient.c.lpf-ib 2011-09-19 11:24:08.693775799 +0200
-+++ dhcp-4.2.2/client/dhclient.c 2011-09-19 11:24:08.703775541 +0200
-@@ -113,6 +113,8 @@ static int check_domain_name_list(const
- static int check_option_values(struct universe *universe, unsigned int opt,
- const char *ptr, size_t len);
-
-+static void setup_ib_interface(struct interface_info *ip);
-+
- int
- main(int argc, char **argv) {
- int fd;
-@@ -919,6 +921,14 @@ main(int argc, char **argv) {
- }
- srandom(seed + cur_time + (unsigned)getpid());
-
-+ /* Setup specific Infiniband options */
-+ for (ip = interfaces; ip; ip = ip->next) {
-+ if (ip->client &&
-+ (ip->hw_address.hbuf[0] == HTYPE_INFINIBAND)) {
-+ setup_ib_interface(ip);
-+ }
-+ }
-+
- /* Start a configuration state machine for each interface. */
- #ifdef DHCPv6
- if (local_family == AF_INET6) {
-@@ -1195,6 +1205,29 @@ int find_subnet (struct subnet **sp,
- return 0;
- }
-
-+static void setup_ib_interface(struct interface_info *ip)
-+{
-+ struct group *g;
-+
-+ /* Set the broadcast flag */
-+ ip->client->config->bootp_broadcast_always = 1;
-+
-+ /*
-+ * Find out if a dhcp-client-identifier option was specified either
-+ * in the config file or on the command line
-+ */
-+ for (g = ip->client->config->on_transmission; g != NULL; g = g->next) {
-+ if ((g->statements != NULL) &&
-+ (strcmp(g->statements->data.option->option->name,
-+ "dhcp-client-identifier") == 0)) {
-+ return;
-+ }
-+ }
-+
-+ /* No client ID specified */
-+ log_fatal("dhcp-client-identifier must be specified for InfiniBand");
-+}
-+
- /* Individual States:
- *
- * Each routine is called from the dhclient_state_machine() in one of
-diff -up dhcp-4.2.2/common/bpf.c.lpf-ib dhcp-4.2.2/common/bpf.c
---- dhcp-4.2.2/common/bpf.c.lpf-ib 2011-09-19 11:24:08.694775773 +0200
-+++ dhcp-4.2.2/common/bpf.c 2011-09-19 11:24:08.704775516 +0200
-@@ -198,11 +198,44 @@ struct bpf_insn dhcp_bpf_filter [] = {
- BPF_STMT(BPF_RET+BPF_K, 0),
- };
-
-+/* Packet filter program for DHCP over Infiniband.
-+ *
-+ * XXX
-+ * Changes to the filter program may require changes to the constant offsets
-+ * used in lpf_gen_filter_setup to patch the port in the BPF program!
-+ * XXX
-+ */
-+struct bpf_insn dhcp_ib_bpf_filter [] = {
-+ /* Packet filter for Infiniband */
-+ /* Make sure it's a UDP packet... */
-+ BPF_STMT(BPF_LD + BPF_B + BPF_ABS, 9),
-+ BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, IPPROTO_UDP, 0, 6),
-+
-+ /* Make sure this isn't a fragment... */
-+ BPF_STMT(BPF_LD + BPF_H + BPF_ABS, 6),
-+ BPF_JUMP(BPF_JMP + BPF_JSET + BPF_K, 0x1fff, 4, 0),
-+
-+ /* Get the IP header length... */
-+ BPF_STMT(BPF_LDX + BPF_B + BPF_MSH, 0),
-+
-+ /* Make sure it's to the right port... */
-+ BPF_STMT(BPF_LD + BPF_H + BPF_IND, 2),
-+ BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 67, 0, 1),
-+
-+ /* If we passed all the tests, ask for the whole packet. */
-+ BPF_STMT(BPF_RET + BPF_K, (u_int)-1),
-+
-+ /* Otherwise, drop it. */
-+ BPF_STMT(BPF_RET + BPF_K, 0),
-+};
-+
- #if defined (DEC_FDDI)
- struct bpf_insn *bpf_fddi_filter;
- #endif
-
- int dhcp_bpf_filter_len = sizeof dhcp_bpf_filter / sizeof (struct bpf_insn);
-+int dhcp_ib_bpf_filter_len = sizeof dhcp_ib_bpf_filter / sizeof (struct bpf_insn);
-+
- #if defined (HAVE_TR_SUPPORT)
- struct bpf_insn dhcp_bpf_tr_filter [] = {
- /* accept all token ring packets due to variable length header */
-diff -up dhcp-4.2.2/common/lpf.c.lpf-ib dhcp-4.2.2/common/lpf.c
---- dhcp-4.2.2/common/lpf.c.lpf-ib 2011-09-19 11:24:08.694775773 +0200
-+++ dhcp-4.2.2/common/lpf.c 2011-09-19 11:26:15.107109935 +0200
-@@ -42,6 +42,7 @@
- #include "includes/netinet/udp.h"
- #include "includes/netinet/if_ether.h"
- #include <net/if.h>
-+#include <ifaddrs.h>
-
- #ifndef PACKET_AUXDATA
- #define PACKET_AUXDATA 8
-@@ -59,6 +60,15 @@ struct tpacket_auxdata
- /* Reinitializes the specified interface after an address change. This
- is not required for packet-filter APIs. */
-
-+/* Default broadcast address for IPoIB */
-+static unsigned char default_ib_bcast_addr[20] = {
-+ 0x00, 0xff, 0xff, 0xff,
-+ 0xff, 0x12, 0x40, 0x1b,
-+ 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00,
-+ 0xff, 0xff, 0xff, 0xff
-+};
-+
- #ifdef USE_LPF_SEND
- void if_reinitialize_send (info)
- struct interface_info *info;
-@@ -86,10 +96,21 @@ int if_register_lpf (info)
- struct sockaddr common;
- } sa;
- struct ifreq ifr;
-+ int type;
-+ int protocol;
-
- /* Make an LPF socket. */
-- if ((sock = socket(PF_PACKET, SOCK_RAW,
-- htons((short)ETH_P_ALL))) < 0) {
-+ get_hw_addr(info);
-+
-+ if (info->hw_address.hbuf[0] == HTYPE_INFINIBAND) {
-+ type = SOCK_DGRAM;
-+ protocol = ETHERTYPE_IP;
-+ } else {
-+ type = SOCK_RAW;
-+ protocol = ETH_P_ALL;
-+ }
-+
-+ if ((sock = socket(PF_PACKET, type, htons((short)protocol))) < 0) {
- if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
- errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
- errno == EAFNOSUPPORT || errno == EINVAL) {
-@@ -112,6 +133,7 @@ int if_register_lpf (info)
- /* Bind to the interface name */
- memset (&sa, 0, sizeof sa);
- sa.ll.sll_family = AF_PACKET;
-+ sa.ll.sll_protocol = htons(protocol);
- sa.ll.sll_ifindex = ifr.ifr_ifindex;
- if (bind (sock, &sa.common, sizeof sa)) {
- if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
-@@ -127,8 +149,6 @@ int if_register_lpf (info)
- log_fatal ("Bind socket to interface: %m");
- }
-
-- get_hw_addr(info->name, &info->hw_address);
--
- return sock;
- }
- #endif /* USE_LPF_SEND || USE_LPF_RECEIVE */
-@@ -183,6 +203,8 @@ void if_deregister_send (info)
- in bpf includes... */
- extern struct sock_filter dhcp_bpf_filter [];
- extern int dhcp_bpf_filter_len;
-+extern struct sock_filter dhcp_ib_bpf_filter [];
-+extern int dhcp_ib_bpf_filter_len;
-
- #if defined (HAVE_TR_SUPPORT)
- extern struct sock_filter dhcp_bpf_tr_filter [];
-@@ -200,11 +222,13 @@ void if_register_receive (info)
- /* Open a LPF device and hang it on this interface... */
- info -> rfdesc = if_register_lpf (info);
-
-- val = 1;
-- if (setsockopt (info -> rfdesc, SOL_PACKET, PACKET_AUXDATA, &val,
-- sizeof val) < 0) {
-- if (errno != ENOPROTOOPT)
-- log_fatal ("Failed to set auxiliary packet data: %m");
-+ if (info->hw_address.hbuf[0] != HTYPE_INFINIBAND) {
-+ val = 1;
-+ if (setsockopt (info -> rfdesc, SOL_PACKET, PACKET_AUXDATA,
-+ &val, sizeof val) < 0) {
-+ if (errno != ENOPROTOOPT)
-+ log_fatal ("Failed to set auxiliary packet data: %m");
-+ }
- }
-
- #if defined (HAVE_TR_SUPPORT)
-@@ -250,15 +274,28 @@ static void lpf_gen_filter_setup (info)
-
- memset(&p, 0, sizeof(p));
-
-- /* Set up the bpf filter program structure. This is defined in
-- bpf.c */
-- p.len = dhcp_bpf_filter_len;
-- p.filter = dhcp_bpf_filter;
--
-- /* Patch the server port into the LPF program...
-- XXX changes to filter program may require changes
-- to the insn number(s) used below! XXX */
-- dhcp_bpf_filter [8].k = ntohs ((short)local_port);
-+ if (info->hw_address.hbuf[0] == HTYPE_INFINIBAND) {
-+ /* Set up the bpf filter program structure. */
-+ p.len = dhcp_ib_bpf_filter_len;
-+ p.filter = dhcp_ib_bpf_filter;
-+
-+ /* Patch the server port into the LPF program...
-+ XXX
-+ changes to filter program may require changes
-+ to the insn number(s) used below!
-+ XXX */
-+ dhcp_ib_bpf_filter[6].k = ntohs ((short)local_port);
-+ } else {
-+ /* Set up the bpf filter program structure.
-+ This is defined in bpf.c */
-+ p.len = dhcp_bpf_filter_len;
-+ p.filter = dhcp_bpf_filter;
-+
-+ /* Patch the server port into the LPF program...
-+ XXX changes to filter program may require changes
-+ to the insn number(s) used below! XXX */
-+ dhcp_bpf_filter [8].k = ntohs ((short)local_port);
-+ }
-
- if (setsockopt (info -> rfdesc, SOL_SOCKET, SO_ATTACH_FILTER, &p,
- sizeof p) < 0) {
-@@ -315,6 +352,54 @@ static void lpf_tr_filter_setup (info)
- #endif /* USE_LPF_RECEIVE */
-
- #ifdef USE_LPF_SEND
-+ssize_t send_packet_ib(interface, packet, raw, len, from, to, hto)
-+ struct interface_info *interface;
-+ struct packet *packet;
-+ struct dhcp_packet *raw;
-+ size_t len;
-+ struct in_addr from;
-+ struct sockaddr_in *to;
-+ struct hardware *hto;
-+{
-+ unsigned ibufp = 0;
-+ double ih [1536 / sizeof (double)];
-+ unsigned char *buf = (unsigned char *)ih;
-+ ssize_t result;
-+
-+ union sockunion {
-+ struct sockaddr sa;
-+ struct sockaddr_ll sll;
-+ struct sockaddr_storage ss;
-+ } su;
-+
-+ assemble_udp_ip_header (interface, buf, &ibufp, from.s_addr,
-+ to->sin_addr.s_addr, to->sin_port,
-+ (unsigned char *)raw, len);
-+ memcpy (buf + ibufp, raw, len);
-+
-+ memset(&su, 0, sizeof(su));
-+ su.sll.sll_family = AF_PACKET;
-+ su.sll.sll_protocol = htons(ETHERTYPE_IP);
-+
-+ if (!(su.sll.sll_ifindex = if_nametoindex(interface->name))) {
-+ errno = ENOENT;
-+ log_error ("send_packet_ib: %m - failed to get if index");
-+ return -1;
-+ }
-+
-+ su.sll.sll_hatype = htons(HTYPE_INFINIBAND);
-+ su.sll.sll_halen = sizeof(interface->bcast_addr);
-+ memcpy(&su.sll.sll_addr, interface->bcast_addr, 20);
-+
-+ result = sendto(interface->wfdesc, buf, ibufp + len, 0,
-+ &su.sa, sizeof(su));
-+
-+ if (result < 0)
-+ log_error ("send_packet_ib: %m");
-+
-+ return result;
-+}
-+
- ssize_t send_packet (interface, packet, raw, len, from, to, hto)
- struct interface_info *interface;
- struct packet *packet;
-@@ -335,6 +420,11 @@ ssize_t send_packet (interface, packet,
- return send_fallback (interface, packet, raw,
- len, from, to, hto);
-
-+ if (interface->hw_address.hbuf[0] == HTYPE_INFINIBAND) {
-+ return send_packet_ib(interface, packet, raw, len, from,
-+ to, hto);
-+ }
-+
- if (hto == NULL && interface->anycast_mac_addr.hlen)
- hto = &interface->anycast_mac_addr;
-
-@@ -356,6 +446,42 @@ ssize_t send_packet (interface, packet,
- #endif /* USE_LPF_SEND */
-
- #ifdef USE_LPF_RECEIVE
-+ssize_t receive_packet_ib (interface, buf, len, from, hfrom)
-+ struct interface_info *interface;
-+ unsigned char *buf;
-+ size_t len;
-+ struct sockaddr_in *from;
-+ struct hardware *hfrom;
-+{
-+ int length = 0;
-+ int offset = 0;
-+ unsigned char ibuf [1536];
-+ unsigned bufix = 0;
-+ unsigned paylen;
-+
-+ length = read(interface->rfdesc, ibuf, sizeof(ibuf));
-+
-+ if (length <= 0)
-+ return length;
-+
-+ offset = decode_udp_ip_header(interface, ibuf, bufix, from,
-+ (unsigned)length, &paylen, 0);
-+
-+ if (offset < 0)
-+ return 0;
-+
-+ bufix += offset;
-+ length -= offset;
-+
-+ if (length < paylen)
-+ log_fatal("Internal inconsistency at %s:%d.", MDL);
-+
-+ /* Copy out the data in the packet... */
-+ memcpy(buf, &ibuf[bufix], paylen);
-+
-+ return (ssize_t)paylen;
-+}
-+
- ssize_t receive_packet (interface, buf, len, from, hfrom)
- struct interface_info *interface;
- unsigned char *buf;
-@@ -382,6 +508,10 @@ ssize_t receive_packet (interface, buf,
- };
- struct cmsghdr *cmsg;
-
-+ if (interface->hw_address.hbuf[0] == HTYPE_INFINIBAND) {
-+ return receive_packet_ib(interface, buf, len, from, hfrom);
-+ }
-+
- length = recvmsg (interface -> rfdesc, &msg, 0);
- if (length <= 0)
- return length;
-@@ -462,33 +592,44 @@ void maybe_setup_fallback ()
- }
-
- void
--get_hw_addr(const char *name, struct hardware *hw) {
-- int sock;
-- struct ifreq tmp;
-- struct sockaddr *sa;
-+get_hw_addr(struct interface_info *info)
-+{
-+ struct hardware *hw = &info->hw_address;
-+ char *name = info->name;
-+ struct ifaddrs *ifaddrs;
-+ struct ifaddrs *ifa;
-+ struct sockaddr_ll *sll = NULL;
-
-- if (strlen(name) >= sizeof(tmp.ifr_name)) {
-- log_fatal("Device name too long: \"%s\"", name);
-- }
-+ if (getifaddrs(&ifaddrs) == -1)
-+ log_fatal("Failed to get interfaces");
-
-- sock = socket(AF_INET, SOCK_DGRAM, 0);
-- if (sock < 0) {
-- log_fatal("Can't create socket for \"%s\": %m", name);
-+ for (ifa = ifaddrs; ifa != NULL; ifa = ifa->ifa_next) {
-+
-+ if (ifa->ifa_addr == NULL)
-+ continue;
-+
-+ if (ifa->ifa_addr->sa_family != AF_PACKET)
-+ continue;
-+
-+ if (ifa->ifa_flags & IFF_LOOPBACK)
-+ continue;
-+
-+ if (strcmp(ifa->ifa_name, name) == 0) {
-+ sll = (struct sockaddr_ll *)(void *)ifa->ifa_addr;
-+ break;
-+ }
- }
-
-- memset(&tmp, 0, sizeof(tmp));
-- strcpy(tmp.ifr_name, name);
-- if (ioctl(sock, SIOCGIFHWADDR, &tmp) < 0) {
-- log_fatal("Error getting hardware address for \"%s\": %m",
-- name);
-+ if (sll == NULL) {
-+ freeifaddrs(ifaddrs);
-+ log_fatal("Failed to get HW address for %s\n", name);
- }
-
-- sa = &tmp.ifr_hwaddr;
-- switch (sa->sa_family) {
-+ switch (sll->sll_hatype) {
- case ARPHRD_ETHER:
- hw->hlen = 7;
- hw->hbuf[0] = HTYPE_ETHER;
-- memcpy(&hw->hbuf[1], sa->sa_data, 6);
-+ memcpy(&hw->hbuf[1], sll->sll_addr, 6);
- break;
- case ARPHRD_IEEE802:
- #ifdef ARPHRD_IEEE802_TR
-@@ -496,18 +637,35 @@ get_hw_addr(const char *name, struct har
- #endif /* ARPHRD_IEEE802_TR */
- hw->hlen = 7;
- hw->hbuf[0] = HTYPE_IEEE802;
-- memcpy(&hw->hbuf[1], sa->sa_data, 6);
-+ memcpy(&hw->hbuf[1], sll->sll_addr, 6);
- break;
- case ARPHRD_FDDI:
- hw->hlen = 17;
- hw->hbuf[0] = HTYPE_FDDI;
-- memcpy(&hw->hbuf[1], sa->sa_data, 16);
-+ memcpy(&hw->hbuf[1], sll->sll_addr, 16);
-+ break;
-+ case ARPHRD_INFINIBAND:
-+ /* For Infiniband, save the broadcast address and store
-+ * the port GUID into the hardware address.
-+ */
-+ if (ifa->ifa_flags & IFF_BROADCAST) {
-+ struct sockaddr_ll *bll;
-+
-+ bll = (struct sockaddr_ll *)ifa->ifa_broadaddr;
-+ memcpy(&info->bcast_addr, bll->sll_addr, 20);
-+ } else {
-+ memcpy(&info->bcast_addr, default_ib_bcast_addr,
-+ 20);
-+ }
-+
-+ hw->hlen = 1;
-+ hw->hbuf[0] = HTYPE_INFINIBAND;
- break;
- #if defined(ARPHRD_PPP)
- case ARPHRD_PPP:
- if (local_family != AF_INET6)
-- log_fatal("Unsupported device type %d for \"%s\"",
-- sa->sa_family, name);
-+ log_fatal("Unsupported device type %ld for \"%s\"",
-+ (long int)sll->sll_family, name);
- hw->hlen = 0;
- hw->hbuf[0] = HTYPE_RESERVED;
- /* 0xdeadbeef should never occur on the wire,
-@@ -520,10 +678,11 @@ get_hw_addr(const char *name, struct har
- break;
- #endif
- default:
-+ freeifaddrs(ifaddrs);
- log_fatal("Unsupported device type %ld for \"%s\"",
-- (long int)sa->sa_family, name);
-+ (long int)sll->sll_family, name);
- }
-
-- close(sock);
-+ freeifaddrs(ifaddrs);
- }
- #endif
-diff -up dhcp-4.2.2/common/socket.c.lpf-ib dhcp-4.2.2/common/socket.c
---- dhcp-4.2.2/common/socket.c.lpf-ib 2011-06-27 18:18:20.000000000 +0200
-+++ dhcp-4.2.2/common/socket.c 2011-09-19 11:24:08.705775490 +0200
-@@ -324,7 +324,7 @@ void if_register_send (info)
- info->wfdesc = if_register_socket(info, AF_INET, 0);
- /* If this is a normal IPv4 address, get the hardware address. */
- if (strcmp(info->name, "fallback") != 0)
-- get_hw_addr(info->name, &info->hw_address);
-+ get_hw_addr(info);
- #if defined (USE_SOCKET_FALLBACK)
- /* Fallback only registers for send, but may need to receive as
- well. */
-@@ -387,7 +387,7 @@ void if_register_receive (info)
- #endif /* IP_PKTINFO... */
- /* If this is a normal IPv4 address, get the hardware address. */
- if (strcmp(info->name, "fallback") != 0)
-- get_hw_addr(info->name, &info->hw_address);
-+ get_hw_addr(info);
-
- if (!quiet_interface_discovery)
- log_info ("Listening on Socket/%s%s%s",
-@@ -497,7 +497,7 @@ if_register6(struct interface_info *info
- if (req_multi)
- if_register_multicast(info);
-
-- get_hw_addr(info->name, &info->hw_address);
-+ get_hw_addr(info);
-
- if (!quiet_interface_discovery) {
- if (info->shared_network != NULL) {
-diff -up dhcp-4.2.2/includes/dhcpd.h.lpf-ib dhcp-4.2.2/includes/dhcpd.h
---- dhcp-4.2.2/includes/dhcpd.h.lpf-ib 2011-09-19 11:24:08.696775721 +0200
-+++ dhcp-4.2.2/includes/dhcpd.h 2011-09-19 11:24:08.707775438 +0200
-@@ -1243,6 +1243,7 @@ struct interface_info {
- struct shared_network *shared_network;
- /* Networks connected to this interface. */
- struct hardware hw_address; /* Its physical address. */
-+ u_int8_t bcast_addr[20]; /* Infiniband broadcast address */
- struct in_addr *addresses; /* Addresses associated with this
- * interface.
- */
-@@ -2356,7 +2357,7 @@ void print_dns_status (int, struct dhcp_
- #endif
- const char *print_time(TIME);
-
--void get_hw_addr(const char *name, struct hardware *hw);
-+void get_hw_addr(struct interface_info *info);
-
- /* socket.c */
- #if defined (USE_SOCKET_SEND) || defined (USE_SOCKET_RECEIVE) \
-diff -up dhcp-4.2.2/includes/dhcp.h.lpf-ib dhcp-4.2.2/includes/dhcp.h
---- dhcp-4.2.2/includes/dhcp.h.lpf-ib 2011-09-19 11:24:08.696775721 +0200
-+++ dhcp-4.2.2/includes/dhcp.h 2011-09-19 11:24:08.707775438 +0200
-@@ -79,6 +79,7 @@ struct dhcp_packet {
- #define HTYPE_ETHER 1 /* Ethernet 10Mbps */
- #define HTYPE_IEEE802 6 /* IEEE 802.2 Token Ring... */
- #define HTYPE_FDDI 8 /* FDDI... */
-+#define HTYPE_INFINIBAND 32 /* Infiniband IPoIB */
-
- #define HTYPE_RESERVED 0 /* RFC 5494 */
-
diff --git a/net-misc/dhcp/files/dhcp-4.2.2-nogateway.patch b/net-misc/dhcp/files/dhcp-4.2.2-nogateway.patch
deleted file mode 100644
index 27fb2b0e6..000000000
--- a/net-misc/dhcp/files/dhcp-4.2.2-nogateway.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-http://bugs.gentoo.org/265531
-
---- dhcp-4.2.2/client/scripts/linux
-+++ dhcp-4.2.2/client/scripts/linux
-@@ -193,12 +193,14 @@
- 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
-- fi
-- route add default gw $router $metric_arg dev $interface
-- done
-+ if [ x$PEER_ROUTERS = x ] || [ x$PEER_ROUTERS = xyes ]; then
-+ for router in $new_routers; do
-+ if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
-+ route add -host $router dev $interface
-+ fi
-+ route add default gw $router $metric_arg dev $interface
-+ done
-+ fi
- else
- # we haven't changed the address, have we changed other options
- # that we wish to update?
-@@ -244,12 +246,14 @@
- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
- 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
-- fi
-- route add default gw $router $metric_arg dev $interface
-- done
-+ if [ x$PEER_ROUTERS = x ] || [ x$PEER_ROUTERS = xyes ]; then
-+ for router in $new_routers; do
-+ if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
-+ route add -host $router dev $interface
-+ fi
-+ route add default gw $router $metric_arg dev $interface
-+ done
-+ fi
- make_resolv_conf
- exit_with_hooks 0
- fi
diff --git a/net-misc/dhcp/files/dhcp-4.2.2-xen-checksum.patch b/net-misc/dhcp/files/dhcp-4.2.2-xen-checksum.patch
deleted file mode 100644
index 038d346d7..000000000
--- a/net-misc/dhcp/files/dhcp-4.2.2-xen-checksum.patch
+++ /dev/null
@@ -1,249 +0,0 @@
-diff -up dhcp-4.2.2b1/common/bpf.c.xen dhcp-4.2.2b1/common/bpf.c
---- dhcp-4.2.2b1/common/bpf.c.xen 2009-11-20 02:48:59.000000000 +0100
-+++ dhcp-4.2.2b1/common/bpf.c 2011-07-01 14:00:16.936959001 +0200
-@@ -485,7 +485,7 @@ ssize_t receive_packet (interface, buf,
- offset = decode_udp_ip_header (interface,
- interface -> rbuf,
- interface -> rbuf_offset,
-- from, hdr.bh_caplen, &paylen);
-+ from, hdr.bh_caplen, &paylen, 0);
-
- /* If the IP or UDP checksum was bad, skip the packet... */
- if (offset < 0) {
-diff -up dhcp-4.2.2b1/common/dlpi.c.xen dhcp-4.2.2b1/common/dlpi.c
---- dhcp-4.2.2b1/common/dlpi.c.xen 2011-05-11 16:20:59.000000000 +0200
-+++ dhcp-4.2.2b1/common/dlpi.c 2011-07-01 14:00:16.937958997 +0200
-@@ -693,7 +693,7 @@ ssize_t receive_packet (interface, buf,
- length -= offset;
- #endif
- offset = decode_udp_ip_header (interface, dbuf, bufix,
-- from, length, &paylen);
-+ from, length, &paylen, 0);
-
- /*
- * If the IP or UDP checksum was bad, skip the packet...
-diff -up dhcp-4.2.2b1/common/lpf.c.xen dhcp-4.2.2b1/common/lpf.c
---- dhcp-4.2.2b1/common/lpf.c.xen 2011-05-10 16:38:58.000000000 +0200
-+++ dhcp-4.2.2b1/common/lpf.c 2011-07-01 14:11:24.725748028 +0200
-@@ -29,19 +29,33 @@
- #include "dhcpd.h"
- #if defined (USE_LPF_SEND) || defined (USE_LPF_RECEIVE)
- #include <sys/ioctl.h>
-+#include <sys/socket.h>
- #include <sys/uio.h>
- #include <errno.h>
-
- #include <asm/types.h>
- #include <linux/filter.h>
- #include <linux/if_ether.h>
-+#include <linux/if_packet.h>
- #include <netinet/in_systm.h>
--#include <net/if_packet.h>
- #include "includes/netinet/ip.h"
- #include "includes/netinet/udp.h"
- #include "includes/netinet/if_ether.h"
- #include <net/if.h>
-
-+#ifndef PACKET_AUXDATA
-+#define PACKET_AUXDATA 8
-+
-+struct tpacket_auxdata
-+{
-+ __u32 tp_status;
-+ __u32 tp_len;
-+ __u32 tp_snaplen;
-+ __u16 tp_mac;
-+ __u16 tp_net;
-+};
-+#endif
-+
- /* Reinitializes the specified interface after an address change. This
- is not required for packet-filter APIs. */
-
-@@ -67,10 +81,14 @@ int if_register_lpf (info)
- struct interface_info *info;
- {
- int sock;
-- struct sockaddr sa;
-+ union {
-+ struct sockaddr_ll ll;
-+ struct sockaddr common;
-+ } sa;
-+ struct ifreq ifr;
-
- /* Make an LPF socket. */
-- if ((sock = socket(PF_PACKET, SOCK_PACKET,
-+ if ((sock = socket(PF_PACKET, SOCK_RAW,
- htons((short)ETH_P_ALL))) < 0) {
- if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
- errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
-@@ -85,11 +103,17 @@ int if_register_lpf (info)
- log_fatal ("Open a socket for LPF: %m");
- }
-
-+ memset (&ifr, 0, sizeof ifr);
-+ strncpy (ifr.ifr_name, (const char *)info -> ifp, sizeof ifr.ifr_name);
-+ ifr.ifr_name[IFNAMSIZ-1] = '\0';
-+ if (ioctl (sock, SIOCGIFINDEX, &ifr))
-+ log_fatal ("Failed to get interface index: %m");
-+
- /* Bind to the interface name */
- memset (&sa, 0, sizeof sa);
-- sa.sa_family = AF_PACKET;
-- strncpy (sa.sa_data, (const char *)info -> ifp, sizeof sa.sa_data);
-- if (bind (sock, &sa, sizeof sa)) {
-+ sa.ll.sll_family = AF_PACKET;
-+ sa.ll.sll_ifindex = ifr.ifr_ifindex;
-+ if (bind (sock, &sa.common, sizeof sa)) {
- if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT ||
- errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT ||
- errno == EAFNOSUPPORT || errno == EINVAL) {
-@@ -171,9 +195,18 @@ static void lpf_gen_filter_setup (struct
- void if_register_receive (info)
- struct interface_info *info;
- {
-+ int val;
-+
- /* Open a LPF device and hang it on this interface... */
- info -> rfdesc = if_register_lpf (info);
-
-+ val = 1;
-+ if (setsockopt (info -> rfdesc, SOL_PACKET, PACKET_AUXDATA, &val,
-+ sizeof val) < 0) {
-+ if (errno != ENOPROTOOPT)
-+ log_fatal ("Failed to set auxiliary packet data: %m");
-+ }
-+
- #if defined (HAVE_TR_SUPPORT)
- if (info -> hw_address.hbuf [0] == HTYPE_IEEE802)
- lpf_tr_filter_setup (info);
-@@ -295,7 +328,6 @@ ssize_t send_packet (interface, packet,
- double hh [16];
- double ih [1536 / sizeof (double)];
- unsigned char *buf = (unsigned char *)ih;
-- struct sockaddr_pkt sa;
- int result;
- int fudge;
-
-@@ -316,17 +348,7 @@ ssize_t send_packet (interface, packet,
- (unsigned char *)raw, len);
- memcpy (buf + ibufp, raw, len);
-
-- /* For some reason, SOCK_PACKET sockets can't be connected,
-- so we have to do a sentdo every time. */
-- memset (&sa, 0, sizeof sa);
-- sa.spkt_family = AF_PACKET;
-- strncpy ((char *)sa.spkt_device,
-- (const char *)interface -> ifp, sizeof sa.spkt_device);
-- sa.spkt_protocol = htons(ETH_P_IP);
--
-- result = sendto (interface -> wfdesc,
-- buf + fudge, ibufp + len - fudge, 0,
-- (const struct sockaddr *)&sa, sizeof sa);
-+ result = write (interface -> wfdesc, buf + fudge, ibufp + len - fudge);
- if (result < 0)
- log_error ("send_packet: %m");
- return result;
-@@ -343,14 +365,35 @@ ssize_t receive_packet (interface, buf,
- {
- int length = 0;
- int offset = 0;
-+ int nocsum = 0;
- unsigned char ibuf [1536];
- unsigned bufix = 0;
- unsigned paylen;
-+ unsigned char cmsgbuf[CMSG_LEN(sizeof(struct tpacket_auxdata))];
-+ struct iovec iov = {
-+ .iov_base = ibuf,
-+ .iov_len = sizeof ibuf,
-+ };
-+ struct msghdr msg = {
-+ .msg_iov = &iov,
-+ .msg_iovlen = 1,
-+ .msg_control = cmsgbuf,
-+ .msg_controllen = sizeof(cmsgbuf),
-+ };
-+ struct cmsghdr *cmsg;
-
-- length = read (interface -> rfdesc, ibuf, sizeof ibuf);
-+ length = recvmsg (interface -> rfdesc, &msg, 0);
- if (length <= 0)
- return length;
-
-+ for (cmsg = CMSG_FIRSTHDR(&msg); cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) {
-+ if (cmsg->cmsg_level == SOL_PACKET &&
-+ cmsg->cmsg_type == PACKET_AUXDATA) {
-+ struct tpacket_auxdata *aux = (void *)CMSG_DATA(cmsg);
-+ nocsum = aux->tp_status & TP_STATUS_CSUMNOTREADY;
-+ }
-+ }
-+
- bufix = 0;
- /* Decode the physical header... */
- offset = decode_hw_header (interface, ibuf, bufix, hfrom);
-@@ -367,7 +410,7 @@ ssize_t receive_packet (interface, buf,
-
- /* Decode the IP and UDP headers... */
- offset = decode_udp_ip_header (interface, ibuf, bufix, from,
-- (unsigned)length, &paylen);
-+ (unsigned)length, &paylen, nocsum);
-
- /* If the IP or UDP checksum was bad, skip the packet... */
- if (offset < 0)
-diff -up dhcp-4.2.2b1/common/nit.c.xen dhcp-4.2.2b1/common/nit.c
---- dhcp-4.2.2b1/common/nit.c.xen 2009-11-20 02:49:01.000000000 +0100
-+++ dhcp-4.2.2b1/common/nit.c 2011-07-01 14:00:16.939958989 +0200
-@@ -369,7 +369,7 @@ ssize_t receive_packet (interface, buf,
-
- /* Decode the IP and UDP headers... */
- offset = decode_udp_ip_header (interface, ibuf, bufix,
-- from, length, &paylen);
-+ from, length, &paylen, 0);
-
- /* If the IP or UDP checksum was bad, skip the packet... */
- if (offset < 0)
-diff -up dhcp-4.2.2b1/common/packet.c.xen dhcp-4.2.2b1/common/packet.c
---- dhcp-4.2.2b1/common/packet.c.xen 2009-07-23 20:52:20.000000000 +0200
-+++ dhcp-4.2.2b1/common/packet.c 2011-07-01 14:00:16.939958989 +0200
-@@ -211,7 +211,7 @@ ssize_t
- decode_udp_ip_header(struct interface_info *interface,
- unsigned char *buf, unsigned bufix,
- struct sockaddr_in *from, unsigned buflen,
-- unsigned *rbuflen)
-+ unsigned *rbuflen, int nocsum)
- {
- unsigned char *data;
- struct ip ip;
-@@ -322,7 +322,7 @@ decode_udp_ip_header(struct interface_in
- 8, IPPROTO_UDP + ulen))));
-
- udp_packets_seen++;
-- if (usum && usum != sum) {
-+ if (!nocsum && usum && usum != sum) {
- udp_packets_bad_checksum++;
- if (udp_packets_seen > 4 &&
- (udp_packets_seen / udp_packets_bad_checksum) < 2) {
-diff -up dhcp-4.2.2b1/common/upf.c.xen dhcp-4.2.2b1/common/upf.c
---- dhcp-4.2.2b1/common/upf.c.xen 2009-11-20 02:49:01.000000000 +0100
-+++ dhcp-4.2.2b1/common/upf.c 2011-07-01 14:00:16.940958986 +0200
-@@ -320,7 +320,7 @@ ssize_t receive_packet (interface, buf,
-
- /* Decode the IP and UDP headers... */
- offset = decode_udp_ip_header (interface, ibuf, bufix,
-- from, length, &paylen);
-+ from, length, &paylen, 0);
-
- /* If the IP or UDP checksum was bad, skip the packet... */
- if (offset < 0)
-diff -up dhcp-4.2.2b1/includes/dhcpd.h.xen dhcp-4.2.2b1/includes/dhcpd.h
---- dhcp-4.2.2b1/includes/dhcpd.h.xen 2011-07-01 14:00:16.000000000 +0200
-+++ dhcp-4.2.2b1/includes/dhcpd.h 2011-07-01 14:12:18.069642470 +0200
-@@ -2796,7 +2796,7 @@ ssize_t decode_hw_header (struct interfa
- unsigned, struct hardware *);
- ssize_t decode_udp_ip_header (struct interface_info *, unsigned char *,
- unsigned, struct sockaddr_in *,
-- unsigned, unsigned *);
-+ unsigned, unsigned *, int);
-
- /* ethernet.c */
- void assemble_ethernet_header (struct interface_info *, unsigned char *,
diff --git a/net-misc/dhcp/files/dhcp-4.2.3-options.patch b/net-misc/dhcp/files/dhcp-4.2.3-options.patch
deleted file mode 100644
index c902e62a3..000000000
--- a/net-misc/dhcp/files/dhcp-4.2.3-options.patch
+++ /dev/null
@@ -1,391 +0,0 @@
-diff -up dhcp-4.2.3-P2/client/clparse.c.options dhcp-4.2.3-P2/client/clparse.c
---- dhcp-4.2.3-P2/client/clparse.c.options 2011-04-21 16:08:14.000000000 +0200
-+++ dhcp-4.2.3-P2/client/clparse.c 2012-02-13 18:21:32.233471518 +0100
-@@ -146,6 +146,7 @@ isc_result_t read_client_conf ()
- /* Requested lease time, used by DHCPv6 (DHCPv4 uses the option cache)
- */
- top_level_config.requested_lease = 7200;
-+ top_level_config.bootp_broadcast_always = 0;
-
- group_allocate (&top_level_config.on_receipt, MDL);
- if (!top_level_config.on_receipt)
-@@ -313,7 +314,8 @@ void read_client_leases ()
- interface-declaration |
- LEASE client-lease-statement |
- ALIAS client-lease-statement |
-- KEY key-definition */
-+ KEY key-definition |
-+ BOOTP_BROADCAST_ALWAYS */
-
- void parse_client_statement (cfile, ip, config)
- struct parse *cfile;
-@@ -732,6 +734,12 @@ void parse_client_statement (cfile, ip,
- parse_reject_statement (cfile, config);
- return;
-
-+ case BOOTP_BROADCAST_ALWAYS:
-+ token = next_token(&val, (unsigned*)0, cfile);
-+ config -> bootp_broadcast_always = 1;
-+ parse_semi (cfile);
-+ return;
-+
- default:
- lose = 0;
- stmt = (struct executable_statement *)0;
-diff -up dhcp-4.2.3-P2/client/dhclient.c.options dhcp-4.2.3-P2/client/dhclient.c
---- dhcp-4.2.3-P2/client/dhclient.c.options 2011-12-31 01:55:21.000000000 +0100
-+++ dhcp-4.2.3-P2/client/dhclient.c 2012-02-13 18:22:11.554979930 +0100
-@@ -39,6 +39,12 @@
- #include <limits.h>
- #include <dns/result.h>
-
-+/*
-+ * Defined in stdio.h when _GNU_SOURCE is set, but we don't want to define
-+ * that when building ISC code.
-+ */
-+extern int asprintf(char **strp, const char *fmt, ...);
-+
- TIME default_lease_time = 43200; /* 12 hours... */
- TIME max_lease_time = 86400; /* 24 hours... */
-
-@@ -87,6 +93,9 @@ int wanted_ia_na = -1; /* the absolute
- int wanted_ia_ta = 0;
- int wanted_ia_pd = 0;
- char *mockup_relay = NULL;
-+int bootp_broadcast_always = 0;
-+
-+extern u_int32_t default_requested_options[];
-
- void run_stateless(int exit_mode);
-
-@@ -123,6 +132,15 @@ main(int argc, char **argv) {
- int local_family_set = 0;
- #endif /* DHCPv6 */
- char *s;
-+ char *dhcp_client_identifier_arg = NULL;
-+ char *dhcp_host_name_arg = NULL;
-+ char *dhcp_fqdn_arg = NULL;
-+ char *dhcp_vendor_class_identifier_arg = NULL;
-+ char *dhclient_request_options = NULL;
-+
-+ int timeout_arg = 0;
-+ char *arg_conf = NULL;
-+ int arg_conf_len = 0;
-
- /* Initialize client globals. */
- memset(&default_duid, 0, sizeof(default_duid));
-@@ -310,6 +328,88 @@ main(int argc, char **argv) {
- } else if (!strcmp(argv[i], "--version")) {
- log_info("isc-dhclient-%s", PACKAGE_VERSION);
- exit(0);
-+ } else if (!strcmp(argv[i], "-I")) {
-+ if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) {
-+ usage();
-+ exit(1);
-+ }
-+
-+ if (strlen(argv[i]) >= DHCP_MAX_OPTION_LEN) {
-+ log_error("-I option dhcp-client-identifier string \"%s\" is too long - maximum length is: %d", argv[i], DHCP_MAX_OPTION_LEN-1);
-+ exit(1);
-+ }
-+
-+ dhcp_client_identifier_arg = argv[i];
-+ } else if (!strcmp(argv[i], "-B")) {
-+ bootp_broadcast_always = 1;
-+ } else if (!strcmp(argv[i], "-H")) {
-+ if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) {
-+ usage();
-+ exit(1);
-+ }
-+
-+ if (strlen(argv[i]) >= DHCP_MAX_OPTION_LEN) {
-+ log_error("-H option host-name string \"%s\" is too long - maximum length is: %d", argv[i], DHCP_MAX_OPTION_LEN-1);
-+ exit(1);
-+ }
-+
-+ if (dhcp_host_name_arg != NULL) {
-+ log_error("The -H <host-name> and -F <fqdn> arguments are mutually exclusive");
-+ exit(1);
-+ }
-+
-+ dhcp_host_name_arg = argv[i];
-+ } else if (!strcmp(argv[i], "-F")) {
-+ if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) {
-+ usage();
-+ exit(1);
-+ }
-+
-+ if (strlen(argv[i]) >= DHCP_MAX_OPTION_LEN) {
-+ log_error("-F option fqdn.fqdn string \"%s\" is too long - maximum length is: %d", argv[i], DHCP_MAX_OPTION_LEN-1);
-+ exit(1);
-+ }
-+
-+ if (dhcp_fqdn_arg != NULL) {
-+ log_error("Only one -F <fqdn> argument can be specified");
-+ exit(1);
-+ }
-+
-+ if (dhcp_host_name_arg != NULL) {
-+ log_error("The -F <fqdn> and -H <host-name> arguments are mutually exclusive");
-+ exit(1);
-+ }
-+
-+ dhcp_fqdn_arg = argv[i];
-+ } else if (!strcmp(argv[i], "-timeout")) {
-+ if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) {
-+ usage();
-+ exit(1);
-+ }
-+
-+ if ((timeout_arg = atoi(argv[i])) <= 0) {
-+ log_error("timeout option must be > 0 - bad value: %s",argv[i]);
-+ exit(1);
-+ }
-+ } else if (!strcmp(argv[i], "-V")) {
-+ if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) {
-+ usage();
-+ exit(1);
-+ }
-+
-+ if (strlen(argv[i]) >= DHCP_MAX_OPTION_LEN) {
-+ log_error("-V option vendor-class-identifier string \"%s\" is too long - maximum length is: %d", argv[i], DHCP_MAX_OPTION_LEN-1);
-+ exit(1);
-+ }
-+
-+ dhcp_vendor_class_identifier_arg = argv[i];
-+ } else if (!strcmp(argv[i], "-R")) {
-+ if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) {
-+ usage();
-+ exit(1);
-+ }
-+
-+ dhclient_request_options = argv[i];
- } else if (argv[i][0] == '-') {
- usage();
- } else if (interfaces_requested < 0) {
-@@ -484,6 +584,156 @@ main(int argc, char **argv) {
- /* Parse the dhclient.conf file. */
- read_client_conf();
-
-+ /* Parse any extra command line configuration arguments: */
-+ if ((dhcp_client_identifier_arg != NULL) && (*dhcp_client_identifier_arg != '\0')) {
-+ arg_conf_len = asprintf(&arg_conf, "send dhcp-client-identifier \"%s\";", dhcp_client_identifier_arg);
-+
-+ if ((arg_conf == 0) || (arg_conf_len <= 0))
-+ log_fatal("Unable to send -I option dhcp-client-identifier");
-+ }
-+
-+ if ((dhcp_host_name_arg != NULL) && (*dhcp_host_name_arg != '\0')) {
-+ if (arg_conf == 0) {
-+ arg_conf_len = asprintf(&arg_conf, "send host-name \"%s\";", dhcp_host_name_arg);
-+
-+ if ((arg_conf == 0) || (arg_conf_len <= 0))
-+ log_fatal("Unable to send -H option host-name");
-+ } else {
-+ char *last_arg_conf = arg_conf;
-+ arg_conf = NULL;
-+ arg_conf_len = asprintf(&arg_conf, "%s\nsend host-name \"%s\";", last_arg_conf, dhcp_host_name_arg);
-+
-+ if ((arg_conf == 0) || (arg_conf_len <= 0))
-+ log_fatal("Unable to send -H option host-name");
-+
-+ free(last_arg_conf);
-+ }
-+ }
-+
-+ if ((dhcp_fqdn_arg != NULL) && (*dhcp_fqdn_arg != '\0')) {
-+ if (arg_conf == 0) {
-+ arg_conf_len = asprintf(&arg_conf, "send fqdn.fqdn \"%s\";", dhcp_fqdn_arg);
-+
-+ if ((arg_conf == 0) || (arg_conf_len <= 0))
-+ log_fatal("Unable to send -F option fqdn.fqdn");
-+ } else {
-+ char *last_arg_conf = arg_conf;
-+ arg_conf = NULL;
-+ arg_conf_len = asprintf(&arg_conf, "%s\nsend fqdn.fqdn \"%s\";", last_arg_conf, dhcp_fqdn_arg);
-+
-+ if ((arg_conf == 0) || (arg_conf_len <= 0))
-+ log_fatal("Unable to send -F option fqdn.fqdn");
-+
-+ free(last_arg_conf);
-+ }
-+ }
-+
-+ if (timeout_arg) {
-+ if (arg_conf == 0) {
-+ arg_conf_len = asprintf(&arg_conf, "timeout %d;", timeout_arg);
-+
-+ if ((arg_conf == 0) || (arg_conf_len <= 0))
-+ log_fatal("Unable to process -timeout timeout argument");
-+ } else {
-+ char *last_arg_conf = arg_conf;
-+ arg_conf = NULL;
-+ arg_conf_len = asprintf(&arg_conf, "%s\ntimeout %d;", last_arg_conf, timeout_arg);
-+
-+ if ((arg_conf == 0) || (arg_conf_len == 0))
-+ log_fatal("Unable to process -timeout timeout argument");
-+
-+ free(last_arg_conf);
-+ }
-+ }
-+
-+ if ((dhcp_vendor_class_identifier_arg != NULL) && (*dhcp_vendor_class_identifier_arg != '\0')) {
-+ if (arg_conf == 0) {
-+ arg_conf_len = asprintf(&arg_conf, "send vendor-class-identifier \"%s\";", dhcp_vendor_class_identifier_arg);
-+
-+ if ((arg_conf == 0) || (arg_conf_len <= 0))
-+ log_fatal("Unable to send -V option vendor-class-identifier");
-+ } else {
-+ char *last_arg_conf = arg_conf;
-+ arg_conf = NULL;
-+ arg_conf_len = asprintf(&arg_conf, "%s\nsend vendor-class-identifier \"%s\";", last_arg_conf, dhcp_vendor_class_identifier_arg);
-+
-+ if ((arg_conf == 0) || (arg_conf_len <= 0))
-+ log_fatal("Unable to send -V option vendor-class-identifier");
-+
-+ free(last_arg_conf);
-+ }
-+ }
-+
-+ if (dhclient_request_options != NULL) {
-+ if (arg_conf == 0) {
-+ arg_conf_len = asprintf(&arg_conf, "request %s;", dhclient_request_options);
-+
-+ if ((arg_conf == 0) || (arg_conf_len <= 0))
-+ log_fatal("Unable to parse -R <request options list> argument");
-+ } else {
-+ char *last_arg_conf = arg_conf;
-+ arg_conf = NULL;
-+ arg_conf_len = asprintf(&arg_conf, "%s\nrequest %s;", last_arg_conf, dhclient_request_options);
-+
-+ if ((arg_conf == 0) || (arg_conf_len <= 0))
-+ log_fatal("Unable to parse -R <request options list> argument");
-+
-+ free(last_arg_conf);
-+ }
-+ }
-+
-+ if (arg_conf) {
-+ if (arg_conf_len == 0)
-+ if ((arg_conf_len = strlen(arg_conf)) == 0)
-+ /* huh ? cannot happen ! */
-+ log_fatal("Unable to process -I/-H/-F/-timeout/-V/-R configuration arguments");
-+
-+ /* parse the extra dhclient.conf configuration arguments
-+ * into top level config: */
-+ struct parse *cfile = (struct parse *)0;
-+ const char *val = NULL;
-+ int token;
-+
-+ status = new_parse(&cfile, -1, arg_conf, arg_conf_len, "extra dhclient -I/-H/-F/-timeout/-V/-R configuration arguments", 0);
-+
-+ if ((status != ISC_R_SUCCESS) || (cfile -> warnings_occurred))
-+ log_fatal("Cannot parse -I/-H/-F/-timeout/-V/-R configuration arguments !");
-+ /* more detailed parse failures will be logged */
-+
-+ do {
-+ token = peek_token(&val, (unsigned *)0, cfile);
-+ if (token == END_OF_FILE)
-+ break;
-+
-+ parse_client_statement(cfile, (struct interface_info *)0, &top_level_config);
-+ } while (1);
-+
-+ if (cfile -> warnings_occurred)
-+ log_fatal("Cannot parse -I/-H/-F/-timeout/-V/-R configuration arguments !");
-+ end_parse(&cfile);
-+
-+ if (timeout_arg) {
-+ /* we just set the toplevel timeout, but per-client
-+ * timeouts may still be at defaults.
-+ */
-+ for (ip=interfaces; ip; ip = ip->next) {
-+ if (ip->client->config->timeout == 60)
-+ ip->client->config->timeout = timeout_arg;
-+ }
-+ }
-+
-+ if ((dhclient_request_options != 0) && (top_level_config.requested_options != default_requested_options)) {
-+ for (ip=interfaces; ip; ip = ip->next) {
-+ if (ip->client->config->requested_options == default_requested_options)
-+ ip->client->config->requested_options = top_level_config.requested_options;
-+ }
-+ }
-+
-+ free(arg_conf);
-+ arg_conf = NULL;
-+ arg_conf_len = 0;
-+ }
-+
- /* Parse the lease database. */
- read_client_leases();
-
-@@ -2397,7 +2647,8 @@ void make_discover (client, lease)
- client -> packet.xid = random ();
- client -> packet.secs = 0; /* filled in by send_discover. */
-
-- if (can_receive_unicast_unconfigured (client -> interface))
-+ if ((!(bootp_broadcast_always || client->config->bootp_broadcast_always))
-+ && can_receive_unicast_unconfigured(client->interface))
- client -> packet.flags = 0;
- else
- client -> packet.flags = htons (BOOTP_BROADCAST);
-@@ -2481,7 +2732,9 @@ void make_request (client, lease)
- } else {
- memset (&client -> packet.ciaddr, 0,
- sizeof client -> packet.ciaddr);
-- if (can_receive_unicast_unconfigured (client -> interface))
-+ if ((!(bootp_broadcast_always ||
-+ client ->config->bootp_broadcast_always)) &&
-+ can_receive_unicast_unconfigured (client -> interface))
- client -> packet.flags = 0;
- else
- client -> packet.flags = htons (BOOTP_BROADCAST);
-@@ -2543,7 +2796,8 @@ void make_decline (client, lease)
- client -> packet.hops = 0;
- client -> packet.xid = client -> xid;
- client -> packet.secs = 0; /* Filled in by send_request. */
-- if (can_receive_unicast_unconfigured (client -> interface))
-+ if ((!(bootp_broadcast_always || client->config-> bootp_broadcast_always))
-+ && can_receive_unicast_unconfigured (client->interface))
- client -> packet.flags = 0;
- else
- client -> packet.flags = htons (BOOTP_BROADCAST);
-diff -up dhcp-4.2.3-P2/common/conflex.c.options dhcp-4.2.3-P2/common/conflex.c
---- dhcp-4.2.3-P2/common/conflex.c.options 2011-09-21 22:43:10.000000000 +0200
-+++ dhcp-4.2.3-P2/common/conflex.c 2012-02-13 18:21:32.335470243 +0100
-@@ -808,6 +808,8 @@ intern(char *atom, enum dhcp_token dfv)
- return BALANCE;
- if (!strcasecmp (atom + 1, "ound"))
- return BOUND;
-+ if (!strcasecmp (atom + 1, "ootp-broadcast-always"))
-+ return BOOTP_BROADCAST_ALWAYS;
- break;
- case 'c':
- if (!strcasecmp(atom + 1, "ase"))
-diff -up dhcp-4.2.3-P2/includes/dhcpd.h.options dhcp-4.2.3-P2/includes/dhcpd.h
---- dhcp-4.2.3-P2/includes/dhcpd.h.options 2011-12-31 00:17:04.000000000 +0100
-+++ dhcp-4.2.3-P2/includes/dhcpd.h 2012-02-13 18:21:32.542467656 +0100
-@@ -1147,6 +1147,9 @@ struct client_config {
- int do_forward_update; /* If nonzero, and if we have the
- information we need, update the
- A record for the address we get. */
-+
-+ int bootp_broadcast_always; /* If nonzero, always set the BOOTP_BROADCAST
-+ flag in requests */
- };
-
- /* Per-interface state used in the dhcp client... */
-diff -up dhcp-4.2.3-P2/includes/dhctoken.h.options dhcp-4.2.3-P2/includes/dhctoken.h
---- dhcp-4.2.3-P2/includes/dhctoken.h.options 2011-09-21 22:43:10.000000000 +0200
-+++ dhcp-4.2.3-P2/includes/dhctoken.h 2012-02-13 18:21:32.644466377 +0100
-@@ -363,7 +363,8 @@ enum dhcp_token {
- INITIAL_DELAY = 664,
- GETHOSTBYNAME = 665,
- PRIMARY6 = 666,
-- SECONDARY6 = 667
-+ SECONDARY6 = 667,
-+ BOOTP_BROADCAST_ALWAYS = 668
- };
-
- #define is_identifier(x) ((x) >= FIRST_TOKEN && \
diff --git a/net-misc/dhcp/files/dhcpd.conf2 b/net-misc/dhcp/files/dhcpd.conf2
deleted file mode 100644
index 5cd2eeca3..000000000
--- a/net-misc/dhcp/files/dhcpd.conf2
+++ /dev/null
@@ -1,28 +0,0 @@
-# /etc/conf.d/dhcpd: config file for /etc/init.d/dhcpd
-
-# If you require more than one instance of dhcpd you can create symbolic
-# links to dhcpd service like so
-# cd /etc/init.d
-# ln -s dhcpd dhcpd.foo
-# cd ../conf.d
-# cp dhcpd dhcpd.foo
-# Now you can edit dhcpd.foo and specify a different configuration file.
-# You'll also need to specify a pidfile in that dhcpd.conf file.
-# See the pid-file-name option in the dhcpd.conf man page for details.
-
-# If you wish to run dhcpd in a chroot, uncomment the following line
-# DHCPD_CHROOT="/var/lib/dhcp/chroot"
-
-# All file paths below are relative to the chroot.
-# You can specify a different chroot directory but MAKE SURE it's empty.
-
-# Specify a configuration file - the default is /etc/dhcp/dhcpd.conf
-# DHCPD_CONF="/etc/dhcp/dhcpd.conf"
-
-# Configure which interface or interfaces to for dhcpd to listen on.
-# List all interfaces space separated. If this is not specified then
-# we listen on all interfaces.
-# DHCPD_IFACE=""
-
-# Insert any other dhcpd options - see the man page for a full list.
-# DHCPD_OPTS=""
diff --git a/net-misc/dhcp/files/dhcpd.init2 b/net-misc/dhcp/files/dhcpd.init2
deleted file mode 100644
index 82cb26e77..000000000
--- a/net-misc/dhcp/files/dhcpd.init2
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/sbin/runscript
-# Copyright 1999-2009 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/dhcp/files/dhcpd.init2,v 1.1 2009/07/09 14:45:22 chainsaw Exp $
-
-opts="configtest"
-
-DHCPD_CONF=${DHCPD_CONF:-/etc/dhcp/dhcpd.conf}
-
-depend() {
- need net
- use logger dns
-}
-
-get_var() {
- sed -n 's/^[[:blank:]]\?'"$1"' "*\([^#";]\+\).*/\1/p' \
- "${DHCPD_CHROOT}/${DHCPD_CONF}"
-}
-
-checkconfig() {
- /usr/sbin/dhcpd -cf ${DHCPD_CHROOT}/${DHCPD_CONF} -t 1>/dev/null 2>&1
- ret=$?
- if [ $ret -ne 0 ]; then
- eerror "${SVCNAME} has detected a syntax error in your configuration files:"
- /usr/sbin/dhcpd -cf ${DHCPD_CHROOT}/${DHCPD_CONF} -t
- fi
-
- return $ret
-}
-
-configtest() {
- ebegin "Checking ${SVCNAME} configuration"
- checkconfig
- eend $?
-}
-
-start() {
- # Work out our cffile if it's on our DHCPD_OPTS
- case " ${DHCPD_OPTS} " in
- *" -cf "*)
- DHCPD_CONF=" ${DHCPD_OPTS} "
- DHCPD_CONF="${DHCPD_CONF##* -cf }"
- DHCPD_CONF="${DHCPD_CONF%% *}"
- ;;
- *) DHCPD_OPTS="${DHCPD_OPTS} -cf ${DHCPD_CONF}"
- ;;
- esac
-
- if [ ! -f "${DHCPD_CHROOT}/${DHCPD_CONF}" ] ; then
- eerror "${DHCPD_CHROOT}/${DHCPD_CONF} does not exist"
- return 1
- fi
-
- checkconfig || return 1
-
- local leasefile="$(get_var lease-file-name)"
- leasefile="${DHCPD_CHROOT}/${leasefile:-/var/lib/dhcp/dhcpd.leases}"
- if [ ! -f "${leasefile}" ] ; then
- ebegin "Creating ${leasefile}"
- touch "${leasefile}"
- chown dhcp:dhcp "${leasefile}"
- eend $? || return 1
- fi
-
- # Setup LD_PRELOAD so name resolution works in our chroot.
- if [ -n "${DHCPD_CHROOT}" ] ; then
- LD_PRELOAD="${LD_PRELOAD} /usr/lib/libresolv.so"
- export LD_PRELOAD="${LD_PRELOAD} /usr/lib/libnss_dns.so"
- fi
-
- local pidfile="$(get_var pid-file-name)"
- pidfile="${pidfile:-/var/run/dhcp/dhcpd.pid}"
-
- ebegin "Starting ${DHCPD_CHROOT:+chrooted }${SVCNAME}"
- start-stop-daemon --start --exec /usr/sbin/dhcpd \
- --pidfile "${DHCPD_CHROOT}/${pidfile}" \
- -- ${DHCPD_OPTS} -q -pf "${pidfile}" \
- -user dhcp -group dhcp \
- ${DHCPD_CHROOT:+-chroot} ${DHCPD_CHROOT} ${DHCPD_IFACE}
- eend $? \
- && save_options chroot "${DHCPD_CHROOT}" \
- && save_options pidfile "${pidfile}"
-}
-
-stop() {
- local chroot="$(get_options chroot)"
-
- checkconfig || return 1
-
- ebegin "Stopping ${chroot:+chrooted }${SVCNAME}"
- start-stop-daemon --stop --exec /usr/sbin/dhcpd \
- --pidfile "${chroot}/$(get_options pidfile)"
- eend $?
-}
diff --git a/net-misc/dhcp/files/dhcpd.init5 b/net-misc/dhcp/files/dhcpd.init5
deleted file mode 100755
index 79c7f2bf9..000000000
--- a/net-misc/dhcp/files/dhcpd.init5
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/sbin/runscript
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/dhcp/files/dhcpd.init5,v 1.1 2011/12/04 22:45:07 vapier Exp $
-
-extra_commands="configtest"
-
-: ${DHCPD_CONF:=/etc/dhcp/${SVCNAME}.conf}
-
-depend() {
- need net
- use logger dns
-}
-
-get_var() {
- local var="$(sed -n 's/^[[:blank:]]\?'"$1"' "*\([^#";]\+\).*/\1/p' "${chroot}${DHCPD_CONF}")"
- echo ${var:-$2}
-}
-
-checkconfig() {
- set -- ${DHCPD_OPTS} ${chroot:+-chroot} ${chroot} -t
-
- dhcpd "$@" 1>/dev/null 2>&1
- local ret=$?
- if [ ${ret} -ne 0 ] ; then
- eerror "${SVCNAME} has detected a syntax error in your configuration files:"
- dhcpd "$@"
- fi
-
- return ${ret}
-}
-
-configtest() {
- local chroot=${DHCPD_CHROOT%/}
-
- ebegin "Checking ${SVCNAME} configuration"
- checkconfig
- eend $?
-}
-
-start() {
- local chroot=${DHCPD_CHROOT%/}
-
- # Work out our cffile if it's in our DHCPD_OPTS
- case " ${DHCPD_OPTS} " in
- *" -cf "*)
- DHCPD_CONF=" ${DHCPD_OPTS} "
- DHCPD_CONF="${DHCPD_CONF##* -cf }"
- DHCPD_CONF="${DHCPD_CONF%% *}"
- ;;
- *) DHCPD_OPTS="${DHCPD_OPTS} -cf ${DHCPD_CONF}"
- ;;
- esac
-
- if [ -n "${chroot}" ] ; then
- # the config test want's these to exist
- mkdir -p \
- "${chroot}"/var/run/dhcp \
- "${chroot}"/var/lib/dhcp \
- "${chroot}"/etc/dhcp
- fi
-
- # see comment in get_var() above
- if [ ! -f "${chroot}${DHCPD_CONF}" ] ; then
- eerror "${chroot}${DHCPD_CONF} does not exist"
- return 1
- fi
-
- checkconfig || return 1
-
- checkpath -d -o dhcp:dhcp "${chroot}"/var/run/dhcp "${chroot}"/var/lib/dhcp
-
- local leasefile="$(get_var lease-file-name /var/lib/dhcp/${SVCNAME}.leases)"
- checkpath -f -o dhcp:dhcp "${chroot}${leasefile}"
-
- # Setup LD_PRELOAD so name resolution works in our chroot.
- if [ -n "${chroot}" ] ; then
- checkpath -d -o root:root -m 755 "${chroot}"/dev "${chroot}"/etc "${chroot}"/proc
- cp -pP /etc/localtime /etc/resolv.conf "${chroot}"/etc/
- export LD_PRELOAD="${LD_PRELOAD} libresolv.so libnss_dns.so"
- if ! mountinfo -q "${chroot}/proc" ; then
- mount --bind /proc "${chroot}/proc"
- fi
- fi
-
- local pidfile="$(get_var pid-file-name /var/run/dhcp/${SVCNAME}.pid)"
-
- ebegin "Starting ${chroot:+chrooted }${SVCNAME}"
- start-stop-daemon --start --exec /usr/sbin/dhcpd \
- --pidfile "${chroot}/${pidfile}" \
- -- ${DHCPD_OPTS} -q -pf "${pidfile}" -lf "${leasefile}" \
- -user dhcp -group dhcp \
- ${chroot:+-chroot} ${chroot} ${DHCPD_IFACE}
- eend $? \
- && save_options chroot "${chroot}" \
- && save_options pidfile "${pidfile}"
-}
-
-stop() {
- local chroot="$(get_options chroot)"
-
- ebegin "Stopping ${chroot:+chrooted }${SVCNAME}"
- start-stop-daemon --stop --exec /usr/sbin/dhcpd \
- --pidfile "${chroot}/$(get_options pidfile)"
- res=$?
-
- if [ ${res} -eq 0 ] && [ -n "${chroot}" ] ; then
- if mountinfo -q "${chroot}/proc" ; then
- umount "${chroot}/proc"
- fi
- fi
-
- eend $res
-}
diff --git a/net-misc/dhcp/files/dhcrelay.conf b/net-misc/dhcp/files/dhcrelay.conf
deleted file mode 100644
index 1102d3a41..000000000
--- a/net-misc/dhcp/files/dhcrelay.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-# /etc/conf.d/dhcrelay: config file for /etc/init.d/dhcrelay
-
-# Configure which interface or interfaces to for dhcrelay to listen on
-# and send to.
-# List all interfaces space separated. If this is not specified then
-# we use all interfaces.
-#IFACE=""
-
-# Insert any other options needed. See dhcrelay(8) for details.
-#DHCRELAY_OPTS=""
-
-# Space separated list of IPs to forward BOOTP/DHCP packets to.
-DHCRELAY_SERVERS=""
diff --git a/net-misc/dhcp/files/dhcrelay.init2 b/net-misc/dhcp/files/dhcrelay.init2
deleted file mode 100755
index 4f09249a6..000000000
--- a/net-misc/dhcp/files/dhcrelay.init2
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/sbin/runscript
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/dhcp/files/dhcrelay.init2,v 1.2 2011/03/08 20:13:26 vapier Exp $
-
-depend() {
- need net
- use logger
-}
-
-start() {
- if [ -z "${DHCRELAY_SERVERS}" ]; then
- eerror "No DHCRELAY_SERVERS specified in /etc/conf.d/dhcrelay"
- return 1
- fi
-
- checkpath -d /var/run/dhcp
-
- ebegin "Starting dhcrelay"
- start-stop-daemon --start --exec /usr/sbin/dhcrelay \
- -- -q $(printf -- '-i %s ' ${IFACE}) ${DHCRELAY_OPTS} ${DHCRELAY_SERVERS}
- eend $?
-}
-
-stop() {
- ebegin "Stopping dhcrelay"
- start-stop-daemon --stop --pidfile /var/run/dhcp/dhcrelay.pid
- eend $?
-}
diff --git a/net-misc/dhcp/metadata.xml b/net-misc/dhcp/metadata.xml
deleted file mode 100644
index bd605072e..000000000
--- a/net-misc/dhcp/metadata.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <longdescription lang="en">The ISC DHCP client/server package.</longdescription>
- <longdescription lang="ja">ISC DHCP クライアント/サーバ・パッケージです。</longdescription>
- <use>
- <flag name='client'>Install the dhclient program</flag>
- <flag name='server'>Install the dhcpd and dhcrelay programs</flag>
- </use>
-</pkgmetadata>