Commit Graph

17 Commits

Author SHA1 Message Date
Ludovic Courtès 78ed003811 gnu: Add 'inputs' field to <user-account>; make 'shell' a monadic value.
* gnu/system/shadow.scm (<user-account>)[inputs]: New field.
  (passwd-file): Bind the 'shell' field of each account.
* gnu/system/vm.scm (%demo-operating-system): Remove 'shell' field.
* gnu/system/dmd.scm (guix-build-accounts): Store a monadic value in
  'shell'.  Add 'inputs' field.
* gnu/system.scm (operating-system-derivation): Remove 'shell' field for
  'root' account.  Add all the 'user-account-inputs' to EXTRAS.
2013-12-10 00:24:02 +01:00
Ludovic Courtès 13ce0e3aa7 gnu: dmd: Avoid "already exists" error on startup.
* gnu/system/dmd.scm (dmd-configuration-file)[config]: Remove
  "/var/nix/gcroots/etc-directory" before trying to recreate it.
2013-12-10 00:24:02 +01:00
Ludovic Courtès 9b0ac80258 gnu: Populate /etc upon startup.
* gnu/packages/patches/dmd-getpw.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/system.scm (dmd): Use it.
* gnu/system/vm.scm (system-qemu-image): Don't explicitly populate /etc;
  don't add ETC to the GC roots.
* gnu/system/dmd.scm (dmd-configuration-file): Add 'etc' parameter.
  [config]: Populate /etc from there.
2013-12-08 22:43:56 +01:00
Ludovic Courtès f7d6fafaa2 gnu: dmd: Add 'pam-services' field to <service>.
* gnu/system/dmd.scm (<service>)[pam-services]: New field.
  (mingetty-service): Add #:motd and #:allow-empty-passwords?
  parameters.  Add MOTD to 'inputs' field; add 'pam-services' field.
* gnu/system/vm.scm (system-qemu-image): Aggregate PAM entries from
  SERVICES.
2013-12-07 16:18:51 +01:00
Ludovic Courtès 18fb40e414 gnu: dmd: Add 'user-accounts' and 'user-groups' fields to <service>.
* gnu/system/shadow.scm (guix-build-accounts): Move to...
* gnu/system/dmd.scm (guix-build-accounts): ... here.
  (<service>)[user-accounts, user-groups]: New fields.
  (guix-service): New #:build-user-id and #:build-accounts parameters.
  Use 'guix-build-accounts' and set the 'user-accounts' and
  'user-groups' fields accordingly.
* gnu/system/vm.scm (system-qemu-image): Remove use of
  'guix-build-accounts'.  Augment ACCOUNTS and GROUPS from what SERVICES
  demand.
2013-12-07 15:01:40 +01:00
Ludovic Courtès a348b09ea9 gnu: Move /etc/resolv.conf handling to the networking service.
* gnu/system/vm.scm (etc-directory): Remove 'resolv.conf'.
  (system-qemu-image): Use 'static-networking-service' with
  #:name-servers.  Don't populate the image with /etc/resolv.conf.
* gnu/system/dmd.scm (static-networking-service): Add #:name-servers
  parameter.  Use it to populate /etc/resolv.conf.
2013-12-07 00:01:06 +01:00
Ludovic Courtès f5a345adeb gnu: dmd: Update start/stop of standard service definitions.
* gnu/system/dmd.scm (mingetty-service): Add 'stop' field.
  (nscd-service): Run with '--foreground'.  Change 'stop' to use
  'make-kill-destructor'.
  (syslog-service): Run with '--no-detach'; change 'stop' similarly.
  (guix-service): Likewise for 'stop'.
  (static-networking-service): Remove 'sleep' call from 'start'.  Change
  'stop' to return #f when networking was actually stopped.
2013-12-02 23:38:49 +01:00
Ludovic Courtès b4f0bb1771 gnu: dmd: Add service documentation.
* gnu/system/dmd.scm (<service>): Add 'documentation' field.
  (host-name-service, mingetty-service, nscd-service, syslog-service,
  static-networking-service): Provide a 'documentation' value.
  (dmd-configuration-file): Use it.
