Commit Graph

2256 Commits

Author SHA1 Message Date
Ludovic Courtès 59bb1ae3a9
git: Require Guile-Git 0.3.0 or later.
* guix/git.scm (auth-supported?): Remove.
(clone*): Inline code that was dependent on AUTH-SUPPORTED?.
(update-cached-checkout): Likewise.
(resolve-reference): Remove check for 'object-lookup-prefix' and use it
unconditionally.
(load-git-submodules): Remove.
(update-submodules): Use 'repository-submodules', 'submodule-lookup',
etc. unconditionally.
(update-cached-checkout): Use 'repository-close!' unconditionally.
* m4/guix.m4 (GUIX_CHECK_GUILE_GIT): New macro.
* configure.ac: Use it and error out when it fails.
* doc/guix.texi (Requirements): Bump to Guile-Git 0.3.0.
2020-10-22 17:10:25 +02:00
Ricardo Wurmus 3ddc47bc07
doc: Move documentation of singularity-service-type.
Fixes <https://bugs.gnu.org/44126>.

* doc/guix.texi: Move documentation of singularity-service-type from
"Auditd Service" heading to "Docker Service" heading.
2020-10-21 23:32:01 +02:00
Ludovic Courtès 720fce6dae
doc: Capitalize "Hurd" in 'operating-system' reference.
* doc/guix.texi (operating-system Reference): Capitalize "Hurd".
2020-10-21 19:19:34 +02:00
Ludovic Courtès 2c9f6ff2ae
doc: Add an entry for the 'keyboard-layout' procedure.
* doc/guix.texi (Keyboard Layout): Add @deffn entry for
'keyboard-layout'.
2020-10-21 19:19:34 +02:00
Ludovic Courtès 004a9455f9
doc: Fix typo in 'avahi-service-type' description.
* doc/guix.texi (Networking Services): Change "zero-configuration" to
"avahi-configuration".
2020-10-21 19:19:34 +02:00
Ludovic Courtès 481d2fbb91
doc: Fix typo in 'git-fetch' description.
* doc/guix.texi (origin Reference): Replace "git-download" with
"git-fetch" in one sentence.
2020-10-21 19:19:33 +02:00
Ludovic Courtès 8fe7c89f0c
doc: Cookbook links to /manual/devel, not /manual.
Since the Cookbook is built from the 'master' branch, it should point to
the manual from that same branch.

* doc/build.scm (guix-mono-node-indexes, guix-split-node-indexes): Link
to /manual/devel when %MANUAL is not "guix".
2020-10-21 19:19:33 +02:00
Christopher Baines bdcf4d88d5
services: databases: Don't specify a default postgresql version.
Currently, if the postgresql package major version changes, this is going to
break the service upon upgrade, because PostgreSQL will reject the data files
from the differing major version of the service.

Because it's important to either keep running a particular major version, or
intentionally upgrade, I think the configuration would be better with no
default. I think this is also going to be helpful when trying to assist users
upgrading PostgreSQL.

* gnu/services/databases.scm (<postgresql-configuration>): Remove default for
postgresql.
(postgresql-service-type): Remove the default value.
* gnu/tests/databases.scm (%postgresql-os): Update accordingly.
* gnu/tests/guix.scm (%guix-data-service-os): Update accordingly.
* gnu/tests/monitoring.scm (%zabbix-os): Update accordingly.
* gnu/tests/web.scm (patchwork-os): Update accordingly.
* doc/guix.texi (PostgreSQL): Update accordingly.
2020-10-20 22:39:43 +01:00
Christopher Baines a698df72d3
services: databases: Deprecate the postgresql-service procedure.
Using the service type directly is a better approach, making it easier to
configure the service.

* gnu/services/databases.scm (postgresql-service): Deprecate this procedure.
* doc/guix.texi (PostgreSQL): Update the documentation for the use of (service
postgresql-service-type).
2020-10-20 22:39:43 +01:00
Christopher Baines 93576e4475
doc: Add subheadings in to the Databases section.
To make it clearer where the relevant documentation for a particular service
starts and ends.

* doc/guix.texi (Database Services): Add subheadings.
2020-10-20 22:39:43 +01:00
Ludovic Courtès 6701f64f73
guix build: Move package transformation options behind '--help-transform'.
This change declutters the '--help' output.

