From f83e943fe7b7a4db93a6c603b9fdde57a35e918d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 25 Sep 2013 23:26:08 +0200 Subject: gnu: vm: Add 'networking' service. * gnu/system/vm.scm (system-qemu-image): Use 'static-networking-service'. Add /etc/resolv.conf. Add Inetutils to the profile. * gnu/system/dmd.scm (static-networking-service): New procedure. --- gnu/system/dmd.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'gnu/system/dmd.scm') 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 @@ (define-module (gnu system dmd) syslog-service mingetty-service guix-service + static-networking-service + dmd-configuration-file)) ;;; Commentary: @@ -131,6 +133,22 @@ (define* (guix-service store #:key (guix guix)) (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." -- cgit v1.2.3