Commit Graph

768 Commits

Author SHA1 Message Date
Efraim Flashner dcad57d5fc
services: Add quassel.
* gnu/services/messaging.scm (<quassel-configuration>): New record type.
(%quassel-account, %quassel-activation): New procedures.
(quassel-service-type): New variable.
* gnu/tests/messaging.scm (%test-quassel): New variable.
(run-quassel-test): New procedure.
* doc/guix.texi (Messaging): Document quassel service.
2018-12-24 11:18:36 +02:00
Marius Bakke 02bf685d00
Merge branch 'master' into staging 2018-12-23 23:26:04 +01:00
Tobias Geerinckx-Rice 83715a7eec
services: Fix typo in (gnu services admin).
* gnu/services/admin.scm: Fix typo in licence header.
2018-12-23 17:57:06 +01:00
Marius Bakke f30830b2e6
Merge branch 'master' into staging 2018-12-22 15:26:30 +01:00
Ludovic Courtès 9012d226fa
services: zabbix-front-end: Tweak error and hint messages.
* gnu/services/monitoring.scm (zabbix-front-end-config): Adjust error
and hint mssages.
2018-12-20 00:04:50 +01:00
Oleg Pykhalov 0485717ee9
services: zabbix-front-end: Improve hint and error messages.
* gnu/services/monitoring.scm (zabbix-front-end-config): Improve hint and
error messages.
2018-12-19 21:15:12 +03:00
Ludovic Courtès 6ea6e1476f
file-systems: Spawn a REPL only when interaction is possible.
Fixes <https://bugs.gnu.org/23697>.
Reported by Jan Nieuwenhuizen <janneke@gnu.org>.

* gnu/build/file-systems.scm (check-file-system): Call 'start-repl' only
if current-input-port passes 'isatty?'.
* gnu/services/shepherd.scm (shepherd-configuration-file): After
'for-each' expression, call 'redirect-port'.
* gnu/tests/base.scm (run-basic-test)["stdin is /dev/null"]: New test.
2018-12-18 16:04:26 +01:00
Ludovic Courtès bafcf1f32f
services: udev: Add 'rules' action.
* gnu/services/base.scm (udev-shepherd-service): Add 'actions' field.
* doc/guix.texi (Base Services): Move "@end deffn" after 'udev-service'
definition.  Mention 'herd rules udev'.
2018-12-17 23:33:42 +01:00
Oleg Pykhalov 85c07cff9c
services: monitoring: Add 'zabbix-front-end'.
* gnu/services/monitoring.scm (nginx-server-configuration-list?,
serialize-nginx-server-configuration-list, zabbix-front-end-configuration,
zabbix-front-end-config, zabbix-front-end-activation,
generate-zabbix-front-end-documentation): New procedures.
(%zabbix-front-end-configuration-nginx, %maintenance.inc.php,
zabbix-front-end-service-type): New variables.
* doc/guix.texi (Monitoring Services): Document this.
2018-12-17 22:09:11 +03:00
Oleg Pykhalov e517161d6b
services: php-fpm: Add 'timezone' configuration.
* gnu/services/web.scm: (<php-fpm-configuration>)[timezone]: New record field.
(default-php-fpm-config, php-fpm-shepherd-service, php-fpm-activation): Use
this.
* doc/guix.texi (Web Services): Document this.
2018-12-17 22:09:10 +03:00
Oleg Pykhalov 6106d7cae4
services: monitoring: Add 'zabbix-agent'.
* gnu/services/monitoring.scm (zabbix-server-service-type,
zabbix-agent-account, zabbix-agent-activation, zabbix-agent-config-file,
zabbix-agent-shepherd-service, generate-zabbix-agent-documentation): New
procedures.
(zabbix-agent-service-type): New 'service-type'.
* gnu/tests/monitoring.scm (run-zabbix-server-test): Test 'zabbix-agent'.
(%zabbix-os): Add 'zabbix-agent' service.
* doc/guix.texi (Monitoring Services): Document 'zabbix-agent'.
2018-12-17 22:09:10 +03:00
Oleg Pykhalov 6b1c4179e2
services: monitoring: Add 'zabbix-server'.
* gnu/services/monitoring.scm (uglify-field-name, serialize-field,
serialize-number, serialize-list, serialize-string, group?, serialize-group,
include-files?, serialize-include-files, zabbix-server-account,
zabbix-server-config-file, zabbix-server-activation,
zabbix-server-shepherd-service, generate-zabbix-server-documentation,
extra-options, serialize-extra-options): New procedures.
(zabbix-server-service-type): New variable.
* gnu/tests/monitoring.scm (%psql-user-create-zabbix,
%psql-db-zabbix-create-script, %psql-db-create-zabbix, %psql-db-import-zabbix,
%zabbix-os, %test-zabbix): New variables.
(run-zabbix-server-test): New procedure.
* doc/guix.texi (Monitoring Services): Document 'zabbix-server'.

