1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-08 14:10:38 +02:00
Commit Graph

2284 Commits

Author SHA1 Message Date
Efraim Flashner
850a2bfdc0 system: Only add guix artwork on a desktop system.
* 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>
2025-05-12 09:33:27 +03:00
Christopher Baines
5137d4a96c services: guix-build-coordinator: Allow passing extra arguments.
To avoid needing to support all possible configuration options in the Guix
service.

* gnu/services/guix.scm
(guix-build-coordinator-configuration-extra-build-coordinator-arguments): New
procedure.
* gnu/services/guix.scm (make-guix-build-coordinator-start-script): Support
extra-build-coordinator-arguments and include them when calling
make-build-coordinator.
(guix-build-coordinator-shepherd-services): Pass
extra-build-coordinator-arguments through when calling
make-guix-build-coordinator-start-script.

Change-Id: I6531275bf2922f762b3422746c6207b834656b5c
2025-05-11 10:19:11 +01:00
Evgeny Pisemsky
44d178265c services: Add mosquitto-service-type.
* gnu/services/messaging.scm (<mosquitto-configuration>): New record type.
(mosquitto-accounts): New procedure.
(mosquitto-shepherd-service): New procedure.
(mosquitto-service-type): New variable.
* doc/guix.texi (Messaging Services): Document it.

Change-Id: I3500c5b6b69084c1f4a6da66ea45bfd42c871f3f
Signed-off-by: Danny Milosavljevic <dannym@friendly-machines.com>
2025-05-09 19:47:24 +02:00
Rutherther
e9cd72875e services: guix: Fix case when /etc/guix/acl is a dangling symlink.
One possible solution for an issue when /etc/guix/acl file exists, but points
to a non-existent location. This can for example happen if one is
reinitializing the system, and remove only /gnu/store and /var/guix, keep the
rest okay. This is a major advantage of guix as compared to other distros that
usually need you to reinitialize the whole root partition. But this will leave
the user with acl file pointing to non-existent location. The file-exists?
procedure will return #f for broken symbolic links.

I think that another reason one would get this issue is, if one was booted in
a live iso, chrooted, fixing their system. They would switch generations to
one with different acl file, delete other generations gc rooting the original
acl file and then gc. One could do this approach for example when recovering
from file corruptions in the store, to get rid of the unsubstitutable paths
that can't be repaired with guix gc --verify.

This fixes the issue by looking for type of a file through lstat, instead of
relying on file-exists?. If the symlink is a broken symlink, it is
removed. Other than that the old behavior is kept:
- If regular file, back it up
- If symlink pointing to the store, remove it
- If symlink not pointing to the store, back it up

* gnu/services/base.scm (substitute-key-authorization): Check if acl file is a
possibly-dangling symbolic link.

Change-Id: I2f8170606b2f4afeea48f04acfd738b04cafc7cf
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Modified-by: Ludovic Courtès <ludo@gnu.org>
2025-05-05 14:33:59 +02:00
Sughosha
9f7f05e11f Partial revert "services: plasma: Fix kded not being started."
This partially reverts cea6eedfce.

* gnu/services/desktop.scm (plasma-dbus-service): Remove kded.

Change-Id: Iaf441f6c779170a24ab2bec8908da81b182e32b1
Signed-off-by: Zheng Junjie <z572@z572.online>
2025-05-04 21:58:41 +08:00
Sergio Pastor Pérez
cea6eedfce services: plasma: Fix kded not being started.
`kded' is a daemon responsible for many features of the Plasma desktop, it
provides media keys handling, a system tray, 'Background Services' control
through 'kcmshell6 kcm_kded'...

* gnu/packages/kde-plasma.scm (plasma): Add `kded' to propagated inputs.

* gnu/services/desktop.scm (plasma-dbus-service): Add `kded' to the list of
services passed to `dbus-configuration'.

Change-Id: Ifffdaecdb28a6369727ab8d118a775d73ee342e9
Signed-off-by: Zheng Junjie <z572@z572.online>
2025-05-04 17:58:56 +08:00
Sergio Pastor Pérez
492bbb9700 services: kwallet: New service.
Change-Id: I1330ce5e1648a8ddf6ddd507255a73335d6baa51
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-02 22:06:26 +09:00
Giacomo Leidi
9d216d2ae9 services: postgresql-role: Add support for password files.
This commit adds a password-file to the postgresql-role field.  It
allows users to provision Postgres roles with a set password.

