unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#62329: 30.0.50; Error in TRAMP due to variable aliasing
@ 2023-03-21 12:00 Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-03-21 13:08 ` Michael Albinus
  0 siblings, 1 reply; 6+ messages in thread
From: Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-03-21 12:00 UTC (permalink / raw)
  To: 62329


The recent rename of tramp-use-ssh-controlmaster-options in commit
1c39347d585 seems to cause some problems, namely Emacs now fails with an
error when trying to load tramp-sh (which happens automatically in some
TRAMP flows) if tramp is already loaded and compilation-mode-hook ran.
To reproduce:

1. emacs -Q
2. (require 'tramp)
   This further requires tramp-integration which adds a function
   called tramp-compile-disable-ssh-controlmaster-options to
   compilation-mode-hook
3. Do something that runs compilation-mode-hook, e.g. M-x compile with
   some dummy compilation command like "true".
4. Try to load tramp-sh with e.g. (require 'tramp-sh)
   Emacs fails with an error saying:
   "Don’t know how to make a buffer-local variable an alias:
   tramp-use-connection-share".
   AFAIU This happens because at this point tramp-use-connection-share is
   already a localized symbol and tramp-sh tries to call defvaralias on it.

Thanks,
Eshel


In GNU Emacs 30.0.50 (build 25, x86_64-apple-darwin22.3.0, NS
 appkit-2299.40 Version 13.2.1 (Build 22D68)) of 2023-03-21 built on
 esmac.local
Repository revision: 42fba8f36b19536964d6deb6a34f3fd1c02b43dd
Repository branch: master
Windowing system distributor 'Apple', version 10.3.2299
System Description:  macOS 13.2.1

Configured using:
 'configure --with-native-compilation --with-json --with-tree-sitter'

Configured features:
ACL DBUS GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM ZLIB

Important settings:
  value of $LC_CTYPE: UTF-8
  locale-coding-system: utf-8-unix

Major mode: Debugger

Minor modes in effect:
  shell-dirtrack-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils help-fns radix-tree cl-print debug backtrace
find-func compile text-property-search tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat shell pcomplete comint ansi-osc
ansi-color ring parse-time iso8601 time-date ls-lisp format-spec
auth-source eieio eieio-core cl-loaddefs comp comp-cstr warnings icons
rx cl-seq cl-macs cl-extra help-mode cl-lib password-cache json subr-x
map byte-opt gv bytecomp byte-compile rmc iso-transl tooltip cconv eldoc
paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode
mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads dbusbind
kqueue cocoa ns lcms2 multi-tty make-network-process native-compile
emacs)

Memory information:
((conses 16 120777 8827)
 (symbols 48 9991 0)
 (strings 32 30989 2026)
 (string-bytes 1 1006709)
 (vectors 16 22054)
 (vector-slots 8 390621 12591)
 (floats 8 47 25)
 (intervals 56 395 0)
 (buffers 984 13))





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#62329: 30.0.50; Error in TRAMP due to variable aliasing
  2023-03-21 12:00 bug#62329: 30.0.50; Error in TRAMP due to variable aliasing Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-03-21 13:08 ` Michael Albinus
  2023-03-21 13:23   ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Albinus @ 2023-03-21 13:08 UTC (permalink / raw)
  To: Eshel Yaron; +Cc: 62329

Eshel Yaron <me@eshelyaron.com> writes:

Hi Eshel,

