Subject: Re: bug#57044: 29.0.50; tramp-error: Reading directory: Permission denied, /scp:motorolausb:/storage/emulated/0/

From: Jean Louis <[email-masked]>
Date: Tue, 16 Aug 2022 11:46:30 +0300

* Michael Albinus <[email-masked]> [2022-08-15 15:14]:
> This the problem, indeed. tramp-remote-path uses directories like
> "/usr/bin". But in Termux, there is a prefix, and the directory is
> "/data/data/com.termux/files/usr/bin". So we must add this prefix to all
> file names in tramp-remote-path. I've fixed this by declaring
> tramp-remote-path as connection-local variable. After calling "emacs -Q
> -l tramp", all what I needed was
> 
> --8<---------------cut here---------------start------------->8---
> (setq tramp-connection-properties
>       '(("/ssh:Samsung-SM-G920F-Michael-Albinus:" "tmpdir" "~/tmp"))

I have git pulled latest Emacs and built it.

Repository revision: b87400c78b047d242ae188c46c621e0e8a8e69b2
Repository branch: master

tramp-connection-properties ⇒ (("ssh:motorola" "tmpdir" /storage/emulated/0/tmp) ("scp:motorola" "tmpdir" /storage/emulated/0/tmp))

I have only added today the scp version, but it always worked in past.

> (connection-local-set-profile-variables
>  'tramp-connection-local-termux-profile
>  `((tramp-remote-path
>     . ,(mapcar
> 	(lambda (x)
> 	  (if (stringp x) (concat "/data/data/com.termux/files" x) x))
> 	(copy-tree tramp-remote-path)))))

OK now I evaluate this one, though I do not understand it:

(connection-local-set-profile-variables
 'tramp-connection-local-termux-profile
 `((tramp-remote-path
    . ,(mapcar
	(lambda (x)
	  (if (stringp x) (concat "/data/data/com.termux/files" x) x))
	(copy-tree tramp-remote-path)))))

> (connection-local-set-profiles
>  '(:application tramp :machine "Samsung-SM-G920F-Michael-Albinus")
>  'tramp-connection-local-termux-profile)

(connection-local-set-profiles
 '(:application tramp :machine "scp:motorola")
 'tramp-connection-local-termux-profile)

I have tried above, I have tried with :machine "motorolausb" and I
get:

File error: Couldn't find a proper `ls' command
tramp-error: Couldn't find a proper `ls' command

-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/