The ‘patch-compilation-driver’ phase pulls in libgccjit even though it has
been deliberately removed from emacs-minimal.
* gnu/packages/emacs.scm (emacs)[#:phases]: Delete ‘patch-compilation-driver’.
* gnu/packages/patches/emacs-native-comp-driver-options.patch: New file.
* gnu/local.mk: Register it here.
* gnu/packages/emacs.scm (emacs-next): Update to 29.0.50-2.4aeb80c.
This partly reverts dbcba75c0e. In that commit,
emacs-minimal gained a few inputs that weren't actually used as native
compilation is disabled.
Discovered by djeis in IRC, see also
<http://logs.guix.gnu.org/guix/2022-10-02.log#170047>.
* gnu/packages/emacs.scm (emacs-minimal)[inputs]: Remove ld-wrapper, binutils,
glibc, libgccjit, and zlib.
[arguments]<#:phases>: Delete ‘set-libgccjit-path’.
Recent version of emacs 29 with pgtk flag has a problem with handling super
key modifier, due to gtk bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/4913
This commit workarounds it.
* gnu/packages/patches/emacs-pgtk-super-key-fix.patch: New file.
* gnu/packages/emacs.scm (emacs-next-pgtk): Use it here.
* gnu/local.mk (dist_patch_DATA): Register it here.
Conflicts resolved in:
gnu/local.mk
gnu/packages/cmake.scm
gnu/packages/glib.scm
gnu/packages/gnome.scm
gnu/packages/gtk.scm
gnu/packages/sdl.scm
pango-next, vala-next and librsvg-bootstrap were removed in the process.
librsvg is already a staging-level package, and the next version will no
longer bundle its dependencies, so we might as well drop it early.
* gnu/packages/gnome.scm (librsvg-bootstrap): Remove variable.
* gnu/packages/bittorrent.scm (deluge)[native-inputs]: Replace
LIBRSVG-BOOTSTRAP with LIBRSVG.
* gnu/packages/emacs.scm (emacs)[inputs]: Likewise.
* gnu/packages/gtk.scm (gtk+-2)[propagated-inputs]: Likewise.
* gnu/packages/gtk.scm (gtk+)[propagated-inputs]: Likewise.
This variable was moved from tramp-sh.el to tramp.el, causing the substitute*
snippet which patches it to silently fail.
See also <https://issues.guix.gnu.org/55443>.
* gnu/packages/emacs.scm (emacs)[source]<snippet>: Patch tramp.el rather than tramp-sh.el.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
The currently used commit breaks magit, so update to a newer one.
* gnu/packages/emacs.scm (emacs-next): Update to 29.0.50-1.0a5477b.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
* gnu/packages/emacs.scm (emacs-minimal)[inputs, native-inputs]: Reduce to a
single line.
[#:configure-flags]: Use G-Expression rather than double quoting.
The search for guix-emacs.el has already been inlined into a phase shared
by all emacs variants.
* gnu/packages/emacs.scm (emacs-minimal)[inputs]: Remove "emacs/guix-emacs.el".
This is a follow-up to 5f315e1d5f.
The addition of autoconf wasn't reflected in emacs-minimal, causing builds
to break. Also drop labels while we're at it.
* gnu/packages/emacs.scm (emacs-minimal)[inputs]: Drop labels.
[native-inputs]: Drop labels. Add autoconf.
This is a follow-up to commit 64557bc695.
Inputs lacking from emacs proper may not be present in emacs-minimal,
thus throwing an error on lookup. This error is already anticipated in
the handling code.
* gnu/packages/emacs.scm (emacs)[patch-program-file-names]: Wrap
search-input-file in false-if-exception.
This is a follow-up to commit 64557bc695.
The use of G-Expressions in emacs' arguments wasn't reflected in
emacs-minimal, causing builds to fail as reported in
<https://issues.guix.gnu.org/issue/55415>.
* gnu/packages/emacs.scm (emacs-minimal)[arguments]: Convert to list of
G-Expessions.
* gnu/packages/emacs.scm (emacs)[source]<snippet>: Drop trailing ‘#t’.
[arguments]: Convert to list of G-Expressions.
Use ‘search-input-file’ where possible.
Inline references to auxiliary files.
Drop trailing ‘#t’s.
[inputs, native-inputs]: Drop labels.
* gnu/packages/aux-files/emacs/guix-emacs.el
(guix-emacs--non-core-load-path): New procedure.
(guix-emacs-autoload-packages): Use it here.
(guix-emacs-load-package-descriptors): New procedure.
* gnu/packages/emacs.scm (emacs)[install-site-start]: Install advice to run
‘guix-emacs-load-package-descriptors’.
* gnu/packages/emacs.scm (emacs)[patch-program-file-names]: Add patches for
the programs “gs”, “dvipdf”, “ps2pdf” and “pdftotext”.
[inputs]: Add ghostscript and poppler.
* gnu/packages/emacs.scm (emacs)[#:phases]<patch-program-file-names>: Expand
calls to “tramp-compat-process-running-p” so that Guix wrappers are also
matched.
* gnu/packages/emacs.scm (emacs-xwidgets, emacs-next-pgtk)[inputs]:
Replace webkitgtk with webkitgtk-with-libsoup2.
* gnu/packages/webkit.scm (webkitgtk-with-libsoup2): Add further
information about where this package is used and upstream tracker for
libsoup3.
* gnu/packages/emacs.scm (emacs) [restore-emacs-pdmp]: Use lax regular
expressions to match files by the “.pdmp” file ending only. Adjust comment
accordingly.
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
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.
Recently, librsvg was updated to depend upon rust. That change inadvertently
restricted the "supported" systems of emacs (among other packages) to
x86_64-linux only, since that is the only system declared in the rust
package's list of supported systems. This unintentionally made emacs
unavailable on all other systems.
This change fixes that by removing the rust dependency from some packages.
The packages remain unchanged from the perspective of an x86_64-linux system,
but from the perspective of other systems, the packages are now supported
again (albeit without certain optional SVG features).
* gnu/packages/gtk.scm (gtk+, gtk+-2)[propagated-inputs]: If compiling for
x86_64, use gdk-pixbuf+svg as the "gdk-pixbuf" input, as usual. Otherwise,
use gdk-pixbuf, which avoids adding librsvg (thus rust) to the closure of
inputs. Note that both gtk+ and gtk+-2 are in the transitive closure of
inputs of emacs, so these two changes are necessary.
* gnu/packages/emacs (emacs)[inputs]: If compiling for x86_64, add librsvg to
the inputs, as usual. Otherwise, do not add it, which avoids adding rust to
the closure of inputs.
* 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>