* guix/scripts/build.scm (show-build-options-help)
(%standard-build-options): Add '--help-transform'.
(show-transformation-options-help): Make private.
(show-help): Remove call to 'show-transformation-options-help'.
* guix/scripts/build.scm (show-help): Likewise.
* guix/scripts/environment.scm (show-help): Likewise.
* guix/scripts/graph.scm (show-help): Likewise.
* guix/scripts/install.scm (show-help): Likewise.
* guix/scripts/pack.scm (show-help): Likewise.
* guix/scripts/package.scm (show-help): Likewise.
* guix/scripts/upgrade.scm (show-help): Likewise.
* doc/guix.texi (Package Transformation Options): Mention '--help-transform'.
2020-10-20 16:30:16 +02:00
Ludovic Courtès 6aeda81602
guix build: Add '--with-debug-info'.
* guix/scripts/build.scm (transform-package-with-debug-info): New
procedure.
(%transformations): Add 'with-debug-info'.
(%transformation-options, show-transformation-options-help): Add
'--with-debug-info'.
* tests/scripts-build.scm ("options->transformation, with-debug-info"):
New test.
* doc/guix.texi (Package Transformation Options): Document
'--with-debug-info'.
(Installing Debugging Files): Introduce sections.  Remove bit about
eventual "opt-out" since this is not happening.  Document
'--with-debug-info' under "Rebuilding with Debugging Info".
2020-10-20 16:30:16 +02:00
Ludovic Courtès b8085fccf2
doc: Replace @example with @lisp in "Build Phases".
* doc/guix.texi (Build Phases): Use @lisp for second example.
2020-10-20 16:30:15 +02:00
Ludovic Courtès 93c251818d
doc: More uses of @lisp instead of @example.
* doc/guix.texi (G-Expressions): Use @lisp for 'let-system' example.
* doc/contributing.texi (Synopses and Descriptions): Use @lisp for
second example.
2020-10-20 01:07:46 +02:00
Ludovic Courtès ebe6e03949
doc: Fix misuses of @var in "Defining Packages".
* doc/guix.texi (Defining Packages): Use @code instead of @var where
appropriate.
2020-10-20 01:07:46 +02:00
Ludovic Courtès 5513d621e9
doc: Add "Build Phases" section.
* doc/guix.texi (Build Phases): New section.
(Build Systems): Remove 'modify-phases' example and add cross-reference
to "Build Phases".
(Build Utilities)[Build Phases]: Simplify intro and link to "Build
Phases".
(G-Expressions): Add index entries for "code staging" and add
cross-reference to "Build Phases".
2020-10-20 01:07:46 +02:00
Ludovic Courtès 39befb6261
doc: Document 'url-fetch', 'git-fetch', and 'git-reference'.
* doc/guix.texi (origin Reference): Rewrite initial paragraph.  Properly
document 'method' and its protocol.  Document 'url-fetch', 'git-fetch',
and 'git-reference' separately.
2020-10-20 01:07:46 +02:00
Reza Alizadeh Majd 764d896668
services: Add LXQt desktop service.
* gnu/services/desktop.scm (lxqt-desktop-service-type): New variable.
(<lxqt-desktop-configuration>): New record type.
(lxqt-desktop-configuration?): New procedure.
* doc/guix.texi (Desktop Services): Document this.

Co-authored-by: Oleg Pykhalov <go.wigust@gmail.com>
2020-10-20 00:21:45 +03:00
Maxim Cournoyer 5800d2aae2
maint: update-guix-package: Prevent accidentally breaking guix pull.
Fixes <https://issues.guix.gnu.org/43893>.

This changes the 'update-guix-package' tool so that it:

1. Always uses a clean checkout to compute the hash of the updated 'guix'
package.
2. Ensures the commit used in the updated 'guix' package definition has already
been pushed upstream.

* build-aux/update-guix-package.scm (%savannah-guix-git-repo-push-url): New
variable.
(with-input-pipe-to-string, with-temporary-git-worktree): New syntaxes.
(find-origin-remote, git-add-worktree): New procedures.
(commit-already-pushed?): New predicate.
(main): Check the commit used has already been pushed upstream and compute the
hash from a clean checkout.
* doc/contributing.texi (Updating the Guix Package): Document it.
* .dir-locals.el (scheme-mode): Fix indentation of with-temporary-git-worktree.
2020-10-19 14:02:53 -04:00
Ludovic Courtès d66a4eac44
doc: Produce stylable HTML for @deftp, @deffn, etc.
'makeinfo --help' uses <strong> and <em> for those entries.  Replace
that with CSS classes.

