Package: dhcp3 Severity: wishlist Tags: patch, d-i Currently the netcfg package includes a modified dhclient-script in /etc and dhcp3-client-udeb symlinks to that. It seems more logical to just include our modified script in the dhcp3-client-udeb package instead.
The attached patch takes care of that. The change can be uploaded without problem; it will cause no conflicts of breakage in current installer. Suggested changelog entry: * Add reduced dhclient-script for the udeb (previously included in netcfg) When I prepared the patch I noticed that dhcp3-client has a separate version of the script for kfreebsd. D-I currently does not, and I've left it like that. It should however be trivial to include a modified script in the future if the kfreebsd porters desire that. Cheers, FJP
diff -u dhcp3-3.0.6.dfsg/debian/rules dhcp3-3.0.6.dfsg/debian/rules --- dhcp3-3.0.6.dfsg/debian/rules +++ dhcp3-3.0.6.dfsg/debian/rules @@ -101,9 +101,9 @@ $(INSTALL_PROGRAM) -m 755 $(DESTDIR)/sbin/dhclient \ `pwd`/debian/dhcp3-client-udeb/sbin/ - # udeb needs the os-specific script too - #cp `pwd`/debian/tmp/sbin/dhclient-script \ - # `pwd`/debian/dhcp3-client-udeb/sbin + # udeb needs simplified dhclient script + $(INSTALL_FILE) -m 755 `pwd`/debian/dhclient-script.udeb \ + `pwd`/debian/dhcp3-client-udeb/sbin/dhclient-script # Rename binaries so they do not conflict with the binaries in the # v2 packages. reverted: --- dhcp3-3.0.6.dfsg/debian/dhcp3-client-udeb.links +++ dhcp3-3.0.6.dfsg.orig/debian/dhcp3-client-udeb.links @@ -1 +0,0 @@ -etc/dhclient-script sbin/dhclient-script only in patch2: unchanged: --- dhcp3-3.0.6.dfsg.orig/debian/dhclient-script.udeb +++ dhcp3-3.0.6.dfsg/debian/dhclient-script.udeb @@ -0,0 +1,113 @@ +#!/bin/sh + +set -e + +# reduced dhclient-script for the Debian installer +# changes by Joshua Kwan <[EMAIL PROTECTED]>, +# Bastian Blank <[EMAIL PROTECTED]> + +# 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 + +make_resolv_conf() { + if [ -n "$new_domain_name" ] || [ -n "$new_domain_name_servers" ]; then + local 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=$(cat /proc/sys/kernel/hostname) + if [ -z "$current_hostname" ] || [ "$current_hostname" = "(none)" ]; then + echo "$new_host_name" > /proc/sys/kernel/hostname + fi +} + +if [ -n "$new_subnet_mask" ]; then + new_mask="/$(ptom $new_subnet_mask)" +fi +if [ -n "$old_subnet_mask" ]; then + old_mask="/$(ptom $old_subnet_mask)" +fi + +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 + +# Execute the operation +case "$reason" in + MEDIUM|ARPCHECK|ARPSEND) + # Do nothing + ;; + PREINIT) + ip link set $interface up + + # We need to give the kernel some time to get the interface up. + sleep 1 + ;; + BOUND|RENEW|REBIND|REBOOT) + + set_hostname + + 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. + ip addr del $old_ip_address$old_mask $old_broadcast_arg dev $interface + ip link set $interface down + fi + + if [ -n "$new_interface_mtu" ]; then + ip link set $interface mtu $new_interface_mtu || true + fi + + if [ -z "$old_ip_address" ] || [ "$old_ip_address" != "$new_ip_address" ] || \ + [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then + + ip link set $interface up + ip addr flush dev $interface + ip addr add $new_ip_address$new_mask $new_broadcast_arg dev $interface + + for router in $new_routers; do + ip route add default via $router + done + 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. + ip addr flush dev $interface + ip link set $interface down + fi + + ;; + + TIMEOUT) + ip link set $interface down + + ;; +esac + +exit 0
signature.asc
Description: This is a digitally signed message part.