system: Make accounts and groups at activation time.
authorLudovic Courtès <ludo@gnu.org>
Sun, 11 May 2014 20:41:01 +0000 (22:41 +0200)
committerLudovic Courtès <ludo@gnu.org>
Sun, 11 May 2014 20:41:58 +0000 (22:41 +0200)
commitab6a279abbfa39b1e1bec0e363744d241972f844
tree658055e4ecf33226094c9b506251d0715827203b
parent057d6ce5e42d813b9d5e49ddae5d88e6581cc1d8
system: Make accounts and groups at activation time.

* gnu/services/base.scm (guix-build-accounts): Remove #:gid parameter;
  add #:group.  Remove 'password' and 'gid' fields in 'user-account'
  form, and add 'group'.
  (guix-service): Remove #:build-user-gid parameter.  Remove 'id' field
  in 'user-group' form.
* gnu/system.scm (etc-directory): Remove #:groups and #:accounts.  No
  longer produce files "passwd", "shadow", and "group".  Adjust caller
  accordingly.
  (%root-account): New variable.
  (operating-system-accounts): Add 'users' variable.  Add %ROOT-ACCOUNT
  only of 'operating-system-users' doesn't already contain a root
  account.
  (user-group->gexp, user-account->gexp): New procedures.
  (operating-system-boot-script): Add calls to 'setenv' and
  'activate-users+groups' in gexp.
* gnu/system/linux.scm (base-pam-services): Add PAM services for
  "user{add,del,mode}" and "group{add,del,mod}".
* gnu/system/shadow.scm (<user-account>)[gid]: Rename to...
  [group]: ... this.
  [supplementary-groups]: New field.
  [uid, password]: Default to #f.
  (<user-group>)[id]: Default to #f.
  (group-file, passwd-file): Remove.
* gnu/system/vm.scm (operating-system-default-contents)[user-directories]:
  Remove.  Add "/home" to the directives.
* guix/build/activation.scm (add-group, add-user,
  activate-users+groups): New procedures.
build-aux/hydra/demo-os.scm
gnu/services/base.scm
gnu/system.scm
gnu/system/linux.scm
gnu/system/shadow.scm
gnu/system/vm.scm
guix/build/activation.scm