Commit graph

2345 commits

Author SHA1 Message Date
Maxim Cournoyer
10482f731e
Reapply "Update Maxim's email address."
This reverts commit a7db92d9b3, this time with
the more careful command, to avoid a world rebuild:

grep -rl --exclude-dir=build --exclude-dir=patches --exclude=ld-wrapper.in \
  --exclude=sitecustomize.py --exclude=guix-emacs.el maxim.cournoyer@gmail.com |
  xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'

Change-Id: I0871f5cf9ace79e34e78e24154d0da6ea95a3a91
2025-09-18 13:44:12 +09:00
Maxim Cournoyer
a7db92d9b3
Revert "Update Maxim's email address."
This reverts commit d0d87a744d. Oops! This
caused a world rebuild.

Change-Id: I25fff644b2b61d0ee93d69b457b04c72b5b74d15
2025-09-18 12:07:31 +09:00
Maxim Cournoyer
d0d87a744d
Update Maxim's email address.
The change was automated via:

  git grep -l maxim.cournoyer@gmail.com |
    xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g'

* .mailmap: New entry.

Change-Id: Iaa88b1e51c94159c49138fb43910badb990eb169
2025-09-18 08:05:19 +09:00
Ian Eure
96c30d2bf6
gnu: Remove Tailon services and documentation.
The tailon package was removed in 63023deaf9,
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
2025-09-14 11:13:17 -07:00
Rutherther
7562b50c02
services: greetd: Accept gexps in initial-session.
Recently initial-session-user and initial-session-command has been
added, but they accept only strings, not gexps.

* gnu/services/base.scm (make-greetd-terminal-configuration-file):
Ungexp initial-session-user and initial-session-command.

Change-Id: I2b247464528b6147eab8acea08c6942ac7bfd0ab
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-14 18:13:08 +02:00
Daniel Lakeland
b05fc57386
services: keepalived: Add ‘shepherd-requirement’ field.
* gnu/services/networking.scm (<keepalived-configuration>)[shepherd-requirement]:
New field.
(keepalived-shepherd-service): Honor it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-09-14 18:13:07 +02:00
Grigory Shepelev
82e0ba892b
services: network-manager: Create /etc/ipsec.secrets directory in activation.
* gnu/services/networking.scm (network-manager-activation): Create the
/etc/ipsec.secrets directory.

Change-Id: Ib347cc00e7cbd314b2a465b5ee681285ba0d3115
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
Modified-by: Maxim Cournoyer <maxim@guixotic.coop>
2025-09-06 18:04:04 +09:00
Ludovic Courtès
d72eef9c91
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
2025-09-05 17:25:39 +02:00
Ludovic Courtès
577f8fe184
services: cuirass: Socket activation for ‘cuirass register’.
Fixes guix/cuirass#16.

* gnu/services/cuirass.scm (cuirass-shepherd-service)[endpoint]: New
procedure.
Use ‘make-systemd-constructor’ for ‘cuirass register’.  Set the ‘COLUMNS’
environment variable.

Change-Id: If58e4e8a889ab11e4b5b89a7abaf0af24600751b
2025-09-05 17:25:22 +02:00
Ludovic Courtès
b377ec079d
services: nginx: Ensure ‘stop’ is synchronous.
Fixes guix/maintenance#17.

Fixes a bug whereby ‘nginx -s stop’ might return before the main nginx process
has actually stopped, which in turn would lead ‘herd restart nginx’ to hang.

* gnu/services/web.scm (nginx-shepherd-service): Change ‘stop’ to use
‘make-kill-destructor’.

Reported-by: Maxim Cournoyer <maxim@guixotic.coop>
Change-Id: I69e8626aab07f806ddc8b1d09d9f0e052a85cf47
2025-09-03 12:34:13 +02:00
Yelninei
fecaf550cf
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>
2025-08-30 23:52:09 +02:00
Ludovic Courtès
b12844f5e0
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
2025-08-29 17:43:35 +02:00
Ludovic Courtès
23b22f75e9
services: dicod: Remove reference to (gnu packages dico).
This is a followup to 4c130c980f.

* gnu/services/dict.scm (gnu): Remove reference to (gnu packages dico).

Change-Id: Idf0d2c43d63d5ad040ecbc13629ffed5c603ddf3
2025-08-25 13:54:26 +02:00
Giacomo Leidi
60f4d72590
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>
2025-08-25 13:04:36 +09:00
Arun Isaac
825d3baa87
services: nginx: Rotate log files.
* 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-24 09:30:02 +01:00
Ludovic Courtès
c1e3c49135
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
2025-08-23 16:57:48 +02:00
Maxim Cournoyer
af9e540b71
gnu: nss-certs: Relocate to (gnu packages nss).
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-17 22:34:42 +02:00
Maxim Cournoyer
7a48af07fd
services: vfs-mapping-shepherd-services: Add missing (ice-9 match) module.
* gnu/services/linux.scm (vfs-mapping-shepherd-services)
[modules]: New field.

