services: Add `hurd-console-service-type'.
* gnu/services/hurd.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Hurd Services): Document it.
This commit is contained in:
		
							parent
							
								
									97c94fc2c2
								
							
						
					
					
						commit
						f9c04580bf
					
				
					 3 changed files with 96 additions and 0 deletions
				
			
		|  | @ -319,7 +319,9 @@ Services | |||
| * Version Control Services::    Providing remote access to Git repositories. | ||||
| * Game Services::               Game servers. | ||||
| * PAM Mount Service::           Service to mount volumes when logging in. | ||||
| * Guix Services::               Services relating specifically to Guix. | ||||
| * Linux Services::              Services tied to the Linux kernel. | ||||
| * Hurd Services::               Services specific to a Hurd System. | ||||
| * Miscellaneous Services::      Other services. | ||||
| 
 | ||||
| Defining Services | ||||
|  | @ -12599,6 +12601,7 @@ declaration. | |||
| * PAM Mount Service::           Service to mount volumes when logging in. | ||||
| * Guix Services::               Services relating specifically to Guix. | ||||
| * Linux Services::              Services tied to the Linux kernel. | ||||
| * Hurd Services::               Services specific for a Hurd System. | ||||
| * Miscellaneous Services::      Other services. | ||||
| @end menu | ||||
| 
 | ||||
|  | @ -26037,6 +26040,25 @@ parameters, can be done as follow: | |||
| @end lisp | ||||
| @end deffn | ||||
| 
 | ||||
| @node Hurd Services | ||||
| @subsection Hurd Services | ||||
| 
 | ||||
| @defvr {Scheme Variable} hurd-console-service-type | ||||
| This service starts the fancy @code{VGA} console client on the Hurd. | ||||
| 
 | ||||
| The service's value is a @code{hurd-console-configuration} record. | ||||
| @end defvr | ||||
| 
 | ||||
| @deftp {Data Type} hurd-console-configuration | ||||
| This is the data type representing the configuration for the | ||||
| hurd-console-service. | ||||
| 
 | ||||
| @table @asis | ||||
| @item @code{hurd} (default: @var{hurd}) | ||||
| The Hurd package to use. | ||||
| @end table | ||||
| @end deftp | ||||
| 
 | ||||
| @node Miscellaneous Services | ||||
| @subsection Miscellaneous Services | ||||
| 
 | ||||
|  |  | |||
|  | @ -582,6 +582,7 @@ GNU_SYSTEM_MODULES =				\ | |||
|   %D%/services/games.scm			\
 | ||||
|   %D%/services/getmail.scm				\
 | ||||
|   %D%/services/guix.scm			\
 | ||||
|   %D%/services/hurd.scm				\
 | ||||
|   %D%/services/kerberos.scm			\
 | ||||
|   %D%/services/linux.scm			\
 | ||||
|   %D%/services/lirc.scm				\
 | ||||
|  |  | |||
							
								
								
									
										73
									
								
								gnu/services/hurd.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								gnu/services/hurd.scm
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,73 @@ | |||
| ;;; GNU Guix --- Functional package management for GNU | ||||
| ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> | ||||
| ;;; | ||||
| ;;; This file is part of GNU Guix. | ||||
| ;;; | ||||
| ;;; GNU Guix is free software; you can redistribute it and/or modify it | ||||
| ;;; under the terms of the GNU General Public License as published by | ||||
| ;;; the Free Software Foundation; either version 3 of the License, or (at | ||||
| ;;; your option) any later version. | ||||
| ;;; | ||||
| ;;; GNU Guix is distributed in the hope that it will be useful, but | ||||
| ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| ;;; GNU General Public License for more details. | ||||
| ;;; | ||||
| ;;; You should have received a copy of the GNU General Public License | ||||
| ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| (define-module (gnu services hurd) | ||||
|   #:use-module (gnu packages admin) | ||||
|   #:use-module (gnu packages hurd) | ||||
|   #:use-module (gnu services) | ||||
|   #:use-module (gnu services shepherd) | ||||
|   #:use-module (gnu system) | ||||
|   #:use-module (guix gexp) | ||||
|   #:use-module (guix records) | ||||
|   #:export (hurd-console-configuration | ||||
|             hurd-console-service-type)) | ||||
| 
 | ||||
| ;;; Commentary: | ||||
| ;;; | ||||
| ;;; This module implements services for the Hurd. | ||||
| ;;; | ||||
| ;;; Code: | ||||
| 
 | ||||
| ;;; | ||||
| ;;; The Hurd VGA console service. | ||||
| ;;; | ||||
| 
 | ||||
| (define-record-type* <hurd-console-configuration> | ||||
|   hurd-console-configuration make-hurd-console-configuration | ||||
|   hurd-console-configuration? | ||||
|   (hurd   hurd-console-configuration-hurd ;package | ||||
|           (default hurd))) | ||||
| 
 | ||||
| (define (hurd-console-shepherd-service config) | ||||
|   "Return a <shepherd-service> for a Hurd VGA console with CONFIG." | ||||
| 
 | ||||
|   (define console-command | ||||
|     #~(list | ||||
|        (string-append #$(hurd-console-configuration-hurd config) "/bin/console") | ||||
|        "-c" "/dev/vcs" | ||||
|        "-d" "vga" | ||||
|        "-d" "pc_kbd" | ||||
|        "-d" "generic_speaker")) | ||||
| 
 | ||||
|   (list (shepherd-service | ||||
|          (documentation "Run the Hurd’s VGA console client.") | ||||
|          (provision '(console)) | ||||
|          (requirement '(user-processes)) | ||||
|          (start #~(make-forkexec-constructor #$console-command)) | ||||
|          (stop #~(make-kill-destructor))))) | ||||
| 
 | ||||
| (define hurd-console-service-type | ||||
|   (service-type | ||||
|    (name 'console) | ||||
|    (description "Run the Hurd console client.") | ||||
|    (extensions | ||||
|     (list (service-extension shepherd-root-service-type | ||||
|                              hurd-console-shepherd-service))) | ||||
|    (default-value (hurd-console-configuration)))) | ||||
| 
 | ||||
| ;;; hurd.scm ends here | ||||
		Reference in a new issue