summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2007-02-20 14:20:16 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2007-02-20 14:20:16 +0000
commit7f1a438ca81c923b2ccf3c48477156d70c5910ea (patch)
treef9703c52fce42b02c82e661cc261728e1c963e9a /pkgs
parentb8057ff11a14e09e507ed721f53ea704da1d24d7 (diff)
downloadnixlib-7f1a438ca81c923b2ccf3c48477156d70c5910ea.tar
nixlib-7f1a438ca81c923b2ccf3c48477156d70c5910ea.tar.gz
nixlib-7f1a438ca81c923b2ccf3c48477156d70c5910ea.tar.bz2
nixlib-7f1a438ca81c923b2ccf3c48477156d70c5910ea.tar.lz
nixlib-7f1a438ca81c923b2ccf3c48477156d70c5910ea.tar.xz
nixlib-7f1a438ca81c923b2ccf3c48477156d70c5910ea.tar.zst
nixlib-7f1a438ca81c923b2ccf3c48477156d70c5910ea.zip
* Latest dhcp.
* Dhcp client script: create resolv.conf even if the DHCP server
  doesn't provide a domain name, only a list of name servers.  (The
  QEMU DHCP server does this.)

svn path=/nixpkgs/trunk/; revision=7920
Diffstat (limited to 'pkgs')
-rw-r--r--[-rwxr-xr-x]pkgs/tools/networking/dhcp/builder.sh18
-rw-r--r--pkgs/tools/networking/dhcp/default.nix8
-rw-r--r--pkgs/tools/networking/dhcp/dhcp-3.0.3-bash.patch9
-rw-r--r--pkgs/tools/networking/dhcp/dhcp-3.0.3-path.patch166
-rw-r--r--pkgs/tools/networking/dhcp/resolv-without-domain.patch27
5 files changed, 36 insertions, 192 deletions
diff --git a/pkgs/tools/networking/dhcp/builder.sh b/pkgs/tools/networking/dhcp/builder.sh
index 56f506d1fbca..96e8a57fe6a1 100755..100644
--- a/pkgs/tools/networking/dhcp/builder.sh
+++ b/pkgs/tools/networking/dhcp/builder.sh
@@ -2,23 +2,15 @@ source $stdenv/setup
 
 export DESTDIR=$out
 
+configurePhase=configurePhase
 configurePhase() {
-	./configure
-        prefix=$out
+    ./configure
+    prefix=$out
 }
 
+preBuild=preBuild
 preBuild() {
-	sed -e "s^@nettools\@^$nettools^g" \
-	-e "s^@coreutils\@^$coreutils^g" \
-	-e "s^@bash\@^$bash^g" \
-	-e "s^@iputils\@^$iputils^g" \
-	-e "s^@gnused\@^$gnused^g" \
-	< client/scripts/linux > client/scripts/linux.tmp
-	mv client/scripts/linux.tmp client/scripts/linux
+    substituteInPlace client/scripts/linux --replace /bin/bash $shell
 }
 
-preBuild=preBuild
-
-configurePhase=configurePhase
-
 genericBuild
diff --git a/pkgs/tools/networking/dhcp/default.nix b/pkgs/tools/networking/dhcp/default.nix
index 52d7c4ecb740..5aa60c5ee38f 100644
--- a/pkgs/tools/networking/dhcp/default.nix
+++ b/pkgs/tools/networking/dhcp/default.nix
@@ -1,13 +1,13 @@
 {stdenv, fetchurl, groff, nettools, coreutils, iputils, gnused, bash}:
 
 stdenv.mkDerivation {
-  name = "dhcp-3.0.4";
+  name = "dhcp-3.0.5";
   builder=./builder.sh;
   src = fetchurl {
-    url = http://nix.cs.uu.nl/dist/tarballs/dhcp-3.0.4.tar.gz;
-    md5 = "004ef935fd54b8046b16bdde31a9e151";
+    url = http://ftp.isc.org/isc/dhcp/dhcp-3.0.5.tar.gz;
+    sha256 = "1dpz6y08vrn3mw0lrlwq1sfiq6nsixpwwgb9hngddka1lfr5yi6x";
   };
   buildInputs = [groff];
   inherit nettools coreutils iputils gnused bash;
-  patches = [./dhcp-3.0.3-path.patch ./dhcp-3.0.3-bash.patch];
+  patches = [./resolv-without-domain.patch];
 }
