Commit graph

733 commits

Author SHA1 Message Date
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
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
Efraim Flashner
e9d271ed9a
services: Add Enlightenment desktop service.
* gnu/services/desktop.scm (<enlightenment-desktop-configuration>,
enlightenment-desktop-service-type): New variables.
* doc/guix.texi (Desktop Services): Document the service.
* NEWS: Mention it.
2018-05-20 21:42:32 +03:00
Christopher Baines
6ee3f3dec7
services: cgit: Make project-list permit a file-object.
Instead of having the service manage the list, it's useful to be able to point
this at an existing file, for example, when using cgit together with gitolite.

* gnu/services/cgit.scm (project-list?): New procedure.
(serialize-project-list): Handle file-object values.
(<cgit-configuration>): Change the predicate for project-list to allow lists
and file-objects.
2018-05-18 17:24:39 +01:00
Christopher Baines
c3343d62f6
services: cgit: Improve handling of extra-options.
* gnu/services/cgit.scm (serialize-cgit-configuration): Add the extra options,
one per line, before the scan-path, as this makes it possible to use the
extra-options to affect the global behaviour for repositories.
(serialize-extra-options): New procedure.
2018-05-18 17:24:39 +01:00
Arun Isaac
f93c7a8979
gnu: services: Fix wesnothd-configuration? symbol export.
* gnu/services/games.scm: Export wesnothd-configuration?, not the
non-existent wesnoth-configuration?.
2018-05-14 20:15:28 +05:30
Oleg Pykhalov
ef6a484475
services: desktop: Add alsa-service-type.
* gnu/services/desktop.scm (%desktop-services): Add 'alsa-service-type'.
2018-05-11 12:15:42 +03:00
Pierre-Antoine Rouby
36d619e85d
services: bitlbee: Add plugins.
* doc/guix.texi (Bitlbee Service): Add plugins.
* gnu/services/messaging.scm (<bitlbee-configuration>): Add plugins argument.
  (bitlbee-shepherd-service): Update config file.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-05-11 00:15:59 +02:00
