Subject: bug#63300: 29.0.90; Tramp keeps customizing variables on every connection

From: Michael Albinus <[email-masked]>
Date: Tue, 06 Jun 2023 13:35:35 +0200

Eli Zaretskii <[email-masked]> writes:

Hi Eli,

>> Actually, I take it back. customize-save-variable only saves variables that have the saved-value
>> symbol property set. This property is normally set by customize when it is saved to the custom file.
>> Something in Tramp is setting this property without saving the variable values to the custom file or
>> going through customize. In fact, you can see it via M-x customize-option
>> connection-local-criteria-alist. The value will be shown as SAVED.
>
> Maybe Tramp uses setopt or something to change the values of these
> options?  Michael?

Tramp does nothing special, it just calls connection-local-set-profiles
and connection-local-set-profile-variables.

>> Both of this behavior violate what is documented in the docstring and
>> https://www.gnu.org/software/emacs/manual/html_node/elisp/Standard-Properties.html.
>>
>> If you must, enable-conneciton-local-variables should be respected, and if you must, set the
>> theme-value property on these connection-local variables instead of saved-value so custom-save-all
>> will not save them.
>
> I believe my proposal to make Tramp use variables that are initialized
> from the user options should solve all of this.  Let's wait for
> Michael to chime in on that.

By this, a user couldn't change the user options later on, after Tramp
is initilized. And it isn't only Tramp, other packages use
connection-local variables as well.

See my other message for a proposal.