Commit graph

1879 commits

Author SHA1 Message Date
Florian Pelz 99190575a0
Fix documentation of delete_after in the getmail service.
* doc/guix.texi (Getmail service): Remove the word `not'.
* gnu/services/getmail.scm (getmail-options-configuration): Ditto.
2019-10-18 07:53:55 +00:00
Christopher Baines 92807b6f57
doc: Remove 'maintainers' field from package documentation.
The field itself was removed in 154f1f0937.

* doc/guix.texi (package Reference): Remove 'maintainers' field.
2019-10-17 19:14:03 +01:00
Carl Dong e214a22007
gnu: Add nsis-x86_64 and nsis-i686.
* guix/build-system/scons.scm (scons-build): Add build-targets and
install-targets parameters.
* guix/build/scons-build-system.scm (build, install): Adjust
accordingly.
* doc/guix.texi (Build Systems): Document it.
* gnu/packages/installers.scm: New file,
(make-nsis): New procedure,
(nsis-x86_64, nsis-i686): New variables.
* gnu/packages/patches/nsis-env-passthru.patch: New file.
* gnu/local.mk (dist_patch_DATA, GNU_SYSTEM_MODULES): Adjust
accordingly.
2019-10-11 11:44:44 -04:00
Ricardo Wurmus e08902d3cb
Merge branch 'master' into core-updates 2019-10-06 22:02:20 +02:00
Jan Nieuwenhuizen 3a69dd5c15
services: httpd: Fix virtual-host doc and config.
* doc/guix.texi (Web Services): Fix httpd-virtualhost examples.
* gnu/services/web.scm (httpd-process-extensions): Add missing newline
separator.
2019-10-04 17:10:58 +02:00
Martin Becze ed661e38d8
import: crate: Add '--recursive'.
* guix/scripts/import/crate.scm (show-help, guix-import-crate): Add '--recursive'.
* doc/guix.texi (Invoking guix import): Mention '--recursive'.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2019-10-01 23:34:31 +02:00
Ludovic Courtès 0cf2b6f2db
Merge branch 'master' into core-updates 2019-10-01 12:06:00 +02:00
Maxim Cournoyer 5510bb01e9
doc: Add a 'Upgrading Guix' section to the 'Installation' chapter.
This follows a discussion regarding issue #36785 (see:
https://bugs.gnu.org/36785).

* doc/guix.texi (Upgrading Guix): New section.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2019-09-29 10:33:49 +09:00
Tobias Geerinckx-Rice 348d8e446f
doc: Don't support a risky mix of Guix & Nix.
* doc/guix.texi (Requirements): Remove instructions for sharing a store
and/or a daemon with Nix.
2019-09-28 17:16:40 +02:00
Marius Bakke e7f62a41b2
Merge branch 'master' into core-updates 2019-09-27 19:11:27 +02:00
Ludovic Courtès 3972dc5d43
guix package: Add '--list-profiles'.
* guix/scripts/package.scm (show-help, %options): Add '--list-profiles'.
(process-query): Honor it.
* tests/guix-package.sh: Add test.
2019-09-26 11:43:26 +02:00
Ludovic Courtès 71339070a9
doc: Do not comment out closing parens in Android examples.
* doc/guix.texi (Base Services): Arrange so that closin parens are not
commented out.
2019-09-26 11:43:26 +02:00
Ludovic Courtès 31e6e6a89f
doc: Add missing paren in CPE example.
* doc/guix.texi (Invoking guix lint): Add missing paren in 'cpe-name'
example.
2019-09-26 11:43:26 +02:00
Ludovic Courtès 473bd8100b
doc: Add missing parens in inetd example.
* doc/guix.texi (Networking Services): Add missing parens in inetd
service example.
2019-09-26 11:43:25 +02:00
Ludovic Courtès 4a506da83a
doc: Fix syntax of Varnish example.
* doc/guix.texi (Web Services): Escape nested string in '%gnu-mirror'
variable definition.  Adjust indentation.
2019-09-26 11:43:25 +02:00
Ludovic Courtès 34e624a56a
doc: Avoid @verbatiminclude for Scheme snippets.
* doc/guix.texi (Invoking guix package): Use @include instead of
@verbatiminclude.
(Additional Build Options): Likewise.
2019-09-25 15:49:42 +02:00
Brice Waegeneire 82b6bf8c0f
doc: Fix installing Guix in VM
* doc/guix.texi (Installing Guix in a Virtual Machine):
Pass "order=d" to '-boot' option.  Use "-drive media=cdrom" for the ISO
image.  Remove paragraph about ordering and the boot menu.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-09-25 15:48:50 +02:00
Ludovic Courtès 012c93e916
doc: Support paren matching via CSS hover.
* doc/build.scm (syntax-highlighted-html)[build](pair-open/close)
(highlights->sxml*): New procedures.
(syntax-highlight): Use 'highlights->sxml*'.
2019-09-25 15:46:48 +02:00
Christopher Baines dd2a83270b
services: Add the Guix Data Service.
* gnu/services/guix.scm: New file.
* gnu/tests/guix.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add both new files.
* doc/guix.texi (Guix Services): New section documenting the Guix Data
Service.
2019-09-25 08:35:33 +01:00
Ludovic Courtès 11da634a6e
Merge branch 'master' into core-updates 2019-09-24 10:11:38 +02:00
Tobias Geerinckx-Rice 1e1efbcc64
doc: Remove more ‘guixsd’ remnants.
* doc/guix.texi (Installing Guix in a VM): Use ‘guix-system.img’ as
image file name.
2019-09-24 02:10:49 +02:00
Tobias Geerinckx-Rice 46a8b76ce7
doc: Fix typo.
* doc/guix.texi (Build Systems): Fix/spoil ‘libary’ typo/joke.
2019-09-23 20:50:59 +02:00
Ludovic Courtès cb3ee1c507
doc: Explain that '--profile' expects a file name.
* doc/guix.texi (Invoking guix package): Explain that the argument to
--profile is a file name.
2019-09-23 12:26:59 +02:00
Ludovic Courtès 7faffdc2d5
pull: Display channel news.
* guix/scripts/pull.scm (display-news-entry)
(display-channel-specific-news): New procedures.
(display-channel-news): Call it.
(display-new/upgraded-packages): Adjust hint message.
* doc/guix.texi (Invoking guix pull): Mention it.
2019-09-23 10:38:44 +02:00
Ludovic Courtès 9719e8d37a
channels: Allow news entries to refer to a tag.
Suggested by Ricardo Wurmus <rekado@elephly.net>.

* guix/channels.scm (<channel-news-entry>)[tag]: New field.
(sexp->channel-news-entry): Accept either 'commit' or 'tag' in 'entry'
forms.
(resolve-channel-news-entry-tag): New procedure.
(channel-news-for-commit): Move 'with-repository' form one level
higher.  Call 'resolve-channel-news-entry-tag' on all the news entries.
* guix/tests/git.scm (populate-git-repository): Add clause for 'tag'.
* tests/channels.scm ("channel-news, one entry"): Create a tag and add
an entry with a tag.  Check that the tag is resolved and also visible in
the <channel-news-entry> record.
* doc/guix.texi (Channels): Mention tags in news entries.
2019-09-23 10:38:44 +02:00
Ludovic Courtès 8ba7fd3cd6
channels: Add support for a news file.
* guix/channels.scm (<channel-metadata>)[news-file]: New field.
(read-channel-metadata): Set the 'news-file' field.
(read-channel-metadata-from-source): Likewise.
(<channel-news>, <channel-news-entry>): New record types.
(sexp->channel-news-entry, read-channel-news)
(channel-news-for-commit): New procedures.
* guix/tests/git.scm (populate-git-repository): For 'add', allow
CONTENTS to be a procedure.
* tests/channels.scm ("channel-news, no news")
("channel-news, one entry"): New tests.
* doc/guix.texi (Channels): Document it.
2019-09-23 10:38:44 +02:00
zimoun aeb51370da
guix package: Add 'guix show' alias.
* guix/scripts/show.scm: New file.
* Makefile.am (MODULES): Add it.
* po/guix/POTFILES.in: Add it.
* tests/guix-package-aliases.sh: Add test.
* doc/guix.texi (Invoking guix package): Document it and use it in a example.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-09-21 16:48:36 +02:00
Konrad Hinsen da55110712
scripts: pull: Add options for generation management
* guix/scripts/pull.scm (%options) Add --roll-back, --switch-generation,
--delete-generations
(process-generation-change): New function
(guix-pull): Execute generation management operations

* doc/guix.texi: Document the generation management operations

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-09-18 23:08:29 +02:00
Ludovic Courtès d0980ef418
doc: Mention the "repository name" for 'guix pack -f docker'.
This is a followup to 0074844366.

* doc/guix.texi (Invoking guix pack): Mention the repository name.
2019-09-18 23:08:29 +02:00
宋文武 3c4f5ad7f4
services: Add nftables-service-type.
* gnu/services/networking.scm (%default-nftables-ruleset): New variable.
(<nftables-configuration>): New record type.
(nftables-shepherd-service): New procedure.
(nftables-service-type): New service type.
* doc/guix.texi (Networking Services): Document it.
2019-09-18 19:04:59 +08:00
Ricardo Wurmus 7bc46ecc34
doc: Add Guix Cookbook.
* .gitignore: Update ignore list.
* Makefile.am (assert-no-store-file-names): Exclude the cookbook.
* bootstrap: Generate po files for cookbook translations.
* doc/guix-cookbook.texi: New file.
* doc/local.mk (info_TEXINFOS): Add it; add a rule to build cookbook
translations.
* po/doc/local.mk (DOC_COOKBOOK_PO_FILES): New variable.
(EXTRA_DIST): Add cookbook pot file and po files.
(doc-po-update-cookbook-%): New target.
(doc-pot-update): Also update cookbook pot file.
(doc-po-update): Also update cookbook po files.
2019-09-18 11:38:14 +02:00
Ludovic Courtès 9ff87bb996
Merge branch 'master' into core-updates 2019-09-17 16:27:15 +02:00
Carlo Zancanaro ec36339dfd
services: certbot: Add --manual-public-ip-logging-ok for manual challenges
* gnu/services/certbot.scm (certbot-command): Add
  --manual-public-ip-logging-ok flag to the certbot command when doing a
  manual challenge.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-09-16 10:22:35 +02:00
Tobias Geerinckx-Rice b3f724b0a1
doc: Actually suggest ‘fc-cache -r’.
A follow-up commit to 0cd3e99d64.

* doc/guix.texi (Application Setup): Fix my own typo.
2019-09-11 18:05:38 +02:00
Joshua Branson 0cd3e99d64
doc: Run fc-cache verbosely and delete existing caches.
* doc/guix.texi (Application Setup): Suggest ‘fc-cache -rv’ instead
of ‘fc-cache -f’.

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2019-09-11 17:50:04 +02:00
Martin Becze fd63ecbe05
import: crate: Allow imports of a specific version.
* guix/import/crate.scm (crate->guix-package): Add optional 'version'
argument and honor it.
* guix/scripts/import/crate.scm (guix-import-crate): Assume the first
argument is a spec and destructure it with
'package-name->name+version'.  Pass both to 'crate->guix-package'.
* doc/guix.texi (Invoking guix import): Document it.

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2019-09-10 00:34:40 +02:00
Maxim Cournoyer 5658ae8a0a
services: ntp: Support different NTP server types and options.
* gnu/services/networking.scm (ntp-server-types): New enum.
(<ntp-server>): New record type.
(ntp-server->string): New procedure.
(%ntp-servers): Define in terms of <htp-server> records.  Use the first
entrypoint server as a pool instead of a list of static servers.  This is more
resilient since a new server of the pool can be interrogated on every
request.  Add the 'iburst' options.
(ntp-configuration-servers): Define a custom accessor that warns but honors
the now deprecated server format.
(<ntp-configuration>): Use it.
(%openntpd-servers): New variable,
(<openntpd-configuration>): Use it, as a pool ('servers' field) instead of a
regular server.
* tests/networking.scm: New file.
* Makefile.am (SCM_TESTS): Register it.
* doc/guix.texi: Update documentation.
2019-09-08 23:15:31 +09:00
Maxim Cournoyer ac73f504cf
doc: Add index to find 'ntpd'.
* doc/guix.texi (Networking Services): Add @cindex to find 'ntpd'
2019-09-08 23:15:30 +09:00
Maxim Cournoyer 08b4a10fa6
services: ntp: Allow large adjustment by default.
This is documented as best practice in `man ntpd', and is required to allow
the date to be set correctly when traveling (without having to manually update
the hardware clock in the BIOS/UEFI).