Oleg Pykhalov
8cd1e8e849
gnu: Add sound service.
* gnu/services/sound.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add this.
* doc/guix.texi (Sound Services): New chapter.
2018-05-02 15:11:13 +03:00
Clément Lassieur
cb7c80f67d
services: prosody: Add a default value to the prosody-service-type.
* gnu/services/messaging.scm (prosody-service-type)[default-value]: New field.
2018-05-01 00:25:31 +02:00
Clément Lassieur
9c6a461cf0
services: prosody: Add a description to the prosody-service-type.
* gnu/services/messaging.scm (prosody-service-type)[description]: New field.
2018-05-01 00:25:26 +02:00
Ludovic Courtès
5986e94118
services: gpm: Provide a default value and document 'gpm-service-type'.
* gnu/services/base.scm (%default-gpm-options): New variable.
(<gpm-configuration>)[gpm, options]: Add default values.
(gpm-service-type)[default-value]: New field.
(gpm-service): Use %DEFAULT-GPM-OPTIONS and mark as deprecated.
* doc/guix.texi (Base Services): Document 'gpm-service-type' and
'gpm-configuration'.  Remove 'gpm-service'.
2018-04-30 14:22:43 +02:00
Danny Milosavljevic
70ab130a49
services: Re-export static-networking-service, static-networking-service-type.
* gnu/services/networking.scm: Re-export static-networking-service,
static-networking-service-type.
2018-04-30 10:43:03 +02:00
Danny Milosavljevic
d94e81dbfc
services: Add modem-manager-service-type.
* gnu/services/networking.scm (modem-manager-service-type): New variable.
(<modem-manager-configuration>): New variable.
(modem-manager-configuration): New procedure.
(modem-manager-configuration?): New procedure.
* doc/guix.texi (Networking Services): Document it.
* gnu/tests/networking.scm: Import (gnu services base).
2018-04-30 03:47:16 +02:00
Danny Milosavljevic
c9436025a9
services: Move static-networking to (gnu services base).
* gnu/services/networking.scm (static-networking, static-networking?,
static-networking-interface, static-networking-ip, static-networking-netmask,
static-networking-gateway, static-networking-requirement,
static-networking-service, static-networking-service-type): Move to...
* gnu/services/base.scm: ...here.
2018-04-30 03:47:14 +02:00
Chris Marusich
a654d3debd
services: Set default <dhcpd-configuration> version to "4".
* gnu/services/networking.scm (<dhcpd-configuration>) <version>: Set the
default to "4" instead of "6"; both our manual and upstream says the default
should be "4".
2018-04-27 01:39:28 -07:00
Chris Marusich
f1104d9009
services: Add dhcpd-service-type and <dhcpd-configuration>.
* doc/guix.texi (Networking Services): Document it.
* gnu/services/networking.scm (dhcpd-service-type): Add it.
(dhcpd-configuration, dhcpd-configuration?): Add it.
(dhcpd-configuration-package): Add it.
(dhcpd-configuration-config-file): Add it.
(dhcpd-configuration-version): Add it.
(dhcpd-configuration-run-directory): Add it.
(dhcpd-configuration-lease-file): Add it.
(dhcpd-configuration-pid-file): Add it.
(dhcpd-configuration-interfaces): Add it.
* gnu/tests/networking.scm (minimal-dhcpd-v4-config-file)
(dhcpd-v4-configuration, %dhcpd-os, run-dhcpd-test, %test-dhcpd): New
variables.
2018-04-21 23:46:30 -07:00
Clément Lassieur
e5fe544eaa
services: cgit: Add support for project-list.
* doc/guix.texi (Version Control Services): Update accordingly.
* gnu/services/cgit.scm (cgit-configuration)[project-list]: New field.
(serialize-project-list): New procedure that uses PLAIN-FILE to generate a
file from the string list given by the user as input.
(serialize-cgit-configuration): Make sure to serialize 'project-list' before
'repostory-directory'.
2018-04-11 21:23:59 +02:00
Clément Lassieur
80b76b9350
services: cgit: Enforce serialization order.
* gnu/services/cgit.scm (serialize-cgit-configuration): New procedure that
serializes fields with a precise order.
(cgit-activation): Replace the generic SERIALIZE-CONFIGURATION with
SERIALIZE-CGIT-CONFIGURATION.
2018-04-11 21:23:59 +02:00
Clément Lassieur
ad05e96e14
services: cgit: Add support for file-like objects.
* doc/guix.texi (Version Control Services): Update accordingly.
* gnu/services/cgit.scm (serialize-field, serialize-string, serialize-boolean,
serialize-integer, serialize-repository-cgit-configuration-list,
serialize-nginx-server-configuration-list, serialize-repo-field,
serialize-repo-boolean, serialize-repo-integer, serialize-module-link-path,
serialize-repository-directory, serialize-mimetype-alist): Return strings or
string-valued gexps and stop printing.
(repository-cgit-configuration)[source-filter, about-filter, commit-filter,
logo, owner-filter], (cgit-configuration)[auth-filter, commit-filter, css,
email-filter, favicon, include, logo, owner-filter, mimetype-file, readme,
source-filter]: Replace STRING with FILE-OBJECT.
(file-object?, serialize-file-object, repo-file-object?,
serialize-repo-file-object): New procedures.
(cgit-activation): Use SERIALIZE-CONFIGURATION's return value with
MIXED-TEXT-FILE instead of using its output with PLAIN-FILE.
2018-04-11 21:23:59 +02:00
Clément Lassieur
36027f05e9
services: cgit: Simplify 'serialize-module-link-path'.
* gnu/services/cgit.scm (serialize-module-link-path): Remove STRING-DROP-RIGHT
and UGLIFY-FIELD-NAME.
2018-04-11 21:23:59 +02:00
Clément Lassieur
dde99782e0
services: cgit: Simplify 'uglify-field-name'.
* gnu/services/cgit.scm (uglify-field-name): Remove STRING-JOIN and
STRING-SPLIT.
2018-04-11 21:23:58 +02:00
Thorsten Wilms
cd73071984
gnu: Add x11-socket-directory-service.
* gnu/services/desktop.scm (x11-socket-directory-service): New
variable.
(%desktop-services): Add it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-04-04 14:39:39 +02:00
Clément Lassieur
f72662968e
services: certbot: Don't try to renew certificates on activation.
Because it takes too much time and it requires networking.

Thanks to Mathieu Othacehe for suggesting this.