squash! services: monitoring: Add 'zabbix-server'.
2018-12-17 22:09:10 +03:00
Marius Bakke 12878d12ac
Merge branch 'master' into staging 2018-12-12 22:00:52 +01:00
Ludovic Courtès 7e4bc21509
services: guix: Run 'guix-daemon' in UTF-8 locale.
Fixes <https://bugs.gnu.org/32942>.
Reported by Julien Lepiller <julien@lepiller.eu>.

* gnu/services/base.scm (guix-shepherd-service) <start>: In
 #:environment-variables, add "GUIX_LOCPATH" and "LC_ALL".
2018-12-10 00:28:11 +01:00
Marius Bakke fbb7b04a85
Merge branch 'master' into staging 2018-12-09 00:18:32 +01:00
Ludovic Courtès 970ebdae8c
services: guix-daemon: Fix authorization of multiple keys.
Previously, the 'unless (file-exists? "/etc/guix/acl")' guard would mean
that only the first key in the list would get registered since were were
generating one registration snippet per key.  This fixes that.

* gnu/services/base.scm (hydra-key-authorization): Change to be a
'for-each' loop iterating on #$KEYS.
2018-12-05 16:24:50 +01:00
Ludovic Courtès 0bc02becca
Remove most references to hydra.gnu.org.
* Makefile.am (assert-binaries-available): Don't mention hydra.gnu.org
in comment.
* build-aux/check-available-binaries.scm: Likewise.
* build-aux/check-final-inputs-self-contained.scm: Likewise.
* doc/guix.texi (SUBSTITUTE-SERVER): New variable.
Use it throughout instead of "mirror.hydra.gnu.org".
* doc/contributing.texi (Submitting Patches): Likewise.
* gnu/services/base.scm (hydra-key-authorization)
(guix-activation): Remove mentions of "hydra.gnu.org" in comments and
messages.
* gnu/system/install.scm (%installation-services): Likewise.
* guix/scripts/size.scm (guix-size): Likewise.
2018-12-04 10:57:56 +01:00
Oleg Pykhalov 9325533bd0
services: ddclient: Fix unrecognized keywords.
This patch fixes warnings about unrecognized keywords in logs.

* gnu/services/dns.scm (serialize-field): Skip some field names.
2018-12-04 07:16:00 +03:00
Marius Bakke 99f63f011d
Merge branch 'master' into staging 2018-12-03 19:15:17 +01:00
Ludovic Courtès 0c17f72070
services: openssh: Install OpenSSH in the system profile.
This ensures one can scp to or from the GuixSD machine that uses the
service.

