Subject: Re: bug#18512: 24.3.93; tramp persistency file: incompatible with old versions? Tramp won't start!

From: Michael Albinus <[email-masked]>
Date: Sat, 20 Sep 2014 09:24:15 +0200

David Reitter <[email-masked]> writes:

> After upgrading to [Aquamacs based on] a pre-release of 24.4, a user
> complained about Tramp not working.
>
> Some investigation showed that the error was reproducible with a 
>
> (load “tramp” nil)
>
> and it occurred when it tried to load the file specified in
> `tramp-persistency-file-name’.  The error message was:
>
> eval-buffer: Invalid function: (["scpc" "dr” “xxx.yyy.org" nil]
> ("uname" "Darwin 9.8.0") ("test" "test") ("remote-path" ("/usr/bin"
> "/bin" "/usr/sbin" "/sbin" "/usr/local/bin")) ("remote-shell"
> "/bin/sh") ("~" "/Users/dr") ("readlink" nil) ("perl-file-spec" t)
> ("perl-cwd-realpath" t) ("perl" "\\perl") …)

[...]

> This does not look like a file that can be loaded with `load’.
>
> It was probably produced with an older Emacs version, but judging from
> the file date, probably just the previous release 23.3.
>
> Deleting the file makes the error go away.  Tramp works just fine then.
>
> I think Emacs should be smart enough to handle the version upgrade.
> Perhaps re-generating the file if reading it produces an exception
> should be a transparent and automatic measure.

It's not about version incompatibility.

Tramp's persistency file is not something which shall be loaded by (load
“tramp” nil). Its default location is (locate-user-emacs-file "tramp")

If the directory is in the load-path, and if it is before the directory
where Tramp *.el[c] files reside, it might be that (load “tramp” nil)
takes the wrong file. Maybe, we shall move it either into a subdirectory
of "~/.emacs.d/", or we shall give it another name.

Hmm, I won't do it just now, because I'll be almost offline for the next
3 weeks (just email connection). I'll check it when I return; maybe
somebody has a better proposal.

Best regards, Michael.