;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Mathieu Othacehe ;;; ;;; 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 . (define-module (gnu installer user) #:use-module (gnu installer utils) #:use-module (guix records) #:use-module (guix read-print) #:use-module (srfi srfi-1) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) #:export ( user make-user user-name user-real-name user-group user-home-directory user-password users->configuration)) (define-record-type* user make-user user? (name user-name) (real-name user-real-name (default "")) (group user-group (default "users")) (password user-password) (home-directory user-home-directory)) (define (users->configuration users) "Return the configuration field for USERS." (define (user->sexp user) `(user-account (name ,(user-name user)) (comment ,(user-real-name user)) (group ,(user-group user)) (home-directory ,(user-home-directory user)) (supplementary-groups '("wheel" "netdev" "audio" "video")))) (define-syntax-rule (G_ str) str) `(,(vertical-space 1) ,(comment (G_ ";; The list of user accounts ('root' is implicit).\n")) (users (cons* ,@(filter-map (lambda (user) ;; Do not emit a 'user-account' form for "root". (and (not (string=? (user-name user) "root")) (user->sexp user))) users) %base-user-accounts)))) ces?id=13dc5cebe298643aa7730e655c34dfb29c740642'>services/shepherd.scm
AgeCommit message (Expand)Author
2024-04-17services: Add the Guix Home service....This patch adds a Guix Home service, which allows for configuring/deploying an operating-system declaration with an associated home-environment. * gnu/services/guix.scm: Add guix-home-service and guix-home-shepherd-service * gnu/home/services/shepherd.scm: Don't attempt to launch user shepherd when the system shepherd runs guix-home-<user> * doc/guix.texi: Add documentation for guix-home-service * gnu/tests/guix.scm: Add a test to verify guix-home-service-type is able to activate a home environment Change-Id: Ifbcc0878d934aa4abe34bb2123b5081fb432aa8e Signed-off-by: Ludovic Courtès <ludo@gnu.org> Richard Sent
2024-03-21services: shepherd: Load each service file in a fresh module....Fixes <https://issues.guix.gnu.org/67649>. * gnu/home/services/shepherd.scm (home-shepherd-configuration-file)[config]: Define ‘make-user-module’. Call ‘load’ in ‘save-module-excursion’. * gnu/services/shepherd.scm (shepherd-configuration-file): Likewise. Reported-by: Attila Lendvai <attila@lendvai.name> Change-Id: I7df11c81b5bbbf2b24a8daa02502a000e0826fe0 Ludovic Courtès
2024-01-08home: services: shepherd: Use the 0.10.x interface....* gnu/home/services/shepherd.scm (home-shepherd-configuration-file): Pass ‘register-services’ a list. Call ‘start-in-the-background’ unconditionally. Change-Id: Id7ba005949653a9ac065c47eddb425df4f4792aa Ludovic Courtès