* doc/build.scm (html-manual-identifier-index)[build]: Adjust to handle
rewritten forms of <dt> entries.
* doc/build.scm (syntax-highlighted-html)[build][syntax-highlight]:
Handle <dt> forms and replace them.
[highlight-definition, space?]: New procedures.
2020-10-19 13:28:38 +02:00
Aniket Patil 62fc3e375c
doc: Fix typo.
* doc/guix.texi (Invoking guix import): Fix typo.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-10-17 22:40:18 +02:00
Ludovic Courtès f54149062e
doc: cookbook: Balance parens in custom kernel examples.
* doc/guix-cookbook.texi (Customizing the Kernel): Add missing paren in
example.  Remove extra parens in other example.
2020-10-17 22:40:18 +02:00
Ludovic Courtès 97ce30cc1b
doc: Generate cross-references in code snippets to the Guile manual.
Occurrences of 'list', 'cons', etc. in code snippets now link to the
relevant section of the Guile manual.

* doc/build.scm (guile-manual, %guile-manual-base-url)
(guile-mono-node-indexes, guile-split-node-indexes): New variables.
(for-all-languages, merge-index-alists): New procedures.
<top level>: Rename 'mono-node-indexes' and 'split-node-indexes' to
'guix-mono-node-indexes' and 'guix-split-node-indexes' respectively.
Add 'mono-node-indexes' and 'split-node-indexes' defined as calls to
'merge-index-alists'.
2020-10-17 22:40:17 +02:00
Ludovic Courtès db1d445357
doc: Allow code snippets in the cookbook to link to the manual.
Until now, only code snippets in the manual itself would contain links
to identifier definitions.  Now snippets in the cookbook also link to
definitions in the manual.

* doc/build.scm (html-manual): Add #:mono-node-indexes and #:multi-node-indexes
and pass it to 'syntax-highlighted-html'.
(pdf+html-manual): Likewise, and pass it to 'html-manual'.
<top level>: Factorize 'version' and 'source'.  Define 'guix-manual',
'mono-node-indexes', and 'split-node-indexes'.  Pass #:mono-node-indexes
and #:split-node-indexes to 'pdf+html-manual'.
2020-10-17 22:40:17 +02:00
Ludovic Courtès 0f7d0743ed
doc: Move manual index creation to a separate derivation.
* doc/build.scm (normalize-language-code, html-manual-identifier-index):
New procedures.
(syntax-highlighted-html): Add #:mono-node-indexes and #:split-node-indexes.
[build](underscore-decode, anchor-id->key, collect-anchors): Remove.
(language+node-anchors, mono-node-anchors, multi-node-anchors): New
variables.
Use them.
2020-10-17 22:40:17 +02:00
Ludovic Courtès 3cd1a7ac51
doc: Remove 'build.scm' from the source of the manual.
That way we no longer have to rebuild the whole manual when fiddling
with 'build.scm'.