* gnu/services/networking.scm (<ntp-server>)[allow-large-adjustment?]: Set the
default value to #t.
* doc/guix.texi (Networking Services): Update documentation.
2019-09-08 23:15:29 +09:00
Matthew Kraai 861b9a365b
doc: Fix verb conjugation.
* doc/guix.texi (Invoking guix pull): Change "run" to "ran".

Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2019-09-08 14:55:25 +02:00
Ludovic Courtès 2e3e5d2198
daemon: Invoke 'guix gc --list-busy' instead of 'list-runtime-roots'.
* nix/scripts/list-runtime-roots.in: Remove.
* guix/store/roots.scm (%proc-directory): New variable.
(proc-file-roots, proc-exe-roots, proc-cwd-roots)
(proc-fd-roots, proc-maps-roots, proc-environ-roots)
(referenced-files, canonicalize-store-item, busy-store-items): New
procedures, taken from 'list-runtime-roots.in'.
* nix/libstore/globals.hh (Settings)[guixProgram]: New field.
* nix/libstore/globals.cc (Settings::processEnvironment): Initialize
'guixProgram'.
* nix/libstore/gc.cc (addAdditionalRoots): Drop code related to
'NIX_ROOT_FINDER'.  Run "guix gc --list-busy".
* nix/local.mk (nodist_pkglibexec_SCRIPTS): Remove
'scripts/list-runtime-roots'.
* config-daemon.ac: Don't output nix/scripts/list-runtime-roots.
* build-aux/pre-inst-env.in: Don't set 'NIX_ROOT_FINDER'.
Set 'GUIX'.
* doc/guix.texi (Invoking guix gc): Document '--list-busy'.
* guix/scripts/gc.scm (show-help, %options): Add "--list-busy".
(guix-gc)[list-busy]: New procedure.
Handle the 'list-busy' action.
2019-09-08 11:49:24 +02:00
Ludovic Courtès 8ba31e8bd1
doc: Use @lisp instead of @example for Scheme snippets.
This is a followup to f8c143a713, which
allows syntax highlighting of @lisp snippets in the HTML output.

