Commit graph

70 commits

Author SHA1 Message Date
Ludovic Courtès
5a3fb30653
services: cuirass: Add ‘log-expiry’ option for ‘remote-server’.
* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>)[log-expiry]:
New field.
(cuirass-shepherd-service): Honor it.
* doc/guix.texi (Continuous Integration): Document it.
2023-10-12 22:14:34 +02:00
Ludovic Courtès
3b71b2dca7
gnu: cuirass: Update to 797b26a.
* gnu/packages/ci.scm (cuirass): Update to 797b26a.
* gnu/services/cuirass.scm (cuirass-activation): Create /var/run/cuirass.
2023-10-02 11:07:14 +02:00
Ludovic Courtès
ac682963a3
service: cuirass: Rotate remote server logs.
* gnu/services/cuirass.scm (cuirass-log-rotations): Add the remote
server log when it is used.
2022-12-07 23:36:20 +01:00
Ludovic Courtès
ce1f5ff6cf
services: cuirass-remote-worker: Rotate logs.
* gnu/services/cuirass.scm (cuirass-remote-worker-log-rotations): New
procedure.
(cuirass-remote-worker-service-type): Use it.
2022-12-07 23:36:19 +01:00
Ludovic Courtès
7c1161dba4
records: 'match-record' checks fields at macro-expansion time.
This allows 'match-record' to be more efficient (field offsets are
computed at compilation time) and to report unknown fields at
macro-expansion time.

* guix/records.scm (map-fields): New macro.
(define-record-type*)[rtd-identifier]: New procedure.
Define TYPE as a macro and use a separate identifier for the RTD.
(lookup-field, match-record-inner): New macros.
(match-record): Rewrite in terms of 'match-error-inner'.
* tests/records.scm ("match-record, simple")
("match-record, unknown field"): New tests.
* gnu/services/cuirass.scm (cuirass-shepherd-service): Rename 'log-file'
local variable to 'main-log-file'.
* gnu/services/getmail.scm (serialize-getmail-configuration-file): Move
after <getmail-configuration-file> definition.
2022-12-02 00:02:12 +01:00
Ludovic Courtès
7d0ebc467f
services: rottlog: More convenient default options for <log-rotation>.
* gnu/services/admin.scm (%default-log-rotation-options): New variable.
(%default-rotations): Use it.
* gnu/services/cuirass.scm (cuirass-log-rotations): Likewise.
* doc/guix.texi (Log Rotation): Adjust accordingly.
2022-08-01 00:02:04 +02:00
Maxim Cournoyer
12566aabe7
services: cuirass: Also rotate the web log.
* gnu/services/cuirass.scm (cuirass-log-rotations): Add the web log to the
list of rotated files.
2022-02-17 13:39:02 -05:00
Mathieu Othacehe
99b2f51dc2
services: cuirass: Remove the default database host.
* gnu/services/cuirass.scm (%cuirass-default-database): Remove the default
host.
2021-12-15 14:41:42 +01:00
Tobias Geerinckx-Rice
892f1b7273
services: Accept <inferior-package>s in lieu of <package>s.
* gnu/services/authentication.scm (fprintd-configuration)
(nslcd-configuration): Substitute file-like objects for package ones.
* gnu/services/cgit.scm (cgit-configuration, opaque-cgit-configuration):
Likewise.
* gnu/services/cups.scm (package-list?, cups-configuration): Likewise.
* gnu/services/dns.scm (verify-knot-configuration)
(ddclient-configuration): Likewise.
* gnu/services/docker.scm (docker-configuration): Likewise.
* gnu/services/file-sharing.scm (transmission-daemon-configuration): Likewise.
* gnu/services/getmail.scm (getmail-configuration): Likewise.
* gnu/services/mail.scm (dovecot-configuration)
(opaque-dovecot-configuration): Likewise.
* gnu/services/messaging.scm (prosody-configuration)
(opaque-prosody-configuration): Likewise.
* gnu/services/monitoring.scm (zabbix-server-configuration)
(zabbix-agent-configuration): Likewise.
* gnu/services/networking.scm (opendht-configuration): Likewise.
* gnu/services/pm.scm (tlp-configuration): Likewise.
* gnu/services/telephony.scm (jami-configuration): Likewise.
* gnu/services/virtualization.scm (libvirt-configuration)
(qemu-guest-agent-configuration): Likewise.
* gnu/services/vpn.scm (openvpn-client-configuration): Likewise.
2021-11-30 01:08:55 +01:00
Mathieu Othacehe
cfd2442488
services: cuirass: Reverse the no-publish logic.
This is a follow-up of d128c6fd33.

* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>)
[no-publish?]: Rename it to ...
[publish?]: ... this new field.
(cuirass-shepherd-service): Adapt it.
* doc/guix.texi (Cuirass remote building): Document it.
2021-08-13 13:46:21 +02:00
Mathieu Othacehe
8221cf8349
services: cuirass: Fix the substitute-urls argument.
This is a follow-up of: 23b5b168ae.

* gnu/services/cuirass.scm (cuirass-remote-worker-shepherd-service): Fix it.
2021-08-12 14:58:18 +02:00
Mathieu Othacehe
23b5b168ae
services: cuirass: Add a substitute-urls argument.
* gnu/services/cuirass.scm (<cuirass-remote-worker-configuration>): Add a
substitute-urls field.
(cuirass-remote-worker-shepherd-service): Honor it.
* doc/guix.texi (Cuirass remote building): Document it.
2021-08-12 14:31:54 +02:00
Mathieu Othacehe
d128c6fd33
services: cuirass: Add a no-publish argument.
* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>): Add a
no-publish? field.
(cuirass-shepherd-service): Honor it.
* doc/guix.texi (Cuirass remote building): Document it.
2021-08-12 12:59:55 +02:00
Ludovic Courtès
0db906c52c
services: cuirass: Do not export record type descriptors.
* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>)
(<cuirass-configuration>, <cuirass-remote-worker-configuration>): Do not
export.
2021-06-01 23:26:07 +02:00
Ludovic Courtès
ec9307ea07
services: cuirass: Create the profile and GC root directory.
* gnu/services/cuirass.scm (cuirass-activation): Create
/var/guix/profiles/per-user/cuirass/cuirass or similar.
2021-06-01 23:26:07 +02:00
Mathieu Othacehe
3f3d66377c
services: cuirass: Use "/tmp" database host.
This is a follow-up of c311147bd1.

* gnu/services/cuirass.scm (%cuirass-default-database): Use "/tmp" database
host.
2021-04-14 16:09:35 +02:00
Mathieu Othacehe
3c9a353849
services: cuirass: Set default port values.
* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>,
<cuirass-configuration>): Set default port values.
2021-03-23 20:30:49 +01:00
Mathieu Othacehe
eda735fb61
services: cuirass: Adapt to Cuirass 1.0.
* gnu/services/cuirass.scm (cuirass-shepherd-service,
cuirass-remote-worker-shepherd-service): Adapt to Cuirass 1.0.
2021-03-23 16:47:48 +01:00
Mathieu Othacehe
6c883d0f1d
services: cuirass: Remove simple cuirass configuration.
The Cuirass configuration has been simplified so that this is no longer
needed.

* gnu/services/cuirass.scm (<build-manifest>, <simple-cuirass-configuration>,
simple-cuirass-configuration->specs): Remove them.
2021-03-10 09:05:02 +01:00
Mathieu Othacehe
0be2474d42
services: cuirass: Do not create the database directory.
Fixes: <https://issues.guix.gnu.org/46683>.

* gnu/services/cuirass.scm (cuirass-activation): Since the PostgreSQL switch,
it is no longer needed to create the database directory.
2021-03-10 08:49:48 +01:00
Mathieu Othacehe
f2b10e1b7f
services: cuirass: Fix services requirements.
* gnu/services/cuirass.scm (cuirass-shepherd-service): Add "postgres-roles" to
cuirass requirements. Set cuirass-web requirements to cuirass only. Remove
"guix-daemon" and "networking" from cuirass-remote-server requirements as are
already required by cuirass.
2021-02-23 11:22:22 +01:00
Mathieu Othacehe
bebcf97600
services: cuirass: Improve simple-cuirass-services.
Instead of returning multiple services in simple-cuirass-services, rely on the
instantiate-missing-services procedure to instantiate postgresql and
postgresql-role-service-type when missing.

