From a348b09ea9c1dd51c4ce8e16f2f0629c64b9feb6 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 6 Dec 2013 23:58:46 +0100 Subject: gnu: Move /etc/resolv.conf handling to the networking service. * gnu/system/vm.scm (etc-directory): Remove 'resolv.conf'. (system-qemu-image): Use 'static-networking-service' with #:name-servers. Don't populate the image with /etc/resolv.conf. * gnu/system/dmd.scm (static-networking-service): Add #:name-servers parameter. Use it to populate /etc/resolv.conf. --- gnu/system/dmd.scm | 12 ++++++++++++ gnu/system/vm.scm | 9 ++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/gnu/system/dmd.scm b/gnu/system/dmd.scm index f4b9371ada..8a79f0a50f 100644 --- a/gnu/system/dmd.scm +++ b/gnu/system/dmd.scm @@ -163,6 +163,7 @@ (define* (static-networking-service interface ip #:key gateway + (name-servers '()) (inetutils inetutils) (net-tools net-tools)) "Return a service that starts INTERFACE with address IP. If GATEWAY is @@ -185,6 +186,17 @@ true, it must be a string specifying the default network gateway." ,(if gateway `(zero? (system* ,route "add" "-net" "default" "gw" ,gateway)) + #t) + ,(if (pair? name-servers) + `(call-with-output-file "/etc/resolv.conf" + (lambda (port) + (display + "# Generated by 'static-networking-service'.\n" + port) + (for-each (lambda (server) + (format port "nameserver ~a~%" + server)) + ',name-servers))) #t)))) (stop `(lambda _ ;; Return #f is successfully stopped. diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 251114f770..502c13b973 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -517,10 +517,6 @@ export LIBRARY_PATH=$HOME/.guix-profile/lib:" profile "/lib alias ls='ls -p --color' alias ll='ls -l' "))) - (resolv.conf - ;; Name resolution for default QEMU settings. - ;; FIXME: Move to networking service. - (text-file "resolv.conf" "nameserver 10.0.2.3\n")) (files -> `(("services" ,services) ("protocols" ,protocols) @@ -531,8 +527,7 @@ alias ll='ls -l' ("profile" ,bashrc) ("passwd" ,passwd) ("shadow" ,shadow) - ("group" ,group) - ("resolv.conf" ,resolv.conf)))) + ("group" ,group)))) (file-union files #:inputs `(("net" ,net-base) ("pam.d" ,pam.d)) @@ -557,6 +552,7 @@ alias ll='ls -l' ;; QEMU networking settings. (static-networking-service "eth0" "10.0.2.10" + #:name-servers '("10.0.2.3") #:gateway "10.0.2.2"))) (motd (text-file "motd" " Happy birthday, GNU! http://www.gnu.org/gnu30 @@ -636,7 +632,6 @@ Happy birthday, GNU! http://www.gnu.org/gnu30 ("/etc/group" -> "/etc/static/group") ("/etc/login.defs" -> "/etc/static/login.defs") ("/etc/pam.d" -> "/etc/static/pam.d") - ("/etc/resolv.conf" -> "/etc/static/resolv.conf") ("/etc/profile" -> "/etc/static/profile") ("/etc/issue" -> "/etc/static/issue") ("/etc/services" -> "/etc/static/services") -- cgit v1.2.3