* emacs/guix-utils.el (guix-concat-strings): New function.
* emacs/guix-pcomplete.el (guix-pcomplete-short-options): Use it.
* emacs/guix-base.el (guix-get-package-strings): Likewise.
* emacs/guix-utils.el (guix-while-search): New macro.
* emacs/guix-pcomplete.el (guix-pcomplete-run-guix-and-search): Use it.
* emacs/guix-prettify.el (guix-prettify-decompose-buffer): Likewise.
* guix/build/gnu-build-system.scm (gnu-build)[elapsed-time]: New
procedure.
Use it, and use (current-time time-monotonic) instead
of (gettimeofday). Show one digit after the comma for the elapsed
time.
* gnu/packages/ruby.scm (ruby-diff-lcs-for-rspec): Rename this...
(ruby-diff-lcs): ... to this, and export it.
(ruby-rspec-expectation, ruby-rspec-mocks): Use new varaible.
* doc/guix.texi (Locales): Introduce "codeset".
<%default-locale-definitions>: Mention the "normalized codeset", with
an xref to libc's manual.
* gnu/system/locale.scm (%default-locale-definitions)[utf8-locale]:
Mention the "normalized codeset" in a comment.
This avoids problems when installing 'glibc' in a profile, where glibc's
limited 'bash' would take precedence over the valid 'bash'.
* gnu/packages/base.scm (glibc)[arguments]: Do not copy STATIC-BASH to
OUT/bin. Instead, simply refer to it directly.
[inputs]: Use STATIC-BASH instead of BASH-LIGHT.
* gnu/packages/commencement.scm (static-bash-for-glibc): Likewise.
(glibc-final)[arguments]: Add STATIC-BASH-FOR-GLIBC to
#:allowed-references.
(gcc-final)[arguments]: Likewise.
[native-inputs]: Add "static-bash".
This removes reliance on the availability of 'bin/sh' in glibc.
* gnu/packages/ncurses.scm (ncurses): Remove 'configure-phase'. Add
'remove-shebang-phase'.
[arguments]: Remove distinction between cross builds and native builds. Use
'modify-phases'. Add 'remove-unneeded-shebang' phase.
This significantly reduces churn in the store. It also reduces run time
of 'guix build inkscape -Sd' by ~10%.
* guix/download.scm (url-fetch)[mirror-file]: New variable.
[builder]: Get URL from the "guix download url" env. var. Get the mirrors
from MIRROR-FILE. Pass #:script-name and #:env-vars to 'gexp->derivation'.
* guix/import/pypi.scm (make-pypi-sexp): Factorize license to symbol
conversion code.
(string->license, snake-case, guix-hash-url): Move from here...
* guix/import/utils.scm: ... to here.
(license->symbol): New procedure.
* emacs/guix-pcomplete.el (guix-pcomplete-parse-linter-regexp): Improve
and rename to ...
(guix-pcomplete-parse-list-regexp): ...this. New variable.
(guix-pcomplete-lint-checkers): Use it.
(guix-pcomplete-graph-types): New function.
(guix-pcomplete-complete-command-arg): Complete package names for
'guix graph' command.
(guix-pcomplete-complete-option-arg): Complete '-t/--type' option.
* gnu/packages/emacs.scm: Use (gnu packages base) module. Remove
duplicated (gnu packages guile) and (gnu packages linux) modules.
(magit-svn): Update to 2.1.0.
[source]: Use 'url-fetch' method.
[inputs]: Remove. Move "emacs" to 'native-inputs', move "magit" to
'propagated-inputs'.
[native-inputs]: Add "tar" and "gzip".
[propagated-inputs]: Add "dash".
[arguments]: Adjust builder for the new inputs and unpacking the source.