Turn simple-cuirass-services procedure into
simple-cuirass-configuration->specs, that takes a simple-cuirass-configuration
record and returns a Cuirass specification.

Suggested-by: Ludovic Courtès <ludo@gnu.org>

* gnu/services/cuirass.scm (%default-cuirass-config): Remove it.
(simple-cuirass-services): Rename it to ...
(simple-cuirass-configuration->specs): ... this procedure.
* gnu/tests/cuirass.scm (cuirass-services): Remove postgresql and
postgresql-role services that are automatically instantiated.
(simple-cuirass-service): New variable.
(%cuirass-simple-test): Adapt it to use simple-cuirass-configuration->specs
instead of simple-cuirass-services.
* doc/guix.texi (Simple Cuirass): Update it.
2021-02-23 09:45:09 +01:00
Mathieu Othacehe
3bcfd41620
services: cuirass: Instantiate postgresql service.
* gnu/services/cuirass.scm (cuirass-service-type): Instantiate postgresql
service when missing.
2021-02-22 16:24:34 +01:00
Mathieu Othacehe
1443e2dd98
services: cuirass: Add parameters support.
* gnu/services/cuirass.scm (<cuirass-configuration>)[parameters]: New field.
[zabbix-uri]: Remove it.
(cuirass-shepherd-service): Honor it.
2021-02-22 10:23:04 +01:00
Mathieu Othacehe
e9bf511082
services: cuirass: Add "simple-cuirass-services".
* gnu/services/cuirass.scm (<build-manifest>,
<simple-cuirass-configuration>): New records.
(build-manifest, build-manifest?, simple-cuirass-configuration,
simple-cuirass-configuration?, simple-cuirass-services): New procedures.
(%default-cuirass-config): New variable.
* gnu/tests/cuirass.scm (%cuirass-simple-test): New variable.
* doc/guix.texi (Continuous Integration): Document it.
2021-02-19 20:10:09 +01:00
Mathieu Othacehe
66c31d5072
services: cuirass: Add server argument for the remote-worker.
* gnu/services/cuirass.scm (<cuirass-remote-worker-configuration>)[server]:
New field.
(cuirass-remote-worker-shepherd-service): Honor it.
2021-02-12 14:57:47 +01:00
Mathieu Othacehe
91911b9382
services: cuirass: Move zabbix argument to the web process.
This is a follow-up of 703e5c92ee.

* gnu/services/cuirass.scm (cuirass-shepherd-service): Move "zabbix-uri"
argument to the web process.
2021-02-09 09:20:55 +01:00
Mathieu Othacehe
703e5c92ee
services: cuirass: Add Zabbix support.
* gnu/services/cuirass.scm (<cuirass-configuration>)[zabbix-uri]: New field.
(cuirass-shepherd-service): Honor it.
2021-02-08 13:44:06 +01:00
Mathieu Othacehe
5ba7e828ad
services: cuirass: Create remote-server cache directory.
* gnu/services/cuirass.scm (cuirass-activation): Create remote-server cache
directory if needed.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-28 16:22:56 +01:00
Mathieu Othacehe
8d8bbe7c63
services: cuirass: Fix syntax error.
This is a follow-up of 189e62fa69.

* gnu/services/cuirass.scm (<cuirass-remote-server-configuration>): Fix
syntax.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-28 16:22:55 +01:00
Mathieu Othacehe
eff80711f3
services: cuirass: Add log-file support.
* gnu/services/cuirass.scm (cuirass-remote-worker-shepherd-service): Add
log-file support.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-28 15:53:03 +01:00
Mathieu Othacehe
eb9adede34
services: cuirass: Fix workers argument.
* gnu/services/cuirass.scm (cuirass-remote-worker-shepherd-service): Fix
workers arguments.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-28 15:27:55 +01:00
Mathieu Othacehe
a19b6889ad
services: cuirass: Add systems argument.
* gnu/services/cuirass.scm (<cuirass-remote-worker-configuration>)[systems]:
New field.
(cuirass-remote-worker-shepherd-service): Honor it.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-01-28 14:04:52 +01:00
Mathieu Othacehe
189e62fa69
services: cuirass: Add remote build support. 2021-01-28 12:57:27 +01:00
Mathieu Othacehe
0f01493dc8
service: cuirass: Update it. 2021-01-28 12:57:27 +01:00
Mathieu Othacehe
770fb659a6
services: cuirass: Add queue-size option.
* gnu/services/cuirass.scm (<cuirass-configuration>): Add "queue-size" field.
(cuirass-shepherd-service): Honor it.
* doc/guix.texi (Continuous Integration): Document it.
2020-12-08 11:56:26 +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
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
Christopher Baines
af96c1e0e4
services: cuirass: Allow passing extra command line options.
This is so that the options supported by the service configuration don't have
to always be changed. Generally though all options should be explicitly
supported and documented, so this is mostly to facilitate experimentation.

