[pkg-dhcp-commits] [isc-dhcp] 03/04: import the non-maintainer upload
Michael Gilbert
mgilbert at moszumanska.debian.org
Sun May 25 01:27:11 UTC 2014
This is an automated email from the git hooks/post-receive script.
mgilbert pushed a commit to branch master
in repository isc-dhcp.
commit 6f147ab17ba6e5aeb4992f361096b776ebe8e329
Author: Michael Gilbert <mgilbert at debian.org>
Date: Sat May 24 22:17:17 2014 +0000
import the non-maintainer upload
---
debian/bind-patches/hurd.patch | 34 ++++
debian/bind-patches/series | 1 +
debian/changelog | 12 ++
debian/dhclient-script.hurd | 327 +++++++++++++++++++++++++++++++++++
debian/dhclient-script.hurd.udeb | 116 +++++++++++++
debian/rfc3442-classless-routes.hurd | 1 +
debian/rules | 29 ++--
7 files changed, 509 insertions(+), 11 deletions(-)
diff --git a/debian/bind-patches/hurd.patch b/debian/bind-patches/hurd.patch
new file mode 100644
index 0000000..7eecf88
--- /dev/null
+++ b/debian/bind-patches/hurd.patch
@@ -0,0 +1,34 @@
+--- bind-9.9.5b1/configure.in.orig 2013-12-12 06:59:59.000000000 +0100
++++ bind-9.9.5b1/configure.in 2014-03-25 09:33:41.000000000 +0100
+@@ -352,7 +352,7 @@ case "$host" in
+ # as it breaks how the two halves (Basic and Advanced) of the IPv6
+ # Socket API were designed to be used but we have to live with it.
+ # Define _GNU_SOURCE to pull in the IPv6 Advanced Socket API.
+- *-linux* | *-kfreebsd*-gnu)
++ *-linux* | *-kfreebsd*-gnu | *-gnu*)
+ STD_CDEFINES="$STD_CDEFINES -D_GNU_SOURCE"
+ CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ ;;
+--- bind-9.9.5b1/configure.orig 2013-12-12 06:59:59.000000000 +0100
++++ bind-9.9.5b1/configure 2014-03-25 09:33:41.000000000 +0100
+@@ -352,7 +352,7 @@ case "$host" in
+ # as it breaks how the two halves (Basic and Advanced) of the IPv6
+ # Socket API were designed to be used but we have to live with it.
+ # Define _GNU_SOURCE to pull in the IPv6 Advanced Socket API.
+- *-linux* | *-kfreebsd*-gnu)
++ *-linux* | *-kfreebsd*-gnu | *-gnu*)
+ STD_CDEFINES="$STD_CDEFINES -D_GNU_SOURCE"
+ CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ ;;
+--- bind-9.9.5b1/lib/isc/unix/net.c.orig 2013-12-12 06:59:59.000000000 +0100
++++ bind-9.9.5b1/lib/isc/unix/net.c 2014-03-25 10:21:08.000000000 +0100
+@@ -130,6 +130,9 @@ try_proto(int domain) {
+ #ifdef EAFNOSUPPORT
+ case EAFNOSUPPORT:
+ #endif
++#ifdef EPFNOSUPPORT
++ case EPFNOSUPPORT:
++#endif
+ #ifdef EPROTONOSUPPORT
+ case EPROTONOSUPPORT:
+ #endif
diff --git a/debian/bind-patches/series b/debian/bind-patches/series
new file mode 100644
index 0000000..27e280c
--- /dev/null
+++ b/debian/bind-patches/series
@@ -0,0 +1 @@
+hurd.patch
diff --git a/debian/changelog b/debian/changelog
index bb33c38..dc712d9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+isc-dhcp (4.3.0a1-2.1) experimental; urgency=medium
+
+ * Non-Maintainer Upload
+ * rules: Fix bind patching.
+ * bind-patches/hurd: Add upstream patch to fix Hurd build.
+ * rules: Select proper backends in the Hurd case.
+ * dhclient-script.hurd, dhclient-script.hurd.udeb,
+ rfc3442-classless-routes.hurd: Add Hurd scripts.
+ * Closes: #616290.
+
+ -- Samuel Thibault <sthibault at debian.org> Sun, 06 Apr 2014 22:14:44 +0200
+
isc-dhcp (4.3.0a1-2) experimental; urgency=medium
* Remove unused template.
diff --git a/debian/dhclient-script.hurd b/debian/dhclient-script.hurd
new file mode 100644
index 0000000..c73d83d
--- /dev/null
+++ b/debian/dhclient-script.hurd
@@ -0,0 +1,327 @@
+#!/bin/bash
+
+# dhclient-script for GNU, based on the script for Linux.
+# Dan Halbert, March, 1997.
+# Updated for Linux 2.[12] by Brian J. Murrell, January 1999.
+# Modified for Debian. Matt Zimmerman and Eloy Paris, December 2003
+# Modified to remove useless tests for antiquated kernel versions that
+# this doesn't even work with anyway, and introduces a dependency on /usr
+# being mounted, which causes cosmetic errors on hosts that NFS mount /usr
+# Andrew Pollock, February 2005
+# Modified to work on point-to-point links. Andrew Pollock, June 2005
+# Modified to support passing the parameters called with to the hooks. Andrew Pollock, November 2005
+# Modified to work under GNU/Hurd for isc-dhcp-4.1.1 based on the
+# patch by Samuel Thibault for dhcp3. Svante Signell, February 2011.
+
+# The alias handling in here probably still sucks. -mdz
+
+# update /etc/resolv.conf based on received values
+make_resolv_conf() {
+ local new_resolv_conf
+
+ # DHCPv4
+ if [ -n "$new_domain_search" ] || [ -n "$new_domain_name" ] ||
+ [ -n "$new_domain_name_servers" ]; then
+ new_resolv_conf=/etc/resolv.conf.dhclient-new
+ rm -f $new_resolv_conf
+
+ if [ -n "$new_domain_name" ]; then
+ echo domain ${new_domain_name%% *} >>$new_resolv_conf
+ fi
+
+ if [ -n "$new_domain_search" ]; then
+ if [ -n "$new_domain_name" ]; then
+ domain_in_search_list=""
+ for domain in $new_domain_search; do
+ if [ "$domain" = "${new_domain_name}" ] ||
+ [ "$domain" = "${new_domain_name}." ]; then
+ domain_in_search_list="Yes"
+ fi
+ done
+ if [ -z "$domain_in_search_list" ]; then
+ new_domain_search="$new_domain_name $new_domain_search"
+ fi
+ fi
+ echo "search ${new_domain_search}" >> $new_resolv_conf
+ elif [ -n "$new_domain_name" ]; then
+ echo "search ${new_domain_name}" >> $new_resolv_conf
+ fi
+
+ if [ -n "$new_domain_name_servers" ]; then
+ for nameserver in $new_domain_name_servers; do
+ echo nameserver $nameserver >>$new_resolv_conf
+ done
+ else # keep 'old' nameservers
+ sed -n /^\w*[Nn][Aa][Mm][Ee][Ss][Ee][Rr][Vv][Ee][Rr]/p /etc/resolv.conf >>$new_resolv_conf
+ fi
+
+ chown --reference=/etc/resolv.conf $new_resolv_conf
+ chmod --reference=/etc/resolv.conf $new_resolv_conf
+ mv -f $new_resolv_conf /etc/resolv.conf
+ # DHCPv6
+ elif [ -n "$new_dhcp6_domain_search" ] || [ -n "$new_dhcp6_name_servers" ]; then
+ new_resolv_conf=/etc/resolv.conf.dhclient-new
+ rm -f $new_resolv_conf
+
+ if [ -n "$new_dhcp6_domain_search" ]; then
+ echo "search ${new_dhcp6_domain_search}" >> $new_resolv_conf
+ fi
+
+ if [ -n "$new_dhcp6_name_servers" ]; then
+ for nameserver in $new_dhcp6_name_servers; do
+ echo nameserver $nameserver >>$new_resolv_conf
+ done
+ else # keep 'old' nameservers
+ sed -n /^\w*[Nn][Aa][Mm][Ee][Ss][Ee][Rr][Vv][Ee][Rr]/p /etc/resolv.conf >>$new_resolv_conf
+ fi
+
+ chown --reference=/etc/resolv.conf $new_resolv_conf
+ chmod --reference=/etc/resolv.conf $new_resolv_conf
+ mv -f $new_resolv_conf /etc/resolv.conf
+ fi
+}
+
+# run given script
+run_hook() {
+ local script
+ local exit_status
+ script="$1"
+ shift # discard the first argument, then the rest are the script's
+
+ if [ -f $script ]; then
+ . $script "$@"
+ fi
+
+ if [ -n "$exit_status" ] && [ "$exit_status" -ne 0 ]; then
+ logger -p daemon.err "$script returned non-zero exit status $exit_status"
+ fi
+
+ return $exit_status
+}
+
+# run scripts in given directory
+run_hookdir() {
+ local dir
+ local exit_status
+ dir="$1"
+ shift # See run_hook
+
+ if [ -d "$dir" ]; then
+ for script in $(run-parts --list $dir); do
+ run_hook $script "$@" || true
+ exit_status=$?
+ done
+ fi
+
+ return $exit_status
+}
+
+# Must be used on exit. Invokes the local dhcp client exit hooks, if any.
+exit_with_hooks() {
+ exit_status=$1
+
+ # Source the documented exit-hook script, if it exists
+ if ! run_hook /etc/dhcp/dhclient-exit-hooks "$@"; then
+ exit_status=$?
+ fi
+
+ # Now run scripts in the Debian-specific directory.
+ if ! run_hookdir /etc/dhcp/dhclient-exit-hooks.d "$@"; then
+ exit_status=$?
+ fi
+
+ exit $exit_status
+}
+
+
+# set up some variables for DHCPv4 handlers below
+if [ -n "$new_broadcast_address" ]; then
+ new_broadcast_arg="--broadcast $new_broadcast_address"
+fi
+if [ -n "$old_broadcast_address" ]; then
+ old_broadcast_arg="--broadcast $old_broadcast_address"
+fi
+if [ -n "$new_subnet_mask" ]; then
+ new_subnet_arg="--netmask $new_subnet_mask"
+fi
+if [ -n "$alias_subnet_mask" ]; then
+ alias_subnet_arg="--netmask $alias_subnet_mask"
+fi
+# The 576 MTU is only used for X.25 and dialup connections
+# where the admin wants low latency. Such a low MTU can cause
+# problems with UDP traffic, among other things. As such,
+# disallow MTUs from 576 and below by default, so that broken
+# MTUs are ignored, but higher stuff is allowed (1492, 1500, etc).
+if [ -z "$new_interface_mtu" ] || [ "$new_interface_mtu" -lt 576 ]; then
+ new_interface_mtu=''
+fi
+if [ -n "$IF_METRIC" ]; then
+ metric_arg="--metric $IF_METRIC" # interfaces(5), "metric" option
+fi
+
+
+# The action starts here
+
+# Invoke the local dhcp client enter hooks, if they exist.
+run_hook /etc/dhcp/dhclient-enter-hooks
+run_hookdir /etc/dhcp/dhclient-enter-hooks.d
+
+# Execute the operation
+case "$reason" in
+
+ ### DHCPv4 Handlers
+
+ MEDIUM|ARPCHECK|ARPSEND)
+ # Do nothing
+ ;;
+ PREINIT)
+ # The DHCP client is requesting that an interface be
+ # configured as required in order to send packets prior to
+ # receiving an actual address. - dhclient-script(8)
+
+ # ensure interface is up
+ # TODO: handle multiple interface case.
+ fsysopts /servers/socket/2 -i ${interface}
+
+ if [ -n "$alias_ip_address" ]; then
+ # flush alias IP from interface
+ # TODO
+ :
+ # ip -4 addr flush dev ${interface} label ${interface}:0
+ fi
+
+ ;;
+
+ BOUND|RENEW|REBIND|REBOOT)
+ if [ -n "$old_host_name" ] && [ -n "$new_host_name" ] &&
+ [ "$old_host_name" != "$new_host_name" ]; then
+ # hostname changed => set it
+ hostname "$new_host_name"
+ fi
+
+ if [ -n "$old_ip_address" ] && [ -n "$alias_ip_address" ] &&
+ [ "$alias_ip_address" != "$old_ip_address" ]; then
+ # alias IP may have changed => flush it
+ # TODO
+ :
+ # ip -4 addr flush dev ${interface} label ${interface}:0
+ fi
+
+ if [ -n "$old_ip_address" ] &&
+ [ "$old_ip_address" != "$new_ip_address" ]; then
+ # leased IP has changed => flush it
+ inetutils-ifconfig -i ${interface} -A 0.0.0.0
+ fi
+
+ if [ -z "$old_ip_address" ] ||
+ [ "$old_ip_address" != "$new_ip_address" ] ||
+ [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then
+ # new IP has been leased or leased IP changed => set it
+ inetutils-ifconfig -i ${interface} -A ${new_ip_address} \
+ ${new_subnet_arg} ${new_broadcast_arg}
+
+ if [ -n "$new_interface_mtu" ]; then
+ # set MTU
+ inetutils-ifconfig -i ${interface} --mtu ${new_interface_mtu}
+ fi
+
+ for router in $new_routers; do
+ if [ "$new_subnet_mask" = "255.255.255.255" ]; then
+ # point-to-point connection => set explicit route
+ # TODO
+ :
+ #ip -4 route add ${router} dev $interface >/dev/null 2>&1
+ fi
+
+ # set default route
+ fsysopts /servers/socket/2 $(fsysopts /servers/socket/2) -g ${router}
+ done
+ fi
+
+ if [ -n "$alias_ip_address" ] &&
+ [ "$new_ip_address" != "$alias_ip_address" ]; then
+ # separate alias IP given, which may have changed
+ # => flush it, set it & add host route to it
+ # TODO
+ :
+ #ip -4 addr flush dev ${interface} label ${interface}:0
+ #ip -4 addr add ${alias_ip_address}${alias_mask} \
+ # dev ${interface} label ${interface}:0
+ #ip -4 route add ${alias_ip_address} dev ${interface} >/dev/null 2>&1
+ fi
+
+ # update /etc/resolv.conf
+ make_resolv_conf
+
+ ;;
+
+ EXPIRE|FAIL|RELEASE|STOP)
+ if [ -n "$alias_ip_address" ]; then
+ # flush alias IP
+ # TODO
+ :
+ #ip -4 addr flush dev ${interface} label ${interface}:0
+ fi
+
+ if [ -n "$old_ip_address" ]; then
+ # flush leased IP
+ inetutils-ifconfig -i ${interface} -A 0.0.0.0
+ fi
+
+ if [ -n "$alias_ip_address" ]; then
+ # alias IP given => set it & add host route to it
+ # TODO
+ :
+ #ip -4 addr add ${alias_ip_address}${alias_network_arg} \
+ # dev ${interface} label ${interface}:0
+ #ip -4 route add ${alias_ip_address} dev ${interface} >/dev/null 2>&1
+ fi
+
+ ;;
+
+ TIMEOUT)
+ if [ -n "$alias_ip_address" ]; then
+ # flush alias IP
+ # TODO
+ :
+ #ip -4 addr flush dev ${interface} label ${interface}:0
+ fi
+
+ # set IP from recorded lease
+ inetutils-ifconfig -i ${interface} -A ${new_ip_address} \
+ ${new_subnet_arg} ${new_broadcast_arg}
+
+ if [ -n "$new_interface_mtu" ]; then
+ # set MTU
+ inetutils-ifconfig -i ${interface} --mtu ${new_interface_mtu}
+ fi
+
+ # if there is no router recorded in the lease or the 1st router answers pings
+ if [ -z "$new_routers" ] || ping -q -c 1 "${new_routers%% *}"; then
+ if [ -n "$alias_ip_address" ] &&
+ [ "$new_ip_address" != "$alias_ip_address" ]; then
+ # separate alias IP given => set up the alias IP & add host route to it
+ # TODO
+ :
+ #ip -4 addr add ${alias_ip_address}${alias_mask} \
+ # dev ${interface} label ${interface}:0
+ #ip -4 route add ${alias_ip_address} dev ${interface} >/dev/null 2>&1
+ fi
+
+ # set default route
+ for router in $new_routers; do
+ fsysopts /servers/socket/2 $(fsysopts /servers/socket/2) -g ${router}
+ done
+
+ # update /etc/resolv.conf
+ make_resolv_conf
+ else
+ # flush all IPs from interface
+ inetutils-ifconfig -i ${interface} -A 0.0.0.0
+ exit_with_hooks 2 "$@"
+ fi
+
+ ;;
+esac
+
+exit_with_hooks 0
diff --git a/debian/dhclient-script.hurd.udeb b/debian/dhclient-script.hurd.udeb
new file mode 100644
index 0000000..529e993
--- /dev/null
+++ b/debian/dhclient-script.hurd.udeb
@@ -0,0 +1,116 @@
+#!/bin/sh
+
+set -e
+
+# reduced dhclient-script for the Debian installer
+# changes by Joshua Kwan <joshk at triplehelix.org>,
+# Bastian Blank <waldi at debian.org>
+
+# dhclient-script for Linux. Dan Halbert, March, 1997.
+# Updated for Linux 2.[12] by Brian J. Murrell, January 1999.
+# Modified for Debian. Matt Zimmerman and Eloy Paris, December 2003
+# Adapted the GNU/Linux script to GNU/Hurd, Svante Signell and Samuel Thibault,
+# February 2011.
+
+# update /etc/resolv.conf based on received values
+make_resolv_conf() {
+ local new_resolv_conf
+
+ if [ -n "$new_domain_name" ] || [ -n "$new_domain_name_servers" ]; then
+ new_resolv_conf=/etc/resolv.conf.dhclient-new
+ rm -f $new_resolv_conf
+
+ if [ -n "$new_domain_name" ]; then
+ echo "search $new_domain_name" >>$new_resolv_conf
+ fi
+
+ for nameserver in $new_domain_name_servers; do
+ echo "nameserver $nameserver" >>$new_resolv_conf
+ done
+
+ mv $new_resolv_conf /etc/resolv.conf
+ fi
+}
+
+set_hostname() {
+ local current_hostname
+ current_hostname=$(hostname)
+
+ if [ -z "$current_hostname" ] || [ "$current_hostname" = "(none)" ]; then
+ hostname "$new_host_name"
+ fi
+}
+
+# set up some variables for DHCP handlers below
+if [ -n "$new_subnet_mask" ]; then
+ new_subnet_arg="-m $new_subnet_mask"
+fi
+
+# Execute the operation
+case "$reason" in
+ MEDIUM|ARPCHECK|ARPSEND)
+ # Do nothing
+ ;;
+ PREINIT)
+ fsysopts /servers/socket/2 -i $interface
+
+ # We need to give the kernel some time to get the interface up.
+ sleep 1
+
+ ;;
+
+ BOUND|RENEW|REBIND|REBOOT)
+ set_hostname
+ pfinet_args="-i $interface"
+
+ if [ -n "$old_ip_address" ] &&
+ [ "$old_ip_address" != "$new_ip_address" ]; then
+ # IP address changed. Bringing down the interface will delete all routes,
+ # and clear the ARP cache.
+ fsysopts /servers/socket/2 $pfinet_args
+ fi
+
+ # TODO: add MTU option to pfinet
+ #if [ -n "$new_interface_mtu" ]; then
+ # pfinet_args="$pfinet_args --mtu $new_interface_mtu"
+ # fsysopts /servers/socket/2 $pfinet_args
+ #fi
+
+ if [ -z "$old_ip_address" ] ||
+ [ "$old_ip_address" != "$new_ip_address" ] ||
+ [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then
+
+ pfinet_args="$pfinet_args -a $new_ip_address $new_subnet_arg"
+
+ for router in $new_routers; do
+ pfinet_args="$pfinet_args -g $router"
+ done
+ fsysopts /servers/socket/2 $pfinet_args
+ fi
+
+ make_resolv_conf
+
+ # Get the domain name into a file suitable for netcfg to read.
+ printf "$new_domain_name" > /tmp/domain_name
+
+ if [ -n "$new_ntp_servers" ]; then
+ printf "$new_ntp_servers" > /tmp/dhcp-ntp-servers
+ fi
+
+ ;;
+
+ EXPIRE|FAIL|RELEASE|STOP)
+ if [ -n "$old_ip_address" ]; then
+ # Shut down interface, which will delete routes and clear arp cache.
+ fsysopts /servers/socket/2 -i $interface
+ fi
+
+ ;;
+
+ TIMEOUT)
+ fsysopts /servers/socket/2 -i $interface
+
+ ;;
+esac
+
+exit 0
diff --git a/debian/rfc3442-classless-routes.hurd b/debian/rfc3442-classless-routes.hurd
new file mode 100644
index 0000000..397db75
--- /dev/null
+++ b/debian/rfc3442-classless-routes.hurd
@@ -0,0 +1 @@
+:
diff --git a/debian/rules b/debian/rules
index 3be350b..a6de7e0 100755
--- a/debian/rules
+++ b/debian/rules
@@ -7,12 +7,6 @@ DEB_HOST_ARCH_OS=$(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
DEB_HOST_GNU_TYPE=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE=$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
-CROSS=CC=$(DEB_HOST_GNU_TYPE)-gcc
-else
-CROSS=
-endif
-
CFLAGS+=-Wall
CFLAGS+=-D_PATH_DHCLIENT_SCRIPT='"/sbin/dhclient-script"'
CFLAGS+=-D_PATH_DHCPD_CONF='"/etc/dhcp/dhcpd.conf"'
@@ -22,9 +16,22 @@ CFLAGS+=-DNOMINUM
CONFFLAGS=--prefix=/usr \
--sysconfdir=/etc/dhcp \
--with-srv-lease-file=/var/lib/dhcp/dhcpd.leases \
- --with-srv6-lease-file=/var/lib/dhcp/dhcpd6.leases \
- --with-cli-lease-file=/var/lib/dhcp/dhclient.leases \
- --with-cli6-lease-file=/var/lib/dhcp/dhclient6.leases \
+ --with-srv6-lease-file=/var/lib/dhcp/dhcpd6.leases \
+ --with-cli-lease-file=/var/lib/dhcp/dhclient.leases \
+ --with-cli6-lease-file=/var/lib/dhcp/dhclient6.leases \
+
+# cross-architecture building
+ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
+CROSS=CC=$(DEB_HOST_GNU_TYPE)-gcc
+else
+CROSS=
+endif
+
+# hurd support
+ifeq ($(DEB_HOST_ARCH_OS), hurd)
+export DO_LPF=1
+CONFFLAGS+=--enable-use-sockets
+endif
%:
dh $@ --parallel --with autoreconf
@@ -34,7 +41,7 @@ override_dh_auto_configure:
override_dh_auto_build:
# extract and patch embedded bind
cd bind && tar xf bind.tar.gz && \
- cd bind-* && test -e debian/bind-patches/series && \
+ cd bind-* && test -e ../../debian/bind-patches/series && \
QUILT_PATCHES=../../debian/bind-patches quilt push -a || true
# ldap-enabled build
test -f Makefile && $(MAKE) distclean || true
@@ -60,4 +67,4 @@ override_dh_strip:
override_dh_clean:
cd bind && rm -rf bind-* include lib bindvar.tmp *.log
- dh_clean -- dhcpd config.report
+ dh_clean -- dhcpd config.log config.report
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-dhcp/isc-dhcp.git
More information about the pkg-dhcp-commits
mailing list