Subject: bug#67329: Plan9port breaks Emacs Dired

From: Navajeeth <[email-masked]>
Date: Tue, 21 Nov 2023 11:16:13 +0000

There’s a bug with the ‘plan9port’ (p9p) package on Guix—installing it on the Guix System breaks Dired inside Emacs. When I try to open a Dired buffer with p9p installed, I get the following error:

> (error "Listing directory failed but ‘access-file’ worked")
> error("Listing directory failed but `access-file' worked")
> insert-directory("/home/guix/" "--dired -lFaGh1v --group-directories-first --time-..." nil t)
> dired-insert-directory("/home/guix/" "-lFaGh1v --group-directories-first --time-style=lo..." nil nil t)
> dired-readin-insert()
> #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_47>()
> combine-change-calls-1(1 17349 #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_47>)
> dired-readin()
> dired-revert(nil nil)
> revert-buffer()
> dired-internal-noselect("~/" nil)
> dired-noselect("~/" nil)
> dired("~/" nil)
> funcall-interactively(dired "~/" nil)
> command-execute(dired)

p9p distributes its own version of ‘ls’, so maybe that’s interfering?

The output of ‘ls’, on the command-line, with p9p installed is:

> ~% ls --version
> usage: ls [-dlmnpqrstuFQ] [file ...]
> ~% ls --help
> usage: ls [-dlmnpqrstuFQ] [file ...]
> ~% ls -v
> usage: ls [-dlmnpqrstuFQ] [file ...]
> ~% ls
> usage: ls [-dlmnpqrstuFQ] [file ...]

Which is odd and not how GNU ls is documented to behave. But executing ‘9 ls’, which is supposed to be the command to call the p9p version of ls, gives a different output (it lists my files and subdirectories as would be expected of ls) so it doesn’t appear that the ‘ls’ command changed to point to p9p’s ls.

--Navajeeth