* gnu/services/hurd.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Hurd Services): Document it. --- doc/guix.texi | 13 +++++++++ gnu/local.mk | 1 + gnu/services/hurd.scm | 61 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 gnu/services/hurd.scm
diff --git a/doc/guix.texi b/doc/guix.texi index 4776eacacd..97bf067074 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -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 @@ -12594,6 +12596,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 @@ -26032,6 +26035,16 @@ parameters, can be done as follow: @end lisp @end deffn +@node Hurd Services +@subsection Hurd Services + +@deffn {Scheme Procedure} hurd-etc-service @var{os} +This service implements a minimal @code{etc-service}, adding some +specifics for the Hurd. + +It is part of the @code{hurd-default-essential-services}. +@end deffn + @node Miscellaneous Services @subsection Miscellaneous Services diff --git a/gnu/local.mk b/gnu/local.mk index 8abca8659e..d1d086abe0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -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 \ diff --git a/gnu/services/hurd.scm b/gnu/services/hurd.scm new file mode 100644 index 0000000000..6e57b22810 --- /dev/null +++ b/gnu/services/hurd.scm @@ -0,0 +1,61 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <jann...@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 services) + #:use-module (gnu system) + #:use-module (guix gexp) + #:use-module (guix records) + #:export (hurd-etc-service)) + +;;; Commentary: +;;; +;;; This module implements services for the Hurd. +;;; +;;; Code: + + +;;; +;;; The ETC service for the Hurd. +;;; + +(define (hurd-etc-service os) + "Return a <service> that builds containing the static part of the /etc +directory." + (let ((profile (mixed-text-file "profile" "\ +# Generated by hurd-etc-services +export PS1='\\u@\\h\\$ ' + +GUIX_PROFILE=\"/run/current-system/profile\" +. \"$GUIX_PROFILE/etc/profile\" + +GUIX_PROFILE=\"$HOME/.guix-profile\" +if [ -f \"$GUIX_PROFILE/etc/profile\" ]; then + . \"$GUIX_PROFILE/etc/profile\" +fi\n")) + (hurd (operating-system-hurd os))) + (etc-service + `(("services" ,(file-append net-base "/etc/services")) + ("protocols" ,(file-append net-base "/etc/protocols")) + ("profile" ,profile) + ("hostname" ,(plain-file "hostname" (operating-system-host-name os))) + ("login" ,(file-append hurd "/etc/login")) + ("motd" ,(file-append hurd "/etc/motd")))))) + +;;; hurd.scm ends here -- 2.26.2