aboutsummaryrefslogtreecommitdiff
path: root/gnu/installer/user.scm
blob: 4e701e64ce3efa25d018c827b4a6203149186b3b (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; 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 installer user)
  #:use-module (guix records)
  #:use-module (srfi srfi-1)
  #:export (<user>
            user
            make-user
            user-name
            user-real-name
            user-group
            user-home-directory
            user-password

            users->configuration))

(define-record-type* <user>
  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"))))

  `((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))))
u/packages/lisp.scm (lisp-repl-core-dumper): Likewise. * gnu/packages/lua.scm (fennel): Likewise. * gnu/packages/lxde.scm (spacefm): Likewise. * gnu/packages/mail.scm (public-inbox): Likewise. * gnu/packages/maths.scm (hdf-java): Likewise. (maxima): Likewise. (frama-c): Likewise. * gnu/packages/messaging.scm (libgadu): Likewise. * gnu/packages/music.scm (denemo): Likewise. (curseradio): Likewise. * gnu/packages/netpbm.scm (netpbm): Likewise. * gnu/packages/networking.scm (blueman): Likewise. (squid): Likewise. (aircrack-ng): Likewise. * gnu/packages/node.scm (node): Likewise. (node-llparse-frontend-bootstrap): Likewise. (node-llparse-bootstrap): Likewise. (llhttp-bootstrap): Likewise. (node-lts): Likewise. * gnu/packages/ocaml.scm (ocaml-4.11): Likewise. (opam): Likewise. (ocaml-graph): Likewise. * gnu/packages/orpheus.scm (orpheus): Likewise. * gnu/packages/password-utils.scm (password-store): Likewise. * gnu/packages/python.scm (pypy3): Likewise. * gnu/packages/qt.scm (qt5ct): Likewise. * gnu/packages/radio.scm (libosmo-dsp): Likewise. * gnu/packages/ruby.scm (ruby-pandoc-ruby): Likewise. * gnu/packages/rust.scm (rust-1.30): Likewise. * gnu/packages/screen.scm (byobu): Likewise. * gnu/packages/statistics.scm (r-with-tests): Likewise. * gnu/packages/suckless.scm (surf): Likewise. * gnu/packages/syndication.scm (gfeeds): Likewise. * gnu/packages/telephony.scm (mumble): Likewise. * gnu/packages/terminals.scm (alacritty): Likewise. * gnu/packages/tex.scm (texlive-bin): Likewise. * gnu/packages/uml.scm (plantuml): Likewise. * gnu/packages/version-control.scm (python-git-multimail): Likewise. (gitolite): Likewise. (hg-commitsigs): Likewise. (git-when-merged): Likewise. (git-imerge): Likewise. (gita): Likewise. * gnu/packages/video.scm (you-get): Likewise. * gnu/packages/vim.scm (eovim): Likewise. * gnu/packages/virtualization.scm (qemu): Likewise. (virt-manager): Likewise. (criu): Likewise. * gnu/packages/vpn.scm (strongswan): Likewise. (xl2tpd): Likewise. * gnu/packages/wm.scm (i3lock-fancy): Likewise. * gnu/packages/wxwidgets.scm (python-wxpython): Likewise. (python2-wxpython): Likewise. * gnu/packages/xdisorg.scm (autorandr): Likewise. * gnu/packages/xorg.scm (hackneyed-x11-cursors): Likewise. (v86d): Likewise. (mkfontdir): Likewise. (xpra): Likewise. Ludovic Courtès 2021-07-24gnu: Use 'search-input-directory' when looking for tzdata....* gnu/packages/backup.scm (duplicity)[arguments]: Use 'search-input-directory' for "share/zoneinfo". * gnu/packages/bioinformatics.scm (pigx-rnaseq): Likewise. (pigx-bsseq): Likewise. * gnu/packages/calcurse.scm (calcurse): Likewise. * gnu/packages/calendar.scm (date): Likewise. * gnu/packages/compression.scm (lhasa): Likewise. * gnu/packages/cran.scm (r-rstan): Likewise. * gnu/packages/django.scm (python-django): Likewise. * gnu/packages/dlang.scm (ldc-bootstrap): Likewise. * gnu/packages/finance.scm (ledger): Likewise. * gnu/packages/glib.scm (glib): Likewise. * gnu/packages/golang.scm (go-1.4): Likewise. (go-1.14): Likewise. * gnu/packages/kde-frameworks.scm (kcalendarcore): Likewise. (kdelibs4support): Likewise. * gnu/packages/kodi.scm (kodi): Likewise. * gnu/packages/mail.scm (mu): Likewise. * gnu/packages/perl.scm (perl-libtime-parsedate): Likewise. * gnu/packages/python-xyz.scm (python-robotframework): Likewise. (python-dparse): Likewise. * gnu/packages/rrdtool.scm (rrdtool): Likewise. * gnu/packages/statistics.scm (r-with-tests): Likewise. * gnu/packages/vim.scm (vim): Likewise. * gnu/packages/virtualization.scm (ganeti): Likewise. * gnu/packages/vpn.scm (strongswan): Likewise. * gnu/packages/xfce.scm (xfce4-panel): Likewise. * gnu/packages/mate.scm (libmateweather): Use 'search-input-file' for "share/zoneinfo/zone.tab". Ludovic Courtès 2021-07-18Merge branch 'master' into core-updatesLudovic Courtès 2021-07-12gnu: strongswan: Update to 5.9.3....* gnu/packages/vpn.scm (strongswan): Update to 5.9.3. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Domagoj Stolfa 2021-07-07gnu: Add bitmask....* gnu/packages/vpn.scm (bitmask): New variable. Co-authored-by: jgart <jgart@dismail.de> Raghav Gururajan 2021-06-25gnu: strongswan: Invoke absolute file names in ‘ipsec’ launcher....* gnu/packages/vpn.scm (strongswan)[arguments]: Include the ‘ipsec’ launcher script in the 'patch-command-file-names phase. [inputs]: Add coreutils. Tobias Geerinckx-Rice 2021-06-23Merge branch 'master' into core-updates...Conflicts: gnu/packages/cups.scm gnu/packages/python-web.scm gnu/packages/web.scm guix/build/maven/pom.scm Tobias Geerinckx-Rice 2021-06-20gnu: openvpn: Update to 2.5.3....* gnu/packages/vpn.scm (openvpn): Update to 2.5.3. Signed-off-by: Brice Waegeneire <brice@waegenei.re> Solene Rapenne 2021-06-19Merge branch 'master' into core-updates...Note: this merge actually changes the 'curl' and 'python-attrs' derivations, as part of solving caf4a7a2770ef4d05a6e18f40d602e51da749ddc and 12964df69a99de6190422c752fef65ef813f3b6b respectively. 4604d43c0e (gnu: gnutls@3.6.16: Fix cross-compilation.) was ignored because it cannot currently be tested. Conflicts: gnu/local.mk gnu/packages/aidc.scm gnu/packages/boost.scm gnu/packages/curl.scm gnu/packages/nettle.scm gnu/packages/networking.scm gnu/packages/python-xyz.scm gnu/packages/tls.scm Marius Bakke 2021-06-19gnu: Add missing imports to (gnu packages vpn)....This follows up on c85ed0e758d7fa230c08dba6b95c65ceac098d50. * gnu/packages/vpn.scm: Import (gnu packages curl), (gnu packages gnome), and (gnu packages multiprecision). * gnu/packages/networking.scm: Remove unused (gnu packages multiprecision) import. f Tobias Geerinckx-Rice 2021-06-19gnu: Move strongswan to (gnu packages vpn)....See <https://logs.guix.gnu.org/guix/2021-06-19.log#015517>. * gnu/packages/networking.scm (strongswan): Move from here… * gnu/packages/vpn.scm (strongswan): …to here. Tobias Geerinckx-Rice 2021-06-04gnu: wireguard-tools: Set #:sh argument of 'wrap-program'....* gnu/packages/vpn.scm (wireguard-tools)[arguments]<#:phases>{wrap-wg-quick}: Set #:sh argument of ‘wrap-program’. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxime Devos 2021-06-04gnu: protonvpn-cli: Set #:sh argument of 'wrap-program'....* gnu/packages/vpn.scm (protonvpn-cli)[arguments]<#:phases>{wrap-wrapper}: Set #:sh argument of ‘wrap-program’. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxime Devos 2021-06-04gnu: openconnect-sso: Set #:sh argument of 'wrap-program'....* gnu/packages/vpn.scm (openconnect-sso)[arguments]<#:phases>{wrap-qt-process-path} Set #:sh argument of ‘wrap-program’. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxime Devos 2021-06-04gnu: vpnc-scripts: Set #:guile argument of 'wrap-script'....* gnu/packages/vpn.scm (vpnc-scripts)[arguments]<#:phases>{wrap-scripts}: Set #:guile argument of ‘wrap-script’. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxime Devos 2021-04-27gnu: wireguard-tools: Update to 1.0.20210424....* gnu/packages/vpn.scm (wireguard-tools): Update to 1.0.20210424. Tobias Geerinckx-Rice 2021-04-22gnu: openvpn: Update to 2.5.2....* gnu/packages/vpn.scm (openvpn): Update to 2.5.2. Tobias Geerinckx-Rice 2021-04-22gnu: openconnect-sso: Update to 0.7.3....* gnu/packages/vpn.scm (openconnect-sso): Update to 0.7.3. Tobias Geerinckx-Rice 2021-04-13gnu: openconnect-sso: Update to 0.7.2....* gnu/packages/vpn.scm (openconnect-sso): Update to 0.7.2. [arguments]: Remove 'adjust-package-version-requirements phase. Efraim Flashner