* gnu/services/ssh.scm (openssh-service-type)[extensions]: Add
PROFILE-SERVICE-TYPE extension.
* gnu/system/examples/bare-bones.tmpl <packages>: Remove OPENSSH.
* doc/guix.texi (Using the Configuration System): Adjust accordingly.
2018-11-26 11:10:20 +01:00
Arun Isaac 662e2285f5
services: wesnothd: Run as wesnothd user and group.
* gnu/services/games.scm (wesnothd-shepherd-service): Run as wesnothd user and
group.
2018-11-20 22:40:44 +05:30
Ludovic Courtès d3f75179e5
services: nscd: Add 'invalidate' and 'statistics' actions.
* gnu/services/base.scm (nscd-action-procedure, nscd-actions): New
procedures.
(nscd-shepherd-service): Add 'modules' and 'actions' fields.
* gnu/tests/base.scm (run-basic-test)["nscd invalidate action"]
["nscd invalidate action, wrong table"]: New tests.
* doc/guix.texi (Services): Mention 'herd doc nscd action'.
(Base Services): Document the actions.
2018-11-13 14:59:45 +01:00
Ludovic Courtès 190877748e
services: mcron: Fix typo in comment.
* gnu/services/mcron.scm (shepherd-schedule-action): Fix typo in comment.
2018-11-13 14:59:45 +01:00
Clément Lassieur a7553a7360
services: dovecot: Set correct default value for the "auth" service.
* gnu/services/mail.scm (dovecot-configuration): Set 'service-count' to 0 for
the "auth" service.
2018-11-10 19:12:21 +01:00
Clément Lassieur be8dd4a5fe
services: dovecot: Allow to set 'process-limit'.
* doc/guix.texi (Mail Services): Update accordingly.
* gnu/services/mail.scm (service-configuration)[process-limit]: New field.
(dovecot-configuration)[services]: Set 'process-limit' to its correct default
value.
2018-11-10 19:12:18 +01:00
Clément Lassieur 8d9bb4b4d0
services: dovecot: Allow to set 'client-limit'.
* doc/guix.texi (Mail Services): Update accordingly.
* gnu/services/mail.scm (service-configuration)[client-limit]: New field.
(dovecot-configuration)[services]: Set 'client-limit' to its correct default
value.
2018-11-10 19:12:14 +01:00
Stefan Stefanović ec86863113
services: elogind: Fix spelling errors of left value fields in elogind config file.
* gnu/services/desktop.scm (elogind-configuration-file)[ini-file]:
    Fix spelling of left value fields:
    InhibitDelayMaxSecs, HoldoffTimeoutSecs, IdleActionSeconds, RemoveIpc.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-11-08 10:24:35 +01:00
Ludovic Courtès dcb45127e0
services: cuirass: Add 'ttl' configuration field.
* gnu/services/cuirass.scm (<cuirass-configuration>)[ttl]: New field.
(cuirass-shepherd-service): Honor it.
2018-11-07 16:06:42 +01:00
Mathieu Othacehe 2d9dace8c2
services: kmscon: Add an auto-login option.
Add an auto-login option that behaves as the one of mingetty-service.

* gnu/services/base.scm (kmscon-configuration)[auto-login]: New field.
(kmscon-service-type): Pass it to kmscon command.
* doc/guix.texi (Base Services): Document it.
2018-11-07 18:21:42 +09:00
Mathieu Othacehe f4e8bc5f25
services: kmscon: Do not switch to vt at start.
* gnu/services/base.scm (kmscon-service-type): Add "--no-switchvt" to kmscon
command.
2018-11-07 18:15:00 +09:00
Oleg Pykhalov 7f860a8be1
gnu: services: dns: Fix 'ddclient-activation'.
* gnu/services/dns.scm (ddclient-activation): Fix procedure.
2018-11-06 07:16:44 +03:00
Florian Pelz abc98e3be5
services: httpd: Allow using it with PHP.
* gnu/services/web.scm (httpd): Make existing httpd-module API public.
* doc/guix.texi (Apache HTTP Server): Document its usage with PHP-FPM.

Signed-off-by: Christopher Baines <mail@cbaines.net>
2018-10-27 14:08:45 +01:00
Ludovic Courtès 64791eb7e1
services: ntp: Document 'ntp-service-type' and 'ntp-configuration'.
* gnu/services/networking.scm (<ntp-configuration>)[servers]: Add
default value.
(ntp-service-type)[default-value]: New field.
(ntp-service): Mark as deprecated.
* gnu/services/desktop.scm (%desktop-services): Use (service
ntp-service-type) instead of calling 'ntp-service'.
* doc/guix.texi (Networking Services): Document 'ntp-service-type' and
'ntp-configuration'.
2018-10-19 23:39:41 +02:00
Marius Bakke 3d472b5ee1
services: WPA Supplicant: Fix syntax error.
This is a followup to commit acce0a474c.  No
idea how these disappeared.. :-/

