services: Export *-service-type and *-configuration.
This allows users to use 'modify-services' and similar constructs for
all these service types.
* gnu/services/avahi.scm: export avahi-configuration.
* gnu/services/base.scm: export gpm-configuration and
rngd-configuration.
* gnu/services/databases.scm: export *-service-type and *-configuration.
* gnu/services/dbus.scm: export dbus-configuration.
* gnu/services/dict.scm: export dicod-service-type.
* gnu/services/lirc.scm: export lirc-configuration and
lirc-service-type.
* gnu/services/mail.scm: export dovecot-service-type.
* gnu/services/web.scm: export nginx-configuration and
nginx-service-type.
* gnu/services/xorg.scm: export screen-locker and screen-locker?.
* gnu/services/ssh.scm: export lsh-configuration and lsh-service-type.
* gnu/services/desktop.scm: export *-service, *-service-type
and *-configuration.
* gnu/services/networking.scm: export *-configuration
and *-service-type.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
services: Add pam-limits-service.
* gnu/system/pam.scm (<pam-limits-entry>): New record type.
(pam-limits-entry, pam-limits-entry->string): New procedures.
* gnu/services/base.scm (pam-limits-service-type): New variable.
(pam-limits-service): New procedure.
* doc/guix.texi (Base Services): Document it.
gnu: lsh: Move to (gnu packages ssh)
* gnu/packages/lsh.scm: Remove. Move 'lsh and liboop' to...
* gnu/packages/ssh.scm (liboop, lsh): ... here. New variables.
* gnu/services/ssh.scm, gnu/services/base.scm: Adjust accordingly.
* gnu/local.mk (GNU_SYSTEM_MODULES): Adjust accordingly.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
services: <shepherd-service> no longer has an 'imported-modules' field.
* gnu/services/shepherd.scm (<shepherd-service>)[imported-modules]:
Remove.
(%default-imported-modules): Make private.
(shepherd-service-file): Use 'with-imported-modules'.
(shepherd-configuration-file): Remove 'modules' and the calls to
'imported-modules' and 'compiled-modules'. Use
'with-imported-modules' instead.
* doc/guix.texi (Shepherd Services): Adjust accordingly.
* gnu/services/base.scm (file-system-shepherd-service): Use
'with-imported-modules'. Remove 'imported-modules' field.
* gnu/system/mapped-devices.scm (device-mapping-service-type): Remove
'imported-modules'.
(open-luks-device): Use 'with-imported-modules'.
* gnu/tests.scm (marionette-shepherd-service): Remove 'imported-modules'
field and use 'with-imported-modules'.
gnu: Switch to 'with-imported-modules'.
* gnu/services.scm (directory-union): Use 'with-imported-modules'
instead of the '#:modules' argument of 'computed-file'.
* gnu/services/base.scm (udev-rules-union): Likewise.
* gnu/services/dbus.scm (system-service-directory): Likewise.
* gnu/services/desktop.scm (wrapped-dbus-service):
(polkit-directory): Likewise.
* gnu/services/networking.scm (tor-configuration->torrc): Likewise.
* gnu/services/xorg.scm (xorg-configuration-directory): Likewise.
* gnu/system/install.scm (self-contained-tarball): Likewise.
* gnu/system/linux-container.scm (container-script): Likewise.
* gnu/system/linux-initrd.scm (expression->initrd): Likewise, and
remove #:modules parameter.
(flat-linux-module-directory): Use 'with-imported-modules'.
(base-initrd): Likewise.
* gnu/system/locale.scm (locale-directory): Likewise.
* gnu/system/shadow.scm (default-skeletons): Likewise.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise.
* gnu/tests/base.scm (run-basic-test): Likewise.
* gnu/tests/install.scm (run-install): Likewise.
* doc/guix.texi (Initial RAM Disk): Update 'expression->initrd'
documentation.
services: Add rngd-service.
* gnu/services/base.scm (<rngd-configuration>): New record type.
(rngd-service-type): New variable.
(rngd-service): New procedure.
* doc/guix.texi (Base Services): Document it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
services: Export more service types.
* gnu/services/base.scm (syslog-service-type): Export.
(urandom-seed-service-type): Export.
services: nscd: Wait for the PID file.
* gnu/services/base.scm (nscd-shepherd-service): Pass #:pid-file.
services: urandom-seed: Refresh seed at boot.
* gnu/services/base.scm (urandom-seed-shepherd-service): Refresh the random
seed unconditionally at boot. Ensure directory structure for %random-seed-file
exists when shutting down.
(%urandom-seed-activation): Remove variable.
(urandom-seed-service-type): Remove deleted variable from list of extensions.
services: urandom-seed: Set umask to 077 while shutting down.
* gnu/services/base.scm (urandom-seed-shepherd-service): Call 'umask'.
services: Add urandom-seed-service.
Fixes <http://bugs.gnu.org/23605>.
* gnu/services/base.scm (urandom-seed-service): New procedure.
(%random-seed-file, urandom-seed-service-type): New variables.
(%urandom-seed-shepherd-service): New procedure.
(%base-services): Call 'urandom-seed-service'.
* doc/guix.texi (Base Services): Document it.
services: Move 'device-mapping-service' to (gnu system mapped-devices).
* gnu/services/base.scm (device-mapping-service-type)
(device-mapping-service): Move to...
* gnu/system/mapped-devices.scm (device-mapping-service-type):
(device-mapping-service): ... here. New variables.
system: Add (gnu system mapped-devices).
* gnu/system/file-systems.scm (<mapped-device>, <mapped-device-type>):
Move to...
* gnu/system/mapped-devices.scm: ... here. New file.
* gnu/system.scm, gnu/services/base.scm,
gnu/system/linux-initrd.scm: Use it.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
* gnu.scm (%public-modules): Add it.
services: 'console-keymap-service' takes multiple files.
* gnu/services/base.scm (console-keymap-service-type): Type procedure
takes a list of files instead of a single file.
(console-keymap-service): Take 'files' as rest arguments.
* doc/guix.texi (Base Services): Improve documentation of
'console-keymap-service'.
services: nscd: Make respawnable.
* gnu/services/base.scm (nscd-shepherd-service): Remove 'respawn?' field.
Merge branch 'security-updates'
gnu: eudev: Add dependency on blkid.
* gnu/packages/linux.scm (eudev)[inputs]: Add UTIL-LINUX.
(eudev-with-blkid): Remove.
* gnu/services/base.scm (udev-service): Use EUDEV instead of
EUDEV-WITH-BLKID.
* gnu/system.scm (%base-packages): Likewise.
doc: Mention syslogd configuration.
* gnu/services/base.scm (syslog-service): Add xref to Inetutils in the
docstring.
(%default-syslog.conf): Export.
* doc/guix.texi (Base Services): Update accordingly.
file-systems: Spawn a Bournish REPL upon fsck failure.
Fixes <http://bugs.gnu.org/22588>.
Reported by Mark H Weaver <mhw@netris.org>.
* gnu/build/file-systems.scm (check-file-system): Pass
%BOURNISH-LANGUAGE as the argument to 'start-repl'.
* gnu/services.scm (activation-script): Add (guix build bournish).
* gnu/services/base.scm (file-system-shepherd-service)[imported-modules]:
Likewise.
* gnu/system/linux-container.scm (container-script): Likewise.
* gnu/system/vm.scm (expression->derivation-in-linux-vm): Likewise.
gnu: eudev: Add variant that depends on libblkid.
This fixes a bug whereby /dev/disk/by-{label,id} would be missing on
GuixSD (/dev/disk/by-id would still contain device-mapped partitions
though.)
Reported by Mark H Weaver <mhw@netris.org>.
* gnu/packages/linux.scm (eudev-with-blkid): New variable.
* gnu/services/base.scm (udev-service): #:udev defaults to
EUDEV-WITH-BLKID.
* gnu/system.scm (%base-packages): Replace EUDEV with EUDEV-WITH-BLKID.