Subject: Re: bug#36598: 26.1; (error "‘/tmp/emacs1000’ is not a safe directory because it is a symlink")

From: [email-masked]
Date: Sun, 14 Jul 2019 20:11:31 +0100

On 2019-07-14 12:44, Lars Ingebrigtsen wrote:
> [email-masked] writes:
> 
>> On 2019-07-13 15:45, Lars Ingebrigtsen wrote:
>>> [email-masked] writes:
>>> 
>>>> Launch emacs-27, start the server. Now launch emacs-26 and start the
>>>> server with a different. The problem is that
>>>> emacs-27 creates the file /tmp/emacs($PID) as a symlink, while
>>>> emacs-26 doesn't like it.
>>>> 
>>>> Probably created by
>>>> 
>>>> b663c837249 (Stefan Monnier          2019-05-03  538)
>>> 
>>> Could you post a backtrace for the "doesn't like it" case?
>> 
>> Sure. It is Emacs-26 that errors.
>> 
>> As far as I can see, this will only affect the edge case of someone
>> running two versions of Emacs. I tend to do this (I run gnus in a
>> standalone release emacs, and everything else in another emacs).
> 
> Commit b663c837249 (in May) which says "Cosmetic changes" is the one
> that introduced this code?
> 
>     (let ((olddir (or (getenv "TMPDIR") "/tmp")))
>       (when (and (equal dir (format "%s/emacs" (getenv 
> "XDG_RUNTIME_DIR")))
>                  (file-writable-p olddir))
>         (let ((link (format "%s/emacs%d" olddir (user-uid))))
>           (unless (file-directory-p link)
>             ;; We're using the new location, so try and setup a symlink 
> from
>             ;; the old location, in case we want to use an old 
> emacsclient.
>             ;; FIXME: Check that it's safe to use!
>             (make-symbolic-link dir link t)))))
> 
> And instead of making things work with an old emacsclient, it breaks 
> the
> Emacs 26 emacsclient?

Nearly. I think it breaks emacs-26 not the emacsclient. I haven't check 
the emacsclient code, but I guess Stefan was
aiming for the situation when someone is using (say) emacsclient-26 with 
emacs-27.

This is all a bit of a guess, though.

> I may be reading the region history wrong, though.
> 
> Stefan, was this checked in by mistake?