summaryrefslogtreecommitdiff
path: root/gnu/services
AgeCommit message (Collapse)Author
2025-08-25services: dicod: Remove reference to (gnu packages dico).Ludovic Courtès
This is a followup to 4c130c980f5770e6974fc9c26e271945395e494f. * gnu/services/dict.scm (gnu): Remove reference to (gnu packages dico). Change-Id: Idf0d2c43d63d5ad040ecbc13629ffed5c603ddf3
2025-08-25services: Add oci-service-type.Giacomo Leidi
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>
2025-08-24services: nginx: Rotate log files.Arun Isaac
* gnu/services/web.scm (nginx-access-log-file, nginx-error-log-file, nginx-log-files): New functions. (nginx-service-type): Extend log-rotation-service-type.
2025-08-23services: system-log: Allow ‘max-silent-time’ to be #f.Ludovic Courtès
* 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
2025-08-17gnu: nss-certs: Relocate to (gnu packages nss).Maxim Cournoyer
This is made so that the source can be shared without introducing module circular dependencies. * gnu/packages/certs.scm (nss-certs) (nss-certs-for-test): Move to... * gnu/packages/nss.scm: ... here. Adjust the module imports via: git grep -l '(gnu packages certs)' | xargs sed 's/(gnu packages certs)/(gnu packages nss)/' -i Change-Id: I56d7bc52ddcdffbced8a162e8db8ea5071b0cb0f
2025-08-05services: vfs-mapping-shepherd-services: Add missing (ice-9 match) module.Maxim Cournoyer
* gnu/services/linux.scm (vfs-mapping-shepherd-services) [modules]: New field. Fixes: #1747 Change-Id: Ia462a2894d644343164ff9b8f84172a6aa286bad
2025-08-05gnu: tigervnc-client/server: Relocate to (gnu packages xorg).Maxim Cournoyer
This is made to avoid cyclic module dependencies, which is due to the use of inheritance between tigervnc-server and xorg-server, which is not a delayed field (info "(guix) Cyclic Module Dependencies"). * gnu/packages/vnc.scm (tigervnc-client, %tigervnc-client-source) (tigervnc-server): Move to... * gnu/packages/xorg.scm: ... here. Change-Id: I4c13659874f74bccde897d9a6fc8152f60932b4a
2025-08-03doc: Correct tor-onion-service-configuration mapping documentation.Zacchaeus
* doc/guix.texi (Networking Services): Fix tor-onion-service-configuration description which was broken in commit 9be1ee6a49 when documentation was changed to indicated that port-location mappings should be provided as cons cells when the code always expected lists Change-Id: Ib12d273cbd37976f9507a60a6d088078f71d4e7a Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
2025-07-28services: plasma-desktop: Remove "bluedevil" from plasma-dbus-service.Sughosha
The package bluedevil no more provides a dbus service. * gnu/packages/desktop.scm (plasma-dbus-service): Remove "bluedevil". Change-Id: I8d6160a83fe5339ffa3ba12a24b0b4c4f06b6b67
2025-07-27services: tor: add auto-start?Zacchaeus
* gnu/services/networking.scm (tor-configuration): Add `auto-start?' field. Fix indent. * doc/guix.texi (tor-configuration): Document this. Change-Id: I9339291e3329d615550f97e9cc0f0d773f0d1c51 Reviewed-by: André Batista <nandre@riseup.net> Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-07-25services: Add shared-cache-service-type.Edouard Klein
* gnu/services/guix.scm (shared-cache-service-type) (shared-cache-configuration, user-cache): New variables. * doc/guix.texi (Shared Cache Service): New subsubsection under "Guix Services". Change-Id: I73a8db228d9a892c8bb93c6cdfef12d0d06e25a6 Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop> Modified-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-07-25services: Add vfs-mapping-service-type.Edouard Klein
* gnu/services/linux.scm (vfs-mapping-service-type, vfs-mapping-configuration, vfs-mapping-binding): New variables. * doc/guix.texi: (Vfs Mapping Service): New subsubsection under "Linux Services". Change-Id: I7ebd48afb809ded9fa6fe9eb80c618accb856716 Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-07-19services: Add rabbitmq service.wrobell
* gnu/services/high-availability.scm (<rabbitmq-configuration>): New record. (rabbitmq-shepherd-service): New procedure. (rabbitmq-service-type): New variable. * gnu/tests/high-availability.scm (run-rabbitmq-test): New procedure. (%rabbitmq-os, %tests-rabbitmq): New variables. * doc/gnu.texi (High Availability Services): Document it. Change-Id: I53e9f2881b6340e1ed314785e4c5529b81381a3b Co-authored-by: Christopher Baines <mail@cbaines.net> Reviewed-by: Ludovic Courtès <ludo@gnu.org> Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-07-12services: greetd: Support initial-session.Danny Milosavljevic
* gnu/services/base.scm (<greetd-terminal-configuration>): Add initial-session-user, initial-session-command. * doc/guix.texi (Base Services): Document them. Change-Id: Iaf7a8203f34794bc36b031166e1ff7005d7a7104
2025-07-08services: certbot: Add dry-run? certificate option.Pierre Langlois
* gnu/services/certbot.scm (certificate-configuration): Add dry-run? field. (certbot-command): Use it to pass --dry-run to certbot. * doc/guix.texi (Certificate Services): Document dry-run? option. Change-Id: I26b0dc06e2b7e5fb34305deee09e311d085f8a4b Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop> Modified-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-07-08services: certbot: Remove deprecated --manual-public-ip-logging-ok.Pierre Langlois
The --manual-public-ip-logging-ok flag is now a no-op and was deprecated https://github.com/certbot/certbot/pull/8381 * gnu/sevices/certbot.scm (certbot-command): Remove --manual-public-ip-logging-ok when doing a manual challenge. Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-07-04services: ci: Add Forgejo Runner service.Ludovic Courtès
* gnu/services/ci.scm (<forgejo-runner-configuration>): New record type. (create-forgejo-runner-account, forgejo-runner-activation) (write-yaml, yaml-file, forgejo-runner-shepherd-service): New procedures. (forgejo-runner-service-type): New variable. * doc/guix.texi (Continuous Integration): Add “Forgejo Runner” heading. Co-authored-by: David Thompson <davet@gnu.org> Change-Id: Iba42d84da35812afa60e94773fbbadd68eca9813
2025-07-01services: guix: ‘guix-ownership’ changes store ownership last.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/78355>. * gnu/services/base.scm (guix-ownership-change-program)[claim-data-ownership]: Replace hard-coded “/gnu/store” with #$(store-prefix). Change store ownership last. Reported-by: Rutherther <rutherther@ditigal.xyz> Change-Id: I55189f8bb82bf0c9e030aa042aa928f6f552569e
2025-06-20services: knot: Depend on `user-processes'.vicvbcun
* gnu/services/dns.scm (knot-shepherd-service): Add `user-processes' to the `requirement' field. Change-Id: I59f95aeb25c02944418eb3ea20a42d344703a011 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-06-15gnu: services: base: Set a home directory for the "greeter" user.Quentin Vincent
Fix a problem that caused an "unable to set working directory: no such file or directory (os error 2)" error before every login prompt. The reason for this is that greetd starts agreety as the "greeter" user. The working directory for the newly created process is, by default, "/home/greeter", which does not exist (per our instructions). * gnu/services/base.scm (greetd-accounts)[home-directory]: Set to /var/empty [shell]: Set to /sbin/nologin. Change-Id: I6d971968e8b6a7825c261d4695caf0dd70127e5d Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
2025-06-15services: directory-server: Fix backend-userroot-configuration export.Hilton Chain
* gnu/services/ldap.scm (backend-userroot-configuration): Fix export. Change-Id: I06b9c87016ad117ba56a675f45d9c950040e0b0a
2025-06-09gnu: %standard-geoclue-applications: Add more programs.Ian Eure
If Firefox merits a spot on this list, LibreWolf and IceCat certainly do. Redshift also requires geoclue to work, add it. * gnu/services/desktop.scm (%standard-geoclue-applications): Add LibreWolf and Redshift. Change-Id: Ide54f6bfe8ad8d9282da6105eca07bbd4bd27c14 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-06-08services: Deprecate dhcp-client-service-type.Sören Tempel
ISC's dhcclient has reached its end-of-life in 2022 and is since unsupported [1]. I have added a service for dhcpcd as an alternative a few months ago [2]. Presently, I am not aware of any issues with it; hence, I believe it is now time to deprecate dhcp-client-service-type in favor of dhcpcd-service-type. See also: https://issues.guix.gnu.org/68619 * gnu/services/networking.scm (dhcp-client-service-type): Deprecate. [1]: https://www.isc.org/blogs/isc-dhcp-eol/ [2]: https://issues.guix.gnu.org/75934 Change-Id: I282c6a68570ccc5dfbb21176758c71cf03864ddd Signed-off-by: Hilton Chain <hako@ultrarare.space>
2025-06-06services: iwd: Use the official name.Ludovic Courtès
* gnu/services/networking.scm (iwd-shepherd-service): Fix name and mention “iwd” in ‘description’. * doc/guix.texi (Networking Setup): Correct iwd’s name and add link. Change-Id: I7605488f2018b8ac60664c6617a82f05ddadf6ec
2025-06-06services: iwd: Provide default value in <iwd-settings>.Ludovic Courtès
Fixes a failure of ‘tests/guix-system.sh’, when running ‘guix system search .’: 2296:10 3 (iwd-environment _) 2165:0 2 (%iwd-network-settings-name-resolving-service-procedure #) In ice-9/boot-9.scm: 1685:16 1 (raise-exception _ #:continuable? _) 1685:16 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1685:16: In procedure raise-exception: In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): %unset-marker% * gnu/services/networking.scm (iwd-settings)[network]: Provide default value. Change-Id: I2ea28853f698583ceeaa0b56cde8447fe3546dc3
2025-06-06services: rsync: Remove Shepherd 0.9.0 compatibility shim.Ludovic Courtès
* gnu/services/rsync.scm (rsync-shepherd-service): Remove ‘inetd-style?’. Change-Id: Iab4a72ade621add1cf6e186c6c6a8be415829d11
2025-06-06services: iwd: Fix expression.Ashish SHUKLA
This is a follow-up to c4e1081f82c4f45e34cf6aca1e3f3347dd384c79. The return value of ‘iwd-environment’ wasn't quoted. * gnu/services/networking.scm (iwd-environment): Return list in a G-expression. Change-Id: I5c2fb9ecd5d5c1aa61bd7758b66c7284f6e568b3 Signed-off-by: Hilton Chain <hako@ultrarare.space> Fixes: https://codeberg.org/guix/guix/issues/450
2025-06-05services: networking: Add iwd-service-type.Sergey Trofimov
* gnu/services/networking.scm (iwd-service-type): New service type. (iwd-configuration), (iwd-settings), (iwd-scan-settings), (iwd-general-settings), (iwd-network-settings): New configuration types. * doc/guix.texi (Networking setup): Document it. Change-Id: I852115b9c6768b3ec4eedb34a7f9e66438bd1429 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-06-05services: network-manager: Require wireless-daemon.Sergey Trofimov
* gnu/services/networking.scm (<network-manager-configuration>)[shepherd-requirement]: Replace wpa-supplicant with wireless-daemon. * doc/guix.texi (Networking Setup): Adjust. Change-Id: Id1a51429ccb6ea24839fc2aacd051a3ffe91c33c Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-06-05services: wpa-supplicant: Add 'wireless-daemon' provision.Sergey Trofimov
* gnu/services/networking.scm (wpa-supplicant-configuration): [requirement]: Deprecate, [shepherd-requirement]: New field, [shepherd-provision]: Extract to a field. Add 'wireless-daemon to it. * doc/guix.texi (Networking Setup): Document it. Change-Id: Icc6fdd695e6e96ef168a085524989da639f77cd3 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-06-05services: networking: Add shepherd-requirement for dhcpcd.Sergey Trofimov
* gnu/services/networking.scm (dhcpcd-configuration): Add shepherd-requirement field. (dhcpcd-shepherd-service): Use it. * doc/guix.texi (Networking Setup): Regenerate dhcpcd-configuration documentation. (File Systems): Fix typo. Change-Id: Id347e2bed2569237685a47be82dbf686640db25b Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-06-05services: configuration: Add define-enumerated-field-type helper.Sergey Trofimov
* gnu/services/cups.scm (define-enumerated-field-type): Move... * gnu/services/configuration.scm (define-enumerated-field-type): ...here. * gnu/services/vpn.scm (define-enumerated-field-type): Remove. * gnu/services/power.scm (define-enum): Replace with define-enumerated-field-type. Change-Id: I89ec40f479e3f800268e714f1f88d638be017c7e Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-06-04services: static-networking: Remove use of unbound variable.Ludovic Courtès
Use of ‘G_’ was added in 670d985cabf81a28660c4a8024f752decc495dce but it’s actually unbound. * gnu/services/base.scm (network-set-up/linux): Remove uses of ‘G_’, which is unbound. Change-Id: I6e879688ceee2fcb738e5e213cd3d539c9d89e20
2025-06-02services: dnsmasq: Install dbus config.Sergey Trofimov
While DBUS service is enabled in dnsmasq, it does not work without installing a config file to the system. * gnu/packages/dns.scm (dnsmasq): Install dbus config. * gnu/services/dns.scm (dnsmasq): Extend dbus-root-service-type. Change-Id: I5187f65e1f2892eb10fb95e6f51955559f64dbef Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-05-30services: xorg: Make startx respect XDG_VTNR.Sergey Trofimov
To allow X server to be started by shepherd, without resorting to login managers, the determine-vty procedure has to be adjusted. Shepherd would set /proc/self/fd/0 to /dev/null when starting the service, so the TTY has to be extracted by other means. * gnu/services/xorg.scm (xorg-start-command-xinit): Use XDG_VTNR environment variable to determine VTY. Closes: #52 Change-Id: I390217e292f6534b31d18083c9a49c009a836aad Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2025-05-26services: Modernize and test nftables service.Maxim Cournoyer
* doc/guix.texi (Networking Services) <nftables>: Update doc. * gnu/services/networking.scm (list-of-debug-levels?): (debug-level?, maybe-list-of-debug-levels?): (nftables-configuration): Rewrite using `define-configuration'. [debug-levels]: New field. (nftables-shepherd-service): Honor it. * gnu/tests/networking.scm (%inetd-echo-port): Extract to top level. (run-iptables-test): Adjust accordingly. (make-nftables-os): New procedure. (%default-nftables-ruleset-for-tests): New variable. (%nftables-os): Likewise. (%test-nftables): New test. Change-Id: I2889603342ff6d2be6261c3de6e4fddd9a9bbe2d
2025-05-26services: Add vte-integration-service-type to %desktop-services.Maxim Cournoyer
* gnu/services/desktop.scm (desktop-services-for-system): Fixes: <https://issues.guix.gnu.org/72172> Fixes: <https://issues.guix.gnu.org/35424> Change-Id: Ib29468468e327801a4e95361610159de61f7e8d6
2025-05-26system: Factorize bashrc default configuration.Maxim Cournoyer
This factorizes out the remaining bashrc bits from /etc/skel/.bashrc to a the template used for both /etc/bashrc on Guix System and ~/.bashrc for home-bash-service-type. Rationale: The use of /etc/skel introduce state: the file is only copied originally when the user account is created, and never (automatically) refreshed again. * gnu/system.scm (operating-system-etc-service): <profile>: Guard against souring /etc/bashrc in non-interactive, SSH case. <bashrc>: Use %default-bashrc, having migrated the remaining definitions to... * gnu/system/shadow.scm (%default-bashrc): ... here. Factorize aliases to... * gnu/services.scm (%default-bash-aliases): ... here. (%default-bashrc-d-aliases): New variable. (%default-etc-bashrc-d-files): Include it in the default configuration. * gnu/services/base.scm (%base-services): Register etc-bashrc-d-service-type. * gnu/home/services/shells.scm (add-bash-configuration): Do not set PS1, now part of %default-bashrc. (home-bash-configuration) [guix-defaults?]: Update doc. [aliases]: Set %default-bash-aliases as the default value. Update doc. * doc/guix.texi (Shells Home Services): Update documentation. (Service Reference): Update example. Change-Id: I340c614983a78fd20a9c4a9705e7fc542ae9b513
2025-05-25services: guix-data-service: Fix data-service-setup-database script.Christopher Baines
* gnu/services/guix.scm (guix-data-service-shepherd-services): Use begin rather than lambda, add some logging and use guile from the data service package. Change-Id: I915682e513a3cc8e3cbf324e3c650c65d2852a96
2025-05-24services: readymedia: Fix typo.Sughosha
* gnu/services/upnp.scm (readymedia-configuration)[home-service?]: Fix typo. Change-Id: Ie7062fbeb88f93d698bbafacf50f8a74766d4202 Signed-off-by: Ian Eure <ian@retrospec.tv>
2025-05-18home: services: Add readymedia.Sughosha
* gnu/home/services/upnp.scm: New file. * gnu/local.mk: Register it. * gnu/services/upnp.scm: Export readymedia-activation and readymedia-shepherd-service. (<readymedia-configuration>)[home-service?]: New field. [cache-directory]: Adjust value depending on 'for-home?'. [log-directory]: Ditto. (readymedia-shepherd-service): Adjust 'requirement' and 'start' according to 'home-service?'. (readymedia-activation): Adjust creating 'media-directories' with permissions according to 'home-service?'. * gnu/tests/upnp.scm (%readymedia-configuration-test): Configure port with %readymedia-default-port. * doc/guix.texi (Miscellaneous Home Services): Document Readymedia Service. (Miscellaneous Services): Add cross-reference. Change-Id: I5c48595d84a815d98e03c7f68a716f048903720c Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-05-18home: Add home-restic-backup service.Giacomo Leidi
* gnu/services/backup.scm: Drop mcron obsolete export. (restic-backup-job-program): Generalize to restic-program. (lower-restic-backup-job): New procedure implementing a standard way to lower restic-backup-job records into lists. (restic-program): Implement general way to run restic commands, for example to initialize repositories. (restic-backup-configuration): Reimplement with (guix records). (restic-backup-job-{logfile,command,requirement,modules}): Add new procedures and add support for Guix Home environments. (restic-backup-job->shepherd-service): Add support for Guix Home environments. (restic-backup-service-activation): Drop procedure as now the Shepherd takes care of creating timers log file directories. (restic-backup-service-type): Drop profile and activation services extensions. * gnu/home/services/backup.scm: New file. * gnu/local.mk: Add this. * doc/guix.texi: Document this. Change-Id: Ied1c0a5756b715fba176a0e42ea154246089e6be Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-05-16gnu: /etc/qemu/firmware: Produce only /etc/qemu/firmware instead of /etc/qemuRutherther
The service unnecessarily populates /etc/qemu with a symlink, so it's not possible to write files like /etc/qemu/bridge.conf or /etc/qemu/host.conf anymore. Since etc-service-type uses file-union, it's possible to put files in subdirectories. This restores the behavior suggested by manual where user can extend etc-service-type with qemu/host.conf etc. * gnu/services/virtualization.scm (/etc/qemu/firmware): Extend with qemu/firmware instead of qemu Change-Id: I7c1ea790e5abf7ad05dce56b7901ac6eb90208fd Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-16services: dnsmasq: Add stats and reload shepherd actions.Alexey Abramov
* gnu/services/dns.scm (dnsmasq-service-reload-action): New function. Implements SIGHUP handling for reloading configurations. (dnsmasq-service-stats-action): New function. Implements SIGUSR1 handling for dumping statistics. (dnsmasq-shepherd-service): Use new actions. * doc/guix.texi: Document new actions with examples. * gnu/tests/networking.scm (%test-dnsmasq): Add tests to verify the functionality of new actions. Change-Id: I31f0eb4b26a582e95f7bfdb240110c139f0e16cc Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-16services: dnsmasq: Add pid-file, conf-file and conf-dir configuration fields.Alexey Abramov
* gnu/services/dns.scm (<dnsmasq-configuration>) [pid-file]: New field to specify alternate path for dnsmasq PID. [conf-file]: New field to specify one or more configuration files. [conf-dir]: New field to read configuration files from a directory. [extra-options]: Move to the end of the definition as a last resort option. (dnsmasq-shepherd-service): Use new fields instead of hardcoded values. * gnu/services/dns.scm: Export all record accessors. * doc/guix.texi: Document new configuration options. Change-Id: Iaec361e7d8bfd60af04f023f57d422b55b0c1eea Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-16services: dnsmasq: Add shepherd-provision and shepherd-requirement fields.Alexey Abramov
* gnu/services/dns.scm (<dnsmasq-configuration>)[provision]: Mark filed as deprecated with a warning. Set default to #f. [shepherd-provision]: Add new field for consistency with other services. [shepherd-requirement]: Add new field. (dnsmasq-shepherd-service): Use them. * doc/guix.texi: Document these changes. * doc/guix-cookbook.texi (Custom NAT-based network for libvirt): Update example to use 'shepherd-provision' instead of 'provision'. Change-Id: Icad4d9c4be5bf58368e8c416f1fdde1f9065557d Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-15services: oci-container-configuration: Move to (gnu services containers).Giacomo Leidi
This patch moves the oci-container-configuration and related configuration records to (gnu services containers). Public symbols are still exported for backwards compatibility but since the oci-container-service-type will be deprecated in favor of the more general oci-service-type, everything is moved outside of the docker related module. * gnu/services/docker.scm: Move everything related to oci-container-configuration to... * gnu/services/containers.scm: ...here.scm. Change-Id: Iae599dd5cc7442eb632f0c1b3b12f6b928397ae7 Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-15services: rootless-podman: Use login shell.Giacomo Leidi
This commit allows for having PATH set when changing the owner of /sys/fs/group. * gnu/services/containers.scm (crgroups-fs-owner): Use login shell. Change-Id: I9510c637a5332325e05ca5ebc9dfd4de32685c50 Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-14services: udev: Also create subsystem nodes at boot.Maxim Cournoyer
This is a more correct fix to CDROM/DVDROM events/auto-mounting than was made in the now-reverted commit 670724edcfe7d ("gnu: eudev: Fix optical discs detection/auto-mounting.") This changes causes the 60-block.rules udev rules file shipped with eudev to correctly set the default polling period to 2000 ms on block devices, which is necessary for kernel events to be fired for CDROM drives for example. To validate it is set: # cat /sys/module/block/parameters/events_dfl_poll_msecs 2000 Before, it would return 0. * gnu/services/base.scm (udev-shepherd-service): <#:start>: Add a 'udevadm trigger --change=add --type=subsystems' invocation, so that it also creates subsystem nodes, as done in Void Linux or LinuxFromScratch init scripts for example. * gnu/tests/base.scm (run-basic-test): Add test. Fixes: <https://issues.guix.gnu.org/35584> Change-Id: Idc0eb5640163b27e41b72cc0c1885412a60805c1
2025-05-12system: Only add guix artwork on a desktop system.Efraim Flashner
* gnu/system.scm (%base-packages): Remove %base-packages-artwork. * gnu/services/desktop.scm (desktop-services-for-system): Add guix-artwork profile service. Change-Id: I4071e8137609dbb7dfdba174d1da2d8811421a00 Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>