Commit graph

2243 commits

Author SHA1 Message Date
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
Christopher Baines
98ab323a24
services: guix: Add guix-build-coordinator-agent-service-type.
* gnu/services/guix.scm (<guix-build-coordinator-agent-configuration>): New
record type.
(guix-build-coordinator-agent-configuration,
guix-build-coordinator-agent-configuration?,
guix-build-coordinator-agent-configuration-package,
guix-build-coordinator-agent-configuration-user,
guix-build-coordinator-agent-configuration-coordinator,
guix-build-coordinator-agent-configuration-uuid),
guix-build-coordinator-agent-configuration-password,
guix-build-coordinator-agent-configuration-password-file,
guix-build-coordinator-agent-configuration-systems,
guix-build-coordinator-agent-configuration-max-parallel-builds,
guix-build-coordinator-agent-configuration-derivation-substitute-urls,
guix-build-coordinator-agent-configuration-non-derivation-substitute-urls,
guix-build-coordinator-agent-shepherd-services,
guix-build-coordinator-agent-activation,
guix-build-coordinator-agent-account): New procedures.
(guix-build-coordinator-agent-service-type): New variable.
* doc/guix.texi (Guix Services): Document it.
2020-10-05 18:10:48 +01:00
Christopher Baines
15955e9b54
services: guix: Add guix-build-coordinator-service-type.
* gnu/services/guix.scm (<guix-build-coordinator-configuration>): New record
type.
(guix-build-coordinator-configuration, guix-build-coordinator-configuration?,
guix-build-coordinator-configuration-package,
guix-build-coordinator-configuration-user,
guix-build-coordinator-configuration-group,
guix-build-coordinator-configuration-datastore-uri-string,
guix-build-coordinator-configuration-agent-communication-uri-string,
guix-build-coordinator-configuration-client-communication-uri-string,
guix-build-coordinator-configuration-allocation-strategy,
guix-build-coordinator-configuration-hooks,
guix-build-coordinator-configuration-guile,
make-guix-build-coordinator-start-script,
guix-build-coordinator-shepherd-services, guix-build-coordinator-activation,
guix-build-coordinator-account): New procedures.
(guix-build-coordinator-service-type): New variable.
* gnu/tests/guix.scm (%test-guix-build-coordinator): New variable.
* doc/guix.texi (Guix Services): Document it.
2020-10-05 18:10:48 +01:00
Ludovic Courtès
8e1907a724
guix package: Re-apply package transformation when upgrading.
* guix/scripts/package.scm (transaction-upgrade-entry)[upgrade]: Add
'transform' parameter.  Pass PKG through it.  Use
'manifest-entry-with-transformations'.
Call 'options->transformation' to get the transformation procedure.
* tests/guix-package.sh: Add 'guix package -u' test.
* tests/packages.scm ("transaction-upgrade-entry, transformation options preserved"):
New test.
* doc/guix.texi (Invoking guix package): Mention that transformations
are preserved across upgrades.
(Package Transformation Options): Likewise.
2020-10-02 23:28:09 +02:00
Florian Pelz
3c01fcc1bb
doc: Explain why '--without-tests' may fail with modified 'check' phase.
* doc/guix.texi (Package Transformation Options): Explain.
2020-10-02 20:03:55 +00:00
Oleg Pykhalov
da6aec32cf
gnu: Add webssh service.
* gnu/services/ssh.scm:
(<webssh-configuration>): New record type.
(%webssh-configuration-nginx, webssh-service-type): New variables.
(webssh-account, webssh-activation, webssh-shepherd-service): New procedures.
* doc/guix.texi: Document this.
2020-10-01 10:15:29 +03:00
Mathieu Othacehe
313f492657
scripts: system: Add support for image-type.
* guix/scripts/system.scm (list-image-types): New procedure,
(%options): add "image-type" and "list-image-types" options, remove
"file-system-type" option,
(show-help): adapt accordingly,
(%default-options): also adapt, and set the default "image-type" to "raw",
(perform-action): add image-type argument and remove file-system-type argument,
(process-action):  adapt perform-action call,
(system-derivation-for-action): remove base-image
argument, add image-type argument, and use it to create the image passed to
"system-image".
* tests/guix-system.sh: Adapt accordingly and add a test for
"--list-image-types" command.
* doc/guix.texi (Building the Installation Image,
Invoking guix system): Adapt accordingly.

Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2020-09-30 10:47:59 +02:00
Ludovic Courtès
37283f9f3e
services: hurd-vm: Initialize the guest's SSH/Guix keys at activation time.
* gnu/services/virtualization.scm (initialize-hurd-vm-substitutes)
(hurd-vm-activation): New procedures.
(hurd-vm-service-type)[extensions]: Add ACTIVATION-SERVICE-TYPE
extension.
* doc/guix.texi (Transparent Emulation with QEMU): Mention GNU/Hurd.
(The Hurd in a Virtual Machine): Explain which files are automatically
installed and mention offloading.
2020-09-29 21:56:27 +02:00
Ludovic Courtès
d367a7f3d0
services: guix: Generate key pair if needed during activation.
* 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-29 21:56:27 +02:00
Tobias Geerinckx-Rice
4c698cd512
services: Add elogind ‘handle-lid-switch-external-power’.
* gnu/services/desktop.scm <elogind-configuration>: Add an
handle-lid-switch-external-power field, mapping to the
HandleLidSwitchExternalPower logind.conf setting.
* doc/guix.texi (Desktop Services): ‘Document’ it.
2020-09-28 16:00:49 +02:00
Ludovic Courtès
09ffacd455
doc: Clarify how to choose a user account shell.
* doc/guix.texi (User Accounts): Add example with custom shell and
custom home directory.  Add examples of shell gexps.
2020-09-28 11:43:47 +02:00
Ludovic Courtès
8e2d5a0c0d
doc: Move channel @cindex within their nodes.
* doc/guix.texi (Channels): Move @cindex at the beginning of the node
they refer to from the end of the previous node.
2020-09-27 22:42:40 +02:00
Ludovic Courtès
3b7bd8cc90
doc: Move "Primary URL" after "Specifying Channel Authorizations".
* doc/guix.texi (Primary URL): Move after "Specifying Channel
Authorizations" since the audience is channel authors who've already
taken care of authorizations.
2020-09-27 22:39:49 +02:00
zimoun
12871cc8db
doc: Promote "Channels" as chapter and reorder.
The sectioning becomes:

1.  Specifying Additional Channels     (was 3.)
2.  Using a Custom Guix Channel        (was 2.)
3.  Replicating Guix                   (was 9.)
4.  Channel Authentication             (was 1.)
5.  Primary URL                        (was 7.)
6.  Creating a Channel                 (reworded)
7.  Package Modules in a Sub-directory (was 5.)
8.  Declaring Channel Dependencies     (was 4.)
9.  Specifying Channel Authorizations  (was 6.)
10. Writing Channel News               (was 8.)

* doc/guix.texi (Channels): Move section to chapter.
Reorder the chapter.
Minor tweaks to keep uniformity.
Update the master menu.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-09-27 22:35:03 +02:00