> The recent rename of tramp-use-ssh-controlmaster-options in commit
> 1c39347d585 seems to cause some problems, namely Emacs now fails with an
> error when trying to load tramp-sh (which happens automatically in some
> TRAMP flows) if tramp is already loaded and compilation-mode-hook ran.
> To reproduce:
>
> 1. emacs -Q
> 2. (require 'tramp)
>    This further requires tramp-integration which adds a function
>    called tramp-compile-disable-ssh-controlmaster-options to
>    compilation-mode-hook
> 3. Do something that runs compilation-mode-hook, e.g. M-x compile with
>    some dummy compilation command like "true".
> 4. Try to load tramp-sh with e.g. (require 'tramp-sh)
>    Emacs fails with an error saying:
>    "Don’t know how to make a buffer-local variable an alias:
>    tramp-use-connection-share".
>    AFAIU This happens because at this point tramp-use-connection-share is
>    already a localized symbol and tramp-sh tries to call defvaralias on it.

Thanks for the report. This is the same problem as reported in
bug#62295, I'll merge them.

I hope to find a fix, soon.

> Thanks,
> Eshel

Best regards, Michael.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#62329: 30.0.50; Error in TRAMP due to variable aliasing
  2023-03-21 13:08 ` Michael Albinus
@ 2023-03-21 13:23   ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-03-21 16:20     ` Michael Albinus
  0 siblings, 1 reply; 6+ messages in thread
From: Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-03-21 13:23 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 62329

Michael Albinus <michael.albinus@gmx.de> writes:

> Eshel Yaron <me@eshelyaron.com> writes:
>
> Hi Eshel,
>
> Thanks for the report. This is the same problem as reported in
> bug#62295, I'll merge them.
>
> I hope to find a fix, soon.

Great, thanks.  In the meantime my dirty workaround is putting the
following in my init.el:

(with-eval-after-load 'compile
  (require 'tramp-sh))

This causes the defvaralias call to happen before
tramp-use-connection-share is localized, which seems to work alright.
The downside is that tramp-sh is loaded the first time I use M-x compile
even if I'm only working locally.

-- 
Eshel





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#62329: 30.0.50; Error in TRAMP due to variable aliasing
  2023-03-21 13:23   ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-03-21 16:20     ` Michael Albinus
  2023-03-21 17:05       ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 6+ messages in thread
From: Michael Albinus @ 2023-03-21 16:20 UTC (permalink / raw)
  To: Eshel Yaron; +Cc: 62329

[-- Attachment #1: Type: text/plain, Size: 620 bytes --]

Eshel Yaron <me@eshelyaron.com> writes:

 Hi Eshel,

>> I hope to find a fix, soon.
>
> Great, thanks.  In the meantime my dirty workaround is putting the
> following in my init.el:
>
> (with-eval-after-load 'compile
>   (require 'tramp-sh))
>
> This causes the defvaralias call to happen before
> tramp-use-connection-share is localized, which seems to work alright.
> The downside is that tramp-sh is loaded the first time I use M-x compile
> even if I'm only working locally.

In my local environment, I have inverted the definition of the variable
alias. This seems to solve the bug.

Could you pls try this patch?


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 1115 bytes --]

diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 24e90447b24..339eb1fa9ab 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -106,6 +106,8 @@ tramp-initial-end-of-output
 (defconst tramp-end-of-heredoc (md5 tramp-end-of-output)
   "String used to recognize end of heredoc strings.")

+(define-obsolete-variable-alias
+  'tramp-use-ssh-controlmaster-options 'tramp-use-connection-share "30.1")
 (defcustom tramp-use-connection-share (not (eq system-type 'windows-nt))
   "Whether to use connection share in ssh or PuTTY.
 Set it to t, if you want Tramp to apply respective options. These
@@ -122,11 +124,6 @@ tramp-use-connection-share
   ;; Check with (safe-local-variable-p 'tramp-use-connection-share 'suppress)
   :safe (lambda (val) (and (memq val '(t nil suppress)) t)))

-(defvaralias 'tramp-use-connection-share 'tramp-use-ssh-controlmaster-options)
-(make-obsolete-variable
- 'tramp-use-ssh-controlmaster-options
- "Use `tramp-use-connection-share' instead" "30.1")
-
 (defvar tramp-ssh-controlmaster-options nil
   "Which ssh Control* arguments to use.


[-- Attachment #3: Type: text/plain, Size: 36 bytes --]


Thanks, and best regards, Michael.

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* bug#62329: 30.0.50; Error in TRAMP due to variable aliasing
  2023-03-21 16:20     ` Michael Albinus
@ 2023-03-21 17:05       ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2023-03-21 20:26         ` Michael Albinus
  0 siblings, 1 reply; 6+ messages in thread
From: Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-03-21 17:05 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 62329

Michael Albinus <michael.albinus@gmx.de> writes:

> In my local environment, I have inverted the definition of the variable
> alias. This seems to solve the bug.
>
> Could you pls try this patch?
>
> diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
> index 24e90447b24..339eb1fa9ab 100644
> --- a/lisp/net/tramp-sh.el
> +++ b/lisp/net/tramp-sh.el
> @@ -106,6 +106,8 @@ tramp-initial-end-of-output
>  (defconst tramp-end-of-heredoc (md5 tramp-end-of-output)
>    "String used to recognize end of heredoc strings.")
>
> +(define-obsolete-variable-alias
> +  'tramp-use-ssh-controlmaster-options 'tramp-use-connection-share "30.1")
>  (defcustom tramp-use-connection-share (not (eq system-type 'windows-nt))
>    "Whether to use connection share in ssh or PuTTY.
>  Set it to t, if you want Tramp to apply respective options. These
> @@ -122,11 +124,6 @@ tramp-use-connection-share
>    ;; Check with (safe-local-variable-p 'tramp-use-connection-share 'suppress)
>    :safe (lambda (val) (and (memq val '(t nil suppress)) t)))
>
> -(defvaralias 'tramp-use-connection-share 'tramp-use-ssh-controlmaster-options)
> -(make-obsolete-variable
> - 'tramp-use-ssh-controlmaster-options
> - "Use `tramp-use-connection-share' instead" "30.1")
> -
>  (defvar tramp-ssh-controlmaster-options nil
>    "Which ssh Control* arguments to use.
>
>
> Thanks, and best regards, Michael.

Yes, with this patch I don't get that error anymore, seems to work fine :)

-- 
Eshel





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#62329: 30.0.50; Error in TRAMP due to variable aliasing
  2023-03-21 17:05       ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-03-21 20:26         ` Michael Albinus
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Albinus @ 2023-03-21 20:26 UTC (permalink / raw)
  To: Eshel Yaron; +Cc: 62329-done

Version: 30.1

Eshel Yaron <me@eshelyaron.com> writes:

Hi Eshel,

>> In my local environment, I have inverted the definition of the variable
>> alias. This seems to solve the bug.
>>
>> Could you pls try this patch?
>
> Yes, with this patch I don't get that error anymore, seems to work fine :)

Thanks for the feedback, I've pushed the patch to master. Closing the
bug.

Best regards, Michael.





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-03-21 20:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-21 12:00 bug#62329: 30.0.50; Error in TRAMP due to variable aliasing Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-21 13:08 ` Michael Albinus
2023-03-21 13:23   ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-21 16:20     ` Michael Albinus
2023-03-21 17:05       ` Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-03-21 20:26         ` Michael Albinus

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).