services: oci: Fix OCI backed Shepherd services HOME variable.
This patch allows containers run with podman to run each with their own
specific user.
* doc/guix.texi: Fix wrong type for oci-container-configuration's
shepherd-dependencies field.
* gnu/services/containers.scm (oci-container-shepherd-service): In case
a specific container is not run through the user provisioned by the
oci-service-type, its environment is different from the globally
provisioned one and must be recomputed.
Change-Id: I5d636ad0616ced0af124002de4403da3067334de
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
doc: Remove broken link.
* doc/contributing.texi: Delete sentence with broken link.
Change-Id: I2f0b67e1fa70750414e30d7cd474e1d4d077d9e8
gnu: Remove Tailon services and documentation.
The tailon package was removed in 63023deaf96bd0d90aba262b194bf1445ec5a0b6,
but the associated service and documentation weren’t, leading to `guix pull`
breaking.
Fixes guix/guix#2689.
* doc/guix.texi: Remove Tailon documentation.
* gnu/services/web.scm (tailon-service-type): Delete variable.
(tailon-configuration-file): Delete variable.
(tailon-configuration-file?): Delete variable.
(tailon-configuration-file-files): Delete variable.
(tailon-configuration-file-bind): Delete variable.
(tailon-configuration-file-relative-root): Delete variable.
(tailon-configuration-file-allow-transfers?): Delete variable.
(tailon-configuration-file-follow-names?): Delete variable.
(tailon-configuration-file-tail-lines): Delete variable.
(tailon-configuration-file-allowed-commands): Delete variable.
(tailon-configuration-file-debug?): Delete variable.
(tailon-configuration-file-http-auth): Delete variable.
(tailon-configuration-file-users): Delete variable
(tailon-configuration): Delete variable.
(tailon-configuration?): Delete variable.
(tailon-configuration-config-file): Delete variable.
(tailon-configuration-package): Delete variable.
* gnu/tests/web.scm (%test-tailon): Delete variable.
Change-Id: I3b507df8233b0440baa6a2bce4604b5813cb3bb0
home: services: home-sway-service-type: Enable extensions.
* gnu/home/services/sway.scm (%empty-sway-configuration): New value.
(sway-combine): New procedure.
(sway-compose): New procedure.
(sway-extend): New procedure.
(home-sway-service-type) [compose/extend]: New fields.
* doc/guix.texi (Sway window manager): Document this.
Change-Id: I548a18a6a273380be90c9b5b365f65a93cc02416
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
home: services: Support options for bindings in sway-service-type.
* gnu/home/services/sway.scm (make-alist-predicate): Add an optional argument.
(bindings?): Remove procedure.
(keybinding-options?): New procedures.
(codebinding-options?): New procedures.
(gesture-options?): New procedures.
(mouse-bindings?): Allow to pass options to mouse-bindings.
(sway-configuration) [keybindings]: Allow to pass options to key-bindings.
[gestures]: Allow to pass options to gesture-bindings.
(sway-mode) [keybindings]: Allow to pass options to key-bindings.
(serialize-binding): Support options.
(serialize-mouse-binding): Support options.
(serialize-keybinding): Support options.
(serialize-gesture): Support options.
(serialize-variable): Inline previous definition.
* doc/guix.texi (Sway window manager): Document this.
Change-Id: Icf210aca4a9b44adc0baead7430637f6fcda17e5
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
services: cuirass: Add more configuration fields.
* gnu/services/cuirass.scm (<cuirass-configuration>)[parallel-evaluations]
[evaluation-ttl, web-threads]: New fields.
(cuirass-shepherd-service): Honor them.
* doc/guix.texi (Continuous Integration): Document them.
Change-Id: I33485b978d2a37ee93230b1d425731e6cb3b80e4
doc: Remove misplaced ‘guix refresh’ example.
* doc/guix.texi (Invoking guix refresh): Remove broken and out-of-place
‘trytond-party’ example.
Change-Id: Iab2413774eb611e7fab2519001f484ce29010599
doc: Restructure 'guix refresh' section.
Previously, there were options described in the running text (in
particular --recursive), and vice-versa, there was normal text
interleaved inbetween the options. Both hid information, as it was
unclear where an option description would change into running text.
Furthermore, tables were closed and opened arbitrarily, making the
section hard to read.
Can probably be improved further.
* doc/guix.texi (Invoking guix refresh): Restructured text.
Change-Id: I517d0dc43a9addbaccf5e5e8c9fadfa30fe378db
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
docs: Fix module reference in guix-home-service-type.
* doc/guix.texi (Guix Services): Use (gnu services guix) module instead of the
outdated (gnu home) module in the example.
Closes #2369.
Change-Id: I19eeeffbaeb150db68510c90b0f7c8ef23bdfeb6
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
nls: Update translations.
* po/doc/guix-cookbook.zh_CN.po: New file.
* po/doc/local.mk: Add 'zh_CN' cookbook.
* po/packages/ru.po: New file.
* po/packages/LINGUAS: Add 'ru'.
* doc/local.mk: Add 'zh_CN' cookbook.
* doc/htmlxref.cnf: Update URLs for cookbook.
* doc/build.scm (%cookbook-languages): Add 'zh_CN'.
* doc/guix-cookbook.texi (Top): Mention 'zh_CN' cookbook.
Change-Id: Ic15114f01ee826a72060eebcbf1baf3bf619284f
services: hurd-vm: Support different hurd types.
* gnu/services/virtualization.scm (sanitize-hurd-vm-configuration-type): New procedure.
(hurd-vm-confiuration): Add type field.
(hurd-vm-disk-image): Use it.
* doc/guix.texi (hurd-vm-configuration): Document it.
* gnu/tests/virtualization.scm (%childhurd64-os): New variable.
(run-childhurd-test): Add the os a parameter.
(%test-childhurd): Adjust accordingly.
(%test-childhurd64): New system test.
Change-Id: Ie1c55a9414657ced4bf8b4324527037f1a1f78f4
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
services: cuirass: Increase default polling interval to 5mn.
* gnu/services/cuirass.scm (<cuirass-configuration>)[interval]: Change to 300.
* doc/guix.texi (Continuous Integration): Update accordingly and explain where
it is used.
Change-Id: I30e38ffe0d75cd1f5857b422b4fa5d05dd47a7e5
doc: Add link to issues and pull requests with the ‘deprecation’ label.
* doc/contributing.texi (Deprecation Policy): Add note with link to
issues and pull requests with the ‘deprecation’ label.
Change-Id: If5e833e20c11796f961f48e086c54fdbb9155dd1
home: Add home-oci-service-type.
* gnu/home/service/containers.scm: New file;
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi (OCI backed services): Document it.
Change-Id: I8ce5b301e8032d0a7b2a9ca46752738cdee1f030
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
services: Add oci-service-type.
This patch implements a generalization of the
oci-container-service-type, which consequently is made deprecated. The
oci-service-type, in addition to all the features from the
oci-container-service-type, can now provision OCI networks and volumes.
It only handles OCI objects creation, the user is supposed to handle
state once the objects are provsioned.
It currently supports two different OCI runtimes: Docker and rootless
Podman. Both runtimes are tested to make sure provisioned containers
can connect to each other through provisioned networks and can
read/write data with provisioned volumes.
At last the Scheme API is thought to facilitate the implementation of a
Guix Home service in the future.
* gnu/build/oci-containers.scm: New file containg OCI runtime business
logic used in OCI backed Shepherd services.
oci-read-lines
(oci-system*,oci-object-exists?,oci-object-service-available?
oci-image-load,oci-log-verbose,oci-container-execlp,oci-object-create):
New procedures.
* gnu/local.mk: Add it.
* gnu/services/containers.scm (list-of-oci-containers?,
list-of-oci-networks?,list-of-oci-volumes?,%oci-supported-runtimes,
oci-runtime?,oci-runtime-system-environment,oci-runtime-system-extra-arguments,
oci-runtime-system-requirement,oci-runtime-cli,oci-runtime-system-cli,
oci-runtime-home-cli,oci-runtime-name,oci-runtime-group,
oci-container-shepherd-name,oci-networks-shepherd-name,
oci-networks-home-shepherd-name,oci-volumes-shepherd-name,
oci-volumes-home-shepherd-name,oci-container-configuration->options,
oci-network-configuration->options,oci-volume-configuration->options,
oci-container-shepherd-service,oci-objects-merge-lst,oci-extension-merge,
oci-service-accounts,oci-service-profile,oci-service-subids,
oci-configuration->shepherd-services,oci-configuration-extend): New
procedures.
(image-reference): Implement unambiguous naming convention, that paired
with the new implementation for listing caches images with docker ls or
podman ls, allows for more efficient image caching.
(oci-container-configuration)[user,group]: Change default-type to
maybe-string, since by default containers will run under the user and
group declared in oci-configuration records. When unset the
oci-service-type will derive their value from the OCI runtime state.
[runtime,host-environment,environment,shepherd-actions,ports,extra-arguments]:
define a predicate and use it as a type in the configuration. This
way errors are reported with source location information.
(lower-manifest): Defer to caller the logic of setting up an image tag.
(lower-oci-image): Rename to load-oci-image-state.
(oci-runtime-state): Intermediate representation of the OCI runtime
details. It is supposed to be an internal API.
(oci-state): Intermediate representation of the OCI provisioning state,
such as containers and networks. It is supposed to be an internal API.
(oci-container-invocation): Intermediate representation of the OCI
runtime run command to start a container. It is supposed to be an
internal API.
(%oci-image-loader): Rename to oci-image-loader and use
oci-runtime-state and (gnu build oci-containers).
(oci-container-shepherd-service): Use oci-state and oci-runtime-state,
add command-line action.
(oci-network-configuration,oci-volume-configuration,oci-configuration,
oci-extension): New record types.
(oci-service-type): New service-type.
* doc/guix.texi: Document it.
* gnu/tests/containers.scm: Test it.
* gnu/services/docker.scm: Deprecate the oci-container-service-type.
Change-Id: I656b3db85832e42d53072fcbfb91d1226f39ef38
Modified-by: Maxim Cournoyer <maxim@guixotic.coop>
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
doc: Increase minimum Guile-Git version.
* doc/contributing.text: bump minimum required version of guile-git from
0.5.0 to 0.10.0, required by 86022e994e.
* po/doc/guix-manual.*: update translations as well.
Change-Id: I8cc8fd720cc71fbe17e2e530f7411b9c888ba0f6
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
services: system-log: Allow ‘max-silent-time’ to be #f.
* gnu/services/shepherd.scm (gexp-or-integer-or-false?): New procedure.
(system-log-configuration)[max-silent-time]: Change to
‘gexp-or-integer-or-false’.
* doc/guix.texi (Shepherd Services): Regenerate documentation with
‘configuration->documentation’.
Change-Id: I75228cd19ca892c26347a64cbb952668fc893669