* doc/guix.texi, doc/contributing.texi: Use @lisp instead of @example
for all the Scheme snippets.
2019-09-07 18:42:08 +02:00
Ludovic Courtès 7854bbeb3f
doc: Work around (htmlprag) parser issue.
* doc/build.scm (guile-lib/htmlprag-fixed): New variable.
(syntax-highlighted-html): Use it instead of GUILE-LIB.
2019-09-07 18:42:08 +02:00
Mark H Weaver 65542a8852
Merge branch 'master' into core-updates 2019-09-06 20:46:00 -04:00
Ludovic Courtès f8c143a713
doc: Highlight Scheme syntax in the HTML output.
* doc/build.scm (syntax-highlighted-html): New procedure.
(html-manual): Use it.
2019-09-07 00:36:34 +02:00
nixo a44a535ebe
build: Add julia-build-system.
* guix/build/julia-build-system.scm: New file.
* guix/build-system/julia.scm: New file.
* Makefile.am (MODULES): Add them.
* doc/guix.texi (Build Systems): Document julia-build-system.

Signed-off-by: Julien Lepiller <julien@lepiller.eu>
2019-09-04 22:17:38 +02:00
Ricardo Wurmus 7c6ebf28db
doc: guix deploy: Add missing record field to example.
Reported by GNUtoo on #guix.

