bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#67292: emacs / emacs-transient collisions and bundling


From: Maxime Devos
Subject: bug#67292: emacs / emacs-transient collisions and bundling
Date: Mon, 20 Nov 2023 13:39:05 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0

Op 20-11-2023 om 11:22 schreef Simon Tournier:
Hi,

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, see
NEWS:

--8<---------------cut here---------------start------------->8---
* New Modes and Packages in Emacs 28.1

** transient.el
This library implements support for powerful keyboard-driven menus.
Such menus can be used as simple visual command dispatchers.  More
complex menus take advantage of infix arguments, which are somewhat
similar to prefix arguments, but are more flexible and discoverable.
--8<---------------cut here---------------end--------------->8---

When an user installs Emacs, they expect to have transient as builtin;
it is not bundled.


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,)

 I recommend to read the section:

     * New Modes and Packages in Emacs X

in NEWS release files to know which mode or package are included as
builtin.

I won't -- my package manager is Guix, not Emacs.

And yes, these packages are sometimes developed outside the
Emacs tree using a dedicated repository, as transient.el or Org-mode for
instance.


Bug 2: no collision handling.

This is a bug, IMHO.  Indeed, if an user prefers another version of
builtin modes or packages, they should not collide with the builtin
ones.  Well, they do not collide when using “guix shell”:

     guix shell -C emacs emacs-transient -E TERM -- emacs -q

Therefore, maybe the issue comes from some specific code from “guix
home”.  Hum, I do not know.

They do, in fact, collide -- as I mentioned in the e-mail you replied to:

[...] because "guix shell" (and likewise for "environment") suppresses collision error messages:

$ guix shell emacs emacs-transient

(see: https://issues.guix.gnu.org/54350).

Best regards,
Maxime Devos

Attachment: OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]