Commit graph

1149 commits

Author SHA1 Message Date
Marius Bakke d7fb4199c7
services: ganeti: Fix typo.
* gnu/services/ganeti.scm (ganeti-luxid-service-type)[description]: Fix typo.
2020-10-10 23:39:17 +02:00
Ludovic Courtès cf197bff6a
services: hurd-vm: Add 'gdb-minimal' to the default OS.
* gnu/services/virtualization.scm (%hurd-vm-operating-system)[packages]:
New field.
2020-10-09 23:59:14 +02:00
Christopher Baines 65c9f07a16
services: guix: Don't use normalized codeset for Guix Data Service.
This matches up with changes in the Guix Data Service to not use the
normalized codeset.

* gnu/services/guix.scm (guix-data-service-shepherd-services): Change the
LC_ALL codeset to UTF-8.
2020-10-08 20:21:02 +01:00
Alex Griffin d8258177fe
services: Fix gdm-autologin pam service.
* gnu/services/xorg.scm (gdm-pam-service): Mark pam_gdm.so optional.
2020-10-07 10:29:26 -05:00
Danny Milosavljevic 34d1c0a03b
services: dnsmasq: Add TFTP configuration fields.
* gnu/services/dns.scm (<dnsmasq-configuration>): Add TFTP configuration
fields.
(dnsmasq-shepherd-service): Use them.
* doc/guix.texi (DNS Services): Document them.
2020-10-06 08:13:39 +02:00
Julien Lepiller 4e3ed9bad9
services: gitolite: Install the rc file as gitolite's user.
* gnu/services/version-control.scm (gitolite-activation): Install the rc
file as gitolite's user.
2020-10-05 19:41:23 +02:00
Christopher Baines c14714cbbf
services: guix: Add guix-build-coordinator-queue-builds-service-type.
* gnu/services/guix.scm (<guix-build-coordinator-queue-builds-configuration>):
New record type.
(guix-build-coordinator-queue-builds-configuration,
guix-build-coordinator-queue-builds-configuration?,
guix-build-coordinator-queue-builds-configuration-package,
guix-build-coordinator-queue-builds-configuration-user,
guix-build-coordinator-queue-builds-coordinator,
guix-build-coordinator-queue-builds-configuration-systems,
guix-build-coordinator-queue-builds-configuration-system-and-targets,
guix-build-coordinator-queue-builds-configuration-guix-data-service,
guix-build-coordinator-queue-builds-configuration-processed-commits-file,
guix-build-coordinator-queue-builds-shepherd-services,
guix-build-coordinator-queue-builds-activation,
guix-build-coordinator-queue-builds-account): New procedures.
(guix-build-coordinator-queue-builds-service-type): New variable.
* doc/guix.texi (Guix Services): Document it.
2020-10-05 18:10:48 +01:00
Christopher Baines 98ab323a24
services: guix: Add guix-build-coordinator-agent-service-type.
* gnu/services/guix.scm (<guix-build-coordinator-agent-configuration>): New
record type.
(guix-build-coordinator-agent-configuration,
guix-build-coordinator-agent-configuration?,
guix-build-coordinator-agent-configuration-package,
guix-build-coordinator-agent-configuration-user,
guix-build-coordinator-agent-configuration-coordinator,
guix-build-coordinator-agent-configuration-uuid),
guix-build-coordinator-agent-configuration-password,
guix-build-coordinator-agent-configuration-password-file,
guix-build-coordinator-agent-configuration-systems,
guix-build-coordinator-agent-configuration-max-parallel-builds,
guix-build-coordinator-agent-configuration-derivation-substitute-urls,
guix-build-coordinator-agent-configuration-non-derivation-substitute-urls,
guix-build-coordinator-agent-shepherd-services,
guix-build-coordinator-agent-activation,
guix-build-coordinator-agent-account): New procedures.
(guix-build-coordinator-agent-service-type): New variable.
* doc/guix.texi (Guix Services): Document it.
2020-10-05 18:10:48 +01:00
Christopher Baines 15955e9b54
services: guix: Add guix-build-coordinator-service-type.
* gnu/services/guix.scm (<guix-build-coordinator-configuration>): New record
type.
(guix-build-coordinator-configuration, guix-build-coordinator-configuration?,
guix-build-coordinator-configuration-package,
guix-build-coordinator-configuration-user,
guix-build-coordinator-configuration-group,
guix-build-coordinator-configuration-datastore-uri-string,
guix-build-coordinator-configuration-agent-communication-uri-string,
guix-build-coordinator-configuration-client-communication-uri-string,
guix-build-coordinator-configuration-allocation-strategy,
guix-build-coordinator-configuration-hooks,
guix-build-coordinator-configuration-guile,
make-guix-build-coordinator-start-script,
guix-build-coordinator-shepherd-services, guix-build-coordinator-activation,
guix-build-coordinator-account): New procedures.
(guix-build-coordinator-service-type): New variable.
* gnu/tests/guix.scm (%test-guix-build-coordinator): New variable.
* doc/guix.texi (Guix Services): Document it.
2020-10-05 18:10:48 +01:00
Mathieu Othacehe d6a8f0a978
services: cuirass: Fix activation.
Fixes: <https://issues.guix.gnu.org/43760>.

