summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/system/dmd.scm18
-rw-r--r--gnu/system/vm.scm13
2 files changed, 30 insertions, 1 deletions
diff --git a/gnu/system/dmd.scm b/gnu/system/dmd.scm
index 5bdf7b7a05..7fc4650c25 100644
--- a/gnu/system/dmd.scm
+++ b/gnu/system/dmd.scm
@@ -40,6 +40,8 @@
syslog-service
mingetty-service
guix-service
+ static-networking-service
+
dmd-configuration-file))
;;; Commentary:
@@ -131,6 +133,22 @@
(start `(make-forkexec-constructor ,daemon))
(inputs `(("guix" ,guix))))))
+(define* (static-networking-service store interface ip
+ #:key (inetutils inetutils))
+ "Return a service that starts INTERFACE with address IP."
+
+ ;; TODO: Eventually we should do this using Guile's networking procedures,
+ ;; like 'configure-qemu-networking' does, but the patch that does this is
+ ;; not yet in stock Guile.
+ (let ((ifconfig (string-append (package-output store inetutils)
+ "/bin/ifconfig")))
+ (service
+ (provision '(networking))
+ (start `(make-forkexec-constructor ,ifconfig ,interface ,ip "up"))
+ (stop `(make-forkexec-constructor ,ifconfig ,interface "down"))
+ (respawn? #f)
+ (inputs `(("inetutils" ,inetutils))))))
+
(define (dmd-configuration-file store services)
"Return the dmd configuration file for SERVICES."
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index dd97e5ee0d..b873386606 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -455,7 +455,15 @@ Happy birthday, GNU! http://www.gnu.org/gnu30
(mingetty-service store "tty5")
(mingetty-service store "tty6")
(syslog-service store)
- (guix-service store #:guix guix-0.4)))
+ (guix-service store #:guix guix-0.4)
+
+ ;; QEMU networking settings.
+ (static-networking-service store "eth0" "10.0.2.10")))
+
+ (define resolv.conf
+ ;; Name resolution for default QEMU settings.
+ (add-text-to-store store "resolv.conf"
+ "nameserver 10.0.2.3\n"))
(parameterize ((%guile-for-build (package-derivation store guile-final)))
(let* ((bash-drv (package-derivation store bash))
@@ -480,6 +488,7 @@ Happy birthday, GNU! http://www.gnu.org/gnu30
("dmd" ,dmd)
("gcc" ,gcc-final)
("libc" ,glibc-final)
+ ("inetutils" ,inetutils)
("guix" ,guix-0.4)))
;; TODO: Replace with a real profile with a manifest.
@@ -514,6 +523,7 @@ You can log in as 'root' with no password.
("/etc/passwd" -> ,passwd)
("/etc/login.defs" -> "/dev/null")
("/etc/pam.d" -> ,pam.d)
+ ("/etc/resolv.conf" -> ,resolv.conf)
("/etc/profile" -> ,bashrc)
("/etc/issue" -> ,issue)
(directory "/var/nix/gcroots")
@@ -552,6 +562,7 @@ You can log in as 'root' with no password.
("etc-passwd" ,passwd)
("etc-shadow" ,shadow)
("etc-group" ,group)
+ ("etc-resolv.conf" ,resolv.conf)
("etc-bashrc" ,bashrc)
("etc-issue" ,issue)
("etc-motd" ,motd)