[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