summary refs log tree commit diff
path: root/gnu/services
AgeCommit message (Collapse)Author
2020-09-11Revert "services: dovecot: Use modules via symlink to system profile."Tobias Geerinckx-Rice
This reverts commit bcfe0f0c1e9a2b91049d7c6c591c7f0c6a002c14 for now. It breaks most current use(r)s of the Dovecot service and needs to be combined with an extra modules configuration field of some kind. See <https://issues.guix.gnu.org/43347>.
2020-09-11services: dovecot: Only serialize settings with non-empty values.Alexey Abramov
* gnu/services/mail.scm (serialize-space-separated-string-list): Protocols might have custom settings, which are not supported by other protocols. To prevent dovecot/services from crashing, serialize settings that hold non-empty values only. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2020-09-10services: php-fpm: Add 'php-ini-file' configuration.Jelle Licht
* gnu/services/web.scm: (<php-fpm-configuration>)[php-ini-file]: New record field. (php-fpm-shepherd-service): Use it. * doc/guix.texi (Web Services): Document it.
2020-09-09services: dovecot: Serialize global settings first.Alexey Abramov
* gnu/services/mail.scm (dovecot-configuration): To avoid dovecot warning messages, move serialization of protocol settings below the global one. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2020-09-09services: dovecot: Use modules via symlink to system profile.Alexey Abramov
* gnu/services/mail.scm (%dovecot-activation): Link the location with multiple plugins (dovecot-pigeonhole, etc), to a place where dovecot can find them. * gnu/services/mail.scm (dovecot-configuration): Use the symlink. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2020-09-02installer: Run the installation inside a container.Mathieu Othacehe
When the store overlay is mounted, other processes such as kmscon, udev and guix-daemon may open files from the store, preventing the underlying install support from being umounted. See: https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00161.html. To avoid this situation, mount the store overlay inside a container, and run the installation from within that container. * gnu/build/shepherd.scm (fork+exec-command/container): New procedure. * gnu/services/base.scm (guix-shepherd-service): Support an optional PID argument passed to the "start" method. If that argument is passed, ensure that guix-daemon enters the given PID MNT namespace by using fork+exec-command/container procedure. * gnu/installer/final.scm (umount-cow-store): Remove it, (install-system): run the installation from within a container. * gnu/installer/newt/final.scm (run-install-shell): Remove the display hack.
2020-09-02services: childhurd: Always include the secret-service.Jan (janneke) Nieuwenhuizen
* gnu/services/virtualization.scm (secret-service-operating-system): New procedure. (hurd-vm-disk-image): Use it to ensure a Childhurd always includes the secret-service. (%hurd-vm-operating-system): Remove secret-service. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2020-09-01services: childhurd: Support installing secrets from the host.Jan (janneke) Nieuwenhuizen
* gnu/services/virtualization.scm (%hurd-vm-operating-system): Add secret-service. (hurd-vm-shepherd-service): Use it to install secrets. * doc/guix.texi (The Hurd in a Virtual Machine): Document it.
2020-09-01services: Add secret-service-type.Jan (janneke) Nieuwenhuizen
This adds a "secret-service" that can be added to a Childhurd VM to receive out-of-band secrets (keys) sent from the host. Co-authored-by: Ludovic Courtès <ludo@gnu.org> * gnu/services/virtualization.scm (secret-service-activation): New procedure. (secret-service-type): New variable. * gnu/build/secret-service.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2020-08-26services: fcgiwrap: Create parent directory for unix socket.Arun Isaac
* gnu/services/web.scm (fcgiwrap-activation): New function. (fcgiwrap-service-type): Extend activation-service-type with fcgiwrap-activation.
2020-08-26services: mcron: Validate jobs even in the presence of #:user.Ludovic Courtès
Fixes a bug in 949672c923b6a3953471c446e0b19f30be335572 whereby jobs specifying a #:user not available in the build environment would fail validation. Reported by Maxim Cournoyer. * gnu/services/mcron.scm (job-files)[validated-file]: Add "prologue" file and pass it to 'mcron --schedule'.
2020-08-26services: mcron: Validate jobs at build time.Ludovic Courtès
That way, run-time errors in the job specs are caught at build time. * gnu/services/mcron.scm (job-file): Remove. (job-files): New procedure. (mcron-shepherd-services): Adjust accordingly.
2020-08-25services: ganeti-kvmd-service-type: Fix typo in description.Tobias Geerinckx-Rice
* gnu/services/ganeti.scm (ganeti-kvmd-service-type)[description]: Fix typo.
2020-08-25Remove "guile-zlib" extension when unused.Mathieu Othacehe
This is a follow-up of 755f365b02b42a5d1e8ef3000dadef069553a478. As (zlib) is autoloaded in (gnu build linux-modules), "guile-zlib" is needed as an extension only when it is effectively used. * gnu/installer.scm (installer-program): Remove "guile-zlib" from the extensions. * gnu/machine/ssh.scm (machine-check-initrd-modules): Ditto. * gnu/services.scm (activation-script): Ditto. * gnu/services/base.scm (default-serial-port): Ditto, (agetty-shepherd-service): ditto, (udev-service-type): ditto. * gnu/system/image.scm (gcrypt-sqlite3&co): Ditto. * gnu/system/shadow.scm (account-shepherd-service): Ditto.
2020-08-25linux-libre: Support module compression.Mathieu Othacehe
This commit adds support for GZIP compression for linux-libre kernel modules. The initrd modules are kept uncompressed as the initrd is already compressed as a whole. The linux-libre kernel also supports XZ compression, but as Guix does not have any available bindings for now, and the compression time is far more significant, GZIP seems to be a better option. * gnu/build/linux-modules.scm (modinfo-section-contents): Use 'call-with-gzip-input-port' to read from a module file using '.gz' extension, (strip-extension): new procedure, (dot-ko): adapt to support compression, (ensure-dot-ko): ditto, (file-name->module-name): ditto, (find-module-file): ditto, (load-linux-module*): ditto, (module-name->file-name/guess): ditto, (module-name-lookup): ditto, (write-module-name-database): ditto, (write-module-alias-database): ditto, (write-module-device-database): ditto. * gnu/installer.scm (installer-program): Add "guile-zlib" to the extensions. * gnu/machine/ssh.scm (machine-check-initrd-modules): Ditto. * gnu/services.scm (activation-script): Ditto. * gnu/services/base.scm (default-serial-port): Ditto, (agetty-shepherd-service): ditto, (udev-service-type): ditto. * gnu/system/image.scm (gcrypt-sqlite3&co): Ditto. * gnu/system/linux-initrd.scm (flat-linux-module-directory): Add "guile-zlib" to the extensions and make sure that the initrd only contains uncompressed module files. * gnu/system/shadow.scm (account-shepherd-service): Add "guile-zlib" to the extensions. * guix/profiles.scm (linux-module-database): Ditto.
2020-08-24services: unattended-upgrade: Log output of the 'guix' commands.Ludovic Courtès
Fixes <https://bugs.gnu.org/43011>. Reported by Jesse Gibbons <jgibbons2357@gmail.com>. Until now the stdout/stderr file descriptors were not redirected. * gnu/services/admin.scm (unattended-upgrade-mcron-jobs)[code]: Remove 'with-logging' and use 'redirect-port' instead.
2020-08-24services: unattended-upgrade: Add 'operating-system-file' field.Ludovic Courtès
* gnu/services/admin.scm (<unattended-upgrade-configuration>)[operating-system-file]: New field. (unattended-upgrade-mcron-jobs): Honor it. * doc/guix.texi (Unattended Upgrades): Document it.
2020-08-19services: Allow (service accountsservice-service-type).Tobias Geerinckx-Rice
* gnu/services/desktop.scm (accountsservice-service-type) [default-value]: Set to accountsservice.
2020-08-16services: connman-shepherd-service: Don't use short flags.Efraim Flashner
* gnu/services/networking.scm (connman-shepherd-service): Use the long flag options for the start command.
2020-08-16services: docker: Add 'enable-iptables?' argument.Alexey Abramov
* gnu/services/docker.scm (docker-configuration): Define the argument. * gnu/services/docker.scm (docker-shepherd-service): Use it. * doc/guix.texi (Docker Service): Document it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2020-08-02services: Add zram-device-service.Efraim Flashner
* gnu/services/linux.scm (<zram-device-configuration>): New record. (zram-device-service-type): New variable. * doc/guix.texi (Linux Services): Document it. * tests/services/linux.scm (zram-swap-device-test): New tests.
2020-08-01services: postgresql: Provide postgresql commands.Pierre Neidhardt
* gnu/services/databases.scm (postgresql-service-type): Extend profile-service-type to provide postgresql commands.
2020-07-27services: auditd: Provide default configuration directory.Robin Green
* gnu/services/auditd.scm (auditd.conf) (%default-auditd-configuration-directory): New variables. (<auditd-configuration>): Switch to 'define-record-type*'. [configuration-directory]: New field. (auditd-shepherd-service): Honor 'configuration-directory'. Pass #:pid-file. (auditd-service-type)[description]: Tweak. [default-value]: Provide 'configuration-directory'. * doc/guix.texi (Miscellaneous Services): Update docs to reflect changes. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-07-27services: Add 'unattended-upgrade-service-type'.Ludovic Courtès
* gnu/services/admin.scm (<unattended-upgrade-configuration>): New record type. (%unattended-upgrade-log-file): New variable. (unattended-upgrade-mcron-jobs, unattended-upgrade-log-rotations): New procedures. (unattended-upgrade-service-type): New variable. * doc/guix.texi (Service Reference): Add 'provenance-service-type' anchor. (Unattended Upgrades): New section.
2020-07-25services: nix: Add extra-options.Oleg Pykhalov
* gnu/services/nix.scm (<nix-configuration>)[extra-options]: New field. (nix-shepherd-service): Add this. (nix-activation): Add new line to the end of /etc/nix/nix.conf file. * doc/guix.texi (Miscellaneous Services)[Nix service]: Document this.
2020-07-25services: nix: Fix typo.Oleg Pykhalov
* gnu/services/nix.scm (<nix-configuration>): Fix typo.
2020-07-25services: nix: Export nix-configuration.Peng Mei Yu
* gnu/services/nix.scm (nix-configuration, nix-configuration?): Export. Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
2020-07-25services: nix: Provide nix commands.Peng Mei Yu via Guix-patches via
* gnu/services/nix.scm (nix-service-type): Extend profile-service-type to provide nix commands. Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
2020-07-22services: nix: Fix sandbox.Oleg Pykhalov
* gnu/tests/package-management.scm: New file. * gnu/local.mk: Add this. * gnu/services/nix.scm (<nix-configuration>): New record. (nix-activation): Generate Nix config file which fixes sandbox. (nix-service-type): Add default value. (nix-shepherd-service): Allow provide Nix package. * doc/guix.texi (Miscellaneous Services)[Nix service]<nix-configuration>: Document record.
2020-07-22services: base: Export references-file.Oleg Pykhalov
* gnu/services/base.scm (references-file): Export procedure.
2020-07-21services: ganeti: Fix erroneous gexp.Marius Bakke
* gnu/services/ganeti.scm (ganeti-watcher-command): Add missing parens.
2020-07-19services: ganeti: Use TLS on the remote API by default.Marius Bakke
* gnu/services/ganeti.scm (<ganeti-rapi-configuration>): Set SSL? to #t. * gnu/tests/ganeti.scm (%ganeti-os): Set SSL? to #f. * doc/guix.texi (Virtualization Services): Adjust accordingly.
2020-07-16services: Add ganeti.Marius Bakke
* gnu/services/ganeti.scm, gnu/tests/ganeti.scm: New files. * doc/guix.texi (Virtualization Services): Document the Ganeti services.
2020-07-12services: web: Do not export record type descriptors.Ludovic Courtès
* gnu/services/web.scm (<httpd-configuration>, <httpd-virtualhost>) (<httpd-config-file>, <httpd-module>, <nginx-configuration>) (<nginx-server-configuration>, <nginx-upstream-configuration>) (<nginx-location-configuration>, <nginx-named-location-configuration>) (<php-fpm-configuration>, <php-fpm-dynamic-process-manager-configuration>) (<php-fpm-static-process-manager-configuration>) (<php-fpm-on-demand-process-manager-configuration>) (<tailon-configuration-file>, <tailon-configuration>) (<varnish-configuration>, <patchwork-database-configuration>) (<patchwork-settings-module>, <patchwork-configuration>) (<mumi-configuration>): Do not export.
2020-07-12services: mumi: Run in a UTF-8 locale.Ludovic Courtès
* gnu/services/web.scm (mumi-shepherd-services)[environment]: New variable. Pass it as #:environment-variables to each 'make-forkexec-constructor' call.
2020-07-12services: Remove obsolete comment.Marius Bakke
This TODO was resolved in ea4915a74bc4c03495d4910c1e32a92c790b6626. * gnu/services/base.scm (%default-authorized-guix-keys): Remove TODO comment.
2020-07-11services: guix: Refer to 'berlin.guix.gnu.org.pub'.Christopher Lemmer Webber
Commit 6680880f9b8dceb4f2f3f91bd2b13c659b53835e pushes out a new guix package with a new key location, so we need to update to the new key in order for systems to build correctly. * gnu/services/base.scm (%default-authorized-guix-keys): Refer to berlin.guix.gnu.org.pub.
2020-07-10services: guix: Refer to 'berlin.guixsd.org.pub'.Ludovic Courtès
This partly reverts d283bb960f927dd5f7bb8b96bc697221e4e8ad39. * gnu/services/base.scm (%default-authorized-guix-keys): Refer to berlin.guixsd.org.pub.
2020-07-10maint: Remove traces of "berlin.guixsd.org".Ludovic Courtès
The guixsd.org domain is no longer advertised since before in 1.0.0 release in May 2019. * etc/substitutes/berlin.guixsd.org.pub: Rename to... * etc/substitutes/berlin.guix.gnu.org.pub: ... this. * etc/substitutes/ci.guix.gnu.org.pub, etc/substitutes/ci.guix.info.pub: Adjust accordingly. * gnu/services/base.scm (%default-authorized-guix-keys): Likewise. * guix/build/download-nar.scm (urls-for-item): Likewise. * guix/self.scm (miscellaneous-files): Likewise. * Makefile.am (dist_pkgdata_DATA): Likewise.
2020-07-06services: simulated-wifi: Use 'kernel-module-loader'.Brice Waegeneire
* gnu/services/networking.scm (simulated-wifi-shepherd-services): Change 'mac-simulation-module' service to use 'kernel-module-loader'.
2020-07-02services: wpa-supplicant: Support specifying additional service dependencies.Marius Bakke
* gnu/services/networking.scm (<wpa-supplicant-configuration>)[requirement]: New parameter. (wpa-supplicant-shepherd-service): Use it instead of hard-coded list. * doc/guix.texi (Networking Services): Document accordingly.
2020-07-02services: wpa-supplicant: Do not export the <wpa-supplicant-configuration> ↵Marius Bakke
record. * gnu/services/networking.scm: Remove <wpa-supplicant-configuration> from exports.
2020-06-28services: virtualization: Export hurd-vm-configuration accessors.Jan (janneke) Nieuwenhuizen
* gnu/services/virtualization.scm (hurd-vm-id, hurd-vm-options): Rename export to ... (hurd-vm-configuration-id, hurd-vm-configuration-options): ... these correct accessor names. (hurd-vm-configuration?, hurd-vm-configuration-os, hurd-vm-configuration-qemu, hurd-vm-configuration-image, hurd-vm-configuration-disk-size, hurd-vm-configuration-memory-size, hurd-vm-configuration-options, hurd-vm-configuration-id, hurd-vm-configuration-net-options): Export record predicate and accessors.
2020-06-28services: Add rshiny service.Efraim Flashner
* gnu/services/science.scm: New file. (<rshiny-configuration>): New record. (rshiny-shepherd-service-type): New variable. * doc/guix.texi (Miscellaneous Services): Document it. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2020-06-25services: Add missing (ice-9 format) import.Ludovic Courtès
These issues were reported by -Wformat, though they were harmless in practice because importing (ice-9 format) changes the global 'format' binding currently. * gnu/services/nix.scm: Import (ice-9 format). * gnu/services/web.scm: Likewise. * gnu/system/mapped-devices.scm: Likewise.
2020-06-25services: childhurd: Adjust for hurd-disk-image move.Marius Bakke
This is a follow-up to commit b904b59ce592c89dfb4675a8c06757afed6738a0. * gnu/services/virtualization.scm: Import (gnu system images hurd).
2020-06-21services: childhurd: Support more than one instance.Jan (janneke) Nieuwenhuizen
* gnu/services/virtualization.scm (<hurd-vm-configuration>)[options]: Remove "--hda" option. [id,net-options]: New fields. (hurd-vm-net-options): New procedure. Parameterize port forwarding with ID. * gnu/services/virtualization.scm (hurd-vm-shepherd-service): Use them. Parameterize provision with ID, if set. Hardcode "--hda" option for image. * doc/guix.texi (Virtualization Services): Document new fields. Update for hardcoding of "--hda".
2020-06-14services: Add 'hurd-vm service-type'.Jan (janneke) Nieuwenhuizen
* gnu/services/virtualization.scm (hurd-vm-shepherd-service, hurd-vm-disk-image): New procedures. (%hurd-vm-operating-system, hurd-vm-service-type): New variables. (<hurd-vm-configuration>): New record type. * doc/guix.texi (Virtualization Services): Document it. * gnu/services/shepherd.scm (scm->go): Use let-system, remove FIXME. Fixes fixes cross-building of shepherd modules for the Hurd image.
2020-06-13services: hurd: Remove deprecated 'hurd-getty-service' wrapper.Jan (janneke) Nieuwenhuizen
* gnu/services/hurd.scm (hurd-getty-service): Remove.
2020-06-08services: Add `hurd-getty-service-type'.Jan (janneke) Nieuwenhuizen
* gnu/services/hurd.scm (<hurd-gettty-configuration>): New record. (hurd-ttys-shepherd-service): New procedure. (hurd-getty-service-type): New variable. * doc/guix.texi (Hurd Services): Document it.