* gnu/packages/emacs-xyz.scm (emacs-elpy): Update to 1.32.0.
[phases]{fake-virtualenv}: Rename to 'do-not-use-virtualenv. Use the new
ELPY_TEST_DONT_USE_VIRTUALENV environment variable to skip tests using
virtualenv, and set the elpy-rpc-virtualenv-path default value to 'system so
that a virtualenv is not needed.
[native-inputs]: Move the Python dependencies to...
[propagated] ...here. This is so that Elpy doesn't nag users with fetching
those from PyPI. Add python-rope.
Fixes <https://bugs.gnu.org/40079>.
Reported-by: sirgazil <sirgazil@zoho.com>
When attempting to run ert-runner in the build side environment where /bin/sh
doesn't exist as part of the emacs-elpy test suite, Emacs was throwing the
error "Searching for program: No such file or directory, /bin/sh". This is
because the default shell when SHELL is not set was "/bin/sh", as can be seen
in callproc.c:
sh = getenv ("SHELL");
Vshell_file_name = build_string (sh ? sh : "/bin/sh");
Thus, patch the occurrences of "/bin/sh" in the source files of Emacs to refer
to their correct store location.
* gnu/packages/emacs.scm (emacs)[phases]{patch-program-file-names}: Add phase.
This makes the EMACS-MINIMAL package more generally useful, by adding support
to load autoload definitions. Note that this doesn't negatively impact the
performance of the emacs-build-system, because at that time the --quick option
is used, which disables loading site-start.el (which is the one calling
GUIX-EMACS-AUTOLOAD-PACKAGES).
* gnu/packages/emacs.scm (emacs-minimal)[phases]: Do not delete the
'install-site-start phase.
[inputs]: Add the emacs/guix-emacs.el auxiliary file.
This re-instates what the previously reverted commit did, but without adding
a dependency on the (guix build emacs-utils) module.
* gnu/packages/emacs.scm (emacs)[phases]{install-site-start}: Define a
EMACS-BYTE-COMPILE-DIRECTORY procedure, and use it.
In Emacs 27, --eval now evaluates using lexical scoping. This change adds an
option to select dynamic scoping, by using a workaround proposed in
<https://bugs.gnu.org/39823>.
* guix/build/emacs-utils.scm (emacs-batch-eval): Add a DYNAMIC? keyword
argument. Wrap the EXPR with a call to EVAL that makes use of the argument
to select the scoping mode.
(emacs-generate-autoloads): Use it.
* gnu/packages/virtualization.scm (qemu-minimal-2.10): Remove variable.
* gnu/packages/debug.scm (qemu-for-american-fuzzy-lop): New variable.
(american-fuzzy-lop)[inputs]: Remove custom-qemu and add
qemu-for-american-fuzzy-lop.
[arguments]: Adjust reference to QEMU in the 'install-qemu' phase.
This package was inheriting from electrum, but as now almost all the fields
have differences, let's make these two packages independent from each other.
* gnu/packages/finance.scm (electron-cash): Update to 4.0.13.
[inputs]: Add libevent, openssl, python-cython, python-hidapi,
python-keepkey, python-stem, python-trezor, qtsvg and zlib.
[arguments]: Add a wrap-qt phase allowing qtsvg to be found at runtime to
show SVG icons correctly.
Previously, "locales.drv" would depend on the host's (guix config).
Thus, the derivation would depend on details of the user's installation.
* gnu/installer.scm (not-config?): New procedure.
(build-compiled-file): Pass it to 'source-module-closure' and use
'make-config.scm'.
This is a followup to f2b24f01f4.
* guix/packages.scm (package-field-location): Check whether
'source-properties->location' returns #f. This fixes the case where
'source-properties' returns the empty list.
* guix/ui.scm (show-what-to-build): Distinguish between 'build/full' and
'build'. Return true whe 'build/full' is non-empty, thus taking grafts
into account.
* guix/scripts/package.scm (build-and-use-profile): Remove #:dry-run?
and #:use-substitutes?. Remove call to 'show-what-to-build' and
'dry-run?' special case.
(process-actions): Adjust accordingly.
(guix-package*): Wrap 'parameterize' in 'with-build-handler'.
* guix/scripts/pull.scm (build-and-install): Remove #:use-substitutes?
and #:dry-run? and adjust 'update-profile' call accordingly. Remove
'dry-run?' conditional.
(guix-pull): Wrap body in 'with-build-handler'.
Until now, 'guix deploy' would never display what is going to be built.
* guix/scripts/deploy.scm (guix-deploy): Wrap 'for-each' in
'with-build-handler'.
* guix/store.scm (current-build-prompt): New variable.
(call-with-build-handler, invoke-build-handler): New procedures.
(with-build-handler): New macro.
* tests/store.scm ("with-build-handler"): New test.
* guix/build/syscalls.scm (call-with-file-lock)
(call-with-file-lock/no-wait): Initialize PORT in the 'dynamic-wind'
"in" handler. This allows us to re-enter a captured continuation and
have the lock grabbed anew.
When marionette-eval calls fail in gui-test-program, the installation
continues which results in two scenarios:
- hang forever at the next marionette-eval call,
- keep going and start a broken installation, which is annoying because it
clears the terminal and hides the error.
Make sure that gui-test-program is exited with #f return code when one of the
marionette-eval calls fail.
* gnu/tests/install.scm (gui-test-program): Add a new macro
"marionette-eval*". Throw an exception when one on the marionette-eval calls
fail.