aboutsummaryrefslogtreecommitdiff
# This is a "service unit file" for the systemd init system to launch
# 'guix-daemon'.  Drop it in /etc/systemd/system or similar to have
# 'guix-daemon' automatically started.

[Unit]
Description=Build daemon for GNU Guix

[Service]
ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon \
    --build-users-group=guixbuild --discover=no \
    --substitute-urls='@GUIX_SUBSTITUTE_URLS@'
Environment='GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
StandardOutput=journal
StandardError=journal

# Work around a nasty systemd ‘feature’ that kills the entire process tree
# (including the daemon!) if any child, such as cc1plus, runs out of memory.
OOMPolicy=continue

# Despite the name, this is rate-limited: a broken daemon will eventually fail.
Restart=always

# See <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00608.html>.
# Some package builds (for example, go@1.8.1) may require even more than
# 1024 tasks.
TasksMax=8192

[Install]
WantedBy=multi-user.target
uild.scm?id=c6050cce28cfcbdc4c74886595da07005d33e3b0'>guix build: Validate that the file passed to ‘-m’ returns a manifest.Ludovic Courtès * guix/scripts/build.scm (options->things-to-build)[ensure-manifest]: New procedure. Use it. Change-Id: If64c483d7079f441a296d5bd4e06e67f44cbb7bf 2024-12-01guix build: Add ‘--dependents’.Ludovic Courtès * guix/scripts/build.scm (show-help, %options): Add ‘--dependents’. (dependents): New procedure. (options->things-to-build): Add ‘store’ parameter; honor ‘dependents’ option. [for-type]: Handle ‘dependents’ type. (options->derivations): Update call to ‘options->things-to-build’. * tests/guix-build.sh: Add test. * doc/guix.texi (Additional Build Options): Document ‘--dependents’. (Invoking guix refresh): Cross-reference it. * doc/contributing.texi (Submitting Patches): Mention it. Change-Id: I00b6d5831e1f1d35dc8b84a82605391d5a8f417c 2024-12-01guix build: Add ‘--development’ option.Ludovic Courtès * guix/scripts/build.scm (show-help, %options): Add ‘-D’. (options->things-to-build): Change ‘append-map’ to a loop. Honor ‘-D’. * tests/guix-build.sh: Add test. * doc/guix.texi (Additional Build Options): Document it. Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I99227aadfe861e43c001a4872292bd687b37f5d4 2024-10-15guix build: Avoid “could not determine …” warning when unnecessary.Ludovic Courtès This is a followup to 0629af7c2a47171fe8699b4d45662e605fea2fa6. * guix/scripts/build.scm (guix-build): Move ‘urls’ definition to (assoc-ref opts 'log-file?) case so that the “could not determine current substitute URLs” warning is not displayed when ‘urls’ is unused. Change-Id: I9434621b00a80bdbcf54d2a46d1a1e5f49cc7669 2024-09-06guix build: ‘--log-file’ honors the configured substitute URLs.Ludovic Courtès * guix/scripts/build.scm (guix-build): When defining ‘urls’, add ‘substitute-urls’ call. * doc/guix.texi (Additional Build Options): Adjust ‘--log-file’ documentation. Change-Id: I40f0647efe64ba3a63a6379b8da80b0da8910f48 2024-07-18guix build: Take ‘--system’ into account together with ‘-S’.Ludovic Courtès * guix/scripts/build.scm (options->derivations)[compute-derivation]: Pass ‘system’ to ‘package-source-derivation’. * tests/guix-build.sh: Test ‘-S’ together with ‘-s’. Change-Id: If35f116285dd9caaf939221163ad0ba831eea993 2024-04-15Autoload (guix build syscalls).Ludovic Courtès * guix/discovery.scm, guix/git.scm, guix/nar.scm, guix/scripts.scm, guix/scripts/build.scm: Autoload (guix build syscalls). * guix/packages.scm: Autoload (guix build utils). Change-Id: Ia7703b5f46e55fbfadff63b13c35bfe097ce2220 2023-10-17scripts: build: Handle EPIPE errors when displaying help.Simon Tournier * guix/scripts/build.scm (%options): Handle EPIPE errors when displaying help. 2023-03-13guix: Strip #:use-module lists.Ludovic Courtès This was obtained by setting up this environment: guix shell -D guix --with-input=guile@3.0.9=guile-next \ --with-commit=guile-next=e2ed33ef0445c867fe56c247054aa67e834861f2 -- make -j5 then adding 'unused-module' to (@@ (guix build compiler) %warnings), building, and checking all the "unused module" warnings and removing those that were definitely unused. 2023-02-27ui: 'display-hint' quotes extra arguments for Texinfo.Ludovic Courtès Fixes <https://issues.guix.gnu.org/61201>. Previously, common practice was to splice arbitrary strings (user names, file names, etc.) into Texinfo snippets passed to 'display-hint'. This is unsafe in the general case because at signs and braces need to be escaped to produced valid Texinfo. This commit addresses that. * guix/ui.scm (texinfo-quote): New procedure. (display-hint): When ARGUMENTS is non-empty, pass it to 'texinfo-quote' and call 'format'. (report-unbound-variable-error, check-module-matches-file) (display-collision-resolution-hint, run-guix-command): Remove explicit 'format' call; pass 'format' arguments as extra arguments to 'display-hint'. * gnu/services/monitoring.scm (zabbix-front-end-config): Likewise. * guix/scripts.scm (warn-about-disk-space): Likewise. * guix/scripts/build.scm (%standard-cross-build-options) (%standard-native-build-options): Likewise. * guix/scripts/describe.scm (display-checkout-info): Likewise. * guix/scripts/environment.scm (suggest-command-name): Likewise. * guix/scripts/home.scm (process-command): Likewise. * guix/scripts/home/edit.scm (service-type-not-found): Likewise. * guix/scripts/import.scm (guix-import): Likewise. * guix/scripts/package.scm (display-search-path-hint): Likewise. * guix/scripts/pull.scm (build-and-install): Likewise. * guix/scripts/shell.scm (auto-detect-manifest): Likewise. * guix/scripts/system.scm (check-file-system-availability): Likewise. (guix-system): Likewise. * guix/scripts/system/edit.scm (service-type-not-found): Likewise. * guix/status.scm (print-build-event): Likewise.