* gnu/services/databases.scm (postgresql-role): Add password-file field.
(postgresql-role-configuration): Add requirement field.
(postgresql-create-roles): Add support for setting passwords from a
file without leaking passwords to the command line.
(postgresql-role-shepherd-service): Add support for customizable
requirements.
(postgresql-role-service-type): Pass on postgresql-role-configuration
fields values by default, this way user configured fields are not lost.
* gnu/tests/databases.scm: Test it.
* doc/guix.texi: Document the new field and fix the extension point example.

Change-Id: I3aabaa10b0c5e826c5aa874e5649e25a3508a585
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-05-02 15:32:25 +09:00
Maxim Cournoyer
74325f91c9 services: Normalize and improve libvirt-configuration documentation.
* gnu/services/virtualization.scm (libvirt-configuration): Fix typos and
punctuation, and decorate with more Texinfo adornments.  Remove extraneous
text.  Convert enumerations to sentences re-generating the Texinfo
documentation with configuration->documentation doesn't require fixing these
by hand after (the text is re-flowed, breaking enumerations).  Mention the use
of 'log-filters' is preferable to 'log-level', as commented in the defaut
libvirt.conf template.
* doc/guix.texi (Virtualization Services): Re-generate.

Change-Id: Icc2abe21a787b4bb6ac3b35a95f6aaaf3bbda9aa
2025-05-02 09:53:54 +09:00
Maxim Cournoyer
bb8cc412c8 services/udev: Allow configuring udev to run in debug mode.
This re-introduces commit dd64f441d3, which had
been reverted due to previously causing a system hang when debug? was enabled,
a problem that appears to have been resolved within Shepherd.

* gnu/services/base.scm (<udev-configuration>): <debug?>: New field.
* gnu/services/base.scm (udev-shepherd-service): Use it to add '--debug' to
the command line, if applicable.
* doc/guix.texi (Base Services): Document it.

Change-Id: I88243fb4f321ff0876dd227e3c2b22082d37cfcf
2025-04-30 22:44:34 +09:00
Maxim Cournoyer
f10d00e4e2 services: elogind: Split sleep.conf and port to define-configuration.
* gnu/services/desktop.scm (pascal-case): New procedure.
(<elogind-configuration>): Rewrite in terms of define-configuration.
(elogind-configuration-file): Delete.
(maybe-list-of-suspend-states?, maybe-list-of-suspend-modes?)
maybe-list-of-user-names?, maybe-boolean?maybe-package?)
(maybe-action?, maybe-percent?, maybe-list-of-strings?)
(maybe-list-of-hibernation-modes?, maybe-non-negative-integer?)
(non-negative-integer?, percent?, char-set:user-name, user-name?)
(list-of-user-names?, %elogind-actions, action?, %linux-suspend-states)
(string->symbol/maybe, suspend-state?, list-of-suspend-states?)
(%linux-suspend-modes, suspend-mode?, list-of-suspend-modes?)
(%linux-hibernation-modes, hibernation-mode?, list-of-hibernation-modes?)
(elogind-deprecated-empty-serializer, list-of-file-likes?)
(elogind-serialize-boolean, elogind-base-serializer, elogind-serialize-action)
(elogind-serialize-non-negative-integer, elogind-serialize-percent)
(elogind-list-serializer, elogind-serialize-list-of-strings)
(elogind-serialize-list-of-user-names, elogind-serialize-list-of-suspend-states)
(elogind-serialize-list-of-suspend-modes)
(elogind-serialize-list-of-hibernation-modes)
(%elogind-configuration-sleep-fields, logind.conf, sleep.conf): New procedures.
(elogind-etc-directory): Create the main configuration files there too.
(elogind-dbus-service): Adjust for package accessor name change.
(pam-extension-procedure, elogind-shepherd-service)
(elogind-service-type):  Likewise.
(shepherd-configuration-action*): New procedure.
* doc/guix.texi (Desktop Services): Fully document configuration options.

