summaryrefslogtreecommitdiff
path: root/gnu/services
AgeCommit message (Collapse)Author
2018-09-28services: Add Gitolite.Christopher Baines
* gnu/services/version-control.scm (<gitolite-configuration>, <gitolite-rc-file>): New record types. (gitolite-accounts, gitolite-activation): New procedures. (gitolite-service-type): New variables. * gnu/tests/version-control.scm (%gitolite-test-admin-keypair, %gitolite-os, %test-gitolite): New variables. (run-gitolite-test): New procedure. * doc/guix.texi (Version Control): Document the gitolite service.
2018-09-26services: virtual-terminal: Write to "default_utf8" only if necessary.Ludovic Courtès
Fixes a bug in containers whereby 'virtual-terminal' would always fail to start because writing to /sys/…/default_utf8 would fail with EROFS. * gnu/services/base.scm (virtual-terminal-service-type): Read from "default_utf8" before attempting to write to it.
2018-09-26services: udev: Don't attempt to read "modules.devname" from a container.Ludovic Courtès
Fixes <https://bugs.gnu.org/32814>. Reported by Julien Lepiller <julien@lepiller.eu>. * gnu/services/base.scm (udev-shepherd-service)[start]: Check whether DIRECTORY exists and skip 'make-static-device-nodes' call if it doesn't.
2018-09-26services: shepherd: Add workaround for 0.5.0 in containers.Ludovic Courtès
* gnu/services/shepherd.scm (%containerized-shepherd-service): New service. * gnu/system.scm (essential-services): Use it when CONTAINER? is true.
2018-09-26services: dhcp-client: Use 'read-pid-file'.Ludovic Courtès
* gnu/services/networking.scm (dhcp-client-service-type)[start]: Use 'read-pid-file' instead of the custom and possibly infinite loop.
2018-09-26guix system: Load all services on reconfigure, not just stopped ones.Carlo Zancanaro
This uses the 'replacement' service slot introduced in the Shepherd version 0.5.0. * gnu/services/shepherd.scm (shepherd-service-upgrade): Return a list of services that need to be restarted to complete their upgrade. * guix/scripts/system.scm (call-with-service-upgrade-info): Rename an internal variable to reflect the change to shepherd-service-upgrade. (upgrade-shepherd-services): Call 'load-services/safe' instead of 'load-services'. Print a message about services that need to be manually restarted. * gnu/services/herd.scm (load-services/safe): New procedure. * doc/guix.texi (Invoking guix system): Document the new behaviour. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2018-09-26services: Add Varnish service.Marius Bakke
* gnu/services/web.scm (<varnish-configuration>): New record type. (%varnish-accounts, %varnish-service-type): New variables. (varnish-shepherd-service): New procedure. * gnu/tests/web.scm (%varnish-vcl, %varnish-os): New variables. (%test-varnish): New test. * doc/guix.texi (Web Services): Document it.
2018-09-20gnu: services: Add iptables service.Arun Isaac
* gnu/services/networking.scm (<iptables-configuration>): New record type. (iptables-service-type): New variable. * gnu/tests/networking.scm (run-iptables-test): New procedure. (%test-iptables): New variable. * doc/guix.texi (Networking Services): Document it.
2018-09-19services: networking: Remove unbound variable reference in 'stop'.Ludovic Courtès
* gnu/services/base.scm (static-networking-shepherd-service): Remove spurious ":" in 'stop' method inadvertently introduced in commit c9436025a90b86047ba2203d58bbf238f8f9b2f9.
2018-09-19services: udev: Simplify 'start' method.Ludovic Courtès
* gnu/services/base.scm (udev-shepherd-service)[start](find): Remove. (udev): Hardwire the eudev file name. Use 'fork+exec-command' instead of 'primitive-fork' and 'exec-command'.
2018-09-10services: hpcguix-web: Produce a log file and rotate it.Ludovic Courtès
* gnu/services/web.scm (%hpcguix-web-log-file) (%hpcguix-web-log-rotations): New variables. (hpcguix-web-shepherd-service): Pass #:log-file. (hpcguix-web-service-type): Extend ROTTLOG-SERVICE-TYPE.
2018-09-10services: tailon: Move to (gnu services web).Ludovic Courtès
This allows (gnu services admin) to remain deeper in the module graph and to be used by (gnu services web). * gnu/services/admin.scm (<tailon-configuration-file>) (tailon-configuration-files-string) (tailon-configuration-file-compiler, <tailon-configuration>) (tailon-shepherd-service, %tailon-accounts) (tailon-service-type): Move to... * gnu/services/web.scm: ... here. * gnu/tests/admin.scm: Remove. Move test to... * gnu/tests/web.scm (%tailon-os) (run-tailon-test, %test-tailon): ... here.
2018-09-08services: nginx: 'stop' returns #f.Ludovic Courtès
Previously we'd return #t, which the Shepherd would consider a failure to stop the service. * gnu/services/web.scm (nginx-shepherd-service): In 'nginx-action', return #f when stopping the service.
2018-09-08services: nginx: Don't read PID file when passed a custom config file.Ludovic Courtès
Fixes <https://bugs.gnu.org/32665>. * gnu/services/web.scm (nginx-shepherd-service): Check whether FILE is true and don't read the PID file if it is; use 'read-pid-file' instead of a potentially endless loop.
2018-09-06services: hpcguix-web: Set SSL_CERT_DIR.Ludovic Courtès
Previously Git pulls over HTTPS would fail with: guix/git.scm:132:7: In procedure update-cached-checkout: Throw to key `git-error' with args `(#<<git-error> code: -17 message: "the SSL certificate is invalid" class: 16>)'. * gnu/services/web.scm (hpcguix-web-shepherd-service): Pass "SSL_CERT_DIR=/etc/ssl/certs". * doc/guix.texi (Web Services): Mention certificates.
2018-08-31services: nginx: Get the Shepherd to respawn NGINX.Clément Lassieur
* gnu/services/web.scm (nginx-shepherd-service): Change 'start' (that is, all actions that don't send a signal to the master process) to return the PID. Wait until the PID file is created and contains an integer because it might be created after the parent process exits.
2018-08-30services: Add ddclient service.Oleg Pykhalov
* gnu/services/dns.scm (ddclient-configuration, ddclient-service-type): New variables. (uglify-field-name, serialize-field, serialize-boolean, serialize-integer, serialize-string, serialize-list, serialize-extra-options, ddclient-activation, ddclient-shepherd-service, generate-ddclient-documentation): New procedures. * doc/guix.texi (DNS Services): Document it.
2018-08-28services: openssh: Add 'log-level' field.Ludovic Courtès
* gnu/services/ssh.scm (<openssh-configuration>)[log-level]: New field. (openssh-config-file): Honor it. * doc/guix.texi (Networking Services): Document it.
2018-08-28services: tor: Make it easier to use UNIX sockets.Chris Marusich
* doc/guix.texi (Networking Services): Document it, and mention that tor-service is deprecated. * gnu/services/networking.scm (<tor-configuration>) <socks-socket-type>: New field. (tor-configuration->torrc): When socks-socket-type is 'unix, set SocksPort to UNIX domain socket /var/run/tor/socks-sock and set UnixSocksGroupWritable to 1. * gnu/tests/networking.scm (%tor-os/unix-socks-socket): Instead of using a custom config file, just set socks-socket-type to 'unix.
2018-08-28services: tor: Rename activation procedure.Chris Marusich
* gnu/services/networking.scm: Rename the procedure tor-hidden-service-activation to tor-activation.
2018-08-28services: tor: Add a system test.Chris Marusich
* gnu/services/networking.scm (tor-configuration->torrc): Set PidFile to /var/run/tor/tor.pid in the base torrc configuration. (tor-shepherd-service) <start>: Call make-forkexec-constructor/container with a new #:pid-file argument to tell Shepherd where to find the PID file. Add a a new <file-system-mapping> to its existing #:mappings argument to share /var/run/tor with the the container. (tor-hidden-services-activation): Update docstring. Create /var/run/tor and set its permissions so only the tor user can access it. * gnu/tests/networking.scm (%test-tor, %tor-os): New variables. (run-tor-test): New procedure.
2018-08-20gnu: services: Fix pcscd activation bug.Chris Marusich
Fixes: <https://bugs.gnu.org/32478>. * gnu/services/security-token.scm (pcscd-activation): Idempotently create the /var/lib/pcsc symlink so that it does not fail when it already exists.
2018-08-16services: cuirass: Put data in /var/lib to avoid removal at boot.Clément Lassieur
Fixes <https://bugs.gnu.org/32330>. * gnu/services/cuirass.scm (<cuirass-configuration>)[database]: Change default from /var/run/cuirass/cuirass.db to /var/lib/cuirass/cuirass.db. (cuirass-account): Change home directory from /var/run/<user> to /var/lib/<user>.
2018-08-16gnu: services: Add pcscd service.Arun Isaac
* gnu/services/security-token.scm: New file. * gnu/tests/security-token.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Register new files. * doc/guix.texi (Miscellaneous Services): Document the service.
2018-08-13services: nginx: Use 'invoke' rather than 'system*'.Clément Lassieur
* gnu/services/web.scm (nginx-shepherd-service): Replace SYSTEM* with INVOKE.
2018-08-13services: postgresql: Get the Shepherd to respawn PostgreSQL.Clément Lassieur
* gnu/services/databases.scm (postgresql-shepherd-service): Change 'start' to return the PID.
2018-08-13services: prosody: Get the Shepherd to respawn Prosody.Clément Lassieur
* gnu/services/messaging.scm (prosody-shepherd-service): Return the PID when the action is "start".
2018-08-13services: prosody: Use 'invoke' rather than 'system*'.Clément Lassieur
* gnu/services/messaging.scm (prosody-shepherd-service): Replace SYSTEM* with INVOKE.
2018-08-13services: cgit: Disable repo booleans having a global counterpart.Clément Lassieur
Otherwise the global counterpart is never taken into account. * doc/guix.texi (Version Control Services): Update accordingly. * gnu/services/cgit.scm (repo-boolean?, serialize-repo-boolean): Use the DEFINE-MAYBE macro to allow for the 'disabled value. (repository-cgit-configuration)[enable-commit-graph?, enable-log-filecount?, enable-log-linecount?, enable-remote-branches?, enable-subject-links?, enable-html-serving?]: Change default value to 'disabled.
2018-08-02services: file-system-shepherd-service: Require "udev" service.Danny Milosavljevic
Fixes <https://bugs.gnu.org/32313>. Reported by Brendan Tildesley <brendan.tildesley@openmailbox.org> * gnu/services/base.scm (file-system-shepherd-service): Require "udev" service.
2018-07-29services: openssh: Add forwarding options.Eric Brown
* gnu/services/ssh.scm (<openssh-configuration>)[allow-agent-forwarding?] [allow-tcp-forwarding?, gateway-ports?]: New fields. (openssh-config-file): Handle them. * doc/guix.texi (Networking Services): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-07-18gnu: services: Fix openssh service start error.Julien Lepiller
* gnu/services/ssh.scm (openssh-shepherd-service): Require loopback.
2018-07-16services: cuirass: Remove the LOAD-PATH option.Clément Lassieur
* gnu/services/cuirass.scm (<cuirass-configuration>, cuirass-shepherd-service): Remove the LOAD-PATH option.
2018-07-14gnu: services: Export virtlog-configuration.Julien Lepiller
* gnu/services/virtualization.scm (virtlog-configuration): Export.
2018-07-13services: mcron: Add 'schedule' action.Ludovic Courtès
Inspired by <https://lists.gnu.org/archive/html/help-guix/2018-07/msg00035.html>. * gnu/services/mcron.scm (shepherd-schedule-action): New procedure. (mcron-shepherd-services): Add 'actions' field. * gnu/tests/base.scm (run-mcron-test)["schedule action"]: New test. * doc/guix.texi (Scheduled Job Execution): Mention 'herd schedule'.
2018-07-13services: shepherd: Support custom actions.Ludovic Courtès
* gnu/services/shepherd.scm (<shepherd-service>)[actions]: New field. (<shepherd-action>): New record type. (shepherd-service-file): Pass #:actions to 'make'. * doc/guix.texi (Shepherd Services): Document custom actions.
2018-07-09services: Add prometheus-node-exporter-service-type.Gábor Boskovits
* gnu/services/monitoring.scm (prometheus-node-exporter-service-type): New variable. (<prometheus-node-exporter-configuration>): New record type. (prometheus-node-exporter-shepherd-service): New procedure. * gnu/doc/guix.texi (Monitoring Services): Document it. * gnu/tests/monitoring.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add test module.
2018-07-05services: mingetty: Use '--nohangup'.Ludovic Courtès
See the discussion at <https://lists.gnu.org/archive/html/guix-devel/2018-07/msg00049.html>. * gnu/services/base.scm (mingetty-shepherd-service): Pass "--nohangup" to mingetty.
2018-06-25services: alsa-service-type: Fix the loading of 'pulse' plugin.Oleg Pykhalov
Fixes <https://bugs.gnu.org/31591>. * gnu/services/sound.scm (<alsa-configuration>)[alsa-plugins]: New field. (alsa-config-file): Use 'pcm_type.pulse' and 'ctl_type.pulse' to specify file paths to the 'pulse' plugin. * doc/guix.texi (Sound Services): Document this. Co-authored-by: 宋文武 <iyzsong@member.fsf.org>
2018-06-23services: Fix "authentication" service name.Danny Milosavljevic
Follow-up to 7f93bbd5aadf0427190769fba8f478c29e37b4f4. * gnu/services/authentication.scm: Fix module name.
2018-06-23services: Add fingerprint identification service.Danny Milosavljevic
* gnu/services/authentication.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Miscellaneous Services): Document it.
2018-06-22services: cuirass: Add description.Ricardo Wurmus
* gnu/services/cuirass.scm (cuirass-service-type): Add description.
2018-06-22services: cups: Add description.Ricardo Wurmus
* gnu/services/cups.scm (cups-service-type): Add description.
2018-06-20services: boot: Take gexps instead of monadic gexps.Ludovic Courtès
* gnu/services.scm (compute-boot-script): Rename 'mexps' to 'gexps' and remove 'mlet' form. (boot-service-type): Update comment. (cleanup-gexp): Remove 'with-monad' and 'return'. (activation-script): Rewrite in non-monadic style: use 'scheme-file' instead of 'gexp->file'. (gexps->activation-gexp): Remove 'mlet', return a gexp. * gnu/services/shepherd.scm (shepherd-boot-gexp): Remove 'with-monad' and 'return'. * gnu/system.scm (operating-system-boot-script): Remove outdated comment. * gnu/tests/base.scm (%cleanup-os): For 'dirty-service', remove 'with-monad' and 'return'.
2018-06-20services: Fix GPLv3 header in cuirass and pm modules.Nils Gillmann
* gnu/services/cuirass.scm, gnu/services/pm.scm: Adjust to canonical GPLv3 header used throughout Guix. Signed-off-by: Leo Famulari <leo@famulari.name>
2018-06-14store-copy: 'read-reference-graph' returns a list of records.Ludovic Courtès
The previous implementation of 'read-reference-graph' was good enough for many use cases, but it discarded the graph structure, which is useful information in some cases. * guix/build/store-copy.scm (<store-info>): New record type. (read-reference-graph): Rewrite to return a list of <store-info>. (closure-size, populate-store): Adjust accordingly. * gnu/services/base.scm (references-file): Adjust accordingly. * gnu/system/vm.scm (system-docker-image): Likewise. * guix/scripts/pack.scm (squashfs-image, docker-image): Likewise. * tests/gexp.scm ("gexp->derivation #:references-graphs"): Likewise.
2018-06-14services: tor: Mark end of auto-generated configuration block.Tobias Geerinckx-Rice
* gnu/services/networking.scm (tor-configuration->torrc): Clearly demarcate auto-generated lines.
2018-06-12services: nginx: Support extra content in the http block.Christopher Baines
This helpful when adding content to the nginx configuration file, which isn't supported by the record type used for the configuration. For example, like adding proxy_cache_path configuration. * gnu/packages/web.scm (<nginx-configuration>): Add new extra-content field. (nginx-configuration-extra-content): New field accessor. (default-nginx-config): Add support for the extra-content field. * doc/guix.texi (NGINX): Document the new extra-content field.
2018-06-08services: dnsmasq-service-type: Add default configuration and description.宋文武
* gnu/services/dns.scm (dnsmasq-service-type) [default-value, description]: New fields.
2018-06-08services: dnsmasq: Use 'negative-cache?' instead of 'no-negcache?'.宋文武
The 'no-negcache?' option is mapped to the '--no-negcache' command-line argument directly, but we're in the scheme world, where the general guideline is to avoid double-negations in identifiers. * gnu/services/dns.scm <dnsmasq-configuration>: Replace the 'no-negcache?' field with 'negative-cache?'. * doc/guix.texi (DNS Services)[Dnsmasq Service]: Adjust accordingly.