Package: emacs;
Reported by: Ankit Gadiya <ankit <at> argp.in>
Date: Sat, 2 Aug 2025 16:34:02 UTC
Severity: normal
Found in version 31.0.50
To reply to this bug, email your comments to 79158 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#79158
; Package emacs
.
(Sat, 02 Aug 2025 16:34:02 GMT) Full text and rfc822 format available.Ankit Gadiya <ankit <at> argp.in>
:bug-gnu-emacs <at> gnu.org
.
(Sat, 02 Aug 2025 16:34:03 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Ankit Gadiya <ankit <at> argp.in> To: bug-gnu-emacs <at> gnu.org Subject: 31.0.50; epa-dired is not tramp-aware Date: Sat, 2 Aug 2025 22:02:38 +0530
The epa-dired commands like epa-dired-do-decrypt do not work in the dired buffer under tramp. Steps to reproduce: 1. Open the dired buffer over tramp using /ssh:user <at> hostname:/path/to/directory 2. Mark the file with the .gpg extension in the dired buffer using dired-mark. 3. Call the M-x epa-dired-do-decrypt command. Behavior: It appears like epa-dired is passing the tramp-path verbatim to the gpg. I've updated the tramp-path to remove identifiers. Error while decrypting with "/opt/homebrew/bin/gpg": gpg: can't open '/ssh:user <at> hostname:/path/to/file.gpg': No such file or directory gpg: decrypt_message failed: No such file or directory Expected Behavior: I expected the command to be aware of Tramp paths. In case of Tramp files: 1. Write the file to a temporary local file 2. Decrypt it using local GPG keys. 3. Write the decrypted file back to the remote location with the file name accepted as the input. In GNU Emacs 31.0.50 (build 1, aarch64-apple-darwin24.5.0, NS appkit-2575.60 Version 15.5 (Build 24F74)) of 2025-06-14 built on Ankits-Macbook-Air.local Windowing system distributor 'Apple', version 10.3.2575 System Description: macOS 15.5 Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=/opt/homebrew/share/emacs/site-lisp --infodir=/opt/homebrew/Cellar/emacs-plus <at> 31/31.0.50/share/info/emacs --prefix=/opt/homebrew/Cellar/emacs-plus <at> 31/31.0.50 --with-native-compilation=aot --with-xml2 --with-gnutls --without-compress-install --without-dbus --with-imagemagick --with-modules --with-rsvg --with-webp --without-pop --with-ns --disable-ns-self-contained 'CFLAGS=-O2 -DFD_SETSIZE=10000 -DDARWIN_UNLIMITED_SELECT -I/opt/homebrew/opt/sqlite/include -I/opt/homebrew/opt/gcc/include -I/opt/homebrew/opt/libgccjit/include' 'LDFLAGS=-L/opt/homebrew/opt/sqlite/lib -L/opt/homebrew/lib/gcc/15 -I/opt/homebrew/opt/gcc/include -I/opt/homebrew/opt/libgccjit/include'' Configured features: ACL GIF GLIB GMP GNUTLS IMAGEMAGICK JPEG LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM ZLIB Important settings: value of $LANG: en_IN.UTF-8 locale-coding-system: utf-8-unix Major mode: Fundamental Minor modes in effect: popper-tab-line-mode: t popper-mode: t windmove-mode: t global-git-commit-mode: t magit-auto-revert-mode: t server-mode: t electric-pair-mode: t gcmh-mode: t savehist-mode: t marginalia-mode: t vertico-mode: t which-key-mode: t corfu-popupinfo-mode: t global-corfu-mode: t corfu-mode: t global-auto-revert-mode: t evil-commentary-mode: t global-evil-collection-unimpaired-mode: t evil-collection-unimpaired-mode: t evil-mode: t evil-local-mode: t pixel-scroll-precision-mode: t zoom-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tab-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t context-menu-mode: t global-font-lock-mode: t font-lock-mode: t minibuffer-regexp-mode: t column-number-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /Users/ankit/.config/emacs/elpa/transient-20250605.1546/transient hides /opt/homebrew/Cellar/emacs-plus <at> 31/31.0.50/share/emacs/31.0.50/lisp/transient /Users/ankit/.config/emacs/elpa/modus-themes-4.7.0/theme-loaddefs hides /opt/homebrew/Cellar/emacs-plus <at> 31/31.0.50/share/emacs/31.0.50/lisp/theme-loaddefs Features: (ffap two-column net-utils find-cmd evil-collection-grep grep etags fileloop evil-collection-shortdoc shortdoc consult-org tab-line popper-echo popper ielm flow-fill shadow emacsbug lisp-mnt sort smiley gnus-cite mail-extr qp gnus-async gnus-bcklg gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp gnus-ml gnus-msg nndoc gnus-cache gnus-dup mm-archive debbugs-gnu evil-collection-debbugs debbugs soap-client rng-xsd xsd-regexp debbugs-compat epa-dired yaml-ts-mode dired-aux tramp-cmds windmove pcmpl-unix em-unix em-term evil-collection-term term ehelp em-script em-pred em-ls em-hist em-glob em-extpipe em-cmpl em-dirs em-basic em-banner em-alias em-tramp evil-collection-eshell em-prompt esh-mode esh-var eshell esh-cmd esh-ext esh-proc esh-opt esh-io esh-arg esh-module esh-module-loaddefs esh-util ispell vertico-directory org-indent oc-basic disp-table ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win ol-docview evil-collection-doc-view doc-view jka-compr evil-collection-image image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi org-clock gptel-org org-protocol ox-md ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar org-agenda ox-html table ox-ascii ox-publish ox org-attach org-element org-persist org-id org-refile org-element-ast inline avl-tree generator org-crypt evil-collection-org arg-ol-azuredevops arg-ol-gitea arg-ol-github orgit-forge orgit ob-shell ob-lisp ob-hurl org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src evil-collection-sh-script sh-script smie executable ob-comint org-pcomplete org-list org-footnote org-faces org-entities org-version ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs evil-collection-ibuffer ibuffer ibuffer-loaddefs conf-mode emacsql-sqlite-builtin evil-collection-forge forge-repos forge-tablist forge-topics forge-commands forge-semi forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy gsexp ghub let-alist forge-forgejo forge-notify forge-revnote forge-pullreq forge-issue forge-discussion forge-topic yaml eieio-custom bug-reference forge-post evil-collection-markdown-mode markdown-mode evil-collection-outline noutline outline forge-repo forge forge-core forge-db closql emacsql-sqlite emacsql emacsql-compiler eieio-base magit-bookmark evil-collection-magit magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit evil-collection-magit-repos magit-repos magit-apply magit-wip magit-log which-func magit-diff evil-collection-smerge-mode smerge-mode diff git-commit evil-collection-log-edit log-edit message sendmail yank-media evil-collection-dired dired dired-loaddefs rfc822 mml mml-sec mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process evil-collection-with-editor with-editor server magit-mode benchmark magit-git magit-base evil-collection-magit-section magit-section cursor-sensor crm llama misearch multi-isearch tramp-cache time-stamp tramp-sh evil-collection-compile compile evil-collection-calendar cal-menu calendar cal-loaddefs org-compat org-macs evil-collection-consult consult-xref evil-collection-xref xref project consult evil-collection-bookmark bookmark textsec uni-scripts idna-mapping uni-confusable textsec-check gnutls network-stream url-http mail-parse rfc2231 rfc2047 rfc2045 ietf-drums url-gw nsm url-cache url-auth evil-collection-eww eww vtable url-queue shr pixel-fill kinsoku url-file puny mm-url evil-collection-vc-git vc-git evil-collection-diff-mode diff-mode track-changes vc-dispatcher display-line-numbers hl-line hideshow elec-pair yasnippet pulse face-remap gptel-curl vertico-sort gptel-transient gptel-integrations mcp-hub mcp jsonrpc gptel-openai-extras cus-start gptel-gh epa-file evil-collection-epa epa epg rfc6068 epg-config evil-collection-gptel gptel gptel-openai gcmh savehist evil-collection-vertico marginalia vertico evil-collection-which-key which-key corfu-popupinfo evil-collection-corfu kind-icon svg-lib color svg dom xml corfu autorevert filenotify evil-commentary evil-commentary-integration tramp-rio rio kubed-tramp tramp trampver tramp-integration files-x tramp-message tramp-compat shell parse-time iso8601 tramp-loaddefs kubed-transient transient format-spec derived kubed kubed-common evil-collection-gnus gnus nnheader gnus-util text-property-search time-date mail-utils range mm-util mail-prsvr evil-collection-custom cus-edit pp cus-load wid-edit just-mode c++-ts-mode c-ts-mode c-ts-common treesit pcomplete evil-collection-comint comint ansi-osc ansi-color evil-collection-unimpaired evil-collection-tabulated-list evil-collection-tab-bar evil-collection-simple evil-collection-replace evil-collection-process-menu evil-collection-package-menu evil-collection-kmacro evil-collection-info evil-collection-indent evil-collection-imenu evil-collection-helpful evil-collection-help evil-collection-elisp-refs evil-collection-elisp-mode evil-collection-eldoc evil-collection-edebug evil-collection-debug evil-collection-buff-menu evil-collection annalist evil evil-integration evil-maps evil-commands evil-digraphs reveal evil-jumps evil-command-window evil-types evil-search evil-ex evil-macros evil-repeat evil-states evil-core comp comp-cstr comp-run comp-common rx evil-common thingatpt rect evil-vars helpful cc-langs cc-vars cc-defs imenu trace cl-print edebug debug backtrace info-look find-func f help-fns radix-tree elisp-refs s dash modus-vivendi-theme modus-themes fontaine pixel-scroll cua-base ring orderless zoom no-littering compat exec-path-from-shell finder-inf use-package-ensure edmacro kmacro use-package-bind-key bind-key easy-mmode cl-extra help-mode use-package-core caddyfile-mode-autoloads chess-autoloads consult-cscope-autoloads corfu-autoloads dape-autoloads debbugs-autoloads eat-autoloads embark-consult-autoloads consult-autoloads embark-autoloads empv-autoloads evil-collection-autoloads annalist-autoloads evil-commentary-autoloads evil-autoloads exec-path-from-shell-autoloads fish-mode-autoloads fontaine-autoloads gcmh-autoloads geiser-guile-autoloads geiser-autoloads goto-chg-autoloads gptel-autoloads hcl-mode-autoloads helpful-autoloads elisp-refs-autoloads f-autoloads dash-autoloads hurl-mode-autoloads just-mode-autoloads kind-icon-autoloads kubed-autoloads logos-autoloads loop-autoloads marginalia-autoloads mcp-autoloads modus-themes-autoloads no-littering-autoloads olivetti-autoloads orderless-autoloads org-pomodoro-autoloads alert-autoloads log4e-autoloads gntp-autoloads orgit-forge-autoloads orgit-autoloads forge-autoloads markdown-mode-autoloads magit-autoloads pcase magit-section-autoloads ghub-autoloads llama-autoloads closql-autoloads emacsql-autoloads pikchr-mode-autoloads popper-autoloads rfc-mode-autoloads s-autoloads sly-autoloads warnings svg-lib-autoloads transient-autoloads treepy-autoloads vertico-autoloads vundo-autoloads info with-editor-autoloads yaml-autoloads yasnippet-autoloads zoom-autoloads package browse-url xdg url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads kqueue cocoa ns lcms2 multi-tty make-network-process tty-child-frames native-compile emacs) Memory information: ((conses 16 1703241 4063641) (symbols 48 81365 175) (strings 32 380928 186837) (string-bytes 1 12234737) (vectors 16 179905) (vector-slots 8 2849359 2742466) (floats 8 1069 29813) (intervals 56 45557 12734) (buffers 1064 51)) -- Ankit
bug-gnu-emacs <at> gnu.org
:bug#79158
; Package emacs
.
(Sat, 02 Aug 2025 17:09:01 GMT) Full text and rfc822 format available.Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Michael Albinus <michael.albinus <at> gmx.de> To: Ankit Gadiya via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org> Cc: 79158 <at> debbugs.gnu.org, Ankit Gadiya <ankit <at> argp.in> Subject: Re: bug#79158: 31.0.50; epa-dired is not tramp-aware Date: Sat, 02 Aug 2025 19:08:12 +0200
Ankit Gadiya via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org> writes: Hi, > The epa-dired commands like epa-dired-do-decrypt do not work in the > dired buffer under tramp. > > Steps to reproduce: > > 1. Open the dired buffer over tramp using > /ssh:user <at> hostname:/path/to/directory > 2. Mark the file with the .gpg extension in the dired buffer using > dired-mark. > 3. Call the M-x epa-dired-do-decrypt command. > > Behavior: > > It appears like epa-dired is passing the tramp-path verbatim to the gpg. > I've updated the tramp-path to remove identifiers. > > Error while decrypting with "/opt/homebrew/bin/gpg": > > gpg: can't open '/ssh:user <at> hostname:/path/to/file.gpg': No such file > or directory > gpg: decrypt_message failed: No such file or directory > > Expected Behavior: > > I expected the command to be aware of Tramp paths. In case of Tramp > files: > 1. Write the file to a temporary local file > 2. Decrypt it using local GPG keys. > 3. Write the decrypted file back to the remote location with the file name > accepted as the input. Alternatively, we could let gpg run on the remote host. Best regards, Michael.
bug-gnu-emacs <at> gnu.org
:bug#79158
; Package emacs
.
(Sat, 02 Aug 2025 17:09:02 GMT) Full text and rfc822 format available.bug-gnu-emacs <at> gnu.org
:bug#79158
; Package emacs
.
(Sat, 02 Aug 2025 17:37:02 GMT) Full text and rfc822 format available.Message #14 received at 79158 <at> debbugs.gnu.org (full text, mbox):
From: Ankit Gadiya <ankit <at> argp.in> To: Michael Albinus <michael.albinus <at> gmx.de> Cc: 79158 <at> debbugs.gnu.org Subject: Re: bug#79158: 31.0.50; epa-dired is not tramp-aware Date: Sat, 2 Aug 2025 23:05:56 +0530
On Sat, 2 Aug 2025 at 22:38, Michael Albinus <michael.albinus <at> gmx.de> wrote: > > Ankit Gadiya via "Bug reports for GNU Emacs, the Swiss army knife of > text editors" <bug-gnu-emacs <at> gnu.org> writes: > > Hi, > > > The epa-dired commands like epa-dired-do-decrypt do not work in the > > dired buffer under tramp. > > > > Steps to reproduce: > > > > 1. Open the dired buffer over tramp using > > /ssh:user <at> hostname:/path/to/directory > > 2. Mark the file with the .gpg extension in the dired buffer using > > dired-mark. > > 3. Call the M-x epa-dired-do-decrypt command. > > > > Behavior: > > > > It appears like epa-dired is passing the tramp-path verbatim to the gpg. > > I've updated the tramp-path to remove identifiers. > > > > Error while decrypting with "/opt/homebrew/bin/gpg": > > > > gpg: can't open '/ssh:user <at> hostname:/path/to/file.gpg': No such file > > or directory > > gpg: decrypt_message failed: No such file or directory > > > > Expected Behavior: > > > > I expected the command to be aware of Tramp paths. In case of Tramp > > files: > > 1. Write the file to a temporary local file > > 2. Decrypt it using local GPG keys. > > 3. Write the decrypted file back to the remote location with the file name > > accepted as the input. > > Alternatively, we could let gpg run on the remote host. > > Best regards, Michael. In my use-case, I don't have the GPG keys configured on the remote host. The remote host may not even have GPG installed. Potentially, it can be exposed as a flag in the function to determine which GPG to use. -- Ankit
bug-gnu-emacs <at> gnu.org
:bug#79158
; Package emacs
.
(Sun, 03 Aug 2025 06:55:02 GMT) Full text and rfc822 format available.Message #17 received at 79158 <at> debbugs.gnu.org (full text, mbox):
From: Michael Albinus <michael.albinus <at> gmx.de> To: Ankit Gadiya <ankit <at> argp.in> Cc: 79158 <at> debbugs.gnu.org Subject: Re: bug#79158: 31.0.50; epa-dired is not tramp-aware Date: Sun, 03 Aug 2025 08:54:04 +0200
Ankit Gadiya <ankit <at> argp.in> writes: Hi, > In my use-case, I don't have the GPG keys configured on the remote host. The > remote host may not even have GPG installed. I don't use epa in Emacs; my opinion doesn't count. However, as a naïve user I would expect the gpg keys to be on the same host as the encrypted files. > Potentially, it can be exposed as a flag in the function to determine which GPG > to use. Sounds more complicate. Let the epa maintainer decide what's best. Best regards, Michael.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.