This reverts commits 49f9d7f697 and
c298fb133a. Since glibc version 2.22 (Guix was
already on 2.25 when these commits were introduced), nscd's inotify support is
improved and can track a newly added /etc/resolv.conf. There is no need to
create it beforehand.
Fixes: #10192
Reported-by: brian cully <bjc@spork.org>
This is just the server component, another service definition is needed for
the snapclient.
* gnu/services/audio.scm: (snapserver-stream, snapserver-stream?,
snapserver-stream-name, snapserver-stream-type, snapserver-stream-location,
snapserver-stream-codec, snapserver-stream-sampleformat,
snapserver-stream-chunk-ms, snapserver-stream-parameters,
snapserver-configuration, snapserver-configuration?,
snapserver-configuration-package, snapserver-configuration-user,
snapserver-configuration-group, snapserver-configuration-shepherd-requirement,
snapserver-configuration-log-file, snapserver-configuration-log-filter,
snapserver-configuration-data-directory, snapserver-configuration-mdns?,
snapserver-configuration-http?, snapserver-configuration-http-port,
snapserver-configuration-http-bind-address, snapserver-configuration-doc-root,
snapserver-configuration-tcp-control?,
snapserver-configuration-tcp-control-port,
snapserver-configuration-tcp-streaming?,
snapserver-configuration-tcp-streaming-port, snapserver-configuration-streams,
snapserver-configuration-codec, snapserver-configuration-sampleformat,
snapserver-configuration-buffer-ms, snapserver-configuration-chunk-ms,
snapserver-configuration-send-to-muted?,
snapserver-configuration-extra-content): New procedures.
(snapserver-service-type): New variable.
* doc/guix.texi (Audio Services): Document it.
Change-Id: I5dd2c15ff8c1b560abd481147312a8d6fc844776
The package pam-krb5 which is the default value for
pam-krb5-configuration reside in this module.
* gnu/service/kerberos.scm: Add missing (gnu packages admin) module.
Merges: https://codeberg.org/guix/guix/pulls/10611
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
So that it can write core files to the current working directory, as
previously it was running in /.
* gnu/services/guix.scm (guix-build-coordinator-agent-shepherd-services): Set
#:directory to /var/log/guix-build-coordinator.
Change-Id: Ie002c6a5729f421f32741f5121693d6ac5cb8f6e
Reasoning on running these executables outside a VMWare hypervisor is
difficult, which mean we can't implement service tests in current state
of the art in upstream QEMU.
Essentially the first thing any `open-vm-tools' executable checks is
whether it is executing in a VMWare hypervisor via
`CPUID_VMWARE_HYPERVISOR_VENDOR_STRING' [1]. This would fail for any
machine not running inside VMWare.
Marionette evaluations in Guix use QEMU to run the virtual machines that
some tests run on. QEMU emulates and allow configuration of some CPUID
flags and vendor strings. It does not emulate the hypervisor flag, or
allow configuration of the hypervisor vendor flag, which would be
required for this program to run and output anything observable, other
than a non-zero exit code.
In the case someone added upstream QEMU support for custom CPUID
hypervisor flags and vendor strings, these executables would initialize
a log file, but could not test anything meaningful without a hypercall
interface. QEMU sort-of emulates such an interface when it is told to
act like the Xen hypervisor, but doesn't seem to support the required
`vmcall', `vmmcall', or `inl' x86 assembly instruction communication
mechanism between the host and guest.
The Linux KVM supports a limited set of hypercalls [2], but certainly
not the ones required for these executables, the same applies for
Hurd. Since the KVM project already has a functional serial interface
between the guest and host [3], it is a low possibility upstream would
want to greatly expand the `vmcall' hypercall support in any case.
An alternative path would be to add the `USE_VALGRIND' define when
compiling the `vmware-open-vm-tools' package, which skips the hypervisor
CPUID flag checking, but still would require proper hypercall support to
test anything useful. Additionally, this would require another package,
or perhaps a "testing" output of the `vmware-open-vm-tools' pacakge,
which would be a nearly entire duplicate of the executables and would be
used exclusively for whichever test is written.
1. <https://github.com/vmware/open-vm-tools/blob/stable-13.1.x/open-vm-tools/lib/vmCheck/vmcheck.c#L335>
2. <https://docs.kernel.org/virt/kvm/x86/hypercalls.html>
3. <https://linux-kvm.org/page/VMchannel_Requirements>
* gnu/services/virtualization.scm
(vmware-vmtoolsd-shepherd-service): new procedures.
(vmware-vmtoolsd-service-type): new service type
(vmware-vmtoolsd-configuration): new struct.
update copyright commentary.
* doc/guix.texi (Virtualization Services): document it.
Merges: guix/guix!5098
Modified-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
* gnu/services/jupyter.scm (jupyter-shepherd-service): Add an optional
log-file argument and export it.
* gnu/home/services/jupyter.scm (home-jupyter-service-type): Change
the log-file so that it matches expectations for home-services.
Merges: guix/guix!8657
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Both runtime-directory-size and runtime-directory-size-percent field currently
cause an error if set. A comment above the latter already calls for its
deprecation. This patch combines both into a single field and fixes
their serialization.
* gnu/services/desktop.scm (percent?, percent, elogind-serialize-percent):
Replace with…
(non-negative-integer-and-suffix?, non-negative-integer-and-suffix)
(elogind-serialize-non-negative-integer-and-suffix): … these.
(elogind-configuration)[runtime-directory-size-percent]: Remove field,
integrating logic into …
[runtime-directory-size]: … here. Serialize it.
* doc/guix.texi (Desktop Services): Adjust accordingly.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Merges: guix/guix#9987
* gnu/services/syncthing.scm: (<syncthing-config-file>,
<syncthing-folder>, syncthing-config-file->sxml): Align for config
version 52.
* gnu/packages/syncthing.scm (syncthing): Add a comment to refresh
configuration file version during update of the package.
Merges: guix/guix!9822
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This improves out-of-box experience of the service, since the default theme
only supports sddm-qt5.
* gnu/services/sddm.scm (<sddm-configuration>) [sddm]: Use sddm-qt5.
* doc/guix.texi (X Window) [sddm-configuration]: Adjust accordingly.
Change-Id: I97825751fc230b41fbc3d5d1ae86eb2408c4dc29
Merges: #7480
* gnu/services/version-control.scm
(git-http-nginx-location-configuration): Handle the case
where uri-path is "/" by not adding an extra slash prefix.
* gnu/tests/version-control.scm (git-nginx-root-configuration):
Generalize from %git-nginx-root-configuration
to take uri-path as an argument from...
(git-http-os): ...this new procedure generalized from %git-http-os
to take uri-path as an argument from...
(git-http-test): ...this new procedure generalized
from run-git-http-test to return a system test
instead of just its store value. Additionally
take name, description, and uri-path arguments.
(%test-git-http): Adjust accordingly.
(%test-git-http-root-path): Duplicate %test-git-http
with "/" instead of "/git/" as uri-path.
Merges: https://codeberg.org/guix/guix/pulls/6140
Co-authored-by: Nguyễn Gia Phong <cnx@loang.net>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
This also fixes a bug in ‘install-channels-file’ whereby, if
/etc/guix/channels.scm is a dangling symlink, the activation would go on
calling ‘symlink’, which would fail with EEXIST.
This is the same problem as was fixed in
91e1a457b5 for /etc/guix/machines.scm and in
e9cd72875e for /etc/guix/acl.
* gnu/services/base.scm (guix-configuration-file-installation): New procedure.
(substitute-key-authorization): Use it.
(install-channels-file): Use it.
(guix-machines-files-installation): Use it.
Change-Id: I6eb245e329e83802fc8a0d12643e249a4474aa82
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8851
Update RabbitMQ default configuration to use localhost interface by
default and avoid listening on public interfaces.
Change the default configuration file to set inter-node communication
listener to localhost network interface (see also
https://www.rabbitmq.com/docs/networking#distribution). This requires
setting RabbitMQ node name to `rabbit@localhost`, so introduce
`node-name` RabbitMQ configuration field with such default value.
Path to the RabbitMQ environment configuration file was hardcoded.
Remove the hardcoding and allow to create such file with env-config-file
RabbitMQ configuration field.
Add new RabbitMQ service tests to check RabbitMQ broker startup and
status after the service is started.
* gnu/services/high-availability.scm (<rabbitmq-configuration>)
[<node-name>, <env-config-file>]: New fields.
(rabbitmq-shepherd-service): Use them.
(%default-rabbitmq-config-file): Update.
* gnu/tests/high-availability.scm (run-rabbitmq-test): Add new tests.
* doc/gnu.texi (High Availability Services): Document new fields and
provide information about local interfaces.
Merges: guix/guix!9360
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
* gnu/services/base.scm (nwg-hello-configuration): New configuration.
(nwg-hello-configuration-file): New variable.
(nwg-hello-style): New configuration.
(nwg-hello-stylesheet): New variable.
(greetd-nwg-hello-sway-session): New configuration.
(make-greetd-nwg-hello-sway-session-sway-config): New variable.
(greetd-nwg-hello-sway-session-compiler): New gexp compiler.
* doc/guix.texi (Base Services): Document the new greeter.
Merges: guix/guix!7644
Reviewed-by: Maxim Cournoyer <maxim@guixotic.coop>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This corresponds to postgresql's own default; it means we can let go of the
syslogd dependency by default and arguably makes it easier to find some
postgresql related errors.
* doc/guix.texi (Database Services) <postgresl-config-file>: Adjust example
to showcase something different than the new default. Change documented
default to stderr.
* gnu/services/databases.scm (<postgresql-config-file>)
[log-destination]: Change default value to stderr.
(postgresql-shepherd-service) <requirement>: Conditionally add
syslogd dependency only if found in log-destination value.
(postgresql-role-shepherd-service) <#:log-file>: Uncomment.
This runs the KMonad daemon as a dedicated, unprivileged user, isolates
synthetic event creation to a uinput group, and automatically loads the uinput
kernel module via udev rules.
* gnu/services/desktop.scm (%uinput-group, %kmonad-group, %kmonad-udev-rule)
(%kmonad-user, %kmonad-accounts): New variables.
(kmonad-shepherd-services): Pass #:user, #:group, and #:supplementary-groups
to 'make-forkexec-constructor'.
(kmonad-service-type): Extend 'account-service-type' and 'udev-service-type'.
Change-Id: Icea21049d0427e25052c952bb08a03379e3a3e1f
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
* gnu/services/desktop.scm (kmonad-shepherd-services): Replace
'computed-file-name' with a numeric index in the documentation string to
support all file-like objects.
Change-Id: Id9ee0939e3c6e156576f78452c0465c54744cb32
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This services has been deprecated for a while in favor of
dhcpcd-service-type as the ISC DHCP implementation used
by this services has reached end-of-life upstream.
* gnu/services/networking.scm (dhcp-client-service-type): Remove.
(dhcp-client-shepherd-service): Remove.
(<dhcp-client-configuration>): Remove.
* doc/guix.texi (Networking Services): Remove dhcp-client-service-type
section.
Change-Id: I53f87c6ece8608a0f46d9973d6e70abb88ba7c2b
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Allow to have several autossh services in system configuration.
gnu/services/ssh.scm (autossh-configuration)[shepherd-provision]: New field.
(autossh-file-name): Use first symbol from shepherd-provision as a base name
for the runtime autossh directory.
(autossh-shepherd-service)[shepherd-service]{provision}: Set to shepherd-provison.
doc/guix.texi (Networking Services)[autossh-configuration]: Document it.
Merges: !9285
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
For quite some time now, elogind was logging the following warnings one every
start.
[..]/logind.conf:2: Unknown key 'AllowPowerOffInterrupts' in section [Login], ignoring.
[..]/logind.conf:3: Unknown key 'AllowSuspendInterrupts' in section [Login], ignoring.
[..]/logind.conf:4: Unknown key 'BroadcastPowerOffInterrupts' in section [Login], ignoring.
[..]/logind.conf:5: Unknown key 'BroadcastSuspendInterrupts' in section [Login], ignoring.
[..]/logind.conf:21: Unknown key 'RemoveIpc' in section [Login], ignoring.
First 4 should have been in sleep.conf, and the last one had bad casing. This
commit addresses both those problems.
* gnu/services/desktop.scm (elogind-name->string): New procedure.
(elogind-serialize-boolean, elogind-base-serializer, elogind-list-serializer):
Use it.
(%elogind-configuration-sleep-fields): Add allow-power-off-interrupts?,
allow-suspend-interrupts?, broadcast-power-off-interrupts? and
broadcast-suspend-interrupts?.
Signed-off-by: Maxim Cournoyer <maxim@guixotic.coop>
System services should start the prosody binary directly,
with the prosody user and group.
* gnu/services/messaging.scm (prosody-shepherd-service):
Run prosody directly.
Change-Id: Iaf39d2fbd362f44f0d4de32cfbac1a31754d95dc
Merges: https://codeberg.org/guix/guix/pulls/8711
Reviewed-by: Carlo Zancanaro <carlo@zancanaro.id.au>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
The motivation is twofold:
1. We can ensure the presence of the nginx default configuration fragments in
the configuration file directory;
2. 'herd reload nginx' can now be used to reload an updated configuration
file.
Before this change, 'include fastcgi_params;', for example, would fail with
error:
nginx: [emerg] open() "/gnu/store/fastcgi_params" failed
(2: No such file or directory) in /gnu/store/...-nginx.conf:50
* gnu/services/web.scm (%nginx-configuration-file): New variable.
(nginx-activation): Delay configuration file check to...
(nginx-shepherd-service): ... a new one-shot 'nginx-init' service. Adjust to
use the %nginx-configuration-file variable for the configuration file.
<actions>: Add a new 'configuration' action.
(nginx-conf-files, nginx-etc-directory): New procedures.
(nginx-service-type): Extend etc-service-type with nginx-service-type.
* gnu/tests/web.scm (%nginx-servers): Add an include directive to test config
to ensure it now works.
Merges: !8811
Change-Id: I26882ab01288ec4dd374e9f282e95ffa33dfa3cc
Instead of potentially deleting in the store itself, ensure
only the symlink to the store is deleted by using delete-file.
* gnu/services/networking.scm (network-manager-activation):
<dnsmasq-configuration-files>: Use readlink instead of canonicalize path.
Use delete-file instead of delete-files-recursively.
<extra-configuration-files>: Likewise.
Change-Id: I2e84ecfebb8a6c8797d851b35e90bb747432c0b2
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>