GNU bug report logs - #72333
Magit/Transient error message

Previous Next

Package: guix;

Reported by: daniel szmulewicz <daniel.szmulewicz <at> gmail.com>

Date: Sun, 28 Jul 2024 12:43:02 UTC

Severity: normal

Done: Liliana Marie Prikler <liliana.prikler <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #32 received at 72333 <at> debbugs.gnu.org (full text, mbox):

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: daniel szmulewicz <daniel.szmulewicz <at> gmail.com>, 72333 <at> debbugs.gnu.org
Subject: Re: bug#72333: Magit/Transient error message
Date: Fri, 30 Aug 2024 18:33:46 +0200
Hi,

On Sun, 28 Jul 2024 at 15:41, daniel szmulewicz <daniel.szmulewicz <at> gmail.com> wrote:
> Running M-x magit-branch generates the following error:
>
> transient-setup: Symbol’s function definition is void:
> transient-prefix-object
>
> In order to reproduce:
>
> guix shell emacs emacs-magit -- emacs -Q
>
> M-x magit-version
> Magit 3.3.0-8.538cb2f, Transient 0.7.3, Git 2.45.2, Emacs 29.4, gnu/linux

Well, that’s annoying.  Using Guix revision d531237 (CommitDate: Thu Aug
29), I also get this error about Transient and thus it makes Magit
hardly usable with local fixes.

This issue is that emacs-magit does not use the package emacs-transient
but the built-in transient.  I mean it fails similarly when removing
emacs-transient from the list of propagated-inputs.

Why is emacs-transient not loaded?

--8<---------------cut here---------------start------------->8---
$ ag --elisp 'defvar transient--buffer' $(./pre-inst-env guix build -S emacs-transient)
/gnu/store/jhbk7wzs9lh7myav6czyxx4i2wgyw3vl-emacs-transient-0.7.4-checkout/lisp/transient.el
1547:(defvar transient--buffer-name " *transient*"
1550:(defvar transient--buffer nil

$ ./pre-inst-env guix shell -C -E TERM emacs emacs-transient \
   -- emacs --batch --eval "(progn (require 'transient) (print transient--buffer))"

Error: void-variable (transient--buffer)
  mapbacktrace(#f(compiled-function (evald func args flags) #<bytecode 0x1a5b59c931aef3ca>))
  debug-early-backtrace()
  debug-early(error (void-variable transient--buffer))
  (print transient--buffer)
  (progn (require 'transient) (print transient--buffer))
  command-line-1(("--eval" "(progn (require 'transient) (print transient--buffer))"))
  command-line()
  normal-top-level()
Symbol's value as variable is void: transient--buffer
--8<---------------cut here---------------end--------------->8---

And built-in transient is used instead?

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix shell -C -E TERM emacs emacs-transient \
   -- emacs --batch --eval "(progn (require 'transient) (print transient--buffer-name))"

" *transient*"
--8<---------------cut here---------------end--------------->8---


Please note it works as expected with say Org:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix shell -C -E TERM emacs \
   -- emacs --batch --eval "(print (org-version)))"

"9.6.15"

$ ./pre-inst-env guix shell -C -E TERM emacs emacs-org \
   -- emacs --batch --eval "(print (org-version)))"

"9.7.10"
--8<---------------cut here---------------end--------------->8---


Cheers,
simon




This bug report was last modified 247 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.