[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: iCloud directory access issue on macOS Catalina
From: |
Perry Smith |
Subject: |
Re: iCloud directory access issue on macOS Catalina |
Date: |
Thu, 10 Oct 2019 11:23:55 -0500 |
> On Oct 10, 2019, at 2:06 AM, Pankaj Jangid <pankaj.jangid@gmail.com> wrote:
>
> Hi,
>
> macOS is increasingly making it difficult to access directories. Even
> its own terminal required permission for CDing into icloud directories.
>
> I am facing the same in dired. Just wanted to know if anyone has got this
> fixed. I tried to gave "Full Disk Access" to Emacs but still getting
> this error.
>
> ```
> Debugger entered--Lisp error: (error "Listing directory failed but
> ‘access-file’ worked")
> signal(error ("Listing directory failed but ‘access-file’ worked"))
> error("Listing directory failed but `access-file' worked")
> insert-directory("/Users/pankaj/Documents/" "-al" nil t)
> dired-insert-directory("/Users/pankaj/Documents/" "-al" nil nil t)
> dired-readin-insert()
> dired-readin()
> dired-internal-noselect("~/Documents/" nil)
> dired-noselect("/Users/pankaj/Documents/" nil)
> dired-other-window("/Users/pankaj/Documents/" nil)
> funcall-interactively(dired-other-window "/Users/pankaj/Documents/" nil)
> call-interactively(dired-other-window nil nil)
> command-execute(dired-other-window)
> ```
I can confirm this. I’m using EmacsForMacOS latest so emacs version reports:
GNU Emacs 27.0.50 (build 1, x86_64-apple-darwin18.7.0, NS appkit-1894.00
Version 10.15 (Build 19A583)) of 2019-10-10
I have my Documents and Desktop in iCloud. I’ve never tried this before. The
issue seems specific to these two directories.
I added Emacs to the list of “Full Disk Access” which causes it to show up in
“Files and Folders” and I also added it to “Developer Tools”.
The problem can be seen (I think) easier by starting M-x shell:
> pedz@MysticSlate / % cd
> cd
> pedz@MysticSlate ~ % ls
> ls
> Desktop Downloads Movies Pictures Source
> d word-search.rb
> Documents Library Music Public bin
> new-gnupg
> pedz@MysticSlate ~ % ls ~/Documents
> ls ~/Documents
> ls: Documents: Operation not permitted
> pedz@MysticSlate ~ % cd Documents/
> cd Documents/
> pedz@MysticSlate Documents % ls
> ls
> ls: .: Operation not permitted
> pedz@MysticSlate Documents % pwd
> pwd
> /Users/pedz/Documents
> pedz@MysticSlate Documents %
I piddled around a bit but never succeeded. I discovered that all the files
and directories under /Applications/Emacs.app have the com.apple.quarantine
xattr so I removed that
sudo xattr -dr com.apple.quarantine /Applications/Emacs.app
… no effect
I thought perhaps it was a lineage type deal. This version of emacs actually
starts up a small ruby shell and then does an exec so the final executable
running is not the original Emacs.app that the finder spawned. You can see
this below:
This is the process tree before any changes (this is done at the shell prompt
inside a “*shell*” buffer inside Emacs)
> pstree -p $$
> -+= 00001 root /sbin/launchd
> \-+= 07613 pedz /Applications/Emacs.app/Contents/MacOS/Emacs-x86_64-10_14
> \-+= 07620 pedz /bin/zsh -i
> \-+= 07624 pedz pstree -p 7620
> \--- 07625 root ps -axwwo user,pid,ppid,pgid,command
I modified the script to not do an exec but just do a “system” and so now the
process stack looks like this:
> pstree -p $$
> -+= 00001 root /sbin/launchd
> \-+= 07655 pedz /usr/bin/ruby /Applications/Emacs.app/Contents/MacOS/Emacs
> <<<<<<<
> \-+- 07661 pedz /Applications/Emacs.app/Contents/MacOS/Emacs-x86_64-10_14
> \-+= 07663 pedz /bin/zsh -i
> \-+= 07665 pedz pstree -p 7663
> \--- 07666 root ps -axwwo user,pid,ppid,pgid,command
but it still does not work.
This clearly isn’t an emacs problem. I’m going to go beat the bushes in a few
other places and see if I can find a solution.
I also opened an issue on the EmacsForMacOS GitHub repository
<https://github.com/caldwell/build-emacs/issues/84>
pedz