* gnu/services/cuirass.scm (cuirass-activation): Do not create
queries-log-file and web-queries-log-file if the corresponding config file are
unset.
2020-10-02 14:58:01 +02:00
Maxim Cournoyer d40c9f6c85
services: %desktop-services: Setuid root NTFS and NFS mount helpers.
Fixes <https://issues.guix.info/39670>.

Combined with commit def6e2ae46, this allows unprivileged users to mount file
systems marked with the "user" option.  It adds less than 4 MiB to the closure
of the lightweight-desktop.tmpl operating system template.

* gnu/services/desktop.scm (%desktop-services): Extend the
setuid-program-service-type service with the 'mount.nfs' and 'mount.nfs-3g'
programs.

Reported-by: Nathan Dehnel <ncdehnel@gmail.com>
2020-10-01 15:47:55 -04:00
Oleg Pykhalov da6aec32cf
gnu: Add webssh service.
* gnu/services/ssh.scm:
(<webssh-configuration>): New record type.
(%webssh-configuration-nginx, webssh-service-type): New variables.
(webssh-account, webssh-activation, webssh-shepherd-service): New procedures.
* doc/guix.texi: Document this.
2020-10-01 10:15:29 +03:00
Jan (janneke) Nieuwenhuizen 04a459a069
services: hurd-vm: Add childhurd user to kvm group.
This is a follow-up to commit d692ebf980.

* gnu/services/virtualization.scm (%hurd-vm-accounts)[supplementary-groups]:
Add ’kvm’.
* gnu/services/virtualization.scm (hurd-vm-shepherd-service): Use #:group
"kvm"
2020-09-30 12:30:28 +02:00
Mathieu Othacehe 2f1f7b6667
services: virtualization: Use a compressed qcow2 hurd disk-image.
* gnu/services/virtualization.scm (hurd-vm-disk-image): Use 'compressed-qcow2
format.
2020-09-30 10:47:58 +02:00
Ludovic Courtès 59261a22f9
services: secret-service: Add initial client/server handshake.
This allows the client running on the host to know when it's actually
connect to the server running in the guest.  Failing that, the client
would connect right away to QEMU and send secrets even though the server
is not running yet in the guest, which is unreliable.

* gnu/build/secret-service.scm (secret-service-send-secrets): Add
 #:handshake-timeout.  Read from SOCK an initial message from the
server.  Return #f on error.
(secret-service-receive-secrets): Send 'secret-service-server' message
to the client.  Close SOCK upon timeout.
* gnu/services/virtualization.scm (hurd-vm-shepherd-service): 'start'
method returns #f when 'secret-service-send-secrets' returns #f.
2020-09-29 21:56:27 +02:00
Ludovic Courtès e352706ad3
services: secret-service: Move instance last in the list of services.
* gnu/services/virtualization.scm (secret-service-operating-system): Add
the SECRET-SERVICE-TYPE instance to the end of the list.
2020-09-29 21:56:27 +02:00
Ludovic Courtès 1edb7c7eec
services: hurd-vm: Pass "-no-reboot" when spawning the Hurd VM.
* gnu/services/virtualization.scm (hurd-vm-shepherd-service)[vm-command]:
Add "--no-reboot".
2020-09-29 21:56:27 +02:00
Ludovic Courtès 37283f9f3e
services: hurd-vm: Initialize the guest's SSH/Guix keys at activation time.
* gnu/services/virtualization.scm (initialize-hurd-vm-substitutes)
(hurd-vm-activation): New procedures.
(hurd-vm-service-type)[extensions]: Add ACTIVATION-SERVICE-TYPE
extension.
* doc/guix.texi (Transparent Emulation with QEMU): Mention GNU/Hurd.
(The Hurd in a Virtual Machine): Explain which files are automatically
installed and mention offloading.
2020-09-29 21:56:27 +02:00
Ludovic Courtès d367a7f3d0
services: guix: Generate key pair if needed during activation.
* gnu/services/base.scm (guix-activation): Invoke "guix archive
--generate-key".
* doc/guix.texi (Invoking guix archive)
(Invoking guix deploy): Mention that 'guix-service-type' takes care of
generating the key pair.
2020-09-29 21:56:27 +02:00
Ludovic Courtès 8ac318068b
services: hurd-vm: Check whether /dev/kvm exists at run time.
This change allows a childhurd to run within Guix System in a VM.