* doc/guix.texi (Invoking guix deploy): Add missing "system" field to example.
2019-09-03 18:02:37 +02:00
Ludovic Courtès 55549c7b9b
lint: Add 'archival' checker.
* guix/lint.scm (check-archival): New procedure.
(%network-dependent-checkers): Add 'archival' checker.
* tests/lint.scm ("archival: missing content")
("archival: content available")
("archival: missing revision")
("archival: revision available")
("archival: rate limit reached"): New tests.
* doc/guix.texi (Invoking guix lint): Document it.
2019-09-02 15:25:01 +02:00
Ludovic Courtès d34e9114e6
doc: Explain that "guix import" and "guix refresh" may need GnuPG.
Fixes <https://bugs.gnu.org/36051>.
Reported by Jesse Gibbons <jgibbons2357@gmail.com>.

* doc/guix.texi (Invoking guix import, Invoking guix refresh): Mention
that GnuPG must be installed.
2019-09-02 15:25:00 +02:00
Maxim Cournoyer 1719f4f1e3
doc: Specify the files rotated by default by the rottlog service.
* doc/guix.texi (Log Rotation): Replace "a couple of other files" by
"/var/log/guix-daemon.log".
2019-09-01 18:47:03 +09:00
Maxim Cournoyer f91c843449
doc: Update the default list of files rotated by rottlog.
* doc/guix.texi (Log Rotation): Add "/var/log/debug" and "/var/log/maillog" to
the default value of %rotated-files.
2019-09-01 18:47:03 +09:00
Tobias Geerinckx-Rice 5a097cdd54
services: cups: Rename ‘retry-this-job’ to ‘retry-current-job’.
* gnu/services/cups.scm (error-policy, cups-configuration): Substitute
RETRY-CURRENT-JOB for the obsolete RETRY-THIS-JOB name of this policy.
* doc/guix.texi (Printing Services): Likewise.
2019-08-31 03:24:41 +02:00
Tobias Geerinckx-Rice 7e5e39a72f
doc: Update GIT-DOWNLOAD @example.
* doc/guix.texi (origin Reference): Use (HTTPS, GNU-hosted) ‘hello’
package repository instead of off-line ‘shadow’ one.
2019-08-30 23:10:19 +02:00
Tobias Geerinckx-Rice 3774efe36f
doc: Prefer https:// over git://.
* doc/guix.texi (Continuous Integration): Use https:// in fictitious URLs.
2019-08-30 23:10:19 +02:00
Tobias Geerinckx-Rice 70186c24ee
services: cups: Move SET-ENV to FILES-CONFIGURATION.
* gnu/services/cups.scm (cups-configuration): Move SET-ENV from here…
(files-configuration): …to here.
* doc/guix.texi (Printing Services): Adjust accordingly.
2019-08-30 03:41:42 +02:00
Tobias Geerinckx-Rice ee0de99454
services: cups: Add BrowseDNSSDSubTypes directive.
* gnu/services/cups.scm (comma-separated-string-list?)
(serialize-comma-separated-string-list): New variables.
(cups-configuration)[browse-dns-sd-sub-types]: New field.
* doc/guix.texi (Printing Services): Document it.
2019-08-30 03:41:42 +02:00
Mark H Weaver 0481289cbc
Merge branch 'master' into core-updates 2019-08-29 17:19:18 -04:00
Ricardo Wurmus f9a1f15efc
doc: Do not refer to Bioconductor SVN.
* doc/guix.texi (Invoking guix import): Do not mention the now defunct
Bioconductor SVN repository.
2019-08-29 11:38:12 +02:00
Ricardo Wurmus ad553ec4b1
import: cran: Add support for git repositories.
* guix/import/cran.scm (vcs-file?): New procedure.
(download): Support downloading from git.
(fetch-description): Add a clause for the 'git repository type.
(files-match-pattern?): New procedure.
(tarball-files-match-pattern?): Implement in terms of FILES-MATCH-PATTERN?.
(directory-needs-fortran?, directory-needs-zlib?,
directory-needs-pkg-config?): New procedures.
(needs-fortran?, needs-zlib?, needs-pkg-config?): Rename these procedures...
(tarball-needs-fortran?, tarball-needs-zlib?, tarball-needs-pkg-config?):
...to this, and use them.
(file-hash): New procedure.
(description->package): Handle the 'git repository type.
* guix/import/utils.scm (package->definition): Handle package expression
inside of a let.
* guix/scripts/import.scm (guix-import): Handle let expressions.
* doc/guix.texi (Invoking guix import): Document it.
2019-08-29 11:38:12 +02:00
Ricardo Wurmus 3e7a62e2e4
services: cuirass: Log web interface to separate file.
* gnu/services/cuirass.scm (<cuirass-configuration>): Add web-log-file field.
(cuirass-shepherd-service): Read it and use it.
* doc/guix.texi (Continuous Integration): Document it.
2019-08-29 08:06:54 +02:00
Efraim Flashner 3762e31b6c
build/cargo-build-system: Remove 'update-cargo-lock phase.
* guix/build/cargo-build-system.scm (update-cargo-lock): Remove
procedure.
(configure): Delete Cargo.lock file if it exists.
(%standard-phases): Remove 'update-cargo-lock.
* doc/guix.texi (Build System)[cargo-build-system]: Remove references to
the 'update-cargo-lock phase.
2019-08-28 09:41:59 +03:00
Tobias Geerinckx-Rice f9c1ebdb7d
services: cups: Complete SSL-OPTIONS.
…except for ‘AllowDH’, which makes no sense on GNU TLS systems.

