[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#67292: emacs / emacs-transient collisions and bundling
From: |
Mekeor Melire |
Subject: |
bug#67292: emacs / emacs-transient collisions and bundling |
Date: |
Thu, 23 Nov 2023 14:17:02 +0000 |
Hello Maxime,
2023-11-20 13:39 maximedevos@telenet.be:
Op 20-11-2023 om 11:22 schreef Simon Tournier:
> On Sun, 19 Nov 2023 at 23:44, Maxime Devos
> <maximedevos@telenet.be>
> wrote:
>> Bug 1: emacs bundles emacs-transient.
>> (Likewise for quite a few other Emacs packages.)
> This is not a bug. transient.el is part of Emacs since
> version 28,
This does not answer how the bundling is not a bug.
Unbundling is not incompatible with keeping builtins -- for
example,
emacs-minimal could be the ‘minimalistic Emacs, without the
typical
bundled ‘built-in’ stuff’, and emacs could be 'emacs-minimal +
the
unbundled stuff in propagated-inputs’.
(Well, preferably not propagated, but that's just a matter of
wrapping
or unions etc..)
Another option could be to unbundle things in the 'source' of
emacs /
emacs-minimal and copy over source code from the
'emacs-‘builtin’'
packages during a build phase.
(IIUC, emacs-minimal is for compiling Emacs packages and for
scripts,
of which most probably have no need for keyboard-driven menus --
and
if they do have need,)
It might be possible to cut out some parts of Emacs so that emacs-minimal is
more minimal. But I think this could become quite complicated because we don't
know exactly which parts of Emacs are needed to build Emacs-related packages
since they might rely on any Elisp code during compile-time. Also, more
generally, it'd be hard to decide which parts are not needed, i.e. where to
draw the line etc. All in all, I don't think that it's worth the effort and
maintenance.
>> Bug 2: no collision handling.
As far as I know, Guix does not provide a facility to prioritize a
file from one package over the same file from another package.
But also, I don't think this is necessary here, because in a Guix-installed
Emacs, the paths to Guix-installed Emacs-related packages appear first in
Emacs' load-path variable, whereas the paths to the elisp-directories from
Emacs itself come last. Thus, emacs-transient's transient.el is always
preferred over Emacs' transient.el.
Finally, here's a list an incomplete list of Emacs-related packages that are
both built into Emacs itself, as well as distributed separately over GNU Elpa
and thus also as separate packages in Guix:
emacs-eglot
emacs-eldoc
emacs-external-completion
emacs-jsonrpc
emacs-let-alist
emacs-map
emacs-ntlm
emacs-project
emacs-so-long
emacs-soap-client
emacs-use-package
emacs-xref
If you want to know which built-in packages are distributed separately via GNU Elpa,
search the following file for ":core". Note that only a subset of those might
be packaged separately in Guix.
https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/elpa-packages
TANGENTIALLY: I'd like to mention that this topic becomes sort of a problem when (1) you have
installed Emacs with "guix install emacs-next --with-branch=emacs-next=master" or
similar; and (2) you installed some Emacs-related package via Guix, which propagates another
Emacs-related package that is also built into Emacs. This would cause a downgrade of that
propagated, built-in, Emacs-related package. E.g. this happens with emacs-consult-eglot which
propagates emacs-eglot which is also built into Emacs itself. A work-around is to overwrite the
input like this: "guix install emacs-next emacs-consult-eglot
--with-input=emacs-eglot=emacs-next --with-branch=emacs-next=master".
- bug#67292: emacs / emacs-transient collisions and bundling, Maxime Devos, 2023/11/19
- bug#67292: emacs / emacs-transient collisions and bundling, Simon Tournier, 2023/11/20
- bug#67292: emacs / emacs-transient collisions and bundling, Maxime Devos, 2023/11/20
- bug#67292: emacs / emacs-transient collisions and bundling, Maxime Devos, 2023/11/20
- bug#67292: emacs / emacs-transient collisions and bundling, Simon Tournier, 2023/11/20
- bug#67292: emacs / emacs-transient collisions and bundling, Maxime Devos, 2023/11/21
- bug#67292: emacs / emacs-transient collisions and bundling, Simon Tournier, 2023/11/23
- bug#67292: emacs / emacs-transient collisions and bundling, Maxime Devos, 2023/11/27
- bug#67292: emacs / emacs-transient collisions and bundling, Mekeor Melire, 2023/11/28
- bug#67292: emacs / emacs-transient collisions and bundling, Simon Tournier, 2023/11/28
- bug#67292: emacs / emacs-transient collisions and bundling,
Mekeor Melire <=
- bug#67292: emacs / emacs-transient collisions and bundling, Maxime Devos, 2023/11/27
- bug#67292: emacs / emacs-transient collisions and bundling, Mekeor Melire, 2023/11/28