Subject: Re: bug#47063: 27.1; Tramp customizations overridden by tramp-loaddefs.el

From: Michael Albinus <[email-masked]>
Date: Thu, 11 Mar 2021 14:56:31 +0100

Aaron Zeng <[email-masked]> writes:

> Hello there,

Hi Aaron,

> I noticed that my M-x customize settings were not being applied for
> some TRAMP defcustoms, namely, tramp-use-ssh-controlmaster-options.
> With the following barebones ~/.emacs:
>
>     (custom-set-variables
>      ;; custom-set-variables was added by Custom.
>      ;; If you edit it by hand, you could mess it up, so be careful.
>      ;; Your init file should contain only one such instance.
>      ;; If there is more than one, they won't work right.
>      '(tramp-use-ssh-controlmaster-options nil))
>     (custom-set-faces
>      ;; custom-set-faces was added by Custom.
>      ;; If you edit it by hand, you could mess it up, so be careful.
>      ;; Your init file should contain only one such instance.
>      ;; If there is more than one, they won't work right.
>      )
>
> I found that connecting to `/ssh::/' (localhost) ended up using TRAMP's
> ControlMaster options despite the customization.  I also noticed that
> `tramp-use-ssh-controlmaster-options' was set to t.  Furthermore, if the
> following line is prepended to the init file:
>
>     (debug-watch 'tramp-use-ssh-controlmaster-options)
>
> It is clear that the defvar in tramp-loaddefs.el is where the variable
> gets set to t.  I'm not familiar with the purpose of the *-loaddefs.el
> files and why they are different from regular generated autoload files,
> but it would seem that it's preventing customizations from being applied
> properly.
>
> My current workaround is to add the NOW argument in
> `custom-set-variables', like so:
>
>     (custom-set-variables
>       '(tramp-use-ssh-controlmaster-options nil t))
>
> Which seems to apply the customization corectly.  But this argument is
> not saved automatically by the M-x customize interface.

Perhaps you add (require 'tramp) somewhere in your ~/.emacs?

Best regards, Michael.