* gnu/services/networking.scm (wpa-supplicant-shepherd-service): Add missing
parens.
2018-10-19 03:18:22 +02:00
Ludovic Courtès 39d7fdce45
services: dhcp-client: Deprecate 'dhcp-client-service' procedure.
* gnu/services/networking.scm (dhcp-client-service-type): Add default
value.
* gnu/system/examples/bare-bones.tmpl: Use (service
dhcp-client-service-type) instead of (dhcp-client-service).
* gnu/system/examples/beaglebone-black.tmpl: Likewise.
* gnu/tests/base.scm (%avahi-os): Likewise.
* gnu/tests/databases.scm (%memcached-os): Likewise.
(%mongodb-os): Likewise.
* gnu/tests/dict.scm (%dicod-os): Likewise.
* gnu/tests/mail.scm (%opensmtpd-os): Likewise.
(%exim-os): Likewise.
(%dovecot-os): Likewise.
* gnu/tests/messaging.scm (run-xmpp-test): Likewise.
(run-bitlbee-test): Likewise.
* gnu/tests/monitoring.scm (%prometheus-node-exporter-os): Likewise.
* gnu/tests/networking.scm (%inetd-os): Likewise.
(run-iptables-test): Likewise.
* gnu/tests/nfs.scm (%base-os): Likewise.
* gnu/tests/rsync.scm (%rsync-os): Likewise.
* gnu/tests/ssh.scm (run-ssh-test): Likewise.
* gnu/tests/version-control.scm (%cgit-os): Likewise.
(%git-http-os): Likewise.
(%gitolite-os): Likewise.
* gnu/tests/virtualization.scm (%libvirt-os): Likewise.
* gnu/tests/web.scm (%httpd-os): Likewise.
(%nginx-os): Likewise.
(%varnish-os): Likewise.
(%php-fpm-os): Likewise.
(%hpcguix-web-os): Likewise.
(%tailon-os): Likewise.
* tests/guix-system.sh: Likewise.
* doc/guix.texi (Networking Services): Document
'dhcp-client-service-type' and remove 'dhcp-client-service'.
2018-10-18 01:12:22 +02:00
Marius Bakke acce0a474c
services: wpa-supplicant: Extend to support configuration parameters.
This allows using WPA Supplicant "standalone" without an additional
network manager.  The default configuration is unchanged.