Fixes: https://issues.guix.gnu.org/77806
Change-Id: I8767891871d83e58d64995ec986a7d01689fa6d8
Reported-by: Ludovic Courtès <ludo@gnu.org>
2025-04-26 22:56:59 +09:00
Tomas Volf
5bbb053bea services: postgresql-service-type: Allow allowing to log into the user.
It is often useful to be able to use the `postgres' user for management tasks,
so this commit allows setting that.  The default behavior is not changed.

I have also added missing exports and sorted them by alphabet.

* gnu/services/databases.scm (%default-home-directory): New variable.
(<postgresql-configuration>): Add home-directory, allow-login? fields.
(create-postgresql-account): Use them.
* doc/guix.texi (Database Services): Document it.

Change-Id: I2212e5082ff4e87c49a5a8a4711bf929dd08626a
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Modified-by: Ludovic Courtès <ludo@gnu.org>
2025-04-23 12:25:46 +02:00
Maxim Cournoyer
aab89b3d93 services: pounce: New service.
* gnu/services/messaging.scm (pounce-serialize-boolean):
(pounce-serialize-string, pounce-serialize-list-of-strings)
(pounce-serialize-pair, power-of-two?)
(pounce-serialize-number, pounce-serialize-power-of-two)
(pounce-serialize-port, pounce-serialize-maybe-boolean)
(pounce-serialize-maybe-number, pounce-serialize-maybe-pair)
(pounce-serialize-maybe-port, pounce-serialize-maybe-port
(pounce-maybe-power-of-two, pounce-serialize-maybe-string)
(pounce-serialize-maybe-list-of-strings): New procedures.
(pounce-configuration): New configuration.
(pounce-activation): New procedure.
(serialize-pounce-configuration, pounce-wrapper): Likewise.
(pounce-service-type): New service type.
* gnu/tests/messaging.scm (ngircd-tls-cert-service-type): New variable.
(%pounce-os): Likewise.
(run-pounce-test): New procedure.
(%test-pounce): New test.
* doc/guix.texi (Messaging Services): Document it.

Change-Id: I4bbd2bc4821072a93c2c4017b86df329c4b240cb
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
2025-04-22 11:35:24 +09:00
Maxim Cournoyer
367d071bba services: herd: Use a smarter default for %shepherd-socket-file.
This makes it possible to use it for the privileged (root) user as well as an
unprivileged user.

* gnu/services/herd.scm (%shepherd-socket-file): Use
/run/user/$uid/shepherd/socket when using an unprivileged user.

Change-Id: I62cf358ffc233aba61cc64235c4b67c4fc944d2e
2025-04-22 11:35:23 +09:00
Ludovic Courtès
e2583b5a17 services: guix: Allow ‘guix-daemon’ to run without root privileges.
* gnu/services/base.scm (run-with-writable-store)
(guix-ownership-change-program): New procedures.
(<guix-configuration>)[privileged?]: New field.
(guix-shepherd-service): Rename to…
(guix-shepherd-services): … this.   Add the ‘guix-ownership’ service.
Change ‘guix-daemon’ service to depend on it; when unprivileged,
prefix ‘daemon-command’ by ‘run-with-writable-store’ and
omit ‘--build-users-group’; adjust socket activation endpoints.
(guix-accounts): When unprivileged, create the “guix-daemon” user and
group in addition to the others.
(guix-service-type)[extensions]: Adjust to name change.
* gnu/tests/base.scm (run-guix-daemon-test): Add ‘name’ parameter.
(%test-guix-daemon): Adjust accordingly.
(%test-guix-daemon-unprivileged): New test.
* doc/guix.texi (Base Services): Document ‘privileged?’.
(Migrating to the Unprivileged Daemon): Explain that this is automatic
on Guix System.

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Change-Id: I28a9a22e617416c551dccb24e43a253b544ba163
2025-04-20 18:52:59 +02:00
Maxim Cournoyer
a6c96cdb70 services: ngircd: Require networking.
Otherwise the service could fail starting if the networking interface takes
some time to be created during the boot (one such example are WireGuard
interfaces).

* gnu/services/messaging.scm (ngircd-configuration)
[shepherd-requirement]: Add networking.
* doc/guix.texi (Messaging Services): Update.

Change-Id: I387ae5780a35cad5b74d9883ac53f13de1a08c78
2025-04-19 21:43:18 +09:00
Maxim Cournoyer
7686fe9d4f services: ngircd: Streamline wrapper definition.
* gnu/services/messaging.scm (ngircd-shepherd-service): Streamline wrapper
definition.

Change-Id: Ie48a02d141ab329a5b684897fb2562b4e6745452
2025-04-19 21:13:21 +09:00
Roman Scherer
98a6071b5a gnu: speakersafetyd: Add log file.
* gnu/services/sound.scm (speakersafetyd-configuration) [log-file]: New field.
(speakersafetyd): Use it via #:log-file.

Change-Id: I870bc7bfd69249da3a9c981f627e751395386bd2
2025-04-14 13:49:29 +09:00
Roman Scherer
01a66639ef gnu: speakersafetyd: Run as unprivileged user.
* gnu/services/sound.scm (speakersafetyd): Run as unprivileged user.
(speakersafetyd-accounts): New procedure.
(speakersafetyd-activation): Likewise.
(speakersafetyd-shepherd-service): Specify the #:group, #:user and
 #:supplementary-groups arguments.
(speakersafetyd-service-type): Extend activation-service-type.

Change-Id: I870bc7bfd69249da3a9c981f627e751395386bd2
2025-04-14 13:48:01 +09:00
Maxim Cournoyer
e78f8a85bb services: ngircd: Revert to use make-forkexec-constructor.
The use of make-systemd-constructor appears to cause problems when connecting
via TLS (see: https://github.com/ngircd/ngircd/issues/330).

* gnu/services/messaging.scm (ngircd-global): [pid-file]: Set default value
and remove maybeness.  Adjust doc.
* gnu/services/messaging.scm (ngircd-configuration): Adjust comment.
(ngircd-wrapper): Expose writable PID file and preserve pid namespace.
(ngircd-shepherd-service): Replace make-systemd-constructor with
make-forkexec-constructor and adjust surrounding accordingly.
(ngircd-activation): New procedure.
(ngircd-service-type): Extend activation-service-type with it.

Change-Id: Ic7c135ab45122e180107cde8bb9976426e3afbc4
2025-04-14 10:34:52 +09:00
Maxim Cournoyer
f1d1f3c945 services: ngircd: Fix typo in doc.
* gnu/services/messaging.scm (ngircd-options) <pam?>: Fix typo.
* doc/guix.texi (Messaging Services): Update.

Change-Id: If14e406089b2c945cac37e25d8e08a3812e4b28e
2025-04-14 10:34:51 +09:00
Maxim Cournoyer
d46bad2cd9 services: ngircd: Disable PAM by default.
This was the original intention, as PAM authentication cannot be easily
satisfied when the service runs as non-root, which is the case.

* gnu/services/messaging.scm (ngircd-configuration) <options>: Remove maybe
and set default value.
* doc/guix.texi (Messaging Services): Update.

Change-Id: I8435cf5be7206f9165d69cbbac11c205bf928c8f
2025-04-14 10:34:51 +09:00
Maxim Cournoyer
a42630e85b services: ngircd: Expose a new ssl-verify? option.
* gnu/services/messaging.scm (ngircd-server) [ssl-verify?]: New field.
* doc/guix.texi (Messaging Services): Regenerate doc.

Change-Id: Ia2d6e557bd89448d8cc2d1cd88e606e2b1ef5029
2025-04-14 10:34:51 +09:00
Maxim Cournoyer
f47ff4fcce services: ngircd: Allow specifying Shepherd requirements.
* gnu/services/messaging.scm (ngircd-configuration)
[shepherd-requirement]: New field.
* gnu/services/messaging.scm (ngircd-shepherd-service) [requirement]: Use it.
* doc/guix.texi (Messaging Services): Update doc.

Change-Id: I8164c132ca25830885005d0e8f55554047c84a95
2025-04-14 10:34:51 +09:00
Maxim Cournoyer
dedeb90501 gnu: eudev: Build with udevrulesdir pointing to /etc/udev/rules.d.
Prior to this change, only the udev rules installed to eudev's prefix were
consulted by tools such as udevadm, leading to problems such as when
configuring network interfaces, or attempting to override its default rules.

While our custom eudev patch adding support for the EUDEV_RULES_DIRECTORY
environment variable could have been refined to take precedence over the
package's configured udevrulesdir, this was not pursued for the following
reasons:

1. Due to eudev's using inotify to detect new rules, the EUDEV_RULES_DIRECTORY
is fixed in Guix System, per commit e9fa17eb98 ("services: udev: Use a fixed
location for the rules directory and config.")

2. Users would have had to set EUDEV_RULES_DIRECTORY to the fixed directory
themselves to have udevadm work as expected, which is inconvenient.

3. This simple solution is already implemented and tested in NixPkgs.

* gnu/packages/linux.scm (eudev) [source]: Remove custom patch.
[arguments] <#:make-flags>: New argument.
<#:phases>: Override install phase to alter installation make flags.
* gnu/services/base.scm (udev-shepherd-service): Do not set
EUDEV_RULES_DIRECTORY environment variable.
* gnu/packages/patches/eudev-rules-directory.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): De-register it.

Fixes: https://issues.guix.gnu.org/63508
Reported-by: Felix Lechner <felix.lechner@lease-up.com>
Change-Id: Ib8698f4b452f6fd0951bcd71831705b1be85e6e0
2025-04-11 12:42:47 +01:00
Maxim Cournoyer
c17c6b9820 services/base: Remove extraneous UDEV_CONFIG_FILE environment variable.
This environment variable used to be honored by udevd, but that is no longer
the case (as shown by grepping its source).

* gnu/services/base.scm (udev-shepherd-service) <#:environment-variables>:
Remove UDEV_CONFIG_FILE.

Change-Id: I0828de76e8da429432bc0679903aa501c99625af
2025-04-11 12:42:47 +01:00
Felix Lechner
6036f1f305 services: opensmtpd: Add logging to a file.
* gnu/services/mail.scm (opensmtpd-configuration): Add log-file field.
(opensmtpd-shepherd-service)[start]: Add a command line flag to not
daemonize. Drop #:pid-file. Add #:log-file.
* doc/guix.texi (Mail Services): Document the additional parameter.

Change-Id: I485e040d680ccb39fa62e49d2e6ea916f047972c
Signed-off-by: Andreas Enge <andreas@enge.fr>
2025-04-10 15:40:25 +02:00
Leo Famulari
bb4ce5cc47 services: Make the urandom-seed-service-type return success properly.
Reported by nigko on #guix:

https://logs.guix.gnu.org/guix/2025-04-05.log#201718

* gnu/services/base.scm (urandom-seed-shepherd-service): Return #f when
stopped.

Change-Id: I8212508e4a017270e4e9284b43170cd17999e8b4
2025-04-08 20:03:09 -04:00
Gabriel Wicki
ac83a22375 gnu: services: mail: Remove duplicate in dovecot-configuration.
* gnu/services/mail.scm(dovecot-configuration): [namespaces] Remove duplicate
entry "Drafts".

Change-Id: Ibbdb45ede34b1c4aba8ae460e408e554120880e9
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-04-08 17:18:33 +02:00
Ludovic Courtès
8c3e925ace services: anonip: Rotate log files.
* gnu/services/web.scm (anonip-log-files): New procedure.
(anonip-service-type): Use it to extend ‘log-rotation-service-type’.
* doc/guix.texi (Log Rotation): Document it.

Change-Id: I903bb79e0992b794bb0a40e504283cd57a8a087b
2025-04-08 17:12:29 +02:00
Nigko Yerden
accb75c33b services: tlp: Make destructor return #f on success.
* gnu/services/pm.scm (tlp-shepherd-service): Make destructor
return #f on success. Destructor "should return #f if it is
now possible again to start the service at a later point"
(shepherd manual).

Change-Id: Ic0d21d32af158da1ae940d9c32c05a3471767764
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-04-08 17:06:58 +02:00
Nigko Yerden
3cbd28a475 services: qemu-binfmt: Add requirement.
* gnu/services/virtualization.scm (qemu-binfmt-shepherd-services)
[requirement]: Add file-system-/gnu/store.

qemu-binfmt service write references to the store to
/proc/sys/fs/binfmt_misc/qemu-[architecture] files, therefore
/gnu/store needs to be mounted during the lifetime of the service
instance. If /gnu/store does not remain mounted, the issues
discussed by nigko and Rutherther on IRC are arisen:

https://logs.guix.gnu.org/guix/2025-04-05.log
https://logs.guix.gnu.org/guix/2025-04-08.log

Change-Id: I7e7a42a5ba0e39aa58c997739898f3457dd793a9
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-04-08 17:03:28 +02:00
Maxim Cournoyer
e839cd1108 services: Add a default configuration value for the ngircd service.
* gnu/services/messaging.scm (ngircd-configuration): Adjust comment.
(ngircd-wrapper): Nest bindings within the (maybe-value-set? ssl) check, to
avoid errors when not providing an explicit value to the ssl field.
(ngircd-service-type) [default-value]: New field.

Change-Id: I1d2d7973cc9314e9bbc5870bf7b5f872d074b49b
2025-04-08 15:26:17 +09:00
Maxim Cournoyer
c9524b5841 services: Add ngircd-service-type.
* gnu/services/messaging.scm (pascal-case, ngircd-serialize-string)
(ngircd-serialize-boolean, ngircd-serialize-file-like)
(ngircd-serialize-list-of-strings, ngircd-serialize-list-of-ports)
(ngircd-serialize-number, ngircd-serialize-port)
(string-or-number?, ngircd-serialize-string-or-number): New procedures.
(ngircd-global, ngircd-limits, ngircd-options, ngircd-ssl)
(ngircd-operator, ngircd-server, ngircd-channel)
(ngircd-configuration): New configurations.
(serialize-ngircd-global, serialize-ngircd-limits)
(serialize-ngircd-options, serialize-ngircd-operator)
(serialize-list-of-ngircd-operators, serialize-ngircd-server)
(serialize-ngircd-channel, serialize-list-of-ngircd-channels)
(serialize-ngircd-configuration): New procedures.
(list-of-ngircd-operators?, list-of-ngircd-servers?)
(list-of-ngircd-channels?): New predicates.
(ngircd-generate-documentation): New procedure.
(ngircd-user+group, ngircd-account, ngircd-wrapper): Likewise.
(ngircd-shepherd-service): New shepherd service.
(ngircd-service-type): New service type.
* gnu/tests/messaging.scm (%ngircd-os): New variable.
(run-ngircd-test): New procedure.
(%test-ngircd): New test.
* doc/guix.texi (Messaging Services): Document it.

Change-Id: I3ce9a7fd0b33afab22cf15942a1db0cf5b12bfdb
2025-04-08 10:50:17 +09:00
Ludovic Courtès
c4dd590eab services: guix: Socket-activate ‘guix-daemon’.
* gnu/services/base.scm (guix-shepherd-service): Change ‘start’ to use
‘make-systemd-constructor’ in the default case.  Remove now-redundant
code creating /var/guix/daemon-socket/.  Adjust ‘stop’ method to use
‘make-systemd-destructor’ when appropriate.

Change-Id: I3572670c90f65509fbad01dcf13a60f772a86839
2025-04-06 11:24:10 +02:00
Ludovic Courtès
96ae99c957 services: guix: Streamline the default ‘start’ case.
* gnu/services/base.scm (guix-shepherd-service): In ‘start’ method, use
‘fork+exec-command’ in the default case.

Change-Id: Id04d3d2651f89fbcdb2f17f027df91e132ff9ed1
2025-04-06 11:24:06 +02:00
Ludovic Courtès
b16e3f451f services: guix: Factorize ‘guix-daemon’ arguments.
* gnu/services/base.scm (guix-shepherd-service): In ‘start’ method,
move ‘fork+exec-command/container’ arguments to the new variables
‘daemon-command’ and ‘environment-variables’.

Change-Id: Ic04a1006849697e4e185ad94185bbdec8a91a05a
2025-04-06 11:24:01 +02:00
Tomas Volf
85e6371a3f services: gitolite-service-type: Allow setting the admin name.
* gnu/services/version-control.scm (<gitolite-configuration>): Add admin-name
field.
(gitolite-activation): Use it.
* doc/guix.texi (Version Control Services): Document it.  Remove the wrong
default value of admin-pubkey.  State the need for .pub extension.

Change-Id: Idadf4b2697cee6d1da10e6ba03bdc2e1d729c417
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:24 +09:00
Tomas Volf
24396e8327 services: gitolite-git-configuration: Add extra-content field.
* gnu/services/version-control.scm (<gitolite-git-configuration>): Add
extra-content field.
(gitolite-git-configuration-compiler): Handle it during configuration file
generation.
* doc/guix.texi (Version Control Services): Document it.

Change-Id: Iceb02f60b8ef26138961aefef4e56ca83df0e19f
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:22 +09:00
Tomas Volf
d4f3719a92 services: gitolite-git-configuration: Add receive-fsck-objects field.
* gnu/services/version-control.scm (<gitolite-git-configuration>): Add
receive-fsck-objects field.
(gitolite-git-configuration-compiler): Handle it during configuration file
generation.
* doc/guix.texi (Version Control Services): Document it.

Change-Id: Iceb02f60b8ef26138961aefef4e56ca83df0e19f
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:20 +09:00
Tomas Volf
1f1a0e8773 services: gitolite-git-configuration: Add default-branch field.
* gnu/services/version-control.scm (<gitolite-git-configuration>): Add
default-branch field.
(gitolite-git-configuration-compiler): Handle it during configuration file
generation.
* doc/guix.texi (Version Control Services): Document it.

Change-Id: Iceb02f60b8ef26138961aefef4e56ca83df0e19f
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:17 +09:00
Tomas Volf
a0ce5501ca services: Add gitolite-git-configuration.
In preparation for further customizability of the git configuration, extract
the current setup into a separate record type.

* gnu/services/version-control.scm (<gitolite-git-configuration>): New record
type.
(gitolite-git-configuration-compiler): And gexp compiler for it.
(<gitolite-configuration>): Add git-config field.
(gitolite-activation): Use it.
* doc/guix.texi (Version Control Services): Document both.

Change-Id: I7658698a93f938f62f41a4fa45b72de1eeb14414
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:15 +09:00
Tomas Volf
9ab0c42d55 services: gitolite-activation: Convert to match-record.
* gnu/services/version-control.scm (gitolite-activation): Use match-record
instead of match-lambda with $.

Change-Id: I37e3018513a8f20eeed8614dff46a63b8d7c2883
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:13 +09:00
Tomas Volf
f975b416a7 services: gitolite-accounts: Convert to match-record.
* gnu/services/version-control.scm (gitolite-accounts): Use match-record
instead of match-lambda with $.

Change-Id: I37e3018513a8f20eeed8614dff46a63b8d7c2883
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:11 +09:00
Tomas Volf
ce95350bb2 services: gitolite-service-type: Do not install gitolite package.
It is not ideal to pollute the path with the binaries from the gitolite
package, so adjust the package to support that and the service to no longer
install it.

* gnu/packages/version-control.scm (make-gitolite)[arguments]<#:phases>
{'patch-scripts}: Use store file name of gitolite-shell.
* gnu/services/version-control.scm (gitolite-service-type): Drop the extension
of profile-service-type.

Change-Id: I25459ccd80bda892b6d188b2b6fa99baee339cba
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:09 +09:00
Tomas Volf
28031f04d9 services: gitolite-rc-file: Export default value for enable.
* gnu/services/version-control.scm (gitolite-rc-file-default-enable): New
exported variable.
(gitolite-rc-file-compiler)[enable]: Use it.

Change-Id: Ie6326ff69f3d454d96db6629dd5387757567d68f
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:07 +09:00
Tomas Volf
70a91c25b8 services: gitolite-rc-file-compiler: Set mode of the generated file.
Copied over from the official configuration file, this sets a correct major
mode when you visit the generated file.

* gnu/services/version-control.scm (gitolite-rc-file-compiler): Add local
variables.

Change-Id: I8a9d794a1e3c7049ae606165cf939d81b5dbdf6e
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:05 +09:00
Tomas Volf
0110eeee0a services: gitolite-rc-file: Add extra-content field.
* gnu/services/version-control.scm (<gitolite-rc-file>): Add extra-content
field.
(gitolite-rc-file-compiler): Handle it during configuration file generation.
* doc/guix.texi (Version Control Services): Document it.

Change-Id: I5082e1d7a27cc746641ba9ec8ae07c703da5f279
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:03 +09:00
Tomas Volf
5466a46a72 services: gitolite-rc-file: Add host-name field.
* gnu/services/version-control.scm (<gitolite-rc-file>): Add host-name field.
(gitolite-rc-file-compiler): Handle it during configuration file generation.
* doc/guix.texi (Version Control Services): Document it.

Change-Id: I1231ed47a294ff48b35a301f76ae8e9cbfcd9b95
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:01 +09:00
Tomas Volf
9306539f08 services: gitolite-rc-file: Add log-extra field.
* gnu/services/version-control.scm (<gitolite-rc-file>): Add log-extra field.
(gitolite-rc-file-compiler): Handle it during configuration file generation.
* doc/guix.texi (Version Control Services): Document it.

Change-Id: Ice65dbdf4f42549e3c83914da7229db9d2cf856b
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-04-03 21:16:00 +09:00