Fixes: #1747
Change-Id: Ia462a2894d644343164ff9b8f84172a6aa286bad
2025-08-05 21:11:47 +09:00
Maxim Cournoyer
a4f3216ce8
gnu: tigervnc-client/server: Relocate to (gnu packages xorg).
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-05 21:11:47 +09:00
Zacchaeus
c40c69766d
doc: Correct tor-onion-service-configuration mapping documentation.
* 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-08-03 11:07:45 +02:00
Sughosha
315f0218bf
services: plasma-desktop: Remove "bluedevil" from plasma-dbus-service.
The package bluedevil no more provides a dbus service.

* gnu/packages/desktop.scm (plasma-dbus-service): Remove "bluedevil".

Change-Id: I8d6160a83fe5339ffa3ba12a24b0b4c4f06b6b67
2025-07-28 12:17:59 +08:00
Zacchaeus
16dbd20852
services: tor: add auto-start?
* 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-27 09:28:31 +01:00
Edouard Klein
b740fe801e
services: Add shared-cache-service-type.
* 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-25 23:36:10 +09:00
Edouard Klein
f05f8fb6b4
services: Add vfs-mapping-service-type.
* 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-25 23:36:10 +09:00
wrobell
c65da197cf
services: Add rabbitmq service.
* 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-19 01:47:50 +01:00
Danny Milosavljevic
72996cd573
services: greetd: Support initial-session.
* 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-12 02:39:54 +02:00
Pierre Langlois
57fc58ba48
services: certbot: Add dry-run? certificate option.
* 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-08 16:54:06 +09:00
Pierre Langlois
76d816d559
services: certbot: Remove deprecated --manual-public-ip-logging-ok.
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-08 16:54:06 +09:00
Ludovic Courtès
6b42df3ad6
services: ci: Add Forgejo Runner service.
* 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-04 18:41:43 +02:00
Ludovic Courtès
c33bc80080
services: guix: ‘guix-ownership’ changes store ownership last.
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-07-01 23:40:09 +02:00
vicvbcun
6fd46129fe
services: knot: Depend on `user-processes'.
* 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-20 17:59:02 +02:00
Quentin Vincent
e417692c4b
gnu: services: base: Set a home directory for the "greeter" user.
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-15 23:29:26 +02:00
Hilton Chain
a2b36ad311
services: directory-server: Fix backend-userroot-configuration export.
* gnu/services/ldap.scm (backend-userroot-configuration): Fix export.

Change-Id: I06b9c87016ad117ba56a675f45d9c950040e0b0a
2025-06-15 23:53:21 +08:00
Ian Eure
f662e50745
gnu: %standard-geoclue-applications: Add more programs.
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-09 22:05:14 +02:00
Sören Tempel
a9f0a0635d
services: Deprecate dhcp-client-service-type.
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-08 22:56:48 +08:00
Ludovic Courtès
5a0271c43f
services: iwd: Use the official name.
* 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-06 18:30:27 +02:00
Ludovic Courtès
33ec2f58ff
services: iwd: Provide default value in <iwd-settings>.
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-06 18:22:51 +02:00
Ludovic Courtès
5f3a33f659
services: rsync: Remove Shepherd 0.9.0 compatibility shim.
* gnu/services/rsync.scm (rsync-shepherd-service): Remove
‘inetd-style?’.

Change-Id: Iab4a72ade621add1cf6e186c6c6a8be415829d11
2025-06-06 18:16:30 +02:00
Ashish SHUKLA
d2d961b76a
services: iwd: Fix expression.
This is a follow-up to c4e1081f82.  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-06 21:18:15 +08:00
Sergey Trofimov
c4e1081f82
services: networking: Add iwd-service-type.
* 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-05 22:43:36 +02:00
Sergey Trofimov
e4995c9978
services: network-manager: Require wireless-daemon.
* 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-05 22:42:14 +02:00
Sergey Trofimov
faa8cdfc09
services: wpa-supplicant: Add 'wireless-daemon' provision.
* 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-05 22:42:14 +02:00
Sergey Trofimov
2ec1469104
services: networking: Add shepherd-requirement for dhcpcd.
* 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-05 22:42:13 +02:00
Sergey Trofimov
38756ac03d
services: configuration: Add define-enumerated-field-type helper.
* 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-05 22:42:13 +02:00
Ludovic Courtès
1cd221c9e9
services: static-networking: Remove use of unbound variable.
Use of ‘G_’ was added in 670d985cab 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-04 16:45:08 +02:00
Sergey Trofimov
a01acf2d49
services: dnsmasq: Install dbus config.
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-06-02 11:20:23 +02:00
Sergey Trofimov
eaa0987a30
services: xorg: Make startx respect XDG_VTNR.
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-30 20:48:29 +08:00
Maxim Cournoyer
cfa2de2a77
services: Modernize and test nftables service.
* 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-26 13:43:28 +09:00
Maxim Cournoyer
78d4b1e52c
services: Add vte-integration-service-type to %desktop-services.
* 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-26 13:43:03 +09:00
Maxim Cournoyer
c743d646ee
system: Factorize bashrc default configuration.
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-26 13:43:03 +09:00