summary refs log tree commit diff
path: root/gnu/system
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-09-25 21:49:22 +0200
committerLudovic Courtès <ludo@gnu.org>2013-09-25 21:49:22 +0200
commitba47851fac503f005d2bc496161638c46cc29ffc (patch)
tree656a7a497f09d040b1a2705a246d6afe4216f285 /gnu/system
parent43a2779876c5ae170f3c6edc7f3d605997c4ec05 (diff)
downloadguix-ba47851fac503f005d2bc496161638c46cc29ffc.tar.gz
gnu: vm: Add 'host-name' service.
* gnu/system/dmd.scm (host-name-service): New procedure.
  (mingetty-service): Require the 'host-name' service.
* gnu/system/vm.scm (system-qemu-image): Add the 'host-name' service.
  Set PS1 in /etc/bashrc to something sensible.
Diffstat (limited to 'gnu/system')
-rw-r--r--gnu/system/dmd.scm14
-rw-r--r--gnu/system/vm.scm4
2 files changed, 17 insertions, 1 deletions
diff --git a/gnu/system/dmd.scm b/gnu/system/dmd.scm
index a502c42e03..5bdf7b7a05 100644
--- a/gnu/system/dmd.scm
+++ b/gnu/system/dmd.scm
@@ -36,6 +36,7 @@
             service-stop
             service-inputs
 
+            host-name-service
             syslog-service
             mingetty-service
             guix-service
@@ -61,6 +62,14 @@
   (inputs        service-inputs                   ; list of inputs
                  (default '())))
 
+(define (host-name-service store name)
+  "Return a service that sets the host name to NAME."
+  (service
+   (provision '(host-name))
+   (start `(lambda _
+             (sethostname ,name)))
+   (respawn? #f)))
+
 (define (mingetty-service store tty)
   "Return a service to run mingetty on TTY."
   (let* ((mingetty-drv (package-derivation store mingetty))
@@ -68,6 +77,11 @@
                                       "/sbin/mingetty")))
     (service
      (provision (list (symbol-append 'term- (string->symbol tty))))
+
+     ;; Since the login prompt shows the host name, wait for the 'host-name'
+     ;; service to be done.
+     (requirement '(host-name))
+
      (start `(make-forkexec-constructor ,mingetty-bin "--noclear" ,tty))
      (inputs `(("mingetty" ,mingetty))))))
 
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index e79a4257de..0cab3ced17 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -447,7 +447,8 @@ Happy birthday, GNU!                                http://www.gnu.org/gnu30
 
   (define %dmd-services
     ;; Services run by dmd.
-    (list (mingetty-service store "tty1")
+    (list (host-name-service store "gnu")
+          (mingetty-service store "tty1")
           (mingetty-service store "tty2")
           (mingetty-service store "tty3")
           (mingetty-service store "tty4")
@@ -488,6 +489,7 @@ Happy birthday, GNU!                                http://www.gnu.org/gnu30
            (profile  (derivation->output-path profile-drv))
            (bashrc   (add-text-to-store store "bashrc"
                                         (string-append "
+export PS1='\\u@\\h\\$ '
 export PATH=$HOME/.guix-profile/bin:" profile "/bin:" profile "/sbin
 export CPATH=$HOME/.guix-profile/include:" profile "/include
 export LIBRARY_PATH=$HOME/.guix-profile/lib:" profile "/lib