Subject: Re: bug#77402: 31.0.50; Tramp: file-writable-p broken

From: Gerd Möllmann <[email-masked]>
Date: Mon, 31 Mar 2025 11:42:06 +0200

Gerd Möllmann <[email-masked]> writes:

B> Michael Albinus <[email-masked]> writes:
>
>> Gerd Möllmann <[email-masked]> writes:
>>
>> Hi Gerd,
>>
>>> Soory, forgot to mention. Both are macOS 15.3.2 machines
>>>
>>> .../emacs/github/cl-packages % uname -a
>>> Darwin pro2 24.3.0 Darwin Kernel Version 24.3.0: Thu Jan 2 20:24:16
>>> PST 2025; root:xnu-11215.81.4~3/RELEASE_ARM64_T6000 arm64
>>
>> Hmm, I cannot reproduce the problem. Recipe:
>>
>> (make-directory "/ssh:ford:/tmp/yyy")
>> => nil
>>
>> (make-symbolic-link "/tmp/yyy" "/ssh:ford:/tmp/xxx")
>> => t
>>
>> (let ((default-directory "/ssh:ford:/tmp/"))
>>   (shell-command-to-string "ls -al"))
>> => "...
>> lrwxrwxrwx   1 admin    administrators       8 2025-03-31 11:03 xxx -> /tmp/yyy
>> drwxr-xr-x   2 admin    administrators      40 2025-03-31 11:02 yyy
>> "
>>
>> (file-writable-p "/ssh:ford:/tmp/xxx")
>> => t
>>
>> My local and the remote machine are running GNU/Linux.
>>
>> Could you, pls, send the whole Tramp debug buffer with tramp-verbose 6,
>> after starting a new Emacs session?
>>
>> Best regards, Michael.
>
> This is with master 1ed1cc83491311517ba46dff73fdc4383ffd4102. I started
> Emacs without -Q to get Magit, hope that doesn't matter. Settings
> related to Tramp in my init.el:
>
>   (use-package tramp
>     :defer t
>     :custom
>     (auto-revert-remote-files t)
>
>     :config
>     ;; Define profile for a remote zsh connection.
>     (connection-local-set-profile-variables
>      'remote-zsh-arm
>      '((explicit-shell-file-name . "/opt/homebrew/bin/zsh")
>        (explicit-zsh-args . ("-i"))))
>
>     ;; Define which profile to use depending on a connection protocol
>     ;; and machine. No longer really used since the x86 machine died.
>     (connection-local-set-profiles '(:protocol "ssh" :machine "pro2") 'remote-zsh-arm)
>     (connection-local-set-profiles '(:protocol "ssh" :machine "mini") 'remote-zsh-arm)
>
>     ;; Let me use my own PATH.
>     (add-to-list 'tramp-remote-path 'tramp-own-remote-path))
>
> Started a fresh Emacs, then
>
>   (setq tramp-verbose 6)
>   M-x magit-status RET /ssh:mini:emacs/github/master RET
>
> Status buffer is displayed. Then pulled with "P p" which gives the error
> "... /tmp.not accessible". Please find the debug buffer contents
> attached.

Perhaps let me add how it looks in the file system

 gerd@mini 2025-03-31 11:39 
~ % ls -ld /tmp
lrwxr-xr-x@ 1 root  wheel  11 Mar  6 11:06 /tmp -> private/tmp
 gerd@mini 2025-03-31 11:39 
~ % ls -ld /private/tmp
drwxrwxrwt  6 root  wheel  192 Mar 31 06:55 /private/tmp
 gerd@mini 2025-03-31 11:40