The .gem file stored in GEM_HOME after install is both redundant and an
archive that stores timestamped files which makes builds
non-deterministic, so delete it after 'gem install'.
* guix/build/ruby-build-system.scm (install): Remove cached gem after
install.
This phase is inherited by other build systems, which ensures
'SOURCE_DATE_EPOCH' is always set in practice.
* guix/build/python-build-system.scm (set-SOURCE-DATE-EPOCH): Remove.
(%standard-phases): Don't add it.
* guix/build/gnu-build-system.scm (set-SOURCE-DATE-EPOCH): New
procedure.
(%standard-phases): Add it.
(gnu-build): Remove 'setenv' call for "SOURCE_DATE_EPOCH".
This is a followup to 009b53fd.
* gnu/packages/cmake.scm (cmake)[arguments]: Use (getenv
"C_INCLUDE_PATH") instead of (getenv "CPATH").
* gnu/packages/package-management.scm (rpm)[arguments]: Likewise.
* gnu/packages/video.scm (avidemux)[arguments]: Likewise.
* gnu/packages/webkit.scm (webkitgtk)[arguments]: Likewise.
* gnu/packages/cross-base.scm (cross-gcc-arguments): Likewise, and unset
'C_INCLUDE_PATH' and 'CPLUS_INCLUDE_PATH'.
This is a followup to 009b53fd.
* gnu/packages/patches/python-3-search-paths.patch: Check
'C_INCLUDE_PATH' instead of 'CPATH'.
* gnu/packages/patches/python-2.7-search-paths.patch: Likewise.
* gnu/services.scm (compute-boot-script): Remove /tmp and /var/run
deletion code from here.
(cleanup-gexp): New procedure with /tmp and /var/run deletion code
formerly in 'compute-boot-script'.
(cleanup-service-type): New variable.
* gnu/system.scm (essential-services): Add an instance of
CLEANUP-SERVICE-TYPE.
For some time /tmp and /var/run were not being deleted because
'delete-file-recursively' was unbound.
* gnu/services.scm (compute-boot-script)[%modules, modules, compiled]:
New variables. Use them to augment the module search path.
* guix/scripts/package.scm (find-packages-by-description): Change 'rx'
parameter to 'regexps'.
[matches-all?, matches-one?]: New procedures.
Use them.
(process-query): Collect regexps from all 'search' queries, and pass
them to 'find-packages-by-description'.
* tests/guix-package.sh: Add tests.
* doc/guix.texi (Invoking guix package): Document it.
Previously, the 'git checkout' invocation would remove sub-modules that
had been initialized by 'git clone --recursive'.
* guix/build/git.scm (git-fetch): Never use "git clone --recursive".
Invoke "git submodule update --init --recursive" after "git checkout".
Remove '.git' directories as the last step.
This avoids failures on loaded machines as seen
at <http://hydra.gnu.org/build/906900/log/raw>.
* gnu/packages/patches/grep-timing-sensitive-test.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/base.scm (grep): Use it.
* gnu/packages/bdw-gc.scm (libgc-for-c++): New variable.
* gnu/packages/plotutils.scm (asymptote): New variable.
* gnu/packages/patches/asymptote-gsl2.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
Before that it would include #f for most origins since that the default
value of 'origin-patch-guile'.
* guix/scripts/graph.scm (bag-node-edges): When 'origin-patch-guile'
returns #f, use (default-guile).
* tests/graph.scm ("bag DAG, including origins"): Check for an edge from
O to (default-guile).
Fixes <http://bugs.gnu.org/22280>.
Reported by Leo Famulari <leo@famulari.name>.
* guix/scripts/graph.scm (%bag-emerged-node-type)[edges]: Mimic
%BAG-NODE-TYPE. This is a followup to 38b92da.
* emacs/guix-ui-package.el (guix-package-list-latest-builds): New
procedure.
(guix-package-list-mode-map): Bind "B" key to it.
(guix-output-list-mode-map): Likewise.
* doc/emacs.texi (Emacs List buffer): Document it.
* emacs/guix-ui.el (guix-ui-read-profile): New procedure.
* emacs/guix-ui-package.el (guix-search-by-name)
(guix-search-by-regexp, guix-installed-packages)
(guix-obsolete-packages, guix-all-available-packages)
(guix-newest-available-packages): Use it.
* emacs/guix-ui-generation.el (guix-generations)
(guix-last-generations, guix-generations-by-time): Use it.
* emacs/guix-buffer.el (guix-define-groups, guix-define-entry-type)
(guix-define-buffer-type): New macros.
(guix-buffer-define-interface): Add parent groups for the generated
custom groups.
* emacs/guix-info.el: Use 'guix-define-buffer-type' to generate custom
groups.
* emacs/guix-list.el: Likewise.
* emacs/guix-ui.el: Use 'guix-define-groups' to generate custom groups.
(guix-ui-define-entry-type): New macro.
* emacs/guix-ui-package.el: Use it.
* emacs/guix-ui-generation.el: Use it.