* doc/build.scm <top level>: Define 'select?' and pass it to
'pdf+html-manual'.
2020-10-17 22:40:17 +02:00
Miguel Ángel Arruga Vivas c2a382e510
doc: Fixes for Texinfo metainfo.
* doc/guix.texi (guix-pack)[GUIX_EXECUTION_ENGINE]: Use @env
instead of @code.
(zram-device-service-type): Use @code instead of @var for constant or
symbolic values.
(rshiny-service-type): Use @env instead of @code for R_LIBS_USER.
2020-10-17 15:32:53 +02:00
Miguel Ángel Arruga Vivas 3483e6444d
doc: Fix minor typos.
* doc/guix.texi (cargo-build-system): Fix install phase description.
(julia-build-system): Fix typo and add information from check.
(pulseaudio-configuration): Remove duplicated words.
(knot-acl-configuration)[id]: Fix typo.
(mpd-output)[extra-options]: Likewise.
(libvirt-configuration) [listen-tls?]: Add missing subject.
[listen-tcp?]: Add missing subject and period.
[tls-port, tcp-port, log-filters]: Add missing period.
(hurd-vm-configuration)[netoptions]: Fix typo in example.
(ganeti-watcher-service-type): Fix typo.
(grub-theme)[gfxmode]: Remove see before @pxref.
2020-10-17 15:32:49 +02:00
Ludovic Courtès c0001b8bfc
doc: cookbook: Clarify what keywords are.
* doc/guix-cookbook.texi (A Scheme Crash Course): Clarify what keywords
are.
2020-10-15 23:51:04 +02:00
Ludovic Courtès 699f1de721
doc: Improve "Build Utilities".
* doc/guix.texi (Build Utilities): Fix typos.  Provide the correct
syntax for 'substitute*'.  Add a 'modify-phases' example.
2020-10-15 23:51:04 +02:00
Ludovic Courtès 61263e1ba3
doc: Add "Build Utilities" section.
* doc/guix.texi (Build Utilities): New section.
(Defining Packages): Refer to it.
(Build Systems): Likewise.
* doc/guix-cookbook.texi (Extended example): Likewise.
2020-10-15 18:50:22 +02:00
Ludovic Courtès 48720afb32
doc: cookbook: Use @code for the identifiers of utility functions.
* doc/guix-cookbook.texi (Utility functions): Use @code instead of @asis.
2020-10-15 18:50:22 +02:00
Ludovic Courtès 3451368345
doc: cookbook: More "#true" and "#false".
* doc/guix-cookbook.texi (Extended example)
(Customizing the Kernel, Running Guix on a Linode Server): Use #true and #false.
2020-10-15 18:50:22 +02:00
Ludovic Courtès 51f34e21c6
doc: cookbook: Use @var for meta-syntactic variables.
* doc/guix-cookbook.texi (Extended example): Use @var for meta-syntactic
variables in 'modify-phases' description.
2020-10-15 18:50:22 +02:00
Ludovic Courtès 7802988201
doc: cookbook: Fix 'let' form in example.
* doc/guix-cookbook.texi (Extended example): Fix 'let' form in example.
2020-10-15 18:50:22 +02:00
Mathieu Othacehe b4369430e3
doc: Fix typo.
* doc/guix.texi (Guix Build Coordinator): Fix typo.
2020-10-15 14:16:19 +02:00
Oleg Pykhalov 00014f7692
services: nginx: Add lua module.
* gnu/services/web.scm (<nginx-configuration>)
[lua-package-path, lua-package-cpath]: New record types.
* gnu/services/web.scm (default-nginx-config): Use them.
* doc/guix.texi (Web Services): Document this.
* doc/guix-cookbook.texi (System Configuration): Document this.
2020-10-14 23:41:26 +03:00
Ludovic Courtès cd958802f2
doc: cookbook: Mention "#true" and "#false".
* doc/guix-cookbook.texi (A Scheme Crash Course): Mention "#true" and
"#false".
(Extended example): Likewise.
2020-10-14 15:22:56 +02:00
Ludovic Courtès d96e739f08
doc: Mention "i586-gnu" as supported and experimental.
* doc/guix.texi (GNU Distribution): Mention "i586-gnu".
2020-10-14 15:22:55 +02:00
Ludovic Courtès 4b0a1543e1
doc: Avoid orphan node.
Commit 4b5a6fbc9b turned "Transparent
Emulation with QEMU" into a node, but that was an orphan node, with no
up/next/previous links.

* doc/guix.texi (Virtualization Services): Capitalize subsection title.
(Transparent Emulation with QEMU): Remove "@node" and add "@anchor".
(Daemon Offload Setup): Adjust cross-reference accordingly.
2020-10-14 15:22:55 +02:00
Ludovic Courtès abd7a47461
guix build: Add '--with-c-toolchain'.
* guix/scripts/build.scm (package-dependents/spec)
(package-toolchain-rewriting, transform-package-toolchain): New procedures.
(%transformations): Add it.
(%transformation-options, show-transformation-options-help): Add
'--with-c-toolchain'.
* tests/scripts-build.scm (depends-on-toolchain?): New procedure.
("options->transformation, with-c-toolchain")
("options->transformation, with-c-toolchain twice")
New test.
("options->transformation, with-c-toolchain, no effect"): New tests.
* doc/guix.texi (Package Transformation Options): Document it.
2020-10-12 18:23:47 +02:00
Ludovic Courtès 46135ce4ce
packages: Add 'package-with-c-toolchain'.
* guix/build-system.scm (build-system-with-c-toolchain): New procedure.
* guix/packages.scm (package-with-c-toolchain): New procedure.
* tests/packages.scm ("package-with-c-toolchain"): New test.
* doc/guix.texi (package Reference): Document 'package-with-c-toolchain'.
(Build Systems): Mention it.
2020-10-12 18:23:47 +02:00
Maxim Cournoyer 5918cb5341
doc: Sync the client and daemon --rounds options documentation.
Fixes <https://issues.guix.gnu.org/40867>.