2013-11-28 00:15:07 +01:00
Ludovic Courtès d9f0a23704 gnu: vm: Rewrite helper functions as monadic functions.
* gnu/system/dmd.scm (host-name-service, nscd-service, mingetty-service,
  syslog-service, guix-service, static-networking-service): Rewrite as
  monadic functions.
  (dmd-configuration-file): Use 'text-file' instead of
  'add-text-to-store'.
* gnu/system/grub.scm (grub-configuration-file): Rewrite as a monadic
  function.
* gnu/system/linux.scm (pam-services->directory): Likewise.
* gnu/system/shadow.scm (group-file, passwd-file, guix-build-accounts):
  Likewise.
* gnu/system/vm.scm (expression->derivation-in-linux-vm, qemu-image,
  union, system-qemu-image): Likewise.
2013-10-03 23:12:20 +02:00
Ludovic Courtès 87eb734d38 gnu: dmd: Make the 'networking' service slightly more robust.
* gnu/system/dmd.scm (static-networking-service)[start]: Sleep before
  running 'route', to leave time for the interface to come up.
  [stop]: Run "route del -net default".
2013-09-27 00:46:18 +02:00
Ludovic Courtès d0c66871b1 gnu: vm: Add build users.
* gnu/system/shadow.scm (guix-build-accounts): New procedure.
* gnu/system/vm.scm (system-qemu-image): Use it.  Add the "guixbuild"
  group.
* gnu/system/dmd.scm (guix-service): Add 'builder-group' parameter.
  Pass 'guix-daemon' the '--build-users-group' option.
2013-09-27 00:46:17 +02:00
Ludovic Courtès 59c5c4dee1 gnu: vm: Set the default networking route.
* gnu/system/dmd.scm (static-networking-service): Add #:gateway
  parameter and honor it.
* gnu/system/vm.scm (system-qemu-image): Pass #:gateway to
  'static-networking-service'.
2013-09-27 00:46:17 +02:00
Ludovic Courtès 349746dfcd gnu: vm: Add nscd service.
* gnu/system/dmd.scm (nscd-service): New procedure.
* gnu/system/vm.scm (system-qemu-image): Use it.  Make /var/run/nscd.
2013-09-26 00:07:42 +02:00
Ludovic Courtès f83e943fe7 gnu: vm: Add 'networking' service.
* gnu/system/vm.scm (system-qemu-image): Use
  'static-networking-service'.  Add /etc/resolv.conf.  Add Inetutils to
  the profile.
* gnu/system/dmd.scm (static-networking-service): New procedure.
2013-09-25 23:26:08 +02:00
Ludovic Courtès ba47851fac gnu: vm: Add 'host-name' service.
* gnu/system/dmd.scm (host-name-service): New procedure.
  (mingetty-service): Require the 'host-name' service.
* gnu/system/vm.scm (system-qemu-image): Add the 'host-name' service.
  Set PS1 in /etc/bashrc to something sensible.
2013-09-25 21:49:22 +02:00
Ludovic Courtès 9fcc355529 gnu: vm: Add a service for the Guix daemon.
* gnu/system/dmd.scm (guix-service): New procedure.
* gnu/system/vm.scm (system-qemu-image): Use it.
2013-09-24 23:40:50 +02:00
Ludovic Courtès 4646e30a7a gnu: QEMU images boots into dmd.
* gnu/system/dmd.scm: New file.
* gnu/system/vm.scm (system-qemu-image): Define dmd services.
  [populate]: Make var/log and etc/group.
  [boot]: Execute dmd directly.
  Add dmd and etc-group as inputs; add the inputs of dmd services.
* gnu-system.am (GNU_SYSTEM_MODULES): Add gnu/system/dmd.scm.
2013-09-21 01:09:06 +02:00