* gnu/services/networking.scm (<wpa-supplicant-configuration>): New record type.
(wpa-supplicant-shepherd-service): Pass configuration records to the daemon.
(wpa-supplicant-service-type): Adjust accordingly.
* doc/guix.texi (Networking Services): Document the new service type.
2018-10-17 20:34:37 +02:00
Julien Lepiller 0d57a50af2
gnu: postgresql: Add extension-packages.
* gnu/services/databases.scm (postgresql-configuration): Add
extension-packages.
(postgresql-shepherd-service): New key #:extension-packages.
* doc/guix.texi (Database Services): Document it.
2018-10-04 22:30:23 +02:00
Ludovic Courtès 89fdd9ee0c
services: rottlog: Use command strings in the mcron jobs.
* gnu/services/admin.scm (default-jobs): Remove the lambda around
"/…/bin/rottlog" to make "herd schedule mcron" more
transparent (otherwise it just says "Lambda function").
2018-10-04 09:32:51 +02:00
Christopher Baines f8e710684e
services: Add Gitolite.
* 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-10-02 08:11:17 +01:00
Mark H Weaver 17bea1803c
Revert "services: Add Gitolite."
This reverts commit 258a6d944e.
2018-09-29 21:18:45 -04:00
Christopher Baines 258a6d944e
services: Add Gitolite.
* 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-28 21:00:18 +01:00
Ludovic Courtès 09b7300c01
services: virtual-terminal: Write to "default_utf8" only if necessary.
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-26 23:40:37 +02:00
Ludovic Courtès 23784f0c33
services: udev: Don't attempt to read "modules.devname" from a container.
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-26 23:40:37 +02:00
Ludovic Courtès a56c4eb8f4
services: shepherd: Add workaround for 0.5.0 in containers.
* gnu/services/shepherd.scm (%containerized-shepherd-service): New service.
* gnu/system.scm (essential-services): Use it when CONTAINER? is true.
2018-09-26 23:40:36 +02:00
Ludovic Courtès 6f03b08089
services: dhcp-client: Use 'read-pid-file'.
* gnu/services/networking.scm (dhcp-client-service-type)[start]: Use
'read-pid-file' instead of the custom and possibly infinite loop.
2018-09-26 23:40:36 +02:00
Carlo Zancanaro 4245ddcbc9
guix system: Load all services on reconfigure, not just stopped ones.
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-26 23:40:36 +02:00
Marius Bakke 3b97a1779f
services: Add Varnish service.
* 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-26 00:33:01 +02:00
Arun Isaac 9926b8f809
gnu: services: Add iptables service.
* 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-20 13:09:55 +05:30
Ludovic Courtès 241358dc94
services: networking: Remove unbound variable reference in 'stop'.
* gnu/services/base.scm (static-networking-shepherd-service): Remove
spurious ":" in 'stop' method inadvertently introduced in commit
c9436025a9.
2018-09-19 18:25:28 +02:00
Ludovic Courtès 7fd3082522
services: udev: Simplify 'start' method.
* 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-19 18:25:27 +02:00
Ludovic Courtès 81317071fb
services: hpcguix-web: Produce a log file and rotate it.
* 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-10 12:12:52 +02:00
Ludovic Courtès 19de8273ee
services: tailon: Move to (gnu services web).
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-10 12:12:50 +02:00
Ludovic Courtès e80c725db7
services: nginx: 'stop' returns #f.
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-08 23:02:00 +02:00
Ludovic Courtès 985975ae80
services: nginx: Don't read PID file when passed a custom config file.
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-08 23:02:00 +02:00
Ludovic Courtès 7df945656c
services: hpcguix-web: Set SSL_CERT_DIR.
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-09-06 13:49:06 +02:00
Clément Lassieur 9fc2922794
services: nginx: Get the Shepherd to respawn NGINX.
* 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-31 16:35:39 +02:00
Oleg Pykhalov 8490a8346b
services: Add ddclient service.
* 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-30 01:19:47 +03:00
Ludovic Courtès 6772ed1e07
services: openssh: Add 'log-level' field.
* gnu/services/ssh.scm (<openssh-configuration>)[log-level]: New field.
(openssh-config-file): Honor it.
* doc/guix.texi (Networking Services): Document it.
2018-08-28 12:35:02 +02:00
Chris Marusich 3bcb305b98
services: tor: Make it easier to use UNIX sockets.
* 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-28 00:25:05 -07:00
Chris Marusich d973915e48
services: tor: Rename activation procedure.
* gnu/services/networking.scm: Rename the procedure
tor-hidden-service-activation to tor-activation.
2018-08-28 00:14:24 -07:00
Chris Marusich 5dfd80e1c5
services: tor: Add a system test.
* 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-28 00:14:24 -07:00
Chris Marusich 6fb6ac6857
gnu: services: Fix pcscd activation bug.
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-20 21:43:56 -07:00
Clément Lassieur 8d4805ba29
services: cuirass: Put data in /var/lib to avoid removal at boot.
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-16 19:23:29 +02:00
Arun Isaac de30205ba0
gnu: services: Add pcscd service.
* 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-16 02:46:27 +05:30
Clément Lassieur 4ae0607dd8
services: nginx: Use 'invoke' rather than 'system*'.
* gnu/services/web.scm (nginx-shepherd-service): Replace SYSTEM* with INVOKE.
2018-08-13 23:44:34 +02:00
Clément Lassieur ef2dda8edb
services: postgresql: Get the Shepherd to respawn PostgreSQL.
* gnu/services/databases.scm (postgresql-shepherd-service): Change 'start' to
return the PID.
2018-08-13 23:44:26 +02:00
Clément Lassieur fdbca05d78
services: prosody: Get the Shepherd to respawn Prosody.
* gnu/services/messaging.scm (prosody-shepherd-service): Return the PID when
the action is "start".
2018-08-13 18:11:02 +02:00
Clément Lassieur 2ded865665
services: prosody: Use 'invoke' rather than 'system*'.
* gnu/services/messaging.scm (prosody-shepherd-service): Replace SYSTEM* with
INVOKE.
2018-08-13 18:10:58 +02:00
Clément Lassieur efb22b47db
services: cgit: Disable repo booleans having a global counterpart.
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-13 00:29:47 +02:00
Danny Milosavljevic c106d03b88
services: file-system-shepherd-service: Require "udev" service.
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-08-02 15:21:33 +02:00
Eric Brown 5b68239072
services: openssh: Add forwarding options.
* 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-29 18:50:28 +02:00
Julien Lepiller 363c946b36
gnu: services: Fix openssh service start error.
* gnu/services/ssh.scm (openssh-shepherd-service): Require loopback.
2018-07-18 21:17:15 +02:00
Clément Lassieur cd62e5d368
services: cuirass: Remove the LOAD-PATH option.
* gnu/services/cuirass.scm (<cuirass-configuration>,
cuirass-shepherd-service): Remove the LOAD-PATH option.
2018-07-16 22:08:58 +02:00
Julien Lepiller daf823ad27
gnu: services: Export virtlog-configuration.
* gnu/services/virtualization.scm (virtlog-configuration): Export.
2018-07-14 13:19:37 +02:00
Ludovic Courtès 147c5aa5d4
services: mcron: Add 'schedule' action.
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-13 00:08:55 +02:00
Ludovic Courtès 701383081a
services: shepherd: Support custom actions.
* 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-13 00:08:54 +02:00
Gábor Boskovits a33652ee33
services: Add prometheus-node-exporter-service-type.
* 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-09 10:39:06 +02:00
Ludovic Courtès a043b5b81a
services: mingetty: Use '--nohangup'.
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-07-05 00:14:01 +02:00
Oleg Pykhalov 1e3861eb00
services: alsa-service-type: Fix the loading of 'pulse' plugin.
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-25 23:29:46 +08:00
Danny Milosavljevic 812f6bd82d
services: Fix "authentication" service name.
Follow-up to 7f93bbd5aa.

