Merge branch 'master' into core-updates
gnu: Emit a warning when a package module cannot be loaded.
* guix/ui.scm (warn-about-load-error): New procedure.
* gnu/packages.scm (package-modules): Wrap 'resolve-interface' call in
'catch #t', and call 'warn-about-load-error' in handler.
packages: Fix typo.
* gnu/packages.scm: Fix the name of an exported variable (%patch-path).
gnu: Raise an error when a bootstrap binary is not found.
* gnu/packages.scm (search-bootstrap-binary): Raise an error when
FILE-NAME is not found.
gnu: 'search-patch' raises an error when a patch is not found.
* gnu/packages.scm (search-patch): Raise an error condition when
'search-path' returns #f.
* tests/packages.scm ("patch not found yields a run-time error"): New
test.
Merge branch 'master' into core-updates
gnu: Search for patches under $GUIX_PACKAGE_PATH.
Fixes <http://bugs.gnu.org/19364>.
Reported by Tomáš Čech <sleep_walker@suse.cz>
and Mark H Weaver <mhw@netris.org>.
* gnu/packages.scm (%patch-path): Move after definition of
%package-module-path'. Append "/gnu/packages/patches" only to
%DISTRO-ROOT-DIRECTORY.
* tests/guix-package.sh: Add 'emacs-foo-bar-patched' test.
Merge branch 'master' into core-updates
Merge branch 'master' into xorg-updates
packages: Sort Scheme file lists used by 'fold-packages'.
* gnu/packages.scm (scheme-files): Call 'sort' on result.
gnu-maintenance: Introduce <gnu-release> data type.
* guix/gnu-maintenance.scm (<gnu-release>): New record type.
(release-file): Rename to...
(release-file?): ... this. Return a Boolean.
(tarball->version, coalesce-releases): New procedures.
(releases): Call 'coalesce-releases' on RESULT. Return <gnu-release>
objects instead of pairs.
(latest-release): Likewise.
(package-update-path): Adjust accordingly.
* gnu/packages.scm (check-package-freshness): Adjust accordingly.
packages: Optimize 'find-packages-by-name' to avoid disk accesses.
On a profile with 182 entries, "guix package --search-paths" goes from
4.5 seconds down to 0.4 second.
* gnu/packages.scm (find-packages-by-name): Make a name -> package vhash
in a promise; access it with 'vhash-fold*'.
Introduce the 'GUIX_PACKAGE_PATH' environment variable.
* gnu/packages.scm (%package-module-path): Honor $GUIX_PACKAGE_PATH.
* test-env.in: Unset 'GUIX_PACKAGE_PATH'.
* tests/guix-package.sh: Test it.
* doc/guix.texi (Package Modules): Document it.
packages: Add '%package-module-search-path'.
* gnu/packages.scm (%package-module-path): New variable.
(all-package-modules): New procedure.
(fold-packages): Use it instead of 'package-modules'.
packages: Generalize package module search.
* gnu/packages.scm (%distro-root-directory): New variable.
(%distro-module-directory): Remove.
(package-files): Rename to...
(scheme-files): ... this. Return absolute file names, not stripped.
(file-name->module-name): New procedure.
(package-modules): Add 'directory' and 'sub-directory' parameters.
Rewrite accordingly.
(fold-packages): Adjust 'package-modules' call accordingly.
Merge branch 'master' into core-updates
Move specification->package to gnu/packages.scm.
* guix/scripts/build.scm (specification->package): Move from here...
* gnu/packages.scm: ... to here.
Merge branch 'master' into core-updates
Move 'check-package-freshness' from 'guix package' to 'packages'.
* guix/scripts/package.scm (%sigint-prompt, call-with-sigint-handler)
(waiting, ftp-open*, check-package-freshness): Move to...
* gnu/packages.scm: ... here.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
packages: Remove dead code.
* gnu/packages.scm (_): Remove.
Remove an extra space.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>