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.
This commit is contained in:
Ludovic Courtès 2013-09-25 21:49:22 +02:00
parent 43a2779876
commit ba47851fac
2 changed files with 17 additions and 1 deletions

View file

@ -36,6 +36,7 @@ (define-module (gnu system dmd)
service-stop service-stop
service-inputs service-inputs
host-name-service
syslog-service syslog-service
mingetty-service mingetty-service
guix-service guix-service
@ -61,6 +62,14 @@ (define-record-type* <service>
(inputs service-inputs ; list of inputs (inputs service-inputs ; list of inputs
(default '()))) (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) (define (mingetty-service store tty)
"Return a service to run mingetty on TTY." "Return a service to run mingetty on TTY."
(let* ((mingetty-drv (package-derivation store mingetty)) (let* ((mingetty-drv (package-derivation store mingetty))
@ -68,6 +77,11 @@ (define (mingetty-service store tty)
"/sbin/mingetty"))) "/sbin/mingetty")))
(service (service
(provision (list (symbol-append 'term- (string->symbol tty)))) (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)) (start `(make-forkexec-constructor ,mingetty-bin "--noclear" ,tty))
(inputs `(("mingetty" ,mingetty)))))) (inputs `(("mingetty" ,mingetty))))))

View file

@ -447,7 +447,8 @@ (define %pam-services
(define %dmd-services (define %dmd-services
;; Services run by dmd. ;; 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 "tty2")
(mingetty-service store "tty3") (mingetty-service store "tty3")
(mingetty-service store "tty4") (mingetty-service store "tty4")
@ -488,6 +489,7 @@ (define %dmd-services
(profile (derivation->output-path profile-drv)) (profile (derivation->output-path profile-drv))
(bashrc (add-text-to-store store "bashrc" (bashrc (add-text-to-store store "bashrc"
(string-append " (string-append "
export PS1='\\u@\\h\\$ '
export PATH=$HOME/.guix-profile/bin:" profile "/bin:" profile "/sbin export PATH=$HOME/.guix-profile/bin:" profile "/bin:" profile "/sbin
export CPATH=$HOME/.guix-profile/include:" profile "/include export CPATH=$HOME/.guix-profile/include:" profile "/include
export LIBRARY_PATH=$HOME/.guix-profile/lib:" profile "/lib export LIBRARY_PATH=$HOME/.guix-profile/lib:" profile "/lib