* gnu/services/certbot.scm (certbot-activation): Do not run the renewal
command, copy its path to a fixed location, display it, so that the user can
run the command when they want.
2018-04-03 16:21:31 +02:00
Ludovic Courtès
ca5b73114f
gnu: shepherd: Update to 0.4.0.
* gnu/packages/admin.scm (shepherd): Update to 0.4.0.  Remove patches.
* gnu/packages/patches/shepherd-close-fds.patch,
gnu/packages/patches/shepherd-herd-status-sorted.patch: Remove.
* gnu/local.mk (dist_patch_DATA): Remove them.
* gnu/services/admin.scm (%default-rotations): Remove
/var/log/shepherd.log.
2018-03-22 11:43:30 +01:00
Ludovic Courtès
7fe1432a2e
services: rottlog: Add /var/log/debug to '%default-rotations'.
* gnu/services/admin.scm (%rotated-files): Add "/var/log/debug".
2018-03-22 11:43:29 +01:00
ng0
4a78fd4617
Correct name and Email for ng0.
* .mailmap: Correct name and Email for ng0.
* Makefile.am, doc/guix.texi, etc/completion/fish/guix.fish
gnu/packages/accessibility.scm, gnu/packages/admin.scm,
gnu/packages/audio.scm, gnu/packages/autotools.scm,
gnu/packages/cdrom.scm, gnu/packages/check.scm,
gnu/packages/cinnamon.scm, gnu/packages/compression.scm,
gnu/packages/crypto.scm, gnu/packages/databases.scm,
gnu/packages/django.scm, gnu/packages/dns.scm,
gnu/packages/emacs.scm, gnu/packages/enlightenment.scm,
gnu/packages/fonts.scm, gnu/packages/fontutils.scm,
gnu/packages/forth.scm, gnu/packages/fvwm.scm,
gnu/packages/games.scm, gnu/packages/gl.scm,
gnu/packages/gnome.scm, gnu/packages/gnunet.scm,
gnu/packages/gnupg.scm, gnu/packages/gnuzilla.scm,
gnu/packages/gtk.scm, gnu/packages/guile-wm.scm,
gnu/packages/guile.scm, gnu/packages/haskell-check.scm,
gnu/packages/haskell-crypto.scm, gnu/packages/haskell.scm,
gnu/packages/image-viewers.scm, gnu/packages/image.scm,
gnu/packages/irc.scm, gnu/packages/language.scm,
gnu/packages/libcanberra.scm, gnu/packages/linux.scm,
gnu/packages/lisp.scm, gnu/packages/lolcode.scm,
gnu/packages/lxde.scm, gnu/packages/lxqt.scm,
gnu/packages/mail.scm, gnu/packages/markup.scm,
gnu/packages/mate.scm, gnu/packages/maths.scm,
gnu/packages/mc.scm, gnu/packages/messaging.scm,
gnu/packages/music.scm, gnu/packages/ncurses.scm,
gnu/packages/networking.scm, gnu/packages/nickle.scm,
gnu/packages/openbox.scm, gnu/packages/pdf.scm,
gnu/packages/perl-check.scm, gnu/packages/perl.scm,
gnu/packages/python-crypto.scm, gnu/packages/python-web.scm,
gnu/packages/python.scm, gnu/packages/qt.scm,
gnu/packages/ruby.scm, gnu/packages/rust.scm,
gnu/packages/scheme.scm, gnu/packages/serialization.scm,
gnu/packages/shells.scm, gnu/packages/ssh.scm,
gnu/packages/suckless.scm, gnu/packages/tbb.scm,
gnu/packages/telephony.scm, gnu/packages/text-editors.scm,
gnu/packages/textutils.scm, gnu/packages/time.scm,
gnu/packages/tls.scm, gnu/packages/tor.scm,
gnu/packages/version-control.scm, gnu/packages/video.scm,
gnu/packages/vim.scm, gnu/packages/web.scm,
gnu/packages/wm.scm, gnu/packages/xdisorg.scm,
gnu/packages/xfce.scm, gnu/packages/xml.scm,
gnu/packages/xorg.scm, gnu/services/certbot.scm,
gnu/services/desktop.scm, gnu/services/version-control.scm,
gnu/services/web.scm, guix/import/hackage.scm,
guix/licenses.scm: Likewise.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2018-03-20 17:17:58 +01:00
Ludovic Courtès
cfbf6de18c
gnu: mcron: Update to 1.1 and deprecate "mcron2".
* gnu/packages/guile.scm (mcron): Update to 1.1.
[native-inputs]: Add TZDATA-FOR-TESTS.
[arguments]: New field.
(mcron2): Define using 'deprecated-package'.
* gnu/services/mcron.scm: Replace 'mcron2' with 'mcron'.
* doc/guix.texi (Scheduled Job Execution): Likewise.
* gnu/tests/base.scm (%mcron-os): Remove comment about mcron2.
2018-03-19 23:19:49 +01:00
Martin Castillo
985934cb21
services: openssh: Add 'accepted-environment' field.
* gnu/services/ssh.scm (<openssh-configuration>)[accepted-environment]: New field.
(openssh-config-file): Honor 'acccepted-environment'.
* doc/guix.texi (Networking Services): Document it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2018-03-18 00:02:05 +01:00
Christopher Baines
533808383f
services: databases: Change quote' to single-quote.
In the postgresql-config-file gexp compiler.

