summary refs log tree commit diff
path: root/gnu/services/base.scm
AgeCommit message (Collapse)Author
2020-11-16Properly deal with build directories containing '~'.Ludovic Courtès
Fixes <https://bugs.gnu.org/44626>. Reported by Vagrant Cascadian <vagrant@debian.org>. * tests/build-utils.scm ("wrap-script, simple case"): Pass SCRIPT-CONTENTS to 'display' rather than 'format'. * gnu/services/base.scm (file-system->shepherd-service-name) [valid-characters, mount-point]: New variables. Filter out invalid store file name characters from the mount point of FILE-SYSTEM.
2020-11-11gnu: mingetty-shepherd-service: Make 'clear-on-logout' configurable.Mark H Weaver
Also change the default configuration to clear on logout, which is the upstream default. * gnu/services/base.scm (<mingetty-configuration>): Add 'clear-on-logout?' field. (mingetty-shepherd-service): Pass the "--noclear" option to mingetty only if 'clear-on-logout?' is #false. * doc/guix.texi (Base Services): Document the 'clear-on-logout?' field.
2020-11-05services: guix: Do not embed the host (guix config).Ludovic Courtès
Fixes a bug whereby different users would get different derivations for the same service. * gnu/services/base.scm (guix-shepherd-service): In 'start' method, do not embed (guix config).
2020-10-30services: guix-publish: Add 'cache-bypass-threshold' field.Ludovic Courtès
This is a followup to ecaa102a58ad3ab0b42e04a3d10d7c761c05ec98. * gnu/services/base.scm (<guix-publish-configuration>)[cache-bypass-threshold]: New field. (guix-publish-shepherd-service): Honor it.
2020-10-30services: swap: Allow for UUIDs and file system labels.Ludovic Courtès
* gnu/services/base.scm (swap-service-type)[device-lookup, device-name]: New variables. Add 'modules' field to 'shepherd-service'. In 'start' and 'stop', use 'device-lookup' to resolve UUIDs and labels. * doc/guix.texi (operating-system Reference): Adjust accordingly.
2020-10-25services: guix: Make /etc/guix/acl really declarative by default.Ludovic Courtès
Fixes <https://bugs.gnu.org/39819>. Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>. * gnu/services/base.scm (substitute-key-authorization): Symlink DEFAULT-ACL to /etc/guix/acl unconditionally. Add code to optionally back up /etc/guix/acl if it was possibly modified by hand. * doc/guix.texi (Base Services): Clarify the effect of setting 'authorize-keys?' to true. Mention the backup. Give an example showing how to authorize substitutes from another server.
2020-09-29services: guix: Generate key pair if needed during activation.Ludovic Courtès
* gnu/services/base.scm (guix-activation): Invoke "guix archive --generate-key". * doc/guix.texi (Invoking guix archive) (Invoking guix deploy): Mention that 'guix-service-type' takes care of generating the key pair.
2020-09-21services: base: Improve container related comments.Mathieu Othacehe
* gnu/services/base.scm (guix-shepherd-service): Clarify the usage of a container for guix-daemon.
2020-09-02installer: Run the installation inside a container.Mathieu Othacehe
When the store overlay is mounted, other processes such as kmscon, udev and guix-daemon may open files from the store, preventing the underlying install support from being umounted. See: https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00161.html. To avoid this situation, mount the store overlay inside a container, and run the installation from within that container. * gnu/build/shepherd.scm (fork+exec-command/container): New procedure. * gnu/services/base.scm (guix-shepherd-service): Support an optional PID argument passed to the "start" method. If that argument is passed, ensure that guix-daemon enters the given PID MNT namespace by using fork+exec-command/container procedure. * gnu/installer/final.scm (umount-cow-store): Remove it, (install-system): run the installation from within a container. * gnu/installer/newt/final.scm (run-install-shell): Remove the display hack.
2020-08-25Remove "guile-zlib" extension when unused.Mathieu Othacehe
This is a follow-up of 755f365b02b42a5d1e8ef3000dadef069553a478. As (zlib) is autoloaded in (gnu build linux-modules), "guile-zlib" is needed as an extension only when it is effectively used. * gnu/installer.scm (installer-program): Remove "guile-zlib" from the extensions. * gnu/machine/ssh.scm (machine-check-initrd-modules): Ditto. * gnu/services.scm (activation-script): Ditto. * gnu/services/base.scm (default-serial-port): Ditto, (agetty-shepherd-service): ditto, (udev-service-type): ditto. * gnu/system/image.scm (gcrypt-sqlite3&co): Ditto. * gnu/system/shadow.scm (account-shepherd-service): Ditto.
2020-08-25linux-libre: Support module compression.Mathieu Othacehe
This commit adds support for GZIP compression for linux-libre kernel modules. The initrd modules are kept uncompressed as the initrd is already compressed as a whole. The linux-libre kernel also supports XZ compression, but as Guix does not have any available bindings for now, and the compression time is far more significant, GZIP seems to be a better option. * gnu/build/linux-modules.scm (modinfo-section-contents): Use 'call-with-gzip-input-port' to read from a module file using '.gz' extension, (strip-extension): new procedure, (dot-ko): adapt to support compression, (ensure-dot-ko): ditto, (file-name->module-name): ditto, (find-module-file): ditto, (load-linux-module*): ditto, (module-name->file-name/guess): ditto, (module-name-lookup): ditto, (write-module-name-database): ditto, (write-module-alias-database): ditto, (write-module-device-database): ditto. * gnu/installer.scm (installer-program): Add "guile-zlib" to the extensions. * gnu/machine/ssh.scm (machine-check-initrd-modules): Ditto. * gnu/services.scm (activation-script): Ditto. * gnu/services/base.scm (default-serial-port): Ditto, (agetty-shepherd-service): ditto, (udev-service-type): ditto. * gnu/system/image.scm (gcrypt-sqlite3&co): Ditto. * gnu/system/linux-initrd.scm (flat-linux-module-directory): Add "guile-zlib" to the extensions and make sure that the initrd only contains uncompressed module files. * gnu/system/shadow.scm (account-shepherd-service): Add "guile-zlib" to the extensions. * guix/profiles.scm (linux-module-database): Ditto.
2020-07-22services: base: Export references-file.Oleg Pykhalov
* gnu/services/base.scm (references-file): Export procedure.
2020-07-12services: Remove obsolete comment.Marius Bakke
This TODO was resolved in ea4915a74bc4c03495d4910c1e32a92c790b6626. * gnu/services/base.scm (%default-authorized-guix-keys): Remove TODO comment.
2020-07-11services: guix: Refer to 'berlin.guix.gnu.org.pub'.Christopher Lemmer Webber
Commit 6680880f9b8dceb4f2f3f91bd2b13c659b53835e pushes out a new guix package with a new key location, so we need to update to the new key in order for systems to build correctly. * gnu/services/base.scm (%default-authorized-guix-keys): Refer to berlin.guix.gnu.org.pub.
2020-07-10services: guix: Refer to 'berlin.guixsd.org.pub'.Ludovic Courtès
This partly reverts d283bb960f927dd5f7bb8b96bc697221e4e8ad39. * gnu/services/base.scm (%default-authorized-guix-keys): Refer to berlin.guixsd.org.pub.
2020-07-10maint: Remove traces of "berlin.guixsd.org".Ludovic Courtès
The guixsd.org domain is no longer advertised since before in 1.0.0 release in May 2019. * etc/substitutes/berlin.guixsd.org.pub: Rename to... * etc/substitutes/berlin.guix.gnu.org.pub: ... this. * etc/substitutes/ci.guix.gnu.org.pub, etc/substitutes/ci.guix.info.pub: Adjust accordingly. * gnu/services/base.scm (%default-authorized-guix-keys): Likewise. * guix/build/download-nar.scm (urls-for-item): Likewise. * guix/self.scm (miscellaneous-files): Likewise. * Makefile.am (dist_pkgdata_DATA): Likewise.
2020-05-08Merge branch 'core-updates'Marius Bakke
2020-05-07Revert "services: syslog: Simplify 'start' method."Ludovic Courtès
This reverts commit 4c0cc7bed3de2c0e2d3a6e95b88693941e839eec. Fixes <https://bugs.gnu.org/41116>. Reported by Alex Sassmannshausen <alex@komputilo.eu>. The problem is that reconfiguring on a system running Shepherd < 0.8.0 would lead to an error, due to #:file-creation-mask not being supported. The error is rather harmless: it prevents service upgrade but the system itself is upgraded. We can reinstate that commit eventually, once #:file-creation-mask has become widespread.
2020-05-05Merge branch 'master' into core-updatesMarius Bakke
2020-05-05services: For "sddm" pam service, include "limits.conf".Giacomo Leidi
* gnu/services/base.scm (pam-limits-service-type): For "sddm" pam service, include "limits.conf". Signed-off-by: Marius Bakke <mbakke@fastmail.com>
2020-05-02Merge branch 'master' into core-updatesMarius Bakke
2020-05-02services: syslog: Simplify 'start' method.Diego Nicola Barbato
This is a followup to d7113bb655ff80a868a9e624c913f9d23e6c63ad and e3358a831e7d5d9e8dc614340e49ea5aeb11a7ff. * gnu/services/base.scm (syslog-service-type): Change 'start' method to set umask using the #:file-creation-mask parameter of 'make-forkexec-constructor' introduced in version 0.8.0 of the Shepherd. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-04-23Merge branch 'master' into core-updatesMarius Bakke
Conflicts: etc/news.scm gnu/local.mk gnu/packages/bootloaders.scm gnu/packages/linphone.scm gnu/packages/linux.scm gnu/packages/tls.scm gnu/system.scm
2020-04-22services: Add udev-rules-service helper.Brice Waegeneire
* doc/guix.texi (Base services): Add documentation for 'udev-rules-service'. Replace examples of 'udev-service-type' extension with 'udev-rules-service'. * gnu/services/base.scm (udev-rules-service): New procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-04-21services: Don't use the deprecated 'make-forkexec-constructor' call.Ludovic Courtès
Passing 'make-forkexec-constructor' a string or several string arguments has been deprecated since dmd 0.1. * gnu/services/base.scm (rngd-service-type): In 'start' method, pass a list as the first argument to 'make-forkexec-constructor'. * gnu/services/desktop.scm (bluetooth-shepherd-service): Likewise. * gnu/services/spice.scm (spice-vdagent-shepherd-service): Likewise.
2020-04-19Merge branch 'master' into core-updatesMarius Bakke
2020-04-17services: Move 'user-processes' to (gnu services shepherd).Ludovic Courtès
* gnu/services/base.scm (%do-not-kill-file) (user-processes-shepherd-service, user-processes-service-type): Move to... * gnu/services/shepherd.scm: ... here.
2020-04-08Merge branch 'master' into core-updatesMarius Bakke
Conflicts: etc/news.scm gnu/local.mk gnu/packages/check.scm gnu/packages/cross-base.scm gnu/packages/gimp.scm gnu/packages/java.scm gnu/packages/mail.scm gnu/packages/sdl.scm gnu/packages/texinfo.scm gnu/packages/tls.scm gnu/packages/version-control.scm
2020-04-07services: guix: Add 'set-http-proxy' action.Ludovic Courtès
Fixes <https://bugs.gnu.org/25569>. Reported by Divan Santana <divan@santanas.co.za>. * gnu/services/base.scm (shepherd-set-http-proxy-action): New procedure. (guix-shepherd-service): Add 'actions' field. Change 'start' to a lambda; check the value of the "http_proxy" environment variable and add "http_proxy" and "https_proxy" to #:environment-variables as a function of that. * gnu/tests/base.scm (run-basic-test)["guix-daemon set-http-proxy action", "guix-daemon set-http-proxy action, clear"]: New tests. * doc/guix.texi (Base Services): Document it.
2020-04-06services: syslog: Create log files as non-world-readable.Ludovic Courtès
Partly fixes <https://bugs.gnu.org/40405>. Reported by Diego Nicola Barbato <dnbarbato@posteo.de>. * gnu/services/base.scm (syslog-service-type): Change 'start' method to set umask to #o137 before spawning syslogd. * gnu/tests/base.scm (run-basic-test)["/var/log/messages is not world-readable"]: New test.
2020-04-06services: Add 'rottlog-service-type' to '%base-services'.Ludovic Courtès
* gnu/services/base.scm (%base-services): Add an instance of ROTTLOG-SERVICE-TYPE. * doc/guix.texi (Log Rotation): Mention that it's part of %BASE-SERVICES and change example.
2020-03-27Merge branch 'master' into core-updatesMarius Bakke
Conflicts: gnu/packages/icu4c.scm gnu/packages/man.scm gnu/packages/python-xyz.scm guix/scripts/environment.scm guix/scripts/pack.scm guix/scripts/package.scm guix/scripts/pull.scm guix/store.scm
2020-03-23services: console-font: Fix docstring.Ludovic Courtès
* gnu/services/base.scm (console-font-service-type): Use quasiquote and unquote appropriately in docstring.
2020-03-14gnu: eudev: Remove bugfix variant.Marius Bakke
* gnu/packages/linux.scm (eudev/btrfs-fix): Remove variable. (eudev)[arguments]: Add phase patch-bindir-in-btrfs-rules. * gnu/services/base.scm (<udev-configuration>, udev-service): Refer to EUDEV instead of EUDEV/BTRFS-FIX.
2020-03-10Merge branch 'master' into core-updatesMarius Bakke
2020-03-07gnu: eudev: Add variant with corrected Btrfs rules.Ludovic Courtès
Discussed at <https://bugs.gnu.org/39926>. * gnu/packages/linux.scm (eudev/btrfs-fix): New variable. * gnu/services/base.scm (<udev-configuration>)[udev]: Default to it. (udev-service): Likewise for #:udev.
2020-03-04Merge branch 'master' into core-updatesMarius Bakke
2020-02-20services: udev: Do not rely on shepherd inheriting environment variables.Florian Pelz
Fixes <https://bugs.gnu.org/39671>. * gnu/services/base.scm (udev-shepherd-service)[start] Move or copy environment variables to 'fork+exec-command' instead of 'setenv'.
2020-02-11system: Stop using canonical-package.Mathieu Othacehe
Usage of canonical-package outside of thunked fields breaks cross-compilation, see: https://lists.gnu.org/archive/html/guix-devel/2019-12/msg00410.html. * gnu/installer.scm (installer-program): Remove canonical-package. * gnu/services/base.scm (<nscd-cache>): Ditto, (%base-services): ditto. * gnu/services/xorg.scm: Remove useless canonical-package import. * gnu/system.scm (%base-packages): Remove canonical-package. * gnu/system/install.scm (%installation-services): Ditto, (installation-os): ditto. * gnu/system/locale.scm (single-locale-directory): Ditto.
2020-01-05services: host-name: Make service one-shot.Efraim Flashner
* gnu/services/base.scm (host-name-service-type): Remove 'respawn?' keyword from shepherd-service-type, add 'one-shot?'.
2019-12-30services: console-font: Update example with HDPI font suggestion.Jan Nieuwenhuizen
This solution was kindly provided by Bernard M. Wiedemann. * gnu/services/base.scm (console-font-service-type): Add ter132n (terminus 132 nomal) font example, for HDPI displays. * doc/guix.texi (Invoking guix system): Update to `guix system search console' example output.
2019-10-21services: agetty: Really import (gnu build linux-boot).Ludovic Courtès
This is a followup to commit 62c2217570fb3a3437e8316d3679b7fe13db0884. * gnu/services/base.scm (agetty-shepherd-service)[start]: Wrap un 'with-imported-modules'. This fixes a build error when TTY is true ("no code for module (gnu build linux-boot)").
2019-10-06Merge branch 'master' into core-updatesRicardo Wurmus
2019-10-06services: udev: Explicitly depend on (gnu build linux-boot).Ludovic Courtès
* gnu/services/base.scm (udev-shepherd-service): Wrap 'start' method in 'with-imported-modules'.
2019-10-06services: agetty: Explicitly depend on (gnu build linux-boot).Ludovic Courtès
* gnu/services/base.scm (default-serial-port): Wrap in 'with-imported-modules'.
2019-10-05services: urandom-seed: Credit the entropy added to the PRNG.Ludovic Courtès
Partly fixes <https://bugs.gnu.org/37501>. Reported by Marius Bakke <mbakke@fastmail.com>. * gnu/services/base.scm (urandom-seed-shepherd-service): In 'start' method, add calls to 'add-to-entropy-count'.
2019-10-02services: For "gdm-password" pam service, include "limits.conf".Jesse Gibbons
* gnu/services/base.scm (pam-limits-service-type): For "gdm-password" pam service, include "limits.conf". Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2019-09-12services: Fix /usr/bin/env special file target.Ludovic Courtès
This is a followup to a9162155975a131afa1e6a44262afbb7af91f7fd. * gnu/services/base.scm (%base-services): Fix "/usr/bin/env" target.
2019-09-09services: Add ‘/usr/bin/env’ special file.Tobias Geerinckx-Rice
* gnu/services/base.scm (%base-services): Add ‘/usr/bin/env‘ to special-files-service-type.
2019-09-06Revert "services: Add ‘/usr/bin/env’ special file."Mark H Weaver
This reverts commit 3b38bf141a464e1bb370af7d2b2651d1efb29781. The Guix project discussed this years ago and decided against including /usr/bin/env. That decision should not be reversed without a wider discussion.