* gnu/services/authentication.scm: Fix module name.
2018-06-23 00:21:23 +02:00
Danny Milosavljevic 7f93bbd5aa
services: Add fingerprint identification service.
* gnu/services/authentication.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi (Miscellaneous Services): Document it.
2018-06-23 00:14:27 +02:00
Ricardo Wurmus a64160d246
services: cuirass: Add description.
* gnu/services/cuirass.scm (cuirass-service-type): Add description.
2018-06-22 12:37:58 +02:00
Ricardo Wurmus 86cd3f9723
services: cups: Add description.
* gnu/services/cups.scm (cups-service-type): Add description.
2018-06-22 12:37:19 +02:00
Ludovic Courtès 378daa8cb6
services: boot: Take gexps instead of monadic gexps.
* 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-20 23:47:08 +02:00
Nils Gillmann 6a18183f4b
services: Fix GPLv3 header in cuirass and pm modules.
* 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-20 12:16:11 -04:00
Ludovic Courtès 6892f0a247
store-copy: 'read-reference-graph' returns a list of records.
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-14 11:16:58 +02:00
Tobias Geerinckx-Rice 0975ca3fd4
services: tor: Mark end of auto-generated configuration block.
* gnu/services/networking.scm (tor-configuration->torrc): Clearly
demarcate auto-generated lines.
2018-06-14 05:21:35 +02:00
Christopher Baines 25e071ead9
services: nginx: Support extra content in the http block.
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-12 21:18:10 +01:00
宋文武 0d4c2d35af
services: dnsmasq-service-type: Add default configuration and description.
* gnu/services/dns.scm (dnsmasq-service-type)
[default-value, description]: New fields.
2018-06-08 23:32:49 +08:00
宋文武 c061eb587c
services: 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.
2018-06-08 23:32:49 +08:00
宋文武 97f6e9133a
services: Add dnsmasq-service-type.
* gnu/services/dns.scm (dnsmasq-service-type): New variable.
(<dnsmasq-configuration>): New record type.
(dnsmasq-shepherd-service): New procedure.
* doc/guix.texi (DNS Services): Document it.
2018-06-05 20:05:31 +08:00
Rouby Pierre-Antoine 93b83eb31e
services: Add hpcguix-web.
* gnu/service/web.scm (<hpcguix-web-configuration>): New record-type.
  (%hpcguix-web-accounts): New variable.
  (%hpcguix-web-activation,hpcguix-web-shepherd-service,
  hpcguix-web-service-type): New procedures.