* doc/guix.texi (Common Build Options): Suggest using '--keep-failed' to keep
differing build results in the store rather than 'guix archive'.

Reported-by: Jonathan Brielmaier <jonathan.brielmaier@web.de>
2020-10-09 16:57:14 -04:00
Efraim Flashner 9c1b8390ba
doc: Document missing openssh configure option.
* doc/guix.texi (Networking Services): Document configuration option to
specify the openssh package for the openssh-service-type.
2020-10-09 16:46:24 +03:00
Maxim Cournoyer efbf5fdd01
offload: Improve load normalization and configurability.
Fixes <https://issues.guix.gnu.org/43773>.

The computed normalized load was previously obtained by dividing the load
average as found in /proc/loadavg by the number of parallel builds defined for
a build machine.

This normalized load didn't allow to compare machines with different number of
cores, as the load average reported by /proc/loadavg can be as high as the
number of cores; thus comparing that value to a fixed threshold of 2.0 would
mean machines with multiple cores were more likely to be flagged as overloaded
compared to single core machines.

This can be fixed by normalizing using the available number of cores instead
of the number of parallel jobs.

* guix/scripts/offload.scm (<build-machine>)[overload-threshold]: New field.
(node-load): Modify to return a normalized load value between 0 and 1, taking
into account the number of cores available.
(normalized-load): Remove procedure.
(report-load): New procedure.
(choose-build-machine): Adjust to use the modified 'node-load' and the new
'report-load' and 'build-machine-overload-threshold' procedures.
(check-machine-status): Adjust.
* doc/guix.texi (Daemon Offload Setup): Document the offload scheduler and the
new 'overload-threshold' field.
2020-10-08 10:57:12 -04:00
Ludovic Courtès 9022861dc0
doc: Clarify that guix-daemon doesn't have to be launched from the checkout.
Suggested by Emmanuel Agullo.

* doc/contributing.texi (Running Guix Before It Is Installed): Move the
"./pre-inst-env guix-daemon" snippet at the bottom.  Make it clear that
it's necessary only when hacking on guix-daemon or when guix-daemon is
not already running.
2020-10-08 12:26:56 +02:00
Ludovic Courtès 6f406e5d15
doc: Developers don't need to run "make install" in Guix.
Suggested by Emmanuel Agullo.

* doc/contributing.texi (Building from Git): Mention that running "make
install" is unnecessary.
2020-10-08 12:26:56 +02:00
Ludovic Courtès e463ee4c7b
doc: Improve choice of options in service examples.
* doc/guix.texi (Using the Configuration System): In example, set
'substitute-urls' rather than 'use-substitutes?', and set 'auto-login'
for 'mingetty-configuration'.
(Service Types and Services): In example, show 'extra-options' rather
than 'use-substitutes?'.
2020-10-08 12:26:56 +02:00
Danny Milosavljevic 34d1c0a03b
services: dnsmasq: Add TFTP configuration fields.
* gnu/services/dns.scm (<dnsmasq-configuration>): Add TFTP configuration
fields.
(dnsmasq-shepherd-service): Use them.
* doc/guix.texi (DNS Services): Document them.
2020-10-06 08:13:39 +02:00
Christopher Baines c14714cbbf
services: guix: Add guix-build-coordinator-queue-builds-service-type.
* gnu/services/guix.scm (<guix-build-coordinator-queue-builds-configuration>):
New record type.
(guix-build-coordinator-queue-builds-configuration,
guix-build-coordinator-queue-builds-configuration?,
guix-build-coordinator-queue-builds-configuration-package,
guix-build-coordinator-queue-builds-configuration-user,
guix-build-coordinator-queue-builds-coordinator,
guix-build-coordinator-queue-builds-configuration-systems,
guix-build-coordinator-queue-builds-configuration-system-and-targets,
guix-build-coordinator-queue-builds-configuration-guix-data-service,
guix-build-coordinator-queue-builds-configuration-processed-commits-file,
guix-build-coordinator-queue-builds-shepherd-services,
guix-build-coordinator-queue-builds-activation,
guix-build-coordinator-queue-builds-account): New procedures.
(guix-build-coordinator-queue-builds-service-type): New variable.
* doc/guix.texi (Guix Services): Document it.
2020-10-05 18:10:48 +01:00