summaryrefslogtreecommitdiff
path: root/gnu/services
AgeCommit message (Collapse)Author
2022-12-12services: guix-build-coordinator: Fix service startup.Christopher Baines
Previously the service would keep starting more and more processes. * gnu/services/guix.scm (guix-build-coordinator-shepherd-services): Fix how make-forkexec-constructor is called.
2022-12-12services: zabbix-server: Increase Shepherd grace period.Marius Bakke
* gnu/services/monitoring.scm (zabbix-server-shepherd-service)[stop]: Add #:grace-period.
2022-12-12Merge branch 'version-1.4.0'Ludovic Courtès
2022-12-09services: nscd: Use nscd from 'glibc-final' on native builds.Ludovic Courtès
This reduces the closure size of systems by removing one glibc copy--namely (@ (gnu packages base) glibc) in addition to (@ (gnu packages commencement) glibc-final). * gnu/services/base.scm (<nscd-configuration>)[glibc]: Change default value to use 'let-system' and 'canonical-package' as appropriate.
2022-12-08services: base: Use 'match-record' instead of 'match'.Ludovic Courtès
* gnu/services/base.scm (agetty-shepherd-service) (mingetty-shepherd-service) (nscd.conf-file) (udev-shepherd-service) (udev-etc) (gpm-shepherd-service) (network-set-up/linux) (network-tear-down/linux) (static-networking-shepherd-service) (greetd-agreety-tty-session-command) (greetd-agreety-tty-xdg-session-command): Use 'match-record' instead of 'match'. (guix-accounts): Use <guix-configuration> accessors. (udev-service-type): Use <udev-configuration> accessors.
2022-12-08records: 'match-record' checks fields at macro-expansion time.Ludovic Courtès
This allows 'match-record' to be more efficient (field offsets are computed at compilation time) and to report unknown fields at macro-expansion time. * guix/records.scm (map-fields): New macro. (define-record-type*)[rtd-identifier]: New procedure. Define TYPE as a macro and use a separate identifier for the RTD. (lookup-field, match-record-inner): New macros. (match-record): Rewrite in terms of 'match-error-inner'. * tests/records.scm ("match-record, simple") ("match-record, unknown field"): New tests. * gnu/services/cuirass.scm (cuirass-shepherd-service): Rename 'log-file' local variable to 'main-log-file'. * gnu/services/getmail.scm (serialize-getmail-configuration-file): Move after <getmail-configuration-file> definition.
2022-12-06services: fail2ban: Start server in the foreground.Ludovic Courtès
Previously, we were passing '-b', thereby starting the server in the background. Consequently the 'start' method could complete before the server was ready to accept connections on its socket, leading to non-deterministic test failures. Reported by Mathieu Othacehe <othacehe@gnu.org>. * gnu/services/security.scm (fail2ban-shepherd-service): Change FAIL2BAN-ACTION to invoke 'fail2ban-client'. Change 'start' method to use 'make-forkexec-constructor'; start the server in the foreground with '-f' and pass '-x' to force execution of the server, as done upstream in 'fail2ban.service.in'.
2022-12-06services: fail2ban: Remove unnecessary Shepherd 'modules' field.Ludovic Courtès
* gnu/services/security.scm (fail2ban-shepherd-service): Remove unnecessary 'modules' field.
2022-12-06services: fail2ban: 'stop' returns #f when the dameon is stopped.Ludovic Courtès
* gnu/services/security.scm (fail2ban-shepherd-service): Change FAIL2BAN-ACTION to return an 'invoke' gexp. Adjust the shepherd 'start' and 'stop' fields accordingly. Have 'stop' return #f on success.
2022-12-04services: configuration: Rename location accessor to "source-location".Maxim Cournoyer
Fixes <https://issues.guix.gnu.org/59423>. * gnu/services/configuration.scm (define-configuration-helper): Rename the accessor of the %location field from "NAME-location" to "NAME-source-location". Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Reported-by: Pierre Langlois <pierre.langlois@gmx.com>
2022-12-09services: wireguard: Use the parameterized wireguard package.EuAndreh
* gnu/services/vpn.scm (wireguard-activation): Use the "wg" binary from the package given to <wireguard-configuration>. Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2022-12-08services: configuration: Rewrite 'alist?' procedure.Bruno Victal
* gnu/services/configuration.scm (alist?): Rewrite. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2022-12-07services: guix-publish: Keep fewer rotated logs.Ludovic Courtès
* gnu/services/base.scm (%guix-publish-log-rotations): Add 'options' field.
2022-12-07service: cuirass: Rotate remote server logs.Ludovic Courtès
* gnu/services/cuirass.scm (cuirass-log-rotations): Add the remote server log when it is used.
2022-12-07services: cuirass-remote-worker: Rotate logs.Ludovic Courtès
* gnu/services/cuirass.scm (cuirass-remote-worker-log-rotations): New procedure. (cuirass-remote-worker-service-type): Use it.
2022-12-07services: zabbix-agent: Adjust command-line when using zabbix_agent2.Marius Bakke
* gnu/services/monitoring.scm (zabbix-agent-arguments): New procedure. (zabbix-agent-shepherd-service): Use that to determine command line arguments.
2022-12-07services: zabbix: Don't write user to configuration file.Marius Bakke
The service already runs with the specified user and group, so there is no use in writing it to the configuration files. This change is mainly done for compatibility with 'zabbix-agent2' which does not understand the User= setting, but also to document the correct data type for the "group" setting. * gnu/services/monitoring.scm (serialize-string): Filter USER and GROUP fields. (group?, serialize-group): Remove variables. (zabbix-server-configuration, zabbix-agent-configuration): Document the GROUP field as 'string'. * doc/guix.texi (Monitoring Services): Adjust accordingly.
2022-12-02services: configuration: Rename location accessor to "source-location".Maxim Cournoyer
Fixes <https://issues.guix.gnu.org/59423>. * gnu/services/configuration.scm (define-configuration-helper): Rename the accessor of the %location field from "NAME-location" to "NAME-source-location". Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Reported-by: Pierre Langlois <pierre.langlois@gmx.com>
2022-12-02services: networking: Avoid 'match' on records.Ludovic Courtès
* gnu/services/networking.scm (dhcp-client-shepherd-service): Use accessors instead of 'match'. (inetd-shepherd-service): Likewise. (tor-shepherd-service): Likewise. (network-manager-service-type): Likewise. (modem-manager-service-type): Likewise. (wpa-supplicant-service-type): Likewise. (openvswitch-activation): Likewise. (openvswitch-shepherd-service): Likewise. (dhcpd-shepherd-service): Use 'match-record' instead of 'match'. (dhcpd-activation): Likewise. (ntp-server->string): Likewise. (ntp-shepherd-service): Likewise. (tor-configuration->torrc): Likewise. (network-manager-activation): Likewise. (network-manager-environment): Likewise. (network-manager-shepherd-service): Likewise. (usb-modeswitch-configuration->udev-rules): Likewise. (wpa-supplicant-shepherd-service): Likewise. (iptables-shepherd-service): Likewise. (nftables-shepherd-service): Likewise. (keepalived-shepherd-service): Likewise.
2022-12-02services: base: Use 'match-record' instead of 'match'.Ludovic Courtès
* gnu/services/base.scm (agetty-shepherd-service) (mingetty-shepherd-service) (nscd.conf-file) (udev-shepherd-service) (udev-etc) (gpm-shepherd-service) (network-set-up/linux) (network-tear-down/linux) (static-networking-shepherd-service) (greetd-agreety-tty-session-command) (greetd-agreety-tty-xdg-session-command): Use 'match-record' instead of 'match'. (guix-accounts): Use <guix-configuration> accessors. (udev-service-type): Use <udev-configuration> accessors.
2022-12-02records: 'match-record' checks fields at macro-expansion time.Ludovic Courtès
This allows 'match-record' to be more efficient (field offsets are computed at compilation time) and to report unknown fields at macro-expansion time. * guix/records.scm (map-fields): New macro. (define-record-type*)[rtd-identifier]: New procedure. Define TYPE as a macro and use a separate identifier for the RTD. (lookup-field, match-record-inner): New macros. (match-record): Rewrite in terms of 'match-error-inner'. * tests/records.scm ("match-record, simple") ("match-record, unknown field"): New tests. * gnu/services/cuirass.scm (cuirass-shepherd-service): Rename 'log-file' local variable to 'main-log-file'. * gnu/services/getmail.scm (serialize-getmail-configuration-file): Move after <getmail-configuration-file> definition.
2022-12-01services: network-manager: Add iwd backend support.Andrew Tropin
* gnu/services/networking.scm (network-manager-configuration)[iwd?]: New field. (network-manager-shepherd-service): Add iwd to requirements if needed. * doc/guix.texi: Add information about iwd? option.
2022-11-20services: mysql: Run mariadb-install-db instead of hard coding schemas.Marius Bakke
* gnu/services/databases.scm (mysql-install): Run "mariadb-install-db" instead of a hard coded set of SQL commands. (mysql-upgrade-wrapper): Explicitly run as mysql user.
2022-11-20services: mysql: Remove mysql-install-service in favor of wrapper.Marius Bakke
* gnu/services/databases.scm (mysql-with-install-lock): Remove variable. (mysql-start): Rename to ... (mysqld-wrapper): ... this. Do the preliminary initialization steps and call out to MYSQL-INSTALL when necessary. (mysql-install): Only initialize table schemas. (mysql-install-shepherd-service): Remove. (mysql-service)[requirement]: Remove 'mysql-install. Add 'user-processes. [start]: Don't pass #:user and #:group. (mysql-shepherd-services): Remove MYSQL-INSTALL-SHEPHERD-SERVICE.
2022-11-20services: mysql-upgrade: Add log file.Marius Bakke
* gnu/services/databases.scm (mysql-upgrade-shepherd-service)[start]: Pass #:log-file.
2022-11-20services: mysql-upgrade: Support custom datadir.Marius Bakke
* gnu/services/databases.scm (mysql-upgrade-wrapper): Take service configuration as argument, and pass the config file to mysql_upgrade. (mysql-upgrade-shepherd-service): Pass CONFIG instead of just socket and executable to MYSQL-UPGRADE-WRAPPER.
2022-11-20gnu: mysql: Support custom data dir.Ellen Papsch
* gnu/services/databases.scm (mysql-configuration): Add datadir property. * gnu/services/databases.scm (mysql-configuration-file): Replace hard coded data dir with property from config. * gnu/services/databases.scm (%mysql-activation): Remove activation, it runs before PID 1. The data dir may reside on a file system not mounted at this time. * gnu/services/databases.scm (mysql-install-shepherd-service): Create service which replaces the activation. Provide mysql-install. * gnu/services/databases.scm (mysql-shepherd-service): Move invocation of mysqld to mysql-start program-file, because the invocation gotten more complex. Require mysql-install. * gnu/services/databases.scm (mysql-start): Invoke mysqld only if a lock file appears. * gnu/services/databases.scm (mysql-shepherd-services): Prepend the install service before the normal service. * gnu/services/databases.scm (mysql-upgrade-wrapper): Increase timeout to 20s to let the mysql install procedure finish. Signed-off-by: Marius Bakke <marius@gnu.org>
2022-11-20gnu: Fix copyright line.Leo Nikkilä
This is a follow-up to commit 9ad311ec15c05efc78f74252e7eb6cddfb0b5cea. * gnu/packages/virtualization.scm: Remove copyright line. * gnu/services/virtualization.scm: Add copyright line. Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-11-20services: guix-build-coordinator: Remove duplicate log timestamp.Christopher Baines
* gnu/services/guix.scm (guix-build-coordinator-shepherd-services, guix-build-coordinator-agent-shepherd-services, guix-build-coordinator-queue-builds-shepherd-services): Set %current-logfile-date-format to "". Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-11-19services: lightdm: Do not use GOOPS.Ludovic Courtès
There's an unwritten policy to not use GOOPS in Guix. * gnu/services/lightdm.scm (strip-class-name-brackets): Rename to... (strip-record-type-name-brackets): ... this. (config->name): Adjust accordingly and use 'record-type-name' instead of 'class-name'. (list-of-greeter-configurations?): Likewise.
2022-11-18services: tor: Remove unnecessary modules from shepherd environment.Ludovic Courtès
This is a followup to fb868cd7794f15e21298e5bdea996fbf0dad17ca. * gnu/services/networking.scm (tor-shepherd-service): Remove unused 'with-imported-modules' and 'modules' field.
2022-11-18services: Add Shepherd 'configuration' action to various services.Ludovic Courtès
* gnu/services/avahi.scm (avahi-shepherd-service): Add 'actions' field. * gnu/services/base.scm (nscd-actions): Add call to 'shepherd-configuration-action'. * gnu/services/desktop.scm (upower-shepherd-service): Add 'actions' field. (elogind-shepherd-service): Likewise. * gnu/services/dict.scm (dicod-shepherd-service): Likewise. * gnu/services/networking.scm (openntpd-shepherd-service): Likewise. (tor-shepherd-service): Likewise. * gnu/services/ssh.scm (openssh-shepherd-service): Likewise. * gnu/services/web.scm (nginx-shepherd-service): Likewise. * gnu/services/xorg.scm (gdm-shepherd-service): Likewise. * gnu/tests/base.scm (run-basic-test)["nscd configuration action"]: New test. * doc/guix.texi (Services): Document it.
2022-11-18services: shepherd: Define 'shepherd-configuration-action' helper.Ludovic Courtès
* gnu/services/shepherd.scm (shepherd-configuration-action): New * doc/guix.texi (Shepherd Services): Document it.
2022-11-17services: getmail: Use 'match-record'.Ludovic Courtès
Fixes a regression introduced in 44554e7133aa60e1b453436be1e80394189cabd9 whereby the wrong record fields would be accessed, leading to a <location> record being spliced in the result. * gnu/services/getmail.scm (serialize-getmail-configuration-file): Use 'match-record' instead of 'match'. (getmail-shepherd-services): Likewise.
2022-11-17services: gitolite: Use the correct variable for the user-group.EuAndreh
The default value for <gitolite-configuration> has "git" for both the values of the user and the group, as costumary, which means that unless someone uses a custom configuration and chooses different strings for user and group, this wouldn't show up. * gnu/services/version-control.scm (gitolite-accounts): Use the correct variable for the name of a (user-group ...). Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-11-17services: Streamline or eliminate some match-lambda patterns.Maxim Cournoyer
These were spot while working on a fix for commit 543d971ed2 ("services: configuration: Re-order generated record fields"). * gnu/services/web.scm (php-fpm-accounts): Remove extraneous trailing dummy catchall patterns. (agate-accounts): Access the configuration fields directly since there are only two, which is less error-prone.
2022-11-17Fix problems initially introduced in commit 543d971ed2, now reinstated.Maxim Cournoyer
Commit 543d971ed2 ("services: configuration: Re-order generated record fields") introduced two regressions, one in guix home and another one in the zabbix service. * gnu/home/services/shells.scm (home-bash-extensions): Remove the first pattern in the match, which used to be to ignore %location. * gnu/services/monitoring.scm (zabbix-front-end-nginx-extension): Likewise.
2022-11-17Revert "services: configuration: Revert to a working ‘guix home’."Maxim Cournoyer
This reverts commit 39e4e00f75be8055300cb0afffb8bd4b4d35f2cc, with fixes for the guix home issues reported and another one found while reconfiguring berlin in the subsequent commit.
2022-11-13services: configuration: Revert to a working ‘guix home’.Tobias Geerinckx-Rice
This reverts commit 543d971ed2a1d9eb934af1f51930741d7cc4e7ef, and its dependent commit 9b21cd2e9a614f1937769caf3917a791b151d841, which appear to have triggered a recent wave of ‘guix home’ regressions involving (services (list (service home-bash-service-type))): In gnu/home/services/shells.scm: 504:7 3 (home-bash-extensions #<<home-bash-configuration> package: #<package bash@5.1.8 gnu/packages/ba…> …) In unknown file: 2 (append #<<location> file: "…" line: 14 column: 12> ()) In ice-9/boot-9.scm: 1685:16 1 (raise-exception _ #:continuable? _) 1685:16 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1685:16: In procedure raise-exception: In procedure append: Wrong type argument in position 1 (expecting empty list): #<<location> file: "…" line: 14 column: 12> I should love to dive in & fix this rather than revert, but urgently need sleep.
2022-11-15services: mcron: Add log? and log-format fields to mcron-configuration.Maxim Cournoyer
* gnu/services/mcron.scm (list-of-gexps?): New predicate. (mcron-configuration): Rewrite using define-configuration. [log?, log-format]: New fields. (mcron-shepherd-services): Invoke mcron with the --log and --log-format arguments when log? is #t, (generate-doc): New procedure. * doc/guix.texi (Scheduled Job Execution): Update doc. (Mcron Home Service): Likewise. * gnu/home/services/mcron.scm: Keep in sync with the above changes to gnu/services/mcron.scm.
2022-11-15services: configuration: Re-order generated record fields.Maxim Cournoyer
This is so that the first field of the generated record matches the first one declared, which makes 'define-configuration' record API compatible with define-record-type* ones. * gnu/services/configuration.scm (define-configuration-helper): Move the %location field below the ones declared by the user. * gnu/services/monitoring.scm (zabbix-front-end-config): Adjust match pattern accordingly.
2022-11-13services: vpn: Fix the profile wireguard package.EuAndreh
This is a follow-up of: fb35b7cedd48a47820b0c250677b7ec6ac78fdc1. * gnu/services/vpn.scm (wireguard-service-type): Add the wireguard package from the configuration to the profile. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-11-12services: vpn: Add wireguard-tools to profile-service-type.EuAndreh
* gnu/services/vpn.scm (wireguard-service-type): Include the "wireguard-tools" package as an extension to profile-service-type, so that users that enable the wireguard service can interact with it via the command-line without having to manually install wireguard-tools. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-11-09services: greetd: Add gexp compilers for sessions.( via Guix-patches via
* gnu/home/services/base.scm (make-greetd-agreety-session-command, greetd-wlgreet-sway-session-command, make-greetd-default-session-command): Remove variables. (greetd-agreety-session-compiler, greetd-wlgreet-sway-session-compiler): New gexp compilers. (greetd-terminal-configuration)[default-session-command]<sanitize>: Remove it. Signed-off-by: Andrew Tropin <andrew@trop.in>
2022-11-07services: qemu-binfmt: Add x86_64 QEMU target.Leo Nikkilä
* gnu/services/virtualization.scm (%x86_64): New variable. (%qemu-platforms) Add it. Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-11-07services: gitolite: Add local-code configuration option.Alexey Abramov
* gnu/services/version-control.scm (gitolite-rc-file): Add local-code field. (gitolite-rc-file-compiler): Serialize the field. * doc/guix.texi: Document it. Signed-off-by: Christopher Baines <mail@cbaines.net>
2022-11-03services: ganeti: OS variants can be a directory.Marius Bakke
* gnu/services/ganeti.scm (<ganeti-os>)[extension]: Default to #f. (ganeti-os->directory): Only add extension if set. Support a file-like object for VARIANTS. * doc/guix.texi (Virtualization Services): Document this change and add example. Update Ganeti URLs while at it.
2022-11-02gnu: dovecot: Use standard mkdir-p/perms.Julien Lepiller
* gnu/services/mail.scm (%dovecot-activation): Use (gnu build utils).
2022-10-23gnu: Fix typos.Vagrant Cascadian
* gnu/packages/emacs-xyz.scm (emacs-piem)[description]: Fix use of "This packages". * gnu/packages/tex.scm (texlive-hardwrap)[description]: Fix spelling of "arbitrary". * gnu/packages/cran.scm (r-shinymanager)[description]: Fix spelling of "authentication". * gnu/packages/lisp-xyz.scm (sbcl-utils-kt)[description]: Fix spelling of "developed". * gnu/packages/crates-io.scm (rust-fs-utils-1)[description]: Fix spelling of "filesystem". [synopsis]: Likewise. * gnu/packages/haxe.scm (neko)[description]: Fix spelling of "functions". * gnu/packages/animation.scm (swftools)[description]: Fix needless pluralization of "information". * gnu/packages/lisp-xyz.scm (sbcl-slot-extra-options)[description]: Fix spelling of "inheritance". * gnu/packages/emacs-xyz.scm (emacs-js-comint)[description]: Fix spelling of "interpreter". * gnu/packages/coq.scm (coq-mathcomp-finmap)[description]: Fix spelling of "library". * gnu/services/lightdm.scm (lightdm-configuration): Fix spelling of "mechanism". * gnu/packages/emacs-xyz.scm (emacs-citar-org-roam)[synopsis]: Fix spelling of "package". * gnu/packages/games.scm (freerct)[description]: Fix spelling of "responsibilities". * gnu/packages/statistics.scm (r-mixedpower)[description]: Fix spelling of "separate". * gnu/packages/accessibility.scm (espeakup)[description]: Fix spelling of "speech". * gnu/packages/bioinformatics.scm (r-skitools)[synopsis]: Fix spelling of "utilities". * gnu/packages/golang.scm (go-github-com-savsgio-gotils)[synopsis]: Fix spelling of "utilities". [description]: Likewise. * gnu/system.scm (boot-file-system-service os): Fix spelling of "utilities".
2022-10-20services: wireguard: Add more configuration fields.Mathieu Othacehe
* gnu/services/vpn.scm (<wireguard-configuration>)[pre-up, post-up, pre-down, post-down, table]: New fields. (wireguard-configuration-file): Take them into account. * doc/guix.texi (Wireguard): Update it.