* gnu/services/cups.scm (ssl-options?): Validate ‘DenyCBC’ and
‘DenyTLS1.0’.
* doc/guix.texi (Printing Services): Document them both.
2019-08-27 08:49:14 +02:00
Maxim Cournoyer 4183105de0
doc: Follow-up commit to 407ebeaa1.
Following some discussion with Ludovic (see:
https://lists.gnu.org/archive/html/guix-patches/2019-08/msg00506.html), it is
better advice to generally recommend the use of `program-file' for any usage
of modules, not just for those which define syntax.

* doc/guix.texi (Scheduled Job Execution): Drop the following text: "that
defines syntax (macros)".
2019-08-27 19:36:05 +09:00
Nicolas Goaziou 5aa4278319
doc: Fix typo.
* doc/guix.texi (Build Systems): Add missing question mark to
2019-08-26 22:50:16 +02:00
Maxim Cournoyer 1407ebeaa1
doc: Document the use of `program-file' for mcron jobs.
* doc/guix.texi (Scheduled Job Execution): Explain why using `program-file'
for an mcron job can be necessary.  Add an example.
2019-08-26 07:52:30 +09:00
Mark H Weaver 893c2df00d
Merge branch 'master' into core-updates 2019-08-22 15:53:27 -04:00
Jakob L. Kreuze 3967a946c6
doc: Add description of 'build-locally?'.
* doc/guix.texi (Invoking guix deploy): Add section describing the
'build-locally?' field of 'managed-host-environment-type'.
2019-08-15 07:43:17 -04:00
Jakob L. Kreuze 3033d59ac9
machine: Automatically authorize the coordinator's signing key.
* guix/ssh.scm (remote-authorize-signing-key): New variable.
* gnu/machine/ssh.scm (deploy-managed-host): Authorize coordinator's
signing key before any invocations of 'remote-eval'.
(deploy-managed-host): Display an error if a signing key does not exist.
* doc/guix.texi (Invoking guix deploy): Remove section describing manual
signing key authorization.
(Invoking guix deploy): Add section describing the 'authorize?' field.
2019-08-15 07:43:13 -04:00
Jakob L. Kreuze 5ea7537b9a
machine: Allow non-root users to deploy.
* doc/guix.texi (Invoking guix deploy): Add section describing
prerequisites for deploying as a non-root user.
* guix/remote.scm (remote-pipe-for-gexp): New optional 'become-command'
argument.
(%remote-eval): New optional 'become-command' argument.
(remote-eval): New 'become-command' keyword argument.
* guix/ssh.scm (remote-inferior): New optional 'become-command'
argument.
(inferior-remote-eval): New optional 'become-command' argument.
(remote-authorize-signing-key): New optional 'become-command' argument.
* gnu/machine/ssh.scm (machine-become-command): New variable.
(managed-host-remote-eval): Invoke 'remote-eval' with the
'#:become-command' keyword.
(deploy-managed-host): Invoke 'remote-authorize-signing-key' with the
'#:become-command' keyword.
2019-08-15 07:43:03 -04:00
Jakob L. Kreuze 2c8e04f136
remote: Build derivations appropriate for the remote's
* gnu/machine/ssh.scm (machine-ssh-configuration): Add 'system' field.
(managed-host-remote-eval): Pass 'system' field to 'remote-eval'.
(machine-check-building-for-appropriate-system): New variable.
(check-deployment-sanity): Add call to
'machine-check-building-for-appropriate-system'.
* doc/guix.texi (Invoking guix deploy): Describe new 'system' field.
* guix/ssh.scm (remote-system): New variable.
* guix/remote.scm (remote-eval): Use result of 'remote-system' when
lowering the G-Expression.
(remote-eval): Add 'system' keyword argument.
(trampoline): Return a <program-file> rather than a <scheme-file>.
2019-08-14 15:38:09 -04:00
Marius Bakke 462ad9f56b
Merge branch 'master' into core-updates 2019-08-13 20:42:06 +02:00
Jakob L. Kreuze d97ce20400
machine: Rename 'system' field.
* gnu/machine.scm (machine-system): Delete variable.
(machine-operating-system): New variable.
All callers changed.
* doc/guix.texi (Invoking guix deploy): Use the
'machine-operating-system' accessor rather than 'machine-system'.
2019-08-06 15:48:51 -04:00
Jakob L. Kreuze 5bc751925d
doc: Add note about signing keys.
* doc/guix.texi (Invoking guix deploy): Add note explaining that
deployment targets must authorize the coordinator machine's signing key.
2019-08-06 15:16:25 -04:00
Efraim Flashner ac6b78488f
build/cargo-build-system: Patch cargo checksums.
* guix/build/cargo-build-system.scm (generate-all-checksums): New
procedure.
(update-cargo-lock, patch-cargo-checksums): New phases.
(%standard-phases): Add 'update=cargo-lock after 'configure and
'patch-cargo-checksums after 'patch-generated-file-shebangs.
* doc/guix.texi (Build System)[cargo-build-system]: Mention how
Cargo.lock files are handled.
2019-08-04 11:53:27 +03:00
Marius Bakke 6a2e54236e
Merge branch 'master' into core-updates 2019-07-31 14:28:56 +02:00
Ludovic Courtès 2e8cabb8d6
gexp: 'program-file' honors the current system and cross-compilation target.
Fixes <https://bugs.gnu.org/36813>.
Reported by Jakob L. Kreuze <zerodaysfordays.sdf.org@sdf.org>.

* guix/gexp.scm (program-file-compiler): Pass #:system and #:target to
'gexp->script'.
(load-path-expression): Add #:system and #:target and honor them.
(gexp->script): Likewise.
* tests/gexp.scm ("program-file #:system"): New test.
* doc/guix.texi (G-Expressions): Adjust accordingly.
2019-07-26 23:50:12 +02:00
Ludovic Courtès 177fecb57c
git: <git-checkout> allows tags in its 'commit' field.
Fixes <https://bugs.gnu.org/36371>.
Reported by Tobias Geerinckx-Rice <me@tobias.gr>.

* guix/git.scm (git-checkout-compiler): Pass 'tag-or-commit' to
'latest-repository-commit*'.
* doc/guix.texi (Package Transformation Options): Update '--with-commit'
documentation accordingly.
* tests/guix-build-branch.sh: Add test.
2019-07-26 11:21:36 +02:00
Ludovic Courtès 81c3dc3224
maint: Switch to Guile-JSON 3.x.
Guile-JSON 3.x is incompatible with Guile-JSON 1.x, which we relied on
until now: it maps JSON dictionaries to alists (instead of hash tables),
and JSON arrays to vectors (instead of lists).  This commit is about
adjusting all the existing code to this new mapping.

* m4/guix.m4 (GUIX_CHECK_GUILE_JSON): New macro.
* configure.ac: Use it.
* doc/guix.texi (Requirements): Mention the Guile-JSON version.
* guix/git-download.scm (git-fetch)[guile-json]: Use GUILE-JSON-3.
* guix/import/cpan.scm (string->license): Expect vectors instead of
lists.
(module->dist-name): Use 'json-fetch' instead of 'json-fetch-alist'.
(cpan-fetch): Likewise.
* guix/import/crate.scm (crate-fetch): Likewise, and call 'vector->list'
for DEPS.
* guix/import/gem.scm (rubygems-fetch): Likewise.
* guix/import/json.scm (json-fetch-alist): Remove.
* guix/import/pypi.scm (pypi-fetch): Use 'json-fetch' instead of
'json-fetch-alist'.
(latest-source-release, latest-wheel-release): Call 'vector->list' on
RELEASES.
* guix/import/stackage.scm (stackage-lts-info-fetch): Use 'json-fetch'
instead of 'json-fetch-alist'.
(lts-package-version): Use 'vector->list'.
* guix/import/utils.scm (hash-table->alist): Remove.
(alist->package): Pass 'vector->list' on the inputs fields, and default
to the empty vector.
* guix/scripts/import/json.scm (guix-import-json): Remove call to
'hash-table->alist'.
* guix/swh.scm (define-json-reader): Expect pair? or null? instead of
hash-table?.
[extract-field]: Use 'assoc-ref' instead of 'hash-ref'.
(json->branches): Use 'map' instead of 'hash-map->list'.
(json->checksums): Likewise.
(json->directory-entries, origin-visits): Call 'vector->list' on the
result of 'json->scm'.
* tests/import-utils.scm ("alist->package with dependencies"): New test.
* gnu/installer.scm (build-compiled-file)[builder]: Use GUILE-JSON-3.
* gnu/installer.scm (installer-program)[installer-builder]: Likewise.
* gnu/installer/locale.scm (iso639->iso639-languages): Use 'assoc-ref'
instead of 'hash-ref', and pass vectors through 'vector->list'.
(iso3166->iso3166-territories): Likewise.
* gnu/system/vm.scm (system-docker-image)[build]: Use GUILE-JSON-3.
* guix/docker.scm (manifest, config): Adjust for Guile-JSON 3.
* guix/scripts/pack.scm (docker-image)[build]: Use GUILE-JSON-3.
* guix/import/github.scm (fetch-releases-or-tags): Update docstring.
(latest-released-version): Use 'assoc-ref' instead of 'hash-ref'.  Pass
the result of 'fetch-releases-or-tags' to 'vector->list'.
* guix/import/launchpad.scm (latest-released-version): Likewise.
2019-07-25 00:16:41 +02:00
Leo Famulari b9a178b6dc
doc: Warn about GPG warning.
* doc/guix.texi (Binary Installation, USB Stick and DVD Installation): Warn
users about the web-of-trust untrusted key warning from GPG.
2019-07-24 10:59:27 -04:00
Julien Lepiller c42db89ff9
doc: Add example for generating a secret key with knot DNS.
* doc/guix.texi (DNS Services): Add an example and more context to the
includes field of the knot-configuration record.
2019-07-23 21:17:04 +02:00
Marius Bakke ccad0e4d69
Merge branch 'master' into core-updates 2019-07-22 18:58:48 +02:00
Ludovic Courtès 5a90d56352
doc: Update 'guix import json' example.
This is a followup to d78010b81e.

* doc/guix.texi (Invoking guix import): Change 'guix import json'
example to refer to "gettext", not "gcc".
2019-07-22 11:53:39 +02:00
Marius Bakke 2ee70a5b11
Merge branch 'master' into core-updates 2019-07-19 01:15:59 +02:00
Ludovic Courtès 193d20f351
doc: Correctly document 'host' field of <cuirass-configuration>.
* doc/guix.texi (Continuous Integration): Fix doc of the 'host' field.
2019-07-18 00:44:23 +02:00
Ludovic Courtès 4569a7693e
doc: Remove note about grafts being "beta".
* doc/guix.texi (Security Updates): Remove pointless note about the
feature being "beta".
2019-07-18 00:44:23 +02:00
Ludovic Courtès 64de896a71
Merge branch 'master' into core-updates 2019-07-17 15:51:10 +02:00
Florian Pelz 0636742b77
doc: Reorder and clarify contributing instructions.
* doc/contributing.texi (Building from Git, Running Guix Before It Is
Installed): Make instructions using Guix come first and clarify which code is
an instruction and which is merely an example.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-07-17 15:36:04 +02:00
Ludovic Courtès e3e9c191ed
doc: Add 'images' directory next to HTML pages.
* doc/build.scm (html-manual): Add images/ symlinks.
2019-07-16 10:37:49 +02:00
Arne Babenhauserheide fb8b99a5f5
doc: note how to install git send-email
* doc/contributing.texi (git send-email): Add install instructions.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-07-15 12:48:49 +02:00
Ludovic Courtès e591541d36
doc: Build a top-level index of the manuals.
Suggested by Julien Lepiller.

* doc/build.scm (html-manual-indexes)[build]: Add 'with-extensions'.
(translate): Actually honor DOMAIN.  Add call to 'bindtextdomain' for
ISO-CODES.
(%iso639-languages): New variable.
(language-code->name, top-level-index): New procedures.
Add call to 'write-html' for OUTPUT/index.html.
2019-07-15 12:48:49 +02:00
Ludovic Courtès 21bec78357
doc: Generalize build procedures of HTML indexes.
* doc/build.scm (html-manual-indexes)[build](sxml-index): Generalize;
add a 'title' and a 'body' parameter and honor them.
(language-index): New procedure.
(write-index): Remove.
(write-html): New procedure.
Use 'write-html' and 'language-index'.
2019-07-15 12:48:49 +02:00
Jelle Licht 09a1f92f61
build: Add node-build-system.
* guix/build/node-build-system.scm: New file.
* guix/build-system/node.scm: New file.
* guix/build/json.scm: New file.
* doc/guix.texi: Document it.
* Makefile.am: Added new files.

Co-Authored-By: Julien Lepiller <julien@lepiller.eu>
2019-07-14 12:20:48 +02:00
Jan Nieuwenhuizen 53f2164272
channels: Add optional directory to channel metadata.
* guix/channels.scm (<channel-metadata>): Add directory slot.  Update users.
(read-channel-metadata-from-source): New function.
(standard-module-derivation): Use it.
* doc/guix.texi (Package Modules in a Subdirectory): New subsection.
2019-07-14 00:58:09 +02:00
Tobias Geerinckx-Rice 2a059ab995
doc: Increase VM memory size.
* doc/guix.texi (Running Guix in a VM): Bump ‘-m‘ to 1 GiB to match its
@item below, and have a chance of being usable, too.
2019-07-13 05:26:01 +02:00
Tobias Geerinckx-Rice ffae5a7946
doc: Update gpg key fetching instructions.
This mirrors the steps performed by etc/guix-install.sh.

* doc/guix.texi (KEY-SERVER): Replace moribund SKS key servers with...
(OPENPGP-SIGNING-KEY-URL): ...the TLS PKI of the future.
(Binary Installation, USB Stick and DVD Installation): Update the
@example gpg command to download the key directly from Savannah.
2019-07-13 04:55:46 +02:00
Marius Bakke fb9a23a3f3
Merge branch 'master' into core-updates
Conflicts:
	gnu/local.mk
	gnu/packages/python-xyz.scm
	gnu/packages/xml.scm
	guix/gexp.scm
	po/guix/POTFILES.in
2019-07-12 01:03:53 +02:00
Carl Dong b6dc08393e
scripts: environment: Add --no-cwd.
* doc/guix.texi (Invoking guix environment): Add --no-cwd.
* guix/scripts/environment.scm (show-help, %options): Add --no-cwd.
(launch-environment/container): Add 'map-cwd?' param; only add mapping
for cwd if #t.  Only change to cwd within container if #t, otherwise
home.
(guix-environment): Error if --no-cwd without --container.  Provide
'(not no-cwd?)' to launch-environment/container as 'map-cwd?'.
* tests/guix-environment.sh: Add test for no-cwd.

Co-authored-by: Mike Gerwitz <mtg@gnu.org>
2019-07-08 10:33:20 -04:00
Ludovic Courtès ccadafdcef
build: Add 'doc/build.scm' to build on-line copies of the manual.
* doc/build.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2019-07-07 15:48:17 +02:00
Jakob L. Kreuze 02a962c8e0
doc: Add section for 'guix deploy'.
* doc/guix.texi: Add section "Invoking guix deploy".
2019-07-06 02:10:04 -04:00
Marius Bakke 4fb9165515
Merge branch 'staging' into core-updates 2019-07-02 20:18:16 +02:00