aboutsummaryrefslogtreecommitdiff
path: root/gnu/services
AgeCommit message (Expand)Author
2021-06-29services: kmscon: Add keyboard-layout fields....* gnu/services/base.scm (<kmscon-configuration>): Add keyboard-layout fields. * doc/guix.texi (Base Services): Document them. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> luhui
2021-06-29services: configuration: Allow specifying prefix for serializer names....Sometimes two configurations might have the same types for their field values, but the values might be serialized in two completely different ways (e.g. because the two programs have different configuration languages). An example of this would be the ‘serialize-boolean’ procedure in (gnu services mail) and (gnu services getmail). They both serialize a boolean value, but because the Dovecot’s configuration language has a different syntax to the configuration language for Getmail, two different procedures have to be defined. One way to workaround this would be to specify custom serializers for many fields in order to separate the serialization of the values that have the same type but serialize in different ways. This could get very tedious, especially if there are many configurations in the same module. Another way would be to move one of the configurations to its own module, like what was done with (gnu services getmail). However, this would mean that there would be multiple modules containing configurations for related programs, e.g. we have (gnu services mail) and (gnu services getmail), it doesn’t make much sense to keep the Getmail configuration in its own module. This patch will allow one to write something like this: (define-configuration foo-configuration (bar (string "bob") "Option bar.") (prefix bar-)) and the value of the ‘bar’ field would be serialized using a procedure named ‘bar-serialize-string’ instead of just ‘serialize-string’. * gnu/services/configuration.scm (define-maybe-helper): Accept ‘prefix’ argument for using serializer with custom prefix. (define-maybe): Pattern match on ‘prefix’ literal. (define-configuration-helper): Accept ‘prefix’ argument for using serializer with custom prefix. (define-configuration): Pattern match on ‘prefix’ literal. * tests/services/configuration.scm ("serialize-configuration with prefix"): New test. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Xinglu Chen
2021-06-25Remove unused module imports from (gnu services vpn)....* gnu/services/vpn.scm: Remove (gnu packages networking) and (guix utils) imports. Tobias Geerinckx-Rice
2021-06-25gnu: Add strongswan service....* gnu/services/vpn.scm (<strongswan-configuration>): New record type. (charon-plugins, strongswan-configuration-file) (strongswan-shepherd-service, strongswan-service-type): New variables. * doc/guix.tex (VPN Services): Document them all. Domagoj Stolfa
2021-06-24services: certbot: Add option to use CSR file....* gnu/services/certbot.scm (<certificate-configuration>): Add csr field. (certbot-command): Modify. * doc/guix.texi (Certificate Services): Document it. Raghav Gururajan
2021-06-23services: cups: Remove obsolete KeepAliveTimeout directive....https://github.com/apple/cups/commit/461bd4e50142b2928a0d164bd1aae274e4d34da5 * gnu/services/cups.scm (<cups-configuration>): Remove keep-alive-timeout field. * doc/guix.texi (Printing Services): Likewise. Tobias Geerinckx-Rice
2021-06-23services: cups: Fix ‘files-config’ typo/left-over....* gnu/services/cups.scm (<policy-configuration>): Substitute <files-configuration> for <files-config> in documentation. * doc/guix.texi (Printing Services): Likewise. Tobias Geerinckx-Rice
2021-06-20services: openssh: Replace 'without-password' by 'prohibit-password'....For some time, OpenSSH's option 'PermitRootLogin' has deprecated the ambiguous argument 'without-password' with 'prohibit-password'. * doc/guix.texi (Network Services): Replace 'without-password by 'prohibit-password. * gnu/machine/digital-ocean.scm (guix-infect): Change system configuration to use 'prohibit-password. * gnu/services/ssh.scm (openssh-configuration): Change comment to use 'prohibit-password. (openssh-config-file): Add support for 'prohibit-password to 'permit-root-login'. Warn about deprecated 'without-password usage. * gnu/tests/ganeti.scm (%ganeti-os): Replace 'without-password by 'prohibit-password. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> Brice Waegeneire
2021-06-19services: pcscd: Cleanup socket when started....Otherwise when pcscd doesn't terminate properly (ie. receive a SIGKILL), it won't start again because of it's socket already existing. * gnu/services/security-token.scm (pcscd-shepherd-service)[start]: Remove existing socket file. Brice Waegeneire
2021-06-19services: guix: Authorize 'bordeaux.guix.gnu.org.pub' by default....This follows on from the changes in 4985a4272497bf9ba87a2190353d915da9b55906. * gnu/services/base.scm (%default-authorized-guix-keys): Add bordeaux.guix.gnu.org.pub. Signed-off-by: Christopher Baines <mail@cbaines.net> Jack Hill
2021-06-14services: Remove deprecated service procedures....These service procedures were deprecated in January 2019, for instance in commit 65a67bf711b14bc7200f6730c0f173375ca12974. * gnu/services/avahi.scm (avahi-service): Remove. * gnu/services/base.scm (console-keymap, guix-service) (guix-publish-service, gpm-service, urandom-seed-service): Remove. * gnu/services/desktop.scm (upower-service, colord-service): Remove. * gnu/services/mcron.scm (mcron-service): Remove. * gnu/services/messaging.scm (bitlbee-service): Remove. * gnu/services/networking.scm (dhcp-client-service, ntp-service) (tor-service): Remove. * gnu/services/xorg.scm (slim-service, gdm-service): Remove. Ludovic Courtès
2021-06-10services: laminar: Create parent directory for unix socket....* gnu/services/ci.scm (laminar-activation): New function. (laminar-service-type): Extend activation-service-type with laminar-activation. Arun Isaac
2021-06-01services: cuirass: Do not export record type descriptors....* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>) (<cuirass-configuration>, <cuirass-remote-worker-configuration>): Do not export. Ludovic Courtès
2021-06-01services: cuirass: Create the profile and GC root directory....* gnu/services/cuirass.scm (cuirass-activation): Create /var/guix/profiles/per-user/cuirass/cuirass or similar. Ludovic Courtès
2021-05-31services: dnsmasq: Extend 'activation-service'....* gnu/services/dns.scm (dnsmasq-activation): New procedure … (dnsmasq-service-type): … use it. Brice Waegeneire
2021-05-31services: hostapd: Use package from configuration....* gnu/services/networking.scm (hostapd-shepherd-services): Replace 'hostapd' by the package specified in the configuration. Brice Waegeneire
2021-05-24gnu: services: Add missing wireguard related exports....* gnu/services/vpn.scm: Export 'wireguard-peer-public-key' and 'wireguard-peer-keep-alive'. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net> Solene Rapenne
2021-05-19services: opendht: Fix hang at boot....Fixes <https://issues.guix.gnu.org/48521>. The problem was caused by the 'file-system-mapping' record not being in scope. * gnu/services/networking.scm (opendht-shepherd-service): Import the (gnu system file-systems) module. [requirement]: Depend on networking, to avoid spurious output. [modules]: New field. [start] <group>: New argument. Maxim Cournoyer
2021-05-17services: Add a service for opendht....* gnu/services/networking.scm (maybe-number?, maybe-string?): New procedures. (<opendht-configuration>): New configuration record. (%opendht-accounts): New variable. (opendht-configuration->command-line-arguments): New procedure. (opendht-shepherd-service, opendht-service-type): New variables. * doc/guix.texi (Networking Services): Document the new service. Maxim Cournoyer
2021-05-17services: configuration: Add a define-configuration/no-serialization syntax....This is added for convenience and for uniformity with the define-maybe/no-serialization syntax introduced in the previous commit. * gnu/services/configuration.scm (define-configuration/no-serialization): New syntax. Maxim Cournoyer
2021-05-17services: configuration: Add a define-maybe/no-serialization syntax....Before this change, using define-maybe along define-configuration with the no-serialization syntactic keyword would result in the following warning: warning: possibly unbound variable `VARIABLE-NAME' This change introduces the define-maybe/no-serialization variant that does away with defining a serialization helper procedure, which makes it possible to avoid the above warning. * gnu/services/configuration.scm (define-maybe/no-serialization): New syntax. (define-maybe-helper): New procedure. (define-maybe): Define syntax using the above procedure. * tests/services/configuration.scm (tests): Fix module name. (custom-number-serializer): Do not print to standard output. (maybe-number?, serialize-maybe-number): New procedures defined via the define-maybe macro. (config-with-maybe-number): New configuration. (serialize-number): New procedure. ("maybe value serialization"): New test. (maybe-string?): New procedure defined via the define-maybe/no-serialization macro. (config-with-maybe-string/no-serialization): New configuration. ("maybe value without serialization no procedure bound"): New test. Maxim Cournoyer
2021-05-11Merge branch 'version-1.3.0'Maxim Cournoyer
2021-05-08services: configuration: Export 'no-serialization' syntactic keyword....This is a followup to 3f9a12dc082b20426fc740416601b69ea1897193. * gnu/services/configuration.scm (no-serialization): New variable. Ludovic Courtès
2021-05-08services: docker: Disable configuration serialization....* gnu/services/docker.scm (serialize-boolean): Delete procedure. (docker-configuration) <no-serialization>: New syntactic keyword. Maxim Cournoyer
2021-05-08services: configuration: Fix %location accessor name....The non-hygienic binding of the source location accessor was set to '-location'; in modules where multiple configurations were defined, it would cause compilation warnings such as: gnu/services/mail.scm:175:0: warning: shadows previous definition of `%-location-procedure' at gnu/services/mail.scm:165:0 * gnu/services/configuration.scm (define-configuration-helper) <id>: Add a missing #'stem argument to use the configuration name as a prefix to the location accessor identifier. Maxim Cournoyer
2021-05-08services: configuration: Allow specifying a custom serializer....In some cases, rather than globally disabling serialization, it may be more appropriate to disable or otherwise alter the serialization procedure of a specific field. In large module, multiple configurations may also exist that would need to alter the default serialization procedure, which is named after the field type. Being able to specify a per-field serialization procedure provides more flexibility. * gnu/services/configuration.scm (define-configuration): Add an optional pattern variable to allow specifying a custom serialization procedure. (define-configuration-helper) <field-serializer>: Use it to transform the syntax. (empty-serializer): New procedure. (serialize-package): Alias to ‘empty-serializer’. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Xinglu Chen
2021-05-08services: configuration: Allow disabling serialization....Serialization is not always useful, for example when deriving command line arguments from a configuration. This change provides a way to turn it off, which removes the need to define a bunch of dummy serialization procedures. Credit goes to Andrew Gierth (RhodiumToad) from #guile for providing the solution. Thank you! * gnu/services/configuration.scm (define-configuration-helper): New procedure. (define-configuration) <no-serialization>: New syntactic keyword. Use it in a new pattern. Refactor the macro so that it makes use of the above helper procedure. Maxim Cournoyer
2021-05-08services: configuration: Avoid a compilation warning....This resolves a compilation warning introduced with commit bb716e8d9d. * gnu/services/configuration.scm (configuration->documentation): Use display to print the string instead of format. Maxim Cournoyer
2021-05-07services: configuration: Add a new helper to ease generating documentation....The original (undocumented) procedure to generate the doc has a difficult to grasp interface; add a simpler one on top of it. * gnu/services/configuration.scm (configuration->documentation): New procedure. Maxim Cournoyer
2021-05-07services: configuration: Support fields without default values....Not all fields in a configuration have a sensible default value. This changes makes it possible to omit a default value for a configuration field, requiring the user to provide a value. * gnu/services/configuration.scm (configuration-missing-field): New procedure. (define-configuration): Make default value optional. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Xinglu Chen
2021-05-06services: spice-vdagent: Clear the socket file prior to starting....This fixes the following issue where spice-vdagent would fail to start if the spice-vdagent-sock socket file already existed: spice-vdagentd: Fatal could not create the server socket /run/spice-vdagentd/spice-vdagent-sock: Error binding to address: Address already in use The requirement is also modified to depend on dbus-system, a cue taken from upstream's own systemd service file (see 'data/spice-vdagentd.service' in the sources). * gnu/services/spice.scm (spice-vdagent-activation): Delete procedure. (spice-vdagent-shepherd-service): Fix indentation. [requirement]: Replace udev by dbus-system. [start]: Ensure the spice-vdagentd run-time directory exists and that the spice-vdagent-sock socket file does *not* exist before forking the daemon. Maxim Cournoyer
2021-05-06services: dovecot: Add ‘managesieve-sieve-capability’ option....* gnu/services/mail.scm (protocol-configuration): Add a ‘managesieve-sieve-capability’ field. * doc/guix.texi (Mail Services): Document it. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> Alexey Abramov
2021-05-06services: dovecot: Add ‘managesieve-notify-capability’ option....* gnu/services/mail.scm (protocol-configuration): Add a ‘managesieve-notify-capability’ field. * doc/guix.texi (Mail Services): Document it. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> Alexey Abramov
2021-05-06services: dovecot: Add ‘imap-metadata?’ protocol configuration option....* gnu/services/mail.scm (protocol-configuration): Add an ‘imap-metadata?’ setting to enable IMAP METADATA support in the ‘imap’ protocol. * doc/guix.texi (Mail Services): Document it. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> Alexey Abramov
2021-05-06services: dovecot: Add ‘mail-attribute-dict’ configuration option....* gnu/services/mail.scm (dovecot-configuration): Define a ‘mail-attribute-dict’ directive for IMAP METADATA storage. * doc/guix.texi (Mail Services): Document it. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr> Alexey Abramov
2021-05-05services: Fix the spice-vdagent service....* gnu/services/spice.scm (spice-vdagent-activation): Update runtime directory from /var/run/spice-vdagentd to /run/spice-vdagentd. (spice-vdagent-service-type): Specify a default value and fix indentation. Maxim Cournoyer
2021-05-02services: guix-build-coordinator: Fix queue builds state directory....This service doesn't create a PID file, but it does write a file with the processed commits in it, so create a directory to contain that. * gnu/services/guix.scm (guix-build-coordinator-queue-builds-activation): Ensure /var/cache/guix-build-coordinator-queue-builds exists. Christopher Baines
2021-04-27services: mysql: Add extra-environment as configuration option....* gnu/services/databases.scm (mysql-configuration): Add extra-environment (mysql-service): Use #:log-file and #:environment-variables * doc/guix.texi: Document it. Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at> methuselah-0
2021-04-26services: nix: Add /bin/sh to build-sandbox-paths....Fixes <https://bugs.gnu.org/46297>. * gnu/services/nix.scm (nix-service-etc): Add /bin/sh to build-sandbox-paths. Oleg Pykhalov
2021-04-24services: Add a service for rasdaemon....* gnu/services/linux.scm (rasdaemon-configuration, rasdaemon-configuration?, rasdaemon-configuration-record?, rasdaemon-service-type): New variables. * doc/guix.texi (Linux Services): Document it. Signed-off-by: Leo Famulari <leo@famulari.name> B. Wilson
2021-04-23services: guix-build-coordinator: Fix queue builds default config....Use the default client port rather than the default agent communication port for the queue builds script. * gnu/services/guix.scm (<guix-build-coordinator-queue-builds-configuration>): Change coordinator default. Christopher Baines
2021-04-23services: guix-build-coordinator: Remove incorrect pid file....The queue builds script doesn't create a pid file, so don't have the shepherd expect to find one. * gnu/services/guix.scm (guix-build-coordinator-queue-builds-shepherd-services): Remove #:pid-file. Christopher Baines
2021-04-23services: guix-build-coordinator: Fix service activation parts....Don't hardcode usernames, as these are in the config. Also fix the %user being missing from the queue-builds service activation. * gnu/services/guix.scm (guix-build-coordinator-activation, guix-build-coordinator-agent-activation): Use config for the user name. (guix-build-coordinator-queue-builds-activation): Define %user. Christopher Baines
2021-04-23services: guix-build-coordinator: Add max-1min-load-average option....To the agent configuration. * gnu/services/guix.scm (<guix-build-coordinator-agent-configuration>): New field, max-1min-load-average. (guix-build-coordinator-agent-configuration-max-1min-load-average): New procedure. (guix-build-coordinator-agent-shepherd-services): If set, include the max-1min-load-average in the agent arguments. Christopher Baines
2021-04-20services: wireguard: Add keep-alive support....* gnu/services/vpn.scm (<wireguard-peer>): Add 'keep-alive' field. (wireguard-configuration-file): Use it. * doc/guix.texi (VPN Services): Document it. Guillaume Le Vaillant
2021-04-14services: cuirass: Use "/tmp" database host....This is a follow-up of c311147bd16aa0e5746d9cbf31502f5fd61e470c. * gnu/services/cuirass.scm (%cuirass-default-database): Use "/tmp" database host. Mathieu Othacehe
2021-04-14Revert "services: mysql: Add extra-environment as configuration option."...This reverts commit f3626119d738f30b5ab59e76c105fd7b4c077ddc. This commit inadvertently broke a string freeze. Let's be nice to our translators and not do that. Leo Prikler
2021-04-13services: postgresql: Use "/tmp" host directory....This is a follow-up of c311147bd16aa0e5746d9cbf31502f5fd61e470c. * gnu/services/databases.scm (<postgresql-role-configuration>)[host]: Set to "/tmp" which the default Postgresql socket directory. Mathieu Othacehe
2021-04-13services: mysql: Add extra-environment as configuration option....* gnu/services/databases.scm (mysql-configuration): Add extra-environment (mysql-service): Use #:log-file and #:environment-variables * doc/guix.texi: Document it. Signed-off-by: Leo Prikler <leo.prikler@student.tugraz.at> methuselah-0
2021-04-12services: postgresql: Change service default socket directory....Fixes <https://bugs.gnu.org/46737>. PostgreSQL running with a different socket directory to the default one in the package itself breaks some services, this commit restores the previous behaviour where PostgreSQL by default will run with a socket directory that matches the default used by PostgreSQL packaged for Guix. Switching to a different default value can happen, but only alongside changing the PostgreSQL package. * gnu/services/databases.scm (<postgresql-config-file>)[socket-directory]: Change default to #false. * doc/guix.texi (Database Services): Update documentation, and specify a different value for disabling connections via sockets. * gnu/tests/guix.scm (%guix-data-service-os): Use default PostgreSQL behaviour. * gnu/tests/monitoring.scm (%zabbix-os): Likewise. * gnu/tests/web.scm (patchwork-os): Likewise. Signed-off-by: Leo Famulari <leo@famulari.name> Christopher Baines