* gnu/services/virtualization.scm (hurd-vm-shepherd-service)[vm-command]:
Stage the 'file-exists?' call.
2020-09-29 21:56:26 +02:00
Ludovic Courtès dabb00ffee
services: childhurd: Tweak description.
* gnu/services/virtualization.scm (hurd-vm-service-type)[description]:
Mention "childhurd".
2020-09-29 21:56:26 +02:00
Ludovic Courtès d692ebf980
services: hurd-vm: Run QEMU as an unprivileged user.
Until qemu was running as "root", which is unnecessary.

* gnu/services/virtualization.scm (%hurd-vm-accounts): New variable.
(hurd-vm-service-type)[extensions]: Add ACCOUNT-SERVICE-TYPE extension.
2020-09-29 21:56:26 +02:00
Tobias Geerinckx-Rice 4c698cd512
services: Add elogind ‘handle-lid-switch-external-power’.
* gnu/services/desktop.scm <elogind-configuration>: Add an
handle-lid-switch-external-power field, mapping to the
HandleLidSwitchExternalPower logind.conf setting.
* doc/guix.texi (Desktop Services): ‘Document’ it.
2020-09-28 16:00:49 +02:00
Marius Bakke d48b17adb9
services: WPA Supplicant: Conditionally depend on D-Bus.
Fixes <https://bugs.gnu.org/43567>.
Reported by calcium <calcium@disroot.org>.

* gnu/services/networking.scm (<wpa-supplicant-configuration>)[requirement]:
Remove 'dbus-system.
(wpa-supplicant-shepherd-service)[requirement]: Add 'dbus-system when DBUS? is true.
* doc/guix.texi (Networking Services)[wpa-supplicant-service-type]: Adjust
accordingly.
2020-09-24 20:18:20 +02:00
Mathieu Othacehe a024eedb1c
services: cuirass: Create queries log files at activation.
* gnu/services/cuirass.scm (cuirass-activation)[queries-log-file]: Create and
set user permissions on "queries-log-file" and "web-queries-log-file".
2020-09-24 13:51:57 +02:00
Mathieu Othacehe 80e26d7429
services: cuirass: Add web SQL queries logging support.
* gnu/services/cuirass.scm (<cuirass-configuration>)[web-queries-log-file]:
New field.
(cuirass-shepherd-service): Honor it.
(cuirass-log-rotations): If defined, add the web queries log file to the log
rotation.
2020-09-24 11:28:59 +02:00
Mathieu Othacehe 92e507c963
services: cuirass: Add SQL queries logging support.
* gnu/services/cuirass.scm (<cuirass-configuration>)[queries-log-file]: New
field.
(cuirass-shepherd-service): Honor it.
(cuirass-log-rotations): If defined, add the queries log file to the log
rotation.
2020-09-24 10:47:22 +02:00
Oleg Pykhalov cd4bb173e0
services: docker: Fix configuration.
This is a follow-up to e04b90607a.

* gnu/services/docker.scm
(docker-shepherd-service): Fix "enable-proxy?" configuration.
2020-09-23 23:40:29 +03:00
Tobias Geerinckx-Rice 97e98e2269
services: Allow (service bluetooth-service-type).
* gnu/services/desktop.scm (bluetooth-service-type)
[default-value]: Set to (bluetooth-configuration).
2020-09-23 19:07:55 +02:00
Efraim Flashner e04b90607a
services: Docker: Fix typo in configuration.
This is a follow-up to f0a09310e6.

