diff options
author | Ludovic Courtès <ludo@gnu.org> | 2013-12-06 23:58:46 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2013-12-07 00:01:06 +0100 |
commit | a348b09ea9c1dd51c4ce8e16f2f0629c64b9feb6 (patch) | |
tree | 090a19a2d055bbf63353b01a8e3281e75119093d | |
parent | 0b8a376b68ac117646cc54d91fa54d788623b755 (diff) | |
download | gnu-guix-a348b09ea9c1dd51c4ce8e16f2f0629c64b9feb6.tar gnu-guix-a348b09ea9c1dd51c4ce8e16f2f0629c64b9feb6.tar.gz |
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.
-rw-r--r-- | gnu/system/dmd.scm | 12 | ||||
-rw-r--r-- | 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") |