summaryrefslogtreecommitdiff
path: root/gnu/services/base.scm
AgeCommit message (Collapse)Author
2023-12-14services: guix: Allow gexps evaluating to a list of build-machines.Saku Laesvuori
* gnu/services/base.scm (guix-machines-files-installation): Handle machines being a mixed list of build-machines and lists of build-machines. * doc/guix.texi (Base Services): Document it. Change-Id: Ie404562ca0b564413233c3a624046da831893dc3 Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-12-02gnu: Use ‘libc-utf8-locales-for-target’.Janneke Nieuwenhuizen
* guix/packages.scm (%standard-patch-inputs): Use ‘libc-utf8-locales-for-target’ instead of ‘glibc-utf8-locales’. * guix/self.scm (%packages): Likewise. * gnu/home/services/ssh.scm (file-join): Likewise * gnu/installer.scm (build-compiled-file): Likewise. * gnu/packages/chromium.scm (ungoogled-chromium/wayland): Likewise. * gnu/packages/gnome.scm (libgweather4, tracker): Likewise. * gnu/packages/javascript.scm (js-mathjax): Likewise. * gnu/packages/package-management.scm (guix, flatpak): Likewise. * gnu/packages/raspberry-pi.scm (raspi-arm64-chainloader): Likewise. * gnu/packages/suckless.scm (svkbd): Likewise. * gnu/services.scm (cleanup-gexp): Likewise. * gnu/services/base.scm (guix-publish-shepherd-service): Likewise. * gnu/services/guix.scm (guix-build-coordinator-shepherd-services) (guix-build-coordinator-agent-shepherd-services): Likewise. * gnu/services/guix.scm (guix-build-coordinator-queue-builds-shepherd-services): (guix-data-service-shepherd-services) (nar-herder-shepherd-services) (bffe-shepherd-services): Likewise. * gnu/services/web.scm (anonip-shepherd-service) (mumi-shepherd-services): Likewise. * gnu/system/image.scm (system-disk-image, system-iso9660-image) (system-docker-image, system-tarball-image): Likewise. * gnu/system/install.scm (%installation-services): Likewise. * guix/profiles.scm (info-dir-file): Likewise. (ca-certificate-bundle, profile-derivation): Likewise. * guix/scripts/pack.scm (store-database, set-utf8-locale): Likewise. * tests/pack.scm: Likewise. * tests/profiles.scm ("profile-derivation, cross-compilation"): Likewise. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Co-authored-by: Christopher Baines <mail@cbaines.net> Change-Id: I24239f427bcc930c29d2ba5d00dc615960a6c374
2023-10-11services: static-networking: Add support for bonding.Alexey Abramov
* gnu/services/base.scm (<network-link>): Add mac-address field. Set type field to #f by default, so it won't be mandatory. network-link without a type will be used for existing interfaces. (assert-network-link-mac-address, mac-address?): Add sanitizer. Allow valid mac-address or #f. (assert-network-link-type): Add sanitizer. Allow symbol or #f. * gnu/services/base.scm (network-set-up/linux, network-tear-down/linux): Adapt to new structure. * doc/guix.texi (Networking Setup): Document it. * gnu/tests/networking.scm (run-static-networking-advanced-test): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-10-01services: guix: Support declarative offloading setup.Ludovic Courtès
* gnu/services/base.scm (guix-machines-files-installation): New procedure. (<guix-configuration>)[build-machines]: New field. (guix-activation): Call ‘ guix-machines-files-installation’. (<guix-extension>)[build-machines]: New field. (guix-extension-merge): Handle it. (guix-service-type)[extend]: Likewise. * doc/guix.texi (Daemon Offload Setup): Add note linking to ‘guix-configuration’. (Base Services): Document ‘build-machines’ field of <guix-configuration> and of <guix-extension>. (Virtualization Services): Add ‘hurd-vm’ anchor.
2023-10-01services: guix: Use the right locale package on GNU/Hurd.Ludovic Courtès
Fixes a bug introduced in 0dd293b4d9095137c9952e16ca951f887b7e7018 whereby guix-daemon on GNU/Hurd would have ‘GUIX_LOCPATH’ set to the “wrong” locale data (2.35 instead of 2.37). Consequently, it would fail to setlocale(3) and calls to ‘std::stoi’ (when reading the output of ‘guix authenticate’) would throw, leading to this error message of guix-daemon: unexpected build daemon error: stoi This would manifest when sending store items to a childhurd: $ guix copy --to=localhost:10022 sed guix copy: sending 1 store item (1 MiB) to 'localhost'... guix copy: error: unknown error while sending files over SSH The “unknown error” is the ‘stoi’ exception. This commit fixes that, but for the ‘guix-daemon’ service only. * gnu/services/base.scm (guix-shepherd-service)[locales]: New variable. Use it instead of ‘glibc-utf8-locales’.
2023-08-15services: Use more 'file-append'.Felix Lechner
* gnu/services/authentication.scm (pam-ldap-pam-service): Use 'file-append' instead of #~(string-append ...). * gnu/services/base.scm (greetd-pam-service): Likewise. * gnu/services/kerberos.scm (pam-krb5-pam-service): Likewise. * gnu/services/pam-mount.scm (pam-mount-pam-service): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-08-15services: pam-limits: Keep 'limits.conf' in the store.Felix Lechner
* gnu/services/base.scm (pam-limits-service-type)[pam-extension]: Wrap into a 'lambda' that takes 'limits-file'. Pass that in the <pam-entry> 'arguments' field. Define 'make-limits-file' and use it. Remove ETC-SERVICE-TYPE extension. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-07-13services: static-networking: Support netdde for the Hurd.Janneke Nieuwenhuizen
As suggested by Sergey Bugaev on bug-hurd https://lists.gnu.org/archive/html/bug-hurd/2023-05//msg00455.html * gnu/services/base.scm (static-networking->hurd-pfinet-options): Use /DEV/ethX. Use long options for settrans. Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
2023-06-27services: pam-limits: Add lightdm.John Kehayias
Without this a user's pam-limits-service-type configuration does not have an effect when using lightdm. * gnu/services/base.scm (pam-limits-service-type): Add "lightdm" to the list.
2023-06-14services: static-netwoking: Wait for devices to show up.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/63516>. * gnu/services/base.scm (network-set-up/linux): Add call to 'wait-for-link'.
2023-05-24services: guix: Depend on 'avahi-daemon' when 'discover?' is set.Ludovic Courtès
Previously, with shepherd 0.10.0, guix-daemon would start quickly, possibly before avahi-daemon is running. Consequently, its "guix discover" child process would exit immediately with a warning saying "Avahi daemon is not running". * gnu/services/base.scm (guix-shepherd-service): When DISCOVER? is true, add 'avahi-daemon' to 'requirement'.
2023-05-21services: root-file-system: Remove reference to 'stop-logging'.Ludovic Courtès
* gnu/services/base.scm (%root-file-system-shepherd-service): In 'stop' method, remove reference to 'stop-logging'. That procedure is gone in Shepherd 0.10.0, leading to an unbound-variable exception. Additionally, calling is unnecessary since 0.4.0, where shepherd logs to syslog (thus the open file descriptor is not backed by an on-disk file).
2023-05-21services: agetty: 'stop' method does nothing when running is 'idle.Ludovic Courtès
This is a followup to 57e731c358d000f614fbda23654cae6a5e79df80. * gnu/services/base.scm (agetty-shepherd-service): Change 'stop' method to return #f immediately when the running value is 'idle.
2023-05-11system: pam: Let PAM extensions add shepherd requirements.Josselin Poiret
* gnu/system/pam.scm (<pam-extension>): New record type. (pam-shepherd-service): Add Shepherd synchronization point. * gnu/services/mail.scm (dovecot-shepherd-service) * gnu/services/lightdm.scm (lightdm-shepherd-service) * gnu/services/mail.scm (opensmtpd-shepherd-service) * gnu/services/sddm.scm (sddm-shepherd-service) * gnu/services/ssh.scm (lsh-shepherd-service, openssh-shepherd-service) * gnu/services/xorg.scm (slim-shepherd-service, gdm-shepherd-service) * gnu/services/base.scm (greetd-shepherd-services): Add PAM requirement. * gnu/system/pam.scm (/etc-entry, extend-configuration, pam-root-service-type, pam-root-service) * gnu/services/authentication.scm (pam-ldap-pam-service) * gnu/services/base.scm (pam-limits-service-type) (greetd-pam-service) * gnu/services/desktop.scm (pam-gnome-keyring) * gnu/services/kerberos.scm (pam-krb5-pam-service) * gnu/services/pam-mount.scm (pam-mount-pam-service): Adapt to use pam-extension. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-05-11services: syslog: Do not call 'umask' in PID 1.Ludovic Courtès
Fixes a race condition when starting services in parallel with shepherd 0.10.x whereby a service might create files and directories with umask #o137. An example is the bitlbee service with its least-authority wrapper: the wrapper would create a tree with directories set to #o640, thereby making the whole directory tree inaccessible. * gnu/services/base.scm (syslog-shepherd-service): Pass #:file-creation-mask to 'make-forkexec-constructor' instead of calling 'umask' in PID 1.
2023-04-30system: guix: Use config's ACL file location.Josselin Poiret
* gnu/services/base.scm (substitute-key-authorization): Use %acl-file instead of hardcoded "/etc/guix/acl". Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-21services: nscd: Depend on syslogd.Ludovic Courtès
This gets rid of nscd debug messages on the console at boot time. * gnu/services/base.scm (nscd-shepherd-service): Add dependency on 'syslogd'.
2023-04-21services: syslog: Log auth.info to /var/log/secure in default configuration.Maxim Cournoyer
This causes authentication failures such as those generated by SSH brute force attacks to appear in /var/log/secure, which is picked up by tools such as fail2ban. * gnu/services/base.scm (%default-syslog.conf): Add a auth.info selector for the /var/log/secure log. Series-to: 62802@debbugs.gnu.org
2023-04-21services/syslog: Strip leading white space indent in syslog.conf.Maxim Cournoyer
This is a cosmetic change. * gnu/services/base.scm (%default-syslog.conf): Add a comment referencing the documentation. Strip the extraneous leading trailing white space indent.
2023-04-21services: syslog: Add a reload action.Maxim Cournoyer
* gnu/services/base.scm (syslog-service-type) [actions]: Add a reload action. * doc/guix.texi (Base Services): Document it.
2023-04-21services: syslog: Move configuration to /etc/syslog.conf.Maxim Cournoyer
Having the configuration live at a static location makes it possible to hot-reload it. * gnu/services/base.scm (syslog.conf): New variable. (syslog-etc, syslog-shepherd-service): New procedures. (syslog-service-type): Rewrite using the above new variable and procedures, extending etc-service-type with its configuration file.
2023-04-17services: agetty: 'term-console' succeeds by default.Ludovic Courtès
Previously, on a typical setup without "console=ttyS0" or similar in 'kernel-arguments', the 'term-console' Shepherd service would always be marked as failing to start. This is undesirable because it raises a false alarm: the service is expected to do nothing in this case. This patch instead marks it as succeeding and logs a message explaining it's doing nothing. * gnu/services/base.scm (agetty-shepherd-service): In 'start' method, succeed when TTY is #f and print a message.
2023-04-07services: guix-publish: Remove 'compression-level' field.Bruno Victal
* gnu/services/base.scm (<guix-publish-configuration>)[compression-level]: Remove field. (guix-publish-configuration-compression-level): Remove procedure. (default-compression): Remove compression-level helper code. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-07services: base: Remove 'console-font-service' procedure.Bruno Victal
* gnu/services/base.scm (console-font-service): Remove procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-04-07services: base: Remove 'console-keymap-service-type' variable.Bruno Victal
* gnu/services/base.scm (console-keymap-service-type): Remove variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-30services: pam-limits-service-type: Deprecate file-like object support in ↵Bruno Victal
favour for lists as service value. * doc/guix.texi (Base Services): Document it. * gnu/local.mk: Register test. * gnu/services/base.scm (pam-limits-service-type): Accept both lists and file-like objects. Deprecate file-like object support. * gnu/tests/pam.scm: New file. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-30services: base: Deprecate 'pam-limits-service' procedure.Bruno Victal
* doc/guix.texi (Base Services): Replace pam-limits-service with pam-limits-service-type. * gnu/packages/benchmark.scm (python-locust)[description]: Update index anchor to manual. * gnu/services/base.scm (pam-limits-service-type): Set default value. (pam-limits-service): Deprecate procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-27services: syslog: Add 'configuration' action.Ludovic Courtès
* gnu/services/base.scm (syslog-service-type): Add 'actions' field.
2023-03-21services: static-networking: 'eval-when' for code used at expansion-time.Ludovic Courtès
Reported by bjc on #guix. * gnu/services/base.scm (valid-name, cidr->netmask): Wrap in 'eval-when' since they are used by "compile-time procedures" (macros).
2023-03-17services: console-font: 'stop' method always returns #f.Ludovic Courtès
The 'stop' method of Shepherd services is supposed to return #f on success. * gnu/services/base.scm (console-font-shepherd-services): 'stop' method returns #f.
2023-03-03services: base: Deprecate 'rngd-service' procedure.Bruno Victal
* doc/guix.texi (Base Services): Replace rngd-service with rngd-service-type. Document <rngd-configuration>. * gnu/services/base.scm (<rngd-configuration>): Set default values from the values in the now deprecated 'rngd-service' procedure. (rngd-service): Deprecate procedure. (rngd-service-type): Set default value. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-03services: base: Deprecate 'udev-service' procedure.Bruno Victal
* doc/guix.texi (Base Services): Replace udev-service with udev-service-type. Document <udev-configuration>. Use @defun @-commands for udev-rules-service, udev-rule and file->udev-rule. * gnu/services/base.scm (udev-service): Deprecate procedure. * gnu/system/install.scm (%installation-services): Use udev-service-type. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-03services: base: Deprecate 'syslog-service' procedure.Bruno Victal
* doc/guix.texi (Base Services): Replace syslog-service with syslog-service-type. * gnu/services/base.scm (%default-syslog.conf): Place before <syslog-configuration>. (syslog-service-type): Set default value. (syslog-service): Deprecate procedure. (%base-services): Use syslog-service-type. * gnu/system/hurd.scm (%base-services/hurd): Ditto. * gnu/system/install.scm (%installation-services): Ditto. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-03services: base: Deprecate 'nscd-service' procedure.Bruno Victal
* doc/guix.texi (Application Setup): Compress @cindex entries. (Base Services): Compress @cindex entries. Delete %nscd-default-configuration. Replace 'nscd-service' with 'nscd-service-type'. * gnu/services/base.scm (%nscd-default-configuration): Deprecate variable. (nscd-service): Deprecate procedure. * gnu/system/install.scm (%installation-services): Use nscd-service-type. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-03services: base: Deprecate 'agetty-service' procedure.Bruno Victal
* doc/guix.texi (Base Services): Replace agetty-service with agetty-service-type. * gnu/services/base.scm (agetty-service): Deprecate procedure. * gnu/system/examples/beaglebone-black.tmpl (operating-system)[services]: Use agetty-service-type. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-03services: base: Deprecate 'mingetty-service' procedure.Bruno Victal
* doc/guix.texi (Base Services): Replace mingetty-service with mingetty-service-type. * gnu/services/base.scm (mingetty-service): Deprecate procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-03services: base: Deprecate 'login-service' procedure.Bruno Victal
* doc/guix.texi (Base Services): Replace with login-service-type. * gnu/services/base.scm (login-service): Deprecate procedure. * gnu/system/install.scm (%installation-services): Use login-service-type. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-03-03services: base: Deprecate 'host-name-service' procedure.Bruno Victal
* doc/guix.texi (operating-system Reference): Reorder cross-reference. Add an anchor to be used ... (Base services): ... here by host-name-service-type. Document host-name-service-type. * gnu/services/base.scm: Export host-name-service-type. (host-name-service): Deprecate procedure. * gnu/system.scm (operating-system-default-essential-services): Use host-name-service-type. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2023-02-25services: console-font, kmscon: Refer to native 'font-gnu-unifont' builds.Ludovic Courtès
Fixes a regression introduce in 01334a61c7541d8ae29c5252e2e5b3ed7a59c552 that would prevent system cross-compilation (with "guix system image --target=...") due to 'font-gnu-unifont' depending on 'perl-gd', which currently cannot be cross-compiled. * gnu/services/base.scm (%default-console-font, kmscon-service-type): Refer to 'font-gnu-unifont' with 'ungexp-native'.
2023-02-23services: hosts: Do not export '%host'.Ludovic Courtès
This was not meant to be exported. * gnu/services/base.scm (%host): Do not export. * doc/guix.texi (Base Services): Remove mention.
2023-02-19gnu: Use unifont by default in TTYs.Julien Lepiller
It has even better language support than LatGrkCyr-8x16 and can show fancy progress bars. * gnu/services/base.scm (%default-console-font): Use unifont.
2023-02-09services: greetd: Fix configuration serialization.Jelle Licht
* gnu/services/base.scm (make-greetd-terminal-configuration-file): Add missing 'general' section to configuration file.
2023-02-09services: Add hosts-service-type.Bruno Victal
* gnu/services/base.scm (<host>): New record type. (host): New procedure. (hosts-service-type): New variable. * doc/guix.texi (Service Reference): Document it. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2023-01-15services: greetd: Add 'source-profile?' configuration field.Jelle Licht
* gnu/services/base.scm (<greetd-terminal-configuration>)[source-profile?]: New field. (make-greetd-terminal-configuration-file): Serialize new field to configuration file. * doc/guix.texi (Base Services): Document it.
2023-01-09services: base: Add environment support to guix-configuration.Mathieu Othacehe
* gnu/services/base.scm (<guix-configuration>)[extra-env]: New field. (guix-shepherd-service): Honor it. * doc/guix.texi (Base Services): Document it.
2023-01-07Revert "services: base: Add extra-env support to guix-configuration."Mathieu Othacehe
This reverts commit 78a9b4f996ba18b4460ba380b87e9538007c27e0. It was pushed by error, while not reviewed yet.
2023-01-07services: base: Add extra-env support to guix-configuration.Mathieu Othacehe
* gnu/services/base.scm (<guix-configuration>)[extra-env]: New field. (guix-shepherd-service): Honor it. * doc/guix.texi (Base Services): Document it.
2022-12-20services:·kmscon:·Display·CJK·characters.Florian Pelz
Follow-up·to d7d049fdcd80e27a42b31766890f589f482a4f23. * gnu/services/base.scm·(kmscon-service-type):·Use·GNU·Unifont, which bundles CJK glyphs from WenQuanYi and elsewhere.
2022-12-19Merge branch 'version-1.4.0'Ludovic Courtès
2022-12-18services: kmsconf: Load GNU Freefont.Ludovic Courtès
This provides glyphs for additional fonts such as Amharic that were otherwise missing. Fixes <https://issues.guix.gnu.org/60164>. Reported by Wolf <wolf@wolfsden.cz>. * gnu/services/base.scm (kmscon-service-type): In 'start' method, pass #:environment-variables to set 'XDG_DATA_DIRS'.