* gnu/services/docker.scm (docker-shepherd-service): Properly reference
variables in service definition.
2020-09-21 15:04:14 +03:00
Jesse Dowell f0a09310e6
services: docker: Fix enable-proxy? option.
The userland proxy option does not properly disable the userland proxy when
set to false. Docker defaults to enabling the userland proxy if the option is
unset on the command line.

* gnu/services/docker.scm (docker-shepherd-service): Properly handle the
'enable-proxy?' option.

Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
2020-09-21 13:18:25 +03:00
Mathieu Othacehe 1a0da8b4f3
services: base: Improve container related comments.
* gnu/services/base.scm (guix-shepherd-service): Clarify the usage of a
container for guix-daemon.
2020-09-21 10:48:16 +02:00
Tobias Geerinckx-Rice b864ddb690
services: dicod: Reduce irony.
* gnu/services/dict.scm (dicod-service): Fix docstring typo.
2020-09-21 00:31:15 +02:00
Ludovic Courtès 1b157bbef0
services: bitlbee: Support libpurple plugins.
* gnu/services/messaging.scm (bitlbee-shepherd-service): Pass
PURPLE_PLUGIN_PATH as #:environment-variables.
2020-09-15 14:40:20 +02:00
Oleg Pykhalov f6dfe42129
services: docker: Fix service definition.
This commit follows a404716d41.

* gnu/services/docker.scm
(docker-configuration)[docker-cli]: New record field.
(docker-service-type): Use this.
* doc/guix.texi (Miscellaneous Services)[Docker Service]: Document this.
2020-09-15 01:10:55 +03:00
Efraim Flashner a404716d41
services: docker: Fix service definition.
This is a follow-up to 8422a67dc1.

* gnu/services/docker.scm (docker-service-type): Use a composed list for
packages in profile-service-type.
2020-09-14 23:22:34 +03:00
Efraim Flashner 8422a67dc1
services: docker: Make docker command available.
* gnu/services/docker.scm (docker-service-type): Extend the
profile-service-type and add the docker-cli package.
2020-09-14 17:21:16 +03:00
Timotej Lazar 11a962e653
services: certbot: Support registration without email.
* gnu/services/certbot.scm (certbot-configuration): Add default for the
email option.
(certbot-command): Pass email for registration only when specified.
* doc/guix.texi (Certificate Services): "mandatory"→"optional" email.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-13 23:34:23 +02:00
Tobias Geerinckx-Rice 71992a532d
services: Fix zram-device-service.
* gnu/services/linux.scm (<zram-device-configuration>): Fix typo.
2020-09-13 23:07:36 +02:00
Tobias Geerinckx-Rice d9d88c2ff0
Revert "services: dovecot: Use modules via symlink to system profile."
This reverts commit bcfe0f0c1e 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-11 22:38:08 +02:00
Alexey Abramov a16400919f
services: dovecot: Only serialize settings with non-empty values.
* 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-11 16:28:01 +02:00
Jelle Licht bba0533115
services: php-fpm: Add 'php-ini-file' configuration.
* 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-10 09:46:03 +02:00
Alexey Abramov 22470c88af
services: dovecot: Serialize global settings first.
* 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-09 20:37:07 +02:00
Alexey Abramov bcfe0f0c1e
services: dovecot: Use modules via symlink to system profile.
* 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-09 20:37:07 +02:00
Mathieu Othacehe 8ce6f4dc28
installer: Run the installation inside a container.
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-02 17:05:23 +02:00
Jan (janneke) Nieuwenhuizen 18a9c16b5e
services: childhurd: Always include the secret-service.
* 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-02 07:24:15 +02:00
Jan (janneke) Nieuwenhuizen 01cefb7a57
services: childhurd: Support installing secrets from the host.
* 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-01 16:06:38 +02:00
Jan (janneke) Nieuwenhuizen ec32d4f291
services: Add secret-service-type.
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-09-01 16:06:38 +02:00
Arun Isaac 17881f944e
services: fcgiwrap: Create parent directory for unix socket.
* gnu/services/web.scm (fcgiwrap-activation): New function.
(fcgiwrap-service-type): Extend activation-service-type with
fcgiwrap-activation.
2020-08-26 22:56:37 +05:30
Ludovic Courtès ef5ddb0e17
services: mcron: Validate jobs even in the presence of #:user.
Fixes a bug in 949672c923 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-26 15:30:04 +02:00