* gnu/services/databases.scm (postgresql-config-file-compiler): Change quote'
to single-quote.
2018-03-17 20:31:37 +00:00
Ludovic Courtès
bb3062ad62
services: Add 'virtual-terminal'.
Fixes <https://bugs.gnu.org/30505>.
Suggested by Danny Milosavljevic <dannym@scratchpost.org>.

* gnu/services/base.scm (unicode-start): Remove.
(virtual-terminal-service-type): New variable.
(console-font-shepherd-services): Remove 'modules'; remove call to
'unicode-start'.  Add 'virtual-terminal' to 'requirement'.
(mingetty-shepherd-service, kmscon-service-type): Likewise.
(%base-services): Add 'virtual-terminal-service-type'.
* gnu/system/install.scm (%installation-services): Likewise.
2018-03-15 11:37:18 +01:00
Ludovic Courtès
88cd7bbd3d
services: 'shepherd-service-type' now accepts a default value.
* gnu/services/shepherd.scm (shepherd-service-type): Add a second form
with an additional 'default' parameter.
2018-03-15 11:34:57 +01:00
Christopher Baines
488ea71ed8
services: databases: Add postgresql-configuration record exports.
* gnu/services/databases.scm: Export the record type, and all the field
accessors.
2018-03-10 16:20:55 +00:00
Christopher Baines
936e7a5245
services: Rework the PostgreSQL config file to use a record type.
For the default config file representation. This makes it possible to more
easily change the configuration file, and have dynamic content.

* gnu/services/databases.scm (<postgresql-config-file>): New record type.
(%default-postgres-config): Remove this, it's been replaced by the
configuration file.
(<postgresql-configuration>): Alter the default for the config file field.
(postgresql-service): Alter the default value for the config-file parameter.
2018-03-10 16:20:52 +00:00
Oleg Pykhalov
6310dff1dc
services: dovecot: Copy dovecot.conf to /etc/dovecot.
Many Dovecot utilities compiled with assumption of ‘/etc/dovecot/dovecot.conf’
existence.

* gnu/services/mail.scm (dovecot-shepherd-service): Move config generation.
Invoke ‘dovecot’ without ‘-c’ flag.
(%dovecot-activation): Copy ‘dovecot.conf’ to ‘/etc/dovecot’.
(dovecot-service-type): Make ‘%dovecot-activation’ non-constant.
2018-03-09 17:02:31 +03:00
Danny Milosavljevic
c32e3ddedd
services: agetty: Call default-serial-port only when starting.
* gnu/services/base.scm (agetty-shepherd-service): Call default-serial-port
only when starting.
2018-03-08 13:16:30 +01:00
Ludovic Courtès
6c4458172d
services: file-systems: Include 'user-file-systems' service.
Previously the KNOWN-FS value used in 'essential-services' would be
incomplete: it would lack all the file systems provided by services that
extend 'file-system-service-type' (/sys/fs/cgroup,
/proc/sys/fs/binfmt_misc, etc.)  Consequently, upon shutdown,
'user-processes' would unmount these file systems before their
corresponding service had been stopped; when their corresponding (e.g.,
'file-system-/proc/sys/fs/binfmt_misc') was stopped, its 'umount' call
would fail.

This was harmless in practice, but this patch makes sure things work as
intended and file systems are unmounted in the right order.

* gnu/services/base.scm (file-system-shepherd-services): Instantiate
'user-file-systems' Shepherd service from here.
(user-unmount-service-type, user-unmount-service): Remove.
* gnu/system.scm (essential-services): Remove call to 'user-unmount-service'.
* gnu/system/install.scm (cow-store-service-type): Adjust comment.
2018-03-07 11:22:42 +01:00