diff --git a/pkgs/tools/networking/dhcp/dhcp-3.0.3-bash.patch b/pkgs/tools/networking/dhcp/dhcp-3.0.3-bash.patch
deleted file mode 100644
index 7f2f9177397a..000000000000
--- a/pkgs/tools/networking/dhcp/dhcp-3.0.3-bash.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-diff -ruN dhcp-3.0.3/client/scripts/linux dhcp-3.0.3.new/client/scripts/linux
---- dhcp-3.0.3/client/scripts/linux	2002-11-15 02:09:09.000000000 +0100
-+++ dhcp-3.0.3.new/client/scripts/linux	2005-10-16 22:42:09.000000000 +0200
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!@bash@/bin/bash
- # dhclient-script for Linux. Dan Halbert, March, 1997.
- # Updated for Linux 2.[12] by Brian J. Murrell, January 1999.
- # No guarantees about this. I'm a novice at the details of Linux
diff --git a/pkgs/tools/networking/dhcp/dhcp-3.0.3-path.patch b/pkgs/tools/networking/dhcp/dhcp-3.0.3-path.patch
deleted file mode 100644
index cddde303bbcd..000000000000
--- a/pkgs/tools/networking/dhcp/dhcp-3.0.3-path.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-diff -ruN dhcp-3.0.3/client/scripts/linux dhcp-3.0.3.new/client/scripts/linux
---- dhcp-3.0.3/client/scripts/linux	2002-11-15 02:09:09.000000000 +0100
-+++ dhcp-3.0.3.new/client/scripts/linux	2005-10-12 22:12:20.000000000 +0200
-@@ -25,7 +25,7 @@
- make_resolv_conf() {
-   if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then
-     echo search $new_domain_name >/etc/resolv.conf
--    chmod 644 /etc/resolv.conf
-+    @coreutils@/bin/chmod 644 /etc/resolv.conf
-     for nameserver in $new_domain_name_servers; do
-       echo nameserver $nameserver >>/etc/resolv.conf
-     done
-@@ -53,10 +53,10 @@
-   fi
- fi
- 
--release=`uname -r`
--release=`expr $release : '\(.*\)\..*'`
--relminor=`echo $release |sed -e 's/[0-9]*\.\([0-9][0-9]*\)\(\..*\)*$/\1/'`
--relmajor=`echo $release |sed -e 's/\([0-9][0-9]*\)\..*$/\1/'`
-+release=`@coreutils@/bin/uname -r`
-+release=`@coreutils@/bin/expr $release : '\(.*\)\..*'`
-+relminor=`echo $release |@gnused@/bin/sed -e 's/[0-9]*\.\([0-9][0-9]*\)\(\..*\)*$/\1/'`
-+relmajor=`echo $release |@gnused@/bin/sed -e 's/\([0-9][0-9]*\)\..*$/\1/'`
- 
- if [ x$new_broadcast_address != x ]; then
-   new_broadcast_arg="broadcast $new_broadcast_address"
-@@ -82,20 +82,20 @@
- 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
-+    @nettools@/sbin/ifconfig $interface:0- inet 0
-   fi
-   if [ $relmajor -lt 2 ] || ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] )
-    then
--    ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \
-+    @nettools@/sbin/ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \
- 		broadcast 255.255.255.255 up
-     # Add route to make broadcast work. Do not omit netmask.
--    route add default dev $interface netmask 0.0.0.0
-+    @nettools@/sbin/route add default dev $interface netmask 0.0.0.0
-   else
--    ifconfig $interface 0 up
-+    @nettools@/sbin/ifconfig $interface 0 up
-   fi
- 
-   # We need to give the kernel some time to get the interface up.
--  sleep 1
-+  @coreutils@/bin/sleep 1
- 
-   exit_with_hooks 0
- fi
-@@ -106,45 +106,45 @@
-   
- if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
-    [ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then
--  current_hostname=`hostname`
-+  current_hostname=`@nettools@/bin/hostname`
-   if [ x$current_hostname = x ] || \
-      [ x$current_hostname = x$old_host_name ]; then
-     if [ x$current_hostname = x ] || \
-        [ x$new_host_name != x$old_host_name ]; then
--      hostname $new_host_name
-+      @nettools@/bin/hostname $new_host_name
-     fi
-   fi
-     
-   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
-+    @nettools@/sbin/ifconfig $interface:0- inet 0
-   fi
-   if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then
-     # IP address changed. Bringing down the interface will delete all routes,
-     # and clear the ARP cache.
--    ifconfig $interface inet 0 down
-+    @nettools@/sbin/ifconfig $interface inet 0 down
- 
-   fi
-   if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \
-      [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then
- 
--    ifconfig $interface inet $new_ip_address $new_subnet_arg \
-+    @nettools@/sbin/ifconfig $interface inet $new_ip_address $new_subnet_arg \
- 							$new_broadcast_arg
-     # Add a network route to the computed network address.
-     if [ $relmajor -lt 2 ] || \
- 		( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ); then
--      route add -net $new_network_number $new_subnet_arg dev $interface
-+      @nettools@/sbin/route add -net $new_network_number $new_subnet_arg dev $interface
-     fi
-     for router in $new_routers; do
--      route add default gw $router
-+      @nettools@/sbin/route add default gw $router
-     done
-   fi
-   if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
-    then
--    ifconfig $interface:0- inet 0
--    ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
--    route add -host $alias_ip_address $interface:0
-+    @nettools@/sbin/ifconfig $interface:0- inet 0
-+    @nettools@/sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
-+    @nettools@/sbin/route add -host $alias_ip_address $interface:0
-   fi
-   make_resolv_conf
-   exit_with_hooks 0
-@@ -154,44 +154,44 @@
-    || [ x$reason = xSTOP ]; then
-   if [ x$alias_ip_address != x ]; then
-     # Turn off alias interface.
--    ifconfig $interface:0- inet 0
-+    @nettools@/sbin/ifconfig $interface:0- inet 0
-   fi
-   if [ x$old_ip_address != x ]; then
-     # Shut down interface, which will delete routes and clear arp cache.
--    ifconfig $interface inet 0 down
-+    @nettools@/sbin/ifconfig $interface inet 0 down
-   fi
-   if [ x$alias_ip_address != x ]; then
--    ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
--    route add -host $alias_ip_address $interface:0
-+    @nettools@/sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
-+    @nettools@/sbin/route add -host $alias_ip_address $interface:0
-   fi
-   exit_with_hooks 0
- fi
- 
- if [ x$reason = xTIMEOUT ]; then
-   if [ x$alias_ip_address != x ]; then
--    ifconfig $interface:0- inet 0
-+    @nettools@/sbin/ifconfig $interface:0- inet 0
-   fi
--  ifconfig $interface inet $new_ip_address $new_subnet_arg \
-+  @nettools@/sbin/ifconfig $interface inet $new_ip_address $new_subnet_arg \
- 					$new_broadcast_arg
-   set $new_routers
-   ############## what is -w in ping?
--  if ping -q -c 1 $1; then
-+  if @iputils@/bin/ping -q -c 1 $1; then
-     if [ x$new_ip_address != x$alias_ip_address ] && \
- 			[ x$alias_ip_address != x ]; then
--      ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
--      route add -host $alias_ip_address dev $interface:0
-+      @nettools@/sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
-+      @nettools@/sbin/route add -host $alias_ip_address dev $interface:0
-     fi
-     if [ $relmajor -lt 2 ] || \
- 		( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ); then
--      route add -net $new_network_number
-+      @nettools@/sbin/route add -net $new_network_number
-     fi
-     for router in $new_routers; do
--      route add default gw $router
-+      @nettools@/sbin/route add default gw $router
-     done
-     make_resolv_conf
-     exit_with_hooks 0
-   fi
--  ifconfig $interface inet 0 down
-+  @nettools@/sbin/ifconfig $interface inet 0 down
-   exit_with_hooks 1
- fi
- 
diff --git a/pkgs/tools/networking/dhcp/resolv-without-domain.patch b/pkgs/tools/networking/dhcp/resolv-without-domain.patch
new file mode 100644
index 000000000000..262c441f930a
--- /dev/null
+++ b/pkgs/tools/networking/dhcp/resolv-without-domain.patch
@@ -0,0 +1,27 @@
+diff -rc dhcp-3.0.5-orig/client/scripts/linux dhcp-3.0.5/client/scripts/linux
+*** dhcp-3.0.5-orig/client/scripts/linux	Fri Nov 15 02:09:09 2002
+--- dhcp-3.0.5/client/scripts/linux	Tue Feb 20 15:02:34 2007
+***************
+*** 23,31 ****
+  # of the $1 in its args.
+  
+  make_resolv_conf() {
+!   if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then
+!     echo search $new_domain_name >/etc/resolv.conf
+      chmod 644 /etc/resolv.conf
+      for nameserver in $new_domain_name_servers; do
+        echo nameserver $nameserver >>/etc/resolv.conf
+      done
+--- 23,34 ----
+  # of the $1 in its args.
+  
+  make_resolv_conf() {
+!   if [ x"$new_domain_name_servers" != x ]; then
+!     echo -n >/etc/resolv.conf
+      chmod 644 /etc/resolv.conf
++     if [ "x$new_domain_name" != x ]; then
++       echo search $new_domain_name >>/etc/resolv.conf
++     fi
+      for nameserver in $new_domain_name_servers; do
+        echo nameserver $nameserver >>/etc/resolv.conf
+      done