diff --git a/pkgs/tools/networking/dhcp/default.nix b/pkgs/tools/networking/dhcp/default.nix index 47fec622db06..7fa1fce66a5e 100644 --- a/pkgs/tools/networking/dhcp/default.nix +++ b/pkgs/tools/networking/dhcp/default.nix @@ -13,6 +13,11 @@ stdenv.mkDerivation rec { # recover when the wlan interface goes down. Instead just flush # all addresses, routes and neighbours of the interface. ./flush-if.patch + + # Make sure that the hostname gets set on reboot. Without this + # patch, the hostname doesn't get set properly if the old + # hostname (i.e. before reboot) is equal to the new hostname. + ./set-hostname.patch ]; # Fixes "socket.c:591: error: invalid application of 'sizeof' to diff --git a/pkgs/tools/networking/dhcp/set-hostname.patch b/pkgs/tools/networking/dhcp/set-hostname.patch new file mode 100644 index 000000000000..495a8a124be3 --- /dev/null +++ b/pkgs/tools/networking/dhcp/set-hostname.patch @@ -0,0 +1,14 @@ +diff -ru -x '*~' dhcp-4.1.2-P1-orig//client/scripts/linux dhcp-4.1.2-P1//client/scripts/linux +--- dhcp-4.1.2-P1-orig//client/scripts/linux 2010-09-15 00:49:48.000000000 +0200 ++++ dhcp-4.1.2-P1//client/scripts/linux 2011-04-01 16:08:10.984372269 +0200 +@@ -133,9 +133,7 @@ + [ x$current_hostname = "x(none)" ] || \ + [ x$current_hostname = xlocalhost ] || \ + [ x$current_hostname = x$old_host_name ]; then +- if [ x$new_host_name != x$old_host_name ]; then +- hostname "$new_host_name" +- fi ++ hostname "$new_host_name" + fi + + if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \