Some parts of Emacs (dired, compression handling, Tramp) shell out to commands
and patching them all is a daunting task. Also, w.r.t. Tramp, we need those
commands to be portable across multiple machines, which need not only be Guix
machines (and even if they are, store items can be different). This patch
ensures a ‘sane’ setup FSVO ‘sane’.
* gnu/packages/emacs.scm (emacs)[wrap-load-path]: Rename to...
[wrap-emacs-paths] ... this. Also patch PATH.
With this, the search path specification of EMACSLOADPATH does no longer
depend on the version of Emacs, which should make upgrading major versions
less painful. See also:
- <https://bugs.gnu.org/43627>
- <https://bugs.gnu.org/47458>
* gnu/packages/emacs.scm (emacs)[#:phases]: Add ‘wrap-load-path’.
[native-search-path]<EMACSLOADPATH>: Do not search for builtin libraries.
(emacs-next)[native-search-path]: Inherit from emacs.
* gnu/packages/emacs.scm (emacs) [strip-double-wrap]:
Use regex to find emacs executable. This works even when the version is
changed by package transformations (ex: version=git.master)
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This reverts commit b107a19ffb.
It causes too many rebuilds related to emacs-minimal, and fails with "No code
for module (guix build glib-or-gtk-build-system)".
* gnu/packages/emacs.scm (emacs) [strip-double-wrap]: Use regex to find emacs
executable. This works even when the version is changed by package
transformations (e.g., version=git.master).
Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Fixes <http://issues.guix.info/43277>.
* gnu/packages/emacs.scm (emacs)[strip-double-wrap]: Modify to work with
emacs-next.
(emacs-next)[version]: Use git-version to produce the version string.
[arguments]: Remove field.
[native-search-paths]: Add field.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
* gnu/packages/emacs.scm (emacs): Update to 27.1.
[source]: In snippet, use 'find-files' to find 'eshell/esh-groups.el'
if it exists, but gracefully handle its absence.
[arguments]: Add "--with-cairo" to configure-flags. Add 'restore-emacs-pdmp'
and 'make-compressed-files-writable' phases. Explicitly return #t from
'install-site-start' phase.
[inputs]: Add cairo, pango, harfbuzz, jansson, and gmp. Remove imagemagick.
(emacs-next): Remove variable.
(emacs-minimal, emacs-xwidgets): Use 'package/inherit'.
[arguments]: Remove 'restore-emacs-pdmp' phase.
(emacs-no-x): Use 'package/inherit'.
[arguments]: Remove "--with-cairo" from configure-flags. Remove
'restore-emacs-pdmp' phase.
[inputs]: Remove cairo, pango, and harfbuzz.
(emacs-no-x-toolkit): Use 'package/inherit'.
[arguments]: Remove 'restore-emacs-pdmp' phase. Remove superfluous
quasiquote+unquote-splicing pair.
(emacs-wide-int): Use 'package/inherit'.
(guile-emacs): Use 'package/inherit'.
[arguments]: Remove "--with-cairo" from configure-flags. Remove
'restore-emacs-pdmp' phase.
* gnu/packages/patches/emacs-ignore-empty-xim-styles.patch,
gnu/packages/patches/emacs-source-date-epoch.patch: Adapt to
apply cleanly to emacs-27.1.
* gnu/packages/patches/emacs-exec-path.patch: Replace with the previous
contents of 'emacs27-exec-path.patch', but remove the superfluous comment
about it being "like emacs-exec-path.patch, but for Emacs 27".
* gnu/packages/patches/emacs27-exec-path.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove 'emacs27-exec-path.patch'.
As of libx11 version 1.6.10, xim may be NULL, which causes a segmentation
fault in the execution of ARRAYELTS. As a cautionary measure, we
short-circuit this logic.
* gnu/packages/patches/emacs-ignore-empty-xim-styles.patch: New file.
* gnu/packages/emacs.scm (emacs emacs-next)[patches]: Use it.
* gnu/local.mk: Register it.
Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
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.
* gnu/packages/emacs.scm (emacs): Use the (gnu build emacs-utils) module.
Byte compile the site-lisp directory as part of the 'install-site-start'
phase.
(emacs-minimal, emacs-xwidgets, emacs-no-x, emacs-no-x-toolkit): Reset modules
to those of the gnu-build-system.
Add `emacs-next' for building latest Emacs from git.
* gnu/packages/emacs.scm (emacs-next): New variable.
(emacs): make the autoload deletion snippet not fail when eshell/esh-groups.el
does not exist. This enables reuse of the entire snippet field of `emacs' for
`emacs-next'.
* gnu/packages/patches/emacs27-exec-path.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add the above patch file to it.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Move Guix profiles' site-lisp before Emacs' own in the search path
specification, so that user installed packages can override Emacs' builtin
versions.
Fixes issue #38399 (see: https://bugs.gnu.org/38399).
Reported-by: Diego Nicola Barbato <dnbarbato@posteo.de>
* gnu/packages/emacs.scm (emacs): Move the Emacs builtin library directory
suffix to the end of the search path.
The EMACSLOADPATH can be greatly simplified by relying on a subdirs.el file
that causes Emacs to search recursively a directory found in EMACSLOADPATH.
* gnu/packages/emacs.scm (emacs)[native-search-paths]: Remove the match-all
file pattern regexp. Remove the versioned site-lisp directory from searched
files, as it appears unused by Emacs.
Reported-by: Leo Prikler <leo.prikler@student.tugraz.at>
Signed-off-by: Clément Lassieur <clement@lassieur.org>
* gnu/packages/emacs.scm (emacs-minimal)[arguments]: Use
'substitute-keyword-arguments' for #:configure-flags, and pass
"--disable-build-details".
(emacs-xwidgets)[arguments]: Likewise.