--- Begin Message ---
Subject: |
TRAMP: Trying to do a project-find-file or (find-directory) using the podman method causes a (wrong-type-argument stringp nil) error |
Date: |
Sun, 26 May 2024 00:12:45 +0000 |
As the the title says, whenever I try to do project-find-* on a project that
uses the podman TRAMP method, it spits out an error and otherwise does nothing.
Here's the backtrace:
```
Debugger entered--Lisp error: (wrong-type-argument stringp nil)
split-string(nil "\0" t)
project--vc-list-files("/podman:development:~/Development/embryo-engine/" Git
nil)
#f(compiled-function (dir) #<bytecode
-0x443eb4e00f15eb4>)("/podman:development:~/Development/embryo-engine/")
mapcan(#f(compiled-function (dir) #<bytecode -0x443eb4e00f15eb4>)
("/podman:development:~/Development/embryo-engine/"))
#f(compiled-function (project &optional dirs) #<bytecode
0xe73db4877a27b8>)((vc Git "/podman:development:~/Development/embryo-engine/")
("/podman:development:~/Development/embryo-engine/"))
apply(#f(compiled-function (project &optional dirs) #<bytecode
0xe73db4877a27b8>) (vc Git "/podman:development:~/Development/embryo-engine/")
("/podman:development:~/Development/embryo-engine/"))
project-files((vc Git "/podman:development:~/Development/embryo-engine/")
("/podman:development:~/Development/embryo-engine/"))
project-find-file-in(nil ("/podman:development:~/Development/embryo-engine/")
(vc Git "/podman:development:~/Development/embryo-engine/") nil)
project-find-file()
#<subr
F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_62>("/podman:development:~/Development/embryo-engine/")
funcall(#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_62>
"/podman:development:~/Development/embryo-engine/")
(lambda (&rest _) (funcall (dashboard-projects-backend-switch-function)
(dashboard-expand-path-alist
"0|/podman:development:~/Development/embryo-engine/"
dashboard-projects-alist)))((item :tag #("
/podman:development:~/Development/embryo-engine/" 0 1 (rear-nonsticky t display
(raise 0.01) font-lock-face (:family "Symbols Nerd Font Mono" :height 1.0) face
(:family "Symbols Nerd Font Mono" :height 1.0))) :action (lambda (&rest _)
(funcall (dashboard-projects-backend-switch-function)
(dashboard-expand-path-alist
"0|/podman:development:~/Development/embryo-engine/"
dashboard-projects-alist))) :button-face dashboard-items-face :mouse-face
highlight :button-prefix "" :button-suffix "" :format "%[%t%]" :button-overlay
#<overlay from 706 to 756 in *dashboard*> :from #<marker (moves after
insertion) at 706 in *dashboard*> :to #<marker at 756 in *dashboard*>) nil)
widget-apply-action((item :tag #("
/podman:development:~/Development/embryo-engine/" 0 1 (rear-nonsticky t display
(raise 0.01) font-lock-face (:family "Symbols Nerd Font Mono" :height 1.0) face
(:family "Symbols Nerd Font Mono" :height 1.0))) :action (lambda (&rest _)
(funcall (dashboard-projects-backend-switch-function)
(dashboard-expand-path-alist
"0|/podman:development:~/Development/embryo-engine/"
dashboard-projects-alist))) :button-face dashboard-items-face :mouse-face
highlight :button-prefix "" :button-suffix "" :format "%[%t%]" :button-overlay
#<overlay from 706 to 756 in *dashboard*> :from #<marker (moves after
insertion) at 706 in *dashboard*> :to #<marker at 756 in *dashboard*>) nil)
widget-button-press(706)
evil-ret-gen(nil nil)
evil-ret(nil)
funcall-interactively(evil-ret nil)
command-execute(evil-ret)
```
I have a weird little snippet of code to fix it, and a sort-of analysis of what
I think is wrong, here:
https://gist.github.com/alexispurslane/890ea9971787c979f8c59c8decf132c4.
However, this fix is half-baked currently.
Here's my emacs info:
```
Basic Info:
GNU Emacs 29.3 (build 1, x86_64-redhat-linux-gnu, GTK+ Version
3.24.41, cairo version 1.18.0) of 2024-04-25
Build Flags:
"--build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu
--program-prefix= --disable-dependency-tracking --prefix=/usr
--exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
--datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
--libexecdir=/usr/libexec --localstatedir=/var --runstatedir=/run
--sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info
--with-cairo --with-dbus --with-gif --with-gpm=no --with-harfbuzz --with-jpeg
--with-json --with-modules --with-native-compilation=aot --with-pgtk --with-png
--with-rsvg --with-sqlite3 --with-tiff --with-tree-sitter --with-webp
--with-xpm --with-xwidgets build_alias=x86_64-redhat-linux-gnu
host_alias=x86_64-redhat-linux-gnu CC=gcc 'CFLAGS=-DMAIL_USE_LOCKF -O2
-flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall
-Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3
-Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64
-march=x86-64 -mtune=generic -fasynchronous-unwind-tables
-fstack-clash-protection -fcf-protection -fno-omit-frame-pointer
-mno-omit-leaf-frame-pointer ' LDFLAGS=-Wl,-z,relro
PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig CXX=g++
'CXXFLAGS=-O2 -flto=auto -ffat-lto-objects -fexceptions -g
-grecord-gcc-switches -pipe -Wall -Werror=format-security
-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64
-mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection
-fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '"
```
This seems like it is probably a bug, and not just user error, so I hope this
helps.
Don't hesitate to let me know if you need more info.
publickey - alexispurslane@pm.me - 0x41E61568.asc
Description: application/pgp-keys
signature.asc
Description: OpenPGP digital signature
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#71200: TRAMP: Trying to do a project-find-file or (find-directory) using the podman method causes a (wrong-type-argument stringp nil) error |
Date: |
Wed, 29 May 2024 19:01:22 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Version: 30.1
alexis purslane <alexispurslane@pm.me> writes:
Hi Alexis,
[you've removed the Cc again :-( ]
> I really apologize for not checking this earlier, but it didn't occur
> to me to test this, it came up naturally: if you try to enter a
> distrobox that doesn't exist, Emacs will hang and peg one CPU until
> you hit C-g. But yes I think this bug can be closed for sure
Well, I don't believe it is up to Tramp to check it. For all
container-based methods it is requested that the respective container
is running. In case of toolbox and distrobox, it is sufficient that the
container is created. If not running, it is started then.
Like the other Tramp methods, distrobox offers host name
completion. Typing "C-x C-f /distrobox: TAB" will show you existing
containers.
And yes, closing the bug. Feel free to report further problems. But
likely they won't fit to the scope of this bug report; a new bug report
would be better I believe.
Best regards, Michael.
--- End Message ---