* gnu/services/cuirass.scm (<cuirass-configuration>): Add an extra-options
field.
(cuirass-shepherd-service): Pass the extra options to the shepherd servvices.
* doc/guix.texi (Continuous Integration): Document it.
2020-03-08 23:46:11 +00:00
Ludovic Courtès
6a7c4636d4
Adjust module autoloads.
In Guile < 2.9.7, autoloading a module would give you access to all its
bindings.  In future versions, autoloading a module gives access only to
the listed bindings, as per #:select (see <https://bugs.gnu.org/38895>).

This commit adjusts autoloads to the new semantics, allowing Guix to be
built with Guile 2.9.7/2.9.8.

* guix/build/download.scm <top level>: Remove call to 'module-autoload!'.
(load-gnutls): New procedure.
(tls-wrap): Call it.
* guix/git.scm <top level>: Remove call to 'module-autoload!'.
(load-git-submodules): New procedure.
(update-submodules): Call it instead of 'resolve-interface'.
* gnu/bootloader/grub.scm: Replace #:autoload with #:use-module.
* gnu/packages.scm: Likewise.
* gnu/packages/ssh.scm: Likewise.
* gnu/packages/tex.scm: Likewise.
* gnu/services/cuirass.scm: Likewise.
* gnu/services/mcron.scm: Likewise.
* guix/lint.scm: Augment list of bindings in #:autoload.
* guix/scripts/build.scm: Likewise.
* guix/scripts/gc.scm: Likewise.
* guix/scripts/pack.scm: Likewise.
* guix/scripts/publish.scm: Likewise.
* guix/scripts/pull.scm: Likewise.
* guix/utils.scm: Remove unnecessary #:autoload clauses; replace one
of them with #:use-module.
2020-01-06 16:31:54 +01:00
Ludovic Courtès
b40f4a5995
services: cuirass: Create /var/log/cuirass during activation.
* gnu/services/cuirass.scm (cuirass-activation): Create "/var/log/cuirass".
2019-10-23 21:48:51 +02:00
Ludovic Courtès
46e552cb0f
services: cuirass: Remove unneeded conditional.
* gnu/services/cuirass.scm (cuirass-shepherd-service): Remove unneeded 'and'.
2019-09-23 23:41:19 +02:00
Ricardo Wurmus
3e7a62e2e4
services: cuirass: Log web interface to separate file.
* gnu/services/cuirass.scm (<cuirass-configuration>): Add web-log-file field.
(cuirass-shepherd-service): Read it and use it.
* doc/guix.texi (Continuous Integration): Document it.
2019-08-29 08:06:54 +02:00
Ricardo Wurmus
159b5e1f8a
services: cuirass: Split into two separate services.
* gnu/services/cuirass.scm (cuirass-shepherd-service): Return two shepherd
services, one for the web interface, another for building packages.
2019-08-26 22:21:10 +02:00
Ludovic Courtès
56a93cb975
services: Use 'file-append' for user account shells.
* gnu/services/cuirass.scm (cuirass-account): Use 'file-append' instead
of #~(string-append #$shadow "/sbin/nologin").
* gnu/services/monitoring.scm (zabbix-server-account): Likewise.
(zabbix-agent-account): Likewise.
* gnu/services/rsync.scm (rsync-account): Likewise.
* gnu/services/ssh.scm (%openssh-accounts): Likewise.
2019-03-04 15:22:58 +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
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
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