* gnu/tests/web.scm (run-hpcguix-web-server-test): New procedure.
  (%hpcguix-web-specs, %hpcguix-web-os, %test-hpcguix-web): New variable.
* doc/guix.texi (Web Services): Add 'hpcguix-web'.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2018-06-01 13:50:26 +02:00
Ludovic Courtès 0d56d9c714
services: fstab: Properly handle file system labels.
Fixes a regression introduced in
a5acc17a3c.

Reported by Tobias Geerinckx-Rice <me@tobias.gr>.

* gnu/services/base.scm (file-system->fstab-entry): Pass LABEL, not
FILE-SYSTEM, to 'file-system-label->string'.
2018-05-29 15:09:44 +02:00
Ludovic Courtès a5acc17a3c
file-systems: Remove 'title' field and add <file-system-label>.
The 'title' field was easily overlooked and was an endless source of
confusion.  Now, the value of the 'device' field is self-contained.

* gnu/system/file-systems.scm (<file-system>): Change constructor name
to '%file-system'.
[title]: Remove.
(<file-system-label>): New record type with printer.
(report-deprecation, device-expression)
(process-file-system-declaration, file-system): New macros.
(file-system-title): New procedure.
(file-system->spec, spec->file-system): Adjust to handle
<file-system-label>.
* gnu/system.scm (bootable-kernel-arguments): Add case for
'file-system-label?'.
(read-boot-parameters): Likewise.
(mapped-device-user): Avoid 'file-system-title'.
(fs->boot-device): Remove.
(operating-system-boot-parameters): Use 'file-system-device' instead of
'fs->boot-device'.
(device->sexp): Add case for 'file-system-label?'.
* gnu/bootloader/grub.scm (grub-root-search): Add case for
'file-system-label?'.
* gnu/system/examples/bare-bones.tmpl,
gnu/system/examples/beaglebone-black.tmpl,
gnu/system/examples/lightweight-desktop.tmpl,
gnu/system/examples/vm-image.tmpl: Remove uses of 'title'.
* gnu/system/vm.scm (virtualized-operating-system): Remove uses of
'file-system-title'.
* guix/scripts/system.scm (check-file-system-availability): Likewise,
and adjust fix-it hint.
(check-initrd-modules)[file-system-/dev]: Likewise.
* gnu/build/file-systems.scm (canonicalize-device-spec): Remove 'title'
parameter.
[canonical-title]: Remove.
Match on SPEC's type rather than on CANONICAL-TITLE.
(mount-file-system): Adjust caller.
* gnu/build/linux-boot.scm (boot-system): Interpret ROOT here.
* gnu/services/base.scm (file-system->fstab-entry): Remove use of
'file-system-title'.
* doc/guix.texi (File Systems): Remove documentation of the 'title'
field.  Rewrite documentation of 'device' and document
'file-system-label'.
2018-05-28 13:24:11 +02:00
Ricardo Wurmus a31d7334c2
gnu: mate-desktop-service-type: Add description.
* gnu/services/desktop.scm (mate-desktop-service-type): Add description.
2018-05-24 10:15:51 +02:00
Ricardo Wurmus d1ae687967
gnu: gnome-desktop-service-type: Add description.
* gnu/services/desktop.scm (gnome-desktop-service-type): Add description.
2018-05-24 10:15:27 +02:00
Efraim Flashner d8ac798701
services: connman: Add polkit hooks for connman.
* gnu/services/networking.scm (connman-service-type): Extend the
polkit-service-type with actions from connman.
2018-05-20 21:42:34 +03:00
Efraim Flashner 19f20f4ffe
services: openntpd: Add openntpd to the system profile.
* gnu/services/networking.scm (openntpd-service-type): Extend the
profile-service-type and add openntpd to the system profile.
2018-05-20 21:42:33 +03:00
Efraim Flashner 6a2b906565
services: dbus: Search more directories for '.service' files.
* gnu/services/dbus.scm (system-service-directory): Remove one level of
directories when searching for '.service' files.
2018-05-20 21:42:33 +03:00
Efraim Flashner 9b0e51461d
services: connman: Add default configuration to the connman-service-type.
* gnu/services/networking.scm (connman-service-type)[default-value]: New
field.
2018-05-20 21:42:32 +03:00