tests: Disable tests that would rebuild the world due to grafting.
The Perl replacement added in d8173f2 leads some tests to involve
grafting, which in turn triggers derivation builds that rebuild the
world. Work around that.
* tests/packages.scm: Add call to '%graft?'.
("package-derivation, direct graft")
("package-cross-derivation, direct graft"): Comment out.
grafts: Memoize intermediate results in 'cumulative-grafts'.
The time for:
guix build inkscape -n --no-substitutes
goes down by 30% (in the presence of 3 replacements among all the
packages.)
* guix/grafts.scm (cumulative-grafts): Turn into a monadic procedure in
%STATE-MONAD. Use the current state as a derivation-to-graft cache.
(graft-derivation): Call 'cumulative-grafts' within 'run-with-state'.
packages: The result of 'bag-grafts' does not contain duplicates.
* guix/packages.scm (bag-grafts): Add call to 'delete-duplicates'.
grafts: Use dependency information from substitutes when possible.
This avoids starting derivation builds just for the sake of knowing the
references of their outputs, thereby restoring the expected behavior of
--dry-run when substitutes are available.
* guix/grafts.scm (non-self-references): Remove 'store' parameter, and
add 'references'. Use it. Update caller.
(references-oracle): New variable.
(cumulative-grafts): Add 'references' parameter and use it. Update
callers.
(graft-derivation): Remove 'build-derivations' call. Add call to
'references-oracle'.
store: Add 'references/substitutes'.
* guix/store.scm (references/substitutes): New procedure.
* tests/store.scm ("references/substitutes missing reference info")
("references/substitutes with substitute info"): New tests.
tests: Narinfos can specify an non-empty reference list.
* guix/tests.scm (derivation-narinfo): Add #:references and honor it.
(call-with-derivation-narinfo, call-with-derivation-substitute):
Likewise.
(with-derivation-narinfo, with-derivation-substitute): Add 'references'
keyword.
guix build: Set the build options early.
This fixes a bug whereby, with grafts leading to builds very early,
build options such as --substitute-urls would not be taken into account
yet.
Reported by Andreas Enge <andreas@enge.fr>.
* guix/scripts/build.scm (guix-build): Move 'opts' to the beginning.
Use 'with-store' instead of 'open-connection'. Call
'set-build-options-from-command-line' right after 'with-store'.
gnu: letsencrypt, python-acme: Update to 0.4.2.
These packages should be updated together.
* gnu/packages/tls.scm (letsencrypt): Update to 0.4.2.
(python-acme, python2-acme): Update to 0.4.2.
gnu: python-cryptography, python-cryptography-vectors: Update to 1.2.3.
These packages should be updated together.
* gnu/packages/python.scm (python-cryptography): Update to 1.2.3.
(python-cryptography-vectors): Update to 1.2.3.
doc: Mention syslogd configuration.
* gnu/services/base.scm (syslog-service): Add xref to Inetutils in the
docstring.
(%default-syslog.conf): Export.
* doc/guix.texi (Base Services): Update accordingly.
lint: cve: Gracefully handle HTTP errors.
* guix/scripts/lint.scm (current-vulnerabilities*): New procedure.
(package-vulnerabilities): Use it.
gnu: gnome: Sync description and synopsis.
* gnu/packages/gnome.scm (gnome)[synopsis, description]: Use official
GNU blurb.
gnu: nano: Update to 2.5.3.
* gnu/packages/nano.scm (nano): Update to 2.5.3.
gnu: libgit2: Update to 0.23.4.
* gnu/packages/version-control.scm (libgit2): Update to 0.23.4.
gnu: findnewest: Update to 0.3.
* gnu/packages/version-control.scm (findnewest): Update to 0.3.
emacs: Use '@' to separate package names and version numbers.
This is a followup to commit 1b846da8c372bee78851439fd9e72b2499115e5a.
* emacs/guix-base.el (guix-package-name-specification): Use "@" instead
of "-".
* emacs/guix-main.scm (name+version->full-name): Likewise.
(package-inputs-names): Use 'make-package-specification' instead of
'package-full-name'.
(full-name->name+version): Update the docstring.
* emacs/guix-ui-package.el (guix-packages-by-name): Likewise.
emacs: hydra: Use '-' to separate job names and version numbers.
* emacs/guix-hydra.el (guix-hydra-job-name-specification): New procedure.
* emacs/guix-ui-package.el (guix-package-info-insert-systems)
(guix-package-list-latest-builds): Use it.
gnu: exim: Update to 4.86.2 [fixes CVE-2016-1531].
* gnu/packages/mail.scm (exim): Update to 4.86.2.
gnu: Add byzanz.
* gnu/packages/gnome.scm (byzanz): New variable.
doc: Improve Info categories.
* doc/guix.texi: Change main category to "System administration". Fix
syntax of subnodes. Add entries for 'guix pull' and 'guix gc'. Add
"Emacs" category.