gnu: Add nss.
* gnu/packages/patches/nss-pkgconfig.patch: New file.
* gnu-system.scm (dist_patch_DATA): Add it.
* gnu/packages/gnuzilla.scm (nss): New variable.
gnu: Move mozjs and nspr to (gnu packages gnuzilla).
* gnu/packages/polkit.scm (mozjs, nspr): Move to...
* gnu/packages/gnuzilla.scm (mozjs, nspr): ... here. New variables.
gnu: linux-libre: Update to 3.18.2
* gnu/packages/linux.scm (linux-libre): Update to version 3.18.2.
derivations: Add 'substitution-oracle' and use it.
This makes 'guix environment PACKAGE' significantly faster when
substitutes are enabled. Before that, it would lead to many invocations
of 'guix substitute-binary', one per 'derivation-prerequisites-to-build'
call. Now, all these are replaced by a single invocation.
* guix/derivations.scm (derivation-output-paths, substitution-oracle):
New procedures.
(derivation-prerequisites-to-build): Replace #:use-substitutes? with
#:substitutable?. Remove the local 'derivation-output-paths' and
'substitutable?'.
* guix/ui.scm (show-what-to-build): Add 'substitutable?'. Pass it to
'derivation-prerequisites-to-build'.
[built-or-substitutable?]: Use it instead of 'has-substitutes?'.
* tests/derivations.scm ("derivation-prerequisites-to-build and
substitutes"): Use #:substitutable? instead of #:use-substitutes?.
derivations: Add 'derivation-output-names'.
* guix/derivations.scm (derivation-output-names): New procedure.
(derivation-prerequisites-to-build): Use it for #:outputs.
(map-derivation): Likewise.
* tests/derivations.scm ("derivation-output-names"): New test.
nls: Update 'eo' translation.
import: Add CPAN importer.
* guix/import/cpan.scm, guix/scripts/import/cpan.scm, tests/cpan.scm:
New files.
* Makefile.am (MODULE)[HAVE_GUILE_JSON]: Add them.
* guix/scripts/import.scm (importers): Add cpan.
* doc/guix.texi (Requirements): Mention `guix import cpan` as a user
of guile-json.
(Invoking guix import): Document new `guix import cpan` command.
tests: import: Factorize utility function.
* tests/pypi.scm (mock): Move this...
* guix/tests.scm: to here.
import: Factorize utility functions.
* guix/import/pypi.scm (hash-table->alist, flatten, assoc-ref*,
url-fetch, json-fetch): Pull procedures from here into...
* guix/import/utils.scm: Here and...
* guix/import/json.scm: Here. New file.
* Makefile.am (MODULE)[HAVE_GUILE_JSON]: Add it.
* guix/import/gnu.scm (file-sha256): Move from here to...
* guix/hash.scm: Here.
* tests/pypi.scm (pypi->guix-package): Update mock module reference.
import: gnu: Propagate the key-download argument.
* guix/import/gnu.scm (gnu->guix-package): Pass the key-download
argument on to gnu-package->sexp.
gnu: poppler: build with openjpeg and lcms
* gnu/packages/pdf.scm (poppler): build poppler with openjpeg 1.5 and lcms.
gnu: openjpeg: Update to 2.0.1.
* gnu/packages/image.scm (openjpeg): Update to 2.0.1.
gnu: Add openjpeg-1.
* gnu/packages/image.scm (openjpeg-1): New variable.
gnu: openjpeg: update home page URL.
* gnu/packages/image.scm (openjpeg)[home-page]: Update URL.
substitute-binary: Micro-optimize 'narinfo-sha256'.
* guix/scripts/substitute-binary.scm (narinfo-signature->canonical-sexp):
Change "~a" to "~s" in error message.
(%signature-line-rx): Remove.
(narinfo-sha256): Use 'string-contains' instead of 'regexp-exec', and
'string-take' instead of 'match:substring'.
records: Optimize 'recutils->alist' by avoiding regexps.
* guix/records.scm (%recutils-field-rx, %recutils-comment-rx,
%recutils-plus-rx): Remove.
(%recutils-field-charset): New variable.
(recutils->alist): Adjust to use tests (string-ref line 0) instead of
regexps.
base64: Inline arithmetic operations.
* guix/base64.scm (define-alias): New macro.
(fxbit-field, fxarithmetic-shift, fxarithmetic-shift-left, fxand,
fxior, fxxor): New aliases.
tests: Add missing copyright line.
* tests/lint.scm: Add missing copyright line for commit 907c98ac and
others.
gnu: automake: Update to 1.15.
* gnu/packages/autotools.scm (automake): Update to 1.15.
gnu: git-manpages: Install under $out/share/man, not $out/share.
* gnu/packages/version-control.scm (git-manpages)[argument]: Install
under $out/share/man, not $out/share.