summary refs log tree commit diff
path: root/gnu/services/base.scm
AgeCommit message (Collapse)Author
2021-04-03services: guix-publish: Add zstd compression by default.Ludovic Courtès
That way, the default config with (advertises? #t) and without a cache will offer zstd-compressed substitutes, which should lead to much higher throughput than gzip. * gnu/services/base.scm (default-compression): When 'guix-publish-configuration-cache' returns true, use higher level compression ratios. Add "zstd". * doc/guix.texi (Base Services): Mention zstd.
2021-04-01services: kmscon: Add font-engine and font-size fields.qblade
* gnu/services/base.scm (<kmscon-configuration>): Add font-engine and font-size fields. (kmscon-service-type): Honor them. * doc/guix.texi (Base Services): Document them.
2021-03-18services: Enable "protected hardlinks" and "protected symlinks" by default.Leo Famulari
References: https://sysctl-explorer.net/fs/protected_hardlinks/ https://sysctl-explorer.net/fs/protected_symlinks/ * gnu/services/sysctl.scm (%default-sysctl-settings): New public variable. (<sysctl-configuration>): Use %default-sysctl-settings as the default value. * gnu/services/base.scm (%base-services): Add sysctl-service-type. * doc/guix.texi (Miscellaneous Services): Document the new defaults. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-01-13services: shepherd: 'shepherd-service-type' requires documentation.Ludovic Courtès
* gnu/services/shepherd.scm (shepherd-service-type): Require a 'description' form. * gnu/services/base.scm (root-file-system-service-type) (rngd-service-type, host-name-service-type): (virtual-terminal-service-type, console-keymap-service-type) (syslog-service-type, swap-service-type) (kmscon-service-type): Add description. * gnu/services/networking.scm (dhcp-client-service-type): Likewise. * gnu/system/install.scm (cow-store-service-type): Likewise. * gnu/system/linux-container.scm (dummy-networking-service-type): Likewise. * gnu/system/mapped-devices.scm (device-mapping-service-type): Likewise. * tests/guix-system.sh: Likewise.
2020-12-15services: 'references-file' depends on Guile-Gcrypt.Ludovic Courtès
Regression introduced in 6a060ff27ff68384d7c90076baa36c349fff689d. Reported by clone11 on #guix. * gnu/services/base.scm (references-file): Wrap gexp in 'with-extensions'.
2020-12-09services: guix-publish: Depend on 'avahi-daemon' when needed.Ludovic Courtès
* gnu/services/base.scm (guix-publish-shepherd-service): Add 'user-processes' to 'requirement'. When ADVERTISE? is true, also add 'avahi-daemon'.
2020-12-07service: Add shepherd discover action.Mathieu Othacehe
* gnu/services/base.scm (shepherd-discover-action): New procedure, (guix-shepherd-service)[<actions>]: add it, [<start>]: honor it. * doc/guix.texi (Invoking guix-daemon): Document it.
2020-11-29Use substitute servers on the local network.Mathieu Othacehe
* guix/scripts/discover.scm: New file. * Makefile.am (MODULES): Add it. * nix/nix-daemon/guix-daemon.cc (options): Add "discover" option, (parse-opt): parse it, (main): start "guix discover" process when the option is set. * guix/scripts/substitute.scm (%local-substitute-urls): New variable, (substitute-urls): add it. * gnu/services/base.scm (<guix-configuration>): Add "discover?" field, (guix-shepherd-service): honor it. * doc/guix.texi (Invoking guix-daemon): Document "discover" option, (Base Services): ditto.
2020-11-29publish: Add advertising support.Mathieu Othacehe
* guix/scripts/publish.scm (%options): Add "--advertise" option. (show-help): Document it. (service-name): New procedure, (publish-service-type): new variable. (run-publish-server): Add "advertise?" and "port" parameters. Use them to publish the server using Avahi. (guix-publish): Pass the "advertise?" option to "run-publish-server". * gnu/services/base.scm (<guix-publish-configuration>): Add "advertise?" field. (guix-publish-shepherd-service): Honor it.
2020-11-26mapped-devices: Allow target to be list of strings.Mikhail Tsykalov
* gnu/system/mapped-devices.scm (<mapped-device>): Rename constructor to %mapped-device. [target]: Remove field. [targets]: New field. Adjust users. (mapped-device-compatibility-helper, mapped-device): New macros. (mapped-device-target): New deprecated procedure. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-11-20Merge branch 'version-1.2.0' into master.Maxim Cournoyer
2020-11-18services: base: Re-export %default-substitute-urls from (guix store).Marius Bakke
* gnu/services/base.scm: Export %DEFAULT-SUBSTITUTE-URLS.
2020-11-18Merge remote-tracking branch 'upstream/version-1.2.0'Tobias Geerinckx-Rice
2020-11-18services: shepherd: Map all the invalid store characters to dash.Ludovic Courtès
Fixes a regression introduced in 977eb5d023cfdf8e336f1896480eea9cef5c04e9 whereby file system services would now have a different name. * gnu/services/base.scm (file-system->shepherd-service-name): Revert changes introduced in 977eb5d023cfdf8e336f1896480eea9cef5c04e9. * gnu/services/shepherd.scm (%store-characters): New variable (shepherd-service-file-name): Map all the characters outside %STORE-CHARACTERS to #\-.
2020-11-17Merge remote-tracking branch 'origin/version-1.2.0' into masterMaxim Cournoyer
Conflicts: gnu/packages/bioinformatics.scm The python-pysam package fixed in master was kept instead of the update done in the version-1.2.0 branch.
2020-11-16services: mingetty: Export configuration accessors.Marius Bakke
* gnu/services/base: Export configuration accessors for mingetty.
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.