* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
@ 2023-05-18 19:21 k.ninev@cdots.bg via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-19 5:54 ` Eli Zaretskii
0 siblings, 1 reply; 20+ messages in thread
From: k.ninev@cdots.bg via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-05-18 19:21 UTC (permalink / raw)
To: 63578
Triyng to tangle this org block on emacs 29.0.91 with emacs -Q
#+begin_src conf :tangle /ssh:user@server|sudo::/etc/test.conf
test
#+end_src
It hangs with Opening connection nil for root@server using sudo.... If I
install emacs 28 everything works fine.
Also when I manually do M-x find-file >
/ssh:user@server|sudo::/etc/test.conf
it finds with without problems and after that I can tangle the block
until I restart emacs then it fails again. This again was tested with
emacs -Q.
If I try to tangle a non root file, the problem does not appear.
I also tested on emacs 30 both on archlinux and opensuse tumbleweed.
In GNU Emacs 29.0.91 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.37, cairo version 1.17.8) of 2023-05-18 built on server
Repository revision: f8d9e40d2c1d127a125adc097d985a0b6964a86c
Repository branch: makepkg
Windowing system distributor 'The X.Org Foundation', version 11.0.12101008
System Description: Arch Linux
Configured using:
'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
--localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
--with-modules --without-libotf --without-m17n-flt --without-gconf
--with-native-compilation=yes --with-native-compilation=aot
--with-xinput2 --with-x-toolkit=gtk3 --without-xaw3d --with-sound=no
--with-tree-sitter --without-gpm --without-compress-install
'--program-transform-name=s/\([ec]tags\)/\1.emacs/'
'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
-fstack-clash-protection -fcf-protection'
LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG
RSVG SECCOMP SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP
X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB
Important settings:
value of $LC_MONETARY: bg_BG.UTF-8
value of $LC_TIME: bg_BG.UTF-8
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Org
Minor modes in effect:
shell-dirtrack-mode: t
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-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:
None found.
Features:
(shadow sort mail-extr emacsbug tramp-cmds tramp-cache time-stamp
tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x
tramp-compat shell ls-lisp conf-mode vc-git diff-mode easy-mmode
vc-dispatcher org-element org-persist org-id org-refile avl-tree
generator oc-basic ol-eww eww xdg url-queue thingatpt mm-url ol-rmail
ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view
mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg
dom browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie generate-lisp-file url-domsuf url-util url-parse
auth-source eieio eieio-core json map byte-opt url-vars gnus-group
gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail
mail-source utf7 nnoo parse-time gnus-spec gnus-int gnus-range message
sendmail mailcap yank-media puny rfc822 mml mml-sec password-cache epa
derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader
gnus-win gnus nnheader gnus-util text-property-search mail-utils range
mm-util mail-prsvr wid-edit ol-docview doc-view filenotify jka-compr
image-mode exif dired dired-loaddefs ol-bibtex bibtex iso8601 ol-bbdb
ol-w3m ol-doi org-link-doi org ob ob-tangle ob-ref ob-lob ob-table
ob-exp org-macro org-src ob-comint org-pcomplete pcomplete comint
ansi-osc ansi-color ring org-list org-footnote org-faces org-entities
time-date noutline outline ob-emacs-lisp ob-core ob-eval org-cycle
org-table ol org-fold org-fold-core org-keys oc org-loaddefs find-func
cal-menu calendar cal-loaddefs org-version org-compat org-macs
format-spec cl-loaddefs comp comp-cstr warnings icons subr-x rx cl-seq
cl-macs gv cl-extra help-mode bytecomp byte-compile cl-lib rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd 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 dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process native-compile emacs)
Memory information:
((conses 16 274978 21651)
(symbols 48 22206 2)
(strings 32 78313 5263)
(string-bytes 1 2419918)
(vectors 16 42211)
(vector-slots 8 755160 31482)
(floats 8 332 154)
(intervals 56 390 375)
(buffers 984 13))
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-18 19:21 bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo k.ninev@cdots.bg via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-05-19 5:54 ` Eli Zaretskii
2023-05-19 6:32 ` Ihor Radchenko
0 siblings, 1 reply; 20+ messages in thread
From: Eli Zaretskii @ 2023-05-19 5:54 UTC (permalink / raw)
To: k.ninev@cdots.bg, Bastien; +Cc: 63578
> Date: Thu, 18 May 2023 22:21:16 +0300
> From: "k.ninev@cdots.bg" via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>
> Triyng to tangle this org block on emacs 29.0.91 with emacs -Q
>
> #+begin_src conf :tangle /ssh:user@server|sudo::/etc/test.conf
> test
> #+end_src
>
> It hangs with Opening connection nil for root@server using sudo.... If I
> install emacs 28 everything works fine.
>
> Also when I manually do M-x find-file >
> /ssh:user@server|sudo::/etc/test.conf
> it finds with without problems and after that I can tangle the block
> until I restart emacs then it fails again. This again was tested with
> emacs -Q.
>
> If I try to tangle a non root file, the problem does not appear.
>
> I also tested on emacs 30 both on archlinux and opensuse tumbleweed.
Thank you for your report.
Adding Org developers to CC, in case Org has something to do with
this.
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-19 5:54 ` Eli Zaretskii
@ 2023-05-19 6:32 ` Ihor Radchenko
2023-05-19 6:55 ` Kostadin Ninev
0 siblings, 1 reply; 20+ messages in thread
From: Ihor Radchenko @ 2023-05-19 6:32 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Bastien, 63578, k.ninev@cdots.bg
Eli Zaretskii <eliz@gnu.org> writes:
>> Triyng to tangle this org block on emacs 29.0.91 with emacs -Q
>>
>> #+begin_src conf :tangle /ssh:user@server|sudo::/etc/test.conf
>> test
>> #+end_src
>>
>> It hangs with Opening connection nil for root@server using sudo.... If I
>> install emacs 28 everything works fine.
> ...
> Adding Org developers to CC, in case Org has something to do with
> this.
It would help to do M-x toggle-debug-on-quit ... try to tangle ... C-g,
and share the backtrace.
The suspicious, recently changed part of the tangle code is below.
I do not see anything fishy there, even when file is remote.
(unless
(and (file-exists-p file-name)
(let ((tangle-buf (current-buffer)))
(with-temp-buffer
(insert-file-contents file-name)
(and
(equal (buffer-size)
(buffer-size tangle-buf))
(= 0
(let (case-fold-search)
(compare-buffer-substrings
nil nil nil
tangle-buf nil nil)))))))
;; erase previous file
(when (file-exists-p file-name)
(delete-file file-name))
(write-region nil nil file-name)
(mapc (lambda (mode) (set-file-modes file-name mode)) modes))
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-19 6:32 ` Ihor Radchenko
@ 2023-05-19 6:55 ` Kostadin Ninev
2023-05-19 7:17 ` Ihor Radchenko
0 siblings, 1 reply; 20+ messages in thread
From: Kostadin Ninev @ 2023-05-19 6:55 UTC (permalink / raw)
To: Ihor Radchenko, Eli Zaretskii; +Cc: Bastien, 63578
>On Friday, May 19, 2023 9:32 AM (+03:00), Ihor Radchenko wrote:
> It would help to do M-x toggle-debug-on-quit ... try to tangle ... C-g,
> and share the backtrace.
This the backtrace:
Debugger entered--Lisp error: (quit "")
signal(quit (""))
tramp-error(nil quit "")
tramp-signal-hook- (quit (""))
signal(quit (""))
tramp-maybe-open-connection((tramp-file-name "sudo" #("root" 0 4
(tramp-default t)) nil #("server" 0 6 (tramp-default t)) nil
"/etc/test.conf" nil))
tramp-send-command((tramp-file-name "sudo" #("root" 0 4 (tramp-default
t)) nil #("server" 0 6 (tramp-default t)) nil "/etc/test.conf" nil) "test 0
2>/dev/null; echo tramp_exit_status $?")
tramp-send-command-and-check((tramp-file-name "sudo" #("root" 0 4
(tramp-default t)) nil #("server" 0 6 (tramp-default t)) nil
"/etc/test.conf" nil) "test 0")
tramp-get-test-command((tramp-file-name "sudo" #("root" 0 4
(tramp-default t)) nil #("server" 0 6 (tramp-default t)) nil
"/etc/test.conf" nil))
tramp-find-file-exists-command((tramp-file-name "sudo" #("root" 0 4
(tramp-default t)) nil #("server" 0 6 (tramp-default t)) nil
"/etc/test.conf" nil))
tramp-get-file-exists-command((tramp-file-name "sudo" #("root" 0 4
(tramp-default t)) nil #("server" 0 6 (tramp-default t)) nil
"/etc/test.conf" nil))
tramp-sh-handle-file-exists-p(#("/sudo:root@server:/etc/test.conf" 6 10
(tramp-default t) 11 17 (tramp-default t)))
tramp-sh-file-name-handler(file-exists-p
#("/sudo:root@server:/etc/test.conf" 6 10 (tramp-default t) 11 17
(tramp-default t)))
apply(tramp-sh-file-name-handler file-exists-p
#("/sudo:root@server:/etc/test.conf" 6 10 (tramp-default t) 11 17
(tramp-default t)))
tramp-file-name-handler(file-exists-p
#("/sudo:root@server:/etc/test.conf" 6 10 (tramp-default t) 11 17
(tramp-default t)))
file-exists-p("/ssh:server|sudo::/etc/test.conf")
#f(compiled-function (by-fn) #<bytecode
0x3457b099ed4fa83>)(("/ssh:server|sudo::/etc/test.conf" ("conf" 5 "1.org"
"file:/home/user/1.org::*test" "test:1" ((:colname-names) (:rowname-names)
(:result-params "replace") (:result-type . value) (:results . "replace")
(:exports . "code") (:tangle . "/ssh:server|sudo::/etc/test.conf") (:hlines
. "no") (:noweb . "no") (:cache . "no") (:session . "none")) "test" nil)))
org-babel-tangle(nil)
funcall-interactively(org-babel-tangle nil)
command-execute(org-babel-tangle)
> Eli Zaretskii writes:
>
> >> Triyng to tangle this org block on emacs 29.0.91 with emacs -Q
> >>
> >> #+begin_src conf :tangle /ssh:user@server|sudo::/etc/test.conf
> >> test
> >> #+end_src
> >>
> >> It hangs with Opening connection nil for root@server using sudo....
If I
> >> install emacs 28 everything works fine.
> > ...
> > Adding Org developers to CC, in case Org has something to do with
> > this.
>
> It would help to do M-x toggle-debug-on-quit ... try to tangle ... C-g,
> and share the backtrace.
>
> The suspicious, recently changed part of the tangle code is below.
> I do not see anything fishy there, even when file is remote.
>
> (unless
> (and (file-exists-p file-name)
> (let ((tangle-buf (current-buffer)))
> (with-temp-buffer
> (insert-file-contents file-name)
> (and
> (equal (buffer-size)
> (buffer-size tangle-buf))
> (= 0
> (let (case-fold-search)
> (compare-buffer-substrings
> nil nil nil
> tangle-buf nil nil)))))))
> ;; erase previous file
> (when (file-exists-p file-name)
> (delete-file file-name))
> (write-region nil nil file-name)
> (mapc (lambda (mode) (set-file-modes file-name mode)) modes))
>
--
Kostadin Ninev.
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-19 6:55 ` Kostadin Ninev
@ 2023-05-19 7:17 ` Ihor Radchenko
2023-05-19 7:18 ` Kostadin Ninev
0 siblings, 1 reply; 20+ messages in thread
From: Ihor Radchenko @ 2023-05-19 7:17 UTC (permalink / raw)
To: Kostadin Ninev; +Cc: Bastien, 63578, Eli Zaretskii
Kostadin Ninev <k.ninev@cdots.bg> writes:
> >On Friday, May 19, 2023 9:32 AM (+03:00), Ihor Radchenko wrote:
> > It would help to do M-x toggle-debug-on-quit ... try to tangle ... C-g,
> > and share the backtrace.
>
> This the backtrace:
Thanks!
Does M-: (file-exists-p "/ssh:server|sudo::/etc/test.conf") <RET> also hang?
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-19 7:17 ` Ihor Radchenko
@ 2023-05-19 7:18 ` Kostadin Ninev
2023-05-19 7:28 ` Ihor Radchenko
0 siblings, 1 reply; 20+ messages in thread
From: Kostadin Ninev @ 2023-05-19 7:18 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: Bastien, 63578, Eli Zaretskii
No It succeeds and after that command I can even tangle the file until I
restart emacs.
On Friday, May 19, 2023 10:17 AM (+03:00), Ihor Radchenko wrote:
> Kostadin Ninev writes:
>
> > >On Friday, May 19, 2023 9:32 AM (+03:00), Ihor Radchenko wrote:
> > > It would help to do M-x toggle-debug-on-quit ... try to tangle ...
C-g,
> > > and share the backtrace.
> >
> > This the backtrace:
>
> Thanks!
> Does M-: (file-exists-p "/ssh:server|sudo::/etc/test.conf") also hang?
>
--
Kostadin Ninev.
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-19 7:18 ` Kostadin Ninev
@ 2023-05-19 7:28 ` Ihor Radchenko
2023-05-19 9:12 ` Kostadin Ninev
0 siblings, 1 reply; 20+ messages in thread
From: Ihor Radchenko @ 2023-05-19 7:28 UTC (permalink / raw)
To: Kostadin Ninev; +Cc: Bastien, 63578, Eli Zaretskii
Kostadin Ninev <k.ninev@cdots.bg> writes:
> No It succeeds and after that command I can even tangle the file until I
> restart emacs.
Curious. But I still do not see anything wrong on the Org side.
Maybe Eli has more to say.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-19 7:28 ` Ihor Radchenko
@ 2023-05-19 9:12 ` Kostadin Ninev
2023-05-19 9:43 ` Michael Albinus
0 siblings, 1 reply; 20+ messages in thread
From: Kostadin Ninev @ 2023-05-19 9:12 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: Bastien, 63578, Eli Zaretskii
I did a test with (setq tramp-verbose 9) and it produced the following buffers:
*debug tramp/cache nil*
;; Emacs: 29.0.91 Tramp: 2.6.0.29.1 -*- mode: outline; coding: utf-8; -*-
11:51:28.340737 tramp-set-connection-property (7) # tramp-version 2.6.0.29.1
*debug tramp/ssh srv*
;; Emacs: 29.0.91 Tramp: 2.6.0.29.1 -*- mode: outline; coding: utf-8; -*-
11:51:28.340997 tramp-get-connection-property (7) # copy-program undef; cache used: nil
11:51:28.342101 tramp-get-connection-property (7) # copy-program undef; cache used: nil
11:51:28.342515 tramp-get-connection-property (7) # copy-program undef; cache used: nil
11:51:28.342702 tramp-get-connection-property (7) # copy-program undef; cache used: nil
*debug tramp/sudo root@srv*
;; Emacs: 29.0.91 Tramp: 2.6.0.29.1 -*- mode: outline; coding: utf-8; -*-
11:51:28.341198 tramp-get-connection-property (7) # copy-program undef; cache used: nil
11:51:28.342217 tramp-get-connection-property (7) # copy-program undef; cache used: nil
11:51:28.342630 tramp-get-connection-property (7) # copy-program undef; cache used: nil
11:51:28.342780 tramp-get-connection-property (7) # copy-program undef; cache used: nil
11:51:28.342891 tramp-add-hops (5) # Add (#("^srv$" 1 4 (tramp-default t)) #("^root$" 1 5 (tramp-default t)) #("/ssh:srv:" 0 9 (tramp-ad-hoc t))) to ‘tramp-default-proxies-alist’
11:51:28.343172 tramp-get-file-property (8) # /etc/test.conf file-exists-p undef; inhibit: 10; cache used: nil; cached at: nil
11:51:28.343246 tramp-get-file-property (8) # /etc/test.conf file-attributes undef; inhibit: 10; cache used: nil; cached at: nil
11:51:28.343306 tramp-get-connection-property (7) # file-exists undef; cache used: nil
11:51:28.343355 tramp-get-file-exists-command (5) # Finding command to check if file exists
11:51:28.343432 tramp-get-connection-property (7) # test undef; cache used: nil
11:51:28.376218 tramp-get-test-command (5) # Finding a suitable ‘test’ command
11:51:28.376290 tramp-get-connection-property (7) # null-device undef; cache used: nil
11:51:28.376492 tramp-set-connection-property (7) # null-device /dev/null
11:51:28.376512 tramp-get-connection-property (7) # process-name nil; cache used: nil
11:51:28.376530 tramp-get-connection-property (7) # process-name nil; cache used: nil
11:51:28.376546 tramp-get-connection-property (7) # process-buffer nil; cache used: nil
11:51:28.376565 tramp-get-connection-property (7) # process-buffer nil; cache used: nil
11:51:28.376579 tramp-set-connection-property (7) # process-buffer nil
11:51:28.376839 tramp-maybe-open-connection (3) # Opening connection nil for root@srv using sudo...
11:51:28.376985 tramp-call-process (6) # ‘locale -a’ nil *temp*-467150
11:51:28.377857 tramp-call-process (6) # 0
bg_BG.utf8
C
C.UTF-8
en_US.utf8
POSIX
11:51:28.377890 tramp-get-local-locale (7) # locale en_US.utf8
11:51:36.189562 tramp-compute-multi-hops (1) # Quit: "Quit", ""
11:51:36.189751 tramp-maybe-open-connection (3) # Opening connection nil for root@srv using sudo...failed
11:51:36.190872 tramp-get-connection-property (7) # process-buffer nil; cache used: t
11:51:36.190925 tramp-get-file-property (8) # / file-truename nil; inhibit: 10; cache used: nil; cached at: nil
11:51:36.190950 tramp-flush-directory-properties (8) # /
11:51:36.190984 tramp-flush-connection-properties (7) # (tramp-file-name sudo root nil srv nil nil nil) (process-buffer null-device)
* debug tramp/sudo nil*
11:51:28.341409 tramp-add-hops (5) # Add (nil nil #("/ssh:srv:" 0 9 (tramp-ad-hoc t))) to ‘tramp-default-proxies-alist’
11:51:28.342332 tramp-add-hops (5) # Add (nil nil #("/ssh:srv:" 0 9 (tramp-ad-hoc t))) to ‘tramp-default-proxies-alist’
I don't know much about debugging and tramp but when I do the same on emacs 28 I get:
tramp-compute-multi-hops (5) # Add (#("^srv$" 1 4 (tramp-default t)) #("^root$" 1 5 (tramp-default t)) #("/ssh:srv:" 0 9 (tramp-ad-hoc t))) to ‘tramp-default-proxies-alist’
instead of
11:51:36.189562 tramp-compute-multi-hops (1) # Quit: "Quit", ""
Maybe this will help narrow down the issue ?
On Friday, May 19, 2023 10:28 AM (+03:00), Ihor Radchenko wrote:
> Kostadin Ninev writes:
>
> > No It succeeds and after that command I can even tangle the file until I
> > restart emacs.
>
> Curious. But I still do not see anything wrong on the Org side.
> Maybe Eli has more to say.
>
--
Kostadin Ninev.
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-19 9:12 ` Kostadin Ninev
@ 2023-05-19 9:43 ` Michael Albinus
2023-05-19 9:49 ` Kostadin Ninev
` (2 more replies)
0 siblings, 3 replies; 20+ messages in thread
From: Michael Albinus @ 2023-05-19 9:43 UTC (permalink / raw)
To: Kostadin Ninev; +Cc: Bastien, 63578, Ihor Radchenko, Eli Zaretskii
Kostadin Ninev <k.ninev@cdots.bg> writes:
Hi Kostadin,
> I did a test with (setq tramp-verbose 9) and it produced the following buffers:
>
> 11:51:28.377890 tramp-get-local-locale (7) # locale en_US.utf8
> 11:51:36.189562 tramp-compute-multi-hops (1) # Quit: "Quit", ""
8 seconds between the previous entry and Quit. So I guess you have entered "C-g".
Could you, pls, rerun the test with tramp-verbose set to 10?
Best regards, Michael.
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-19 9:43 ` Michael Albinus
@ 2023-05-19 9:49 ` Kostadin Ninev
2023-05-19 10:57 ` Kostadin Ninev
2023-05-20 8:30 ` Kostadin Ninev
2 siblings, 0 replies; 20+ messages in thread
From: Kostadin Ninev @ 2023-05-19 9:49 UTC (permalink / raw)
To: Michael Albinus; +Cc: Bastien, 63578, Ihor Radchenko, Eli Zaretskii
> Could you, pls, rerun the test with tramp-verbose set to 10?
This is the output:
;; Emacs: 29.0.91 Tramp: 2.6.0.29.1 -*- mode: outline; coding: utf-8; -*-
;; Location: /usr/share/emacs/29.0.91/lisp/net/tramp.elc Git: /
12:46:32.805953 tramp-get-connection-property (7) # copy-program undef; cache used: nil
12:46:32.806489 tramp-get-connection-property (7) # copy-program undef; cache used: nil
12:46:32.806672 tramp-get-connection-property (7) # copy-program undef; cache used: nil
12:46:32.806738 tramp-get-connection-property (7) # copy-program undef; cache used: nil
12:46:32.806787 tramp-add-hops (5) # Add (#("^srv$" 1 4 (tramp-default t)) #("^root$" 1 5 (tramp-default t)) #("/ssh:srv:" 0 9 (tramp-ad-hoc t))) to ‘tramp-default-proxies-alist’
12:46:32.806911 tramp-get-file-property (8) # /etc/test.conf file-exists-p undef; inhibit: 10; cache used: nil; cached at: nil
12:46:32.806941 tramp-get-file-property (8) # /etc/test.conf file-attributes undef; inhibit: 10; cache used: nil; cached at: nil
12:46:32.806966 tramp-get-connection-property (7) # file-exists undef; cache used: nil
12:46:32.806984 tramp-get-file-exists-command (5) # Finding command to check if file exists
12:46:32.807017 tramp-get-connection-property (7) # test undef; cache used: nil
12:46:32.807034 tramp-get-test-command (5) # Finding a suitable ‘test’ command
12:46:32.807057 tramp-get-connection-property (7) # null-device undef; cache used: nil
12:46:32.807236 tramp-set-connection-property (7) # null-device /dev/null
12:46:32.807257 tramp-get-connection-property (7) # process-name nil; cache used: nil
12:46:32.807276 tramp-get-connection-property (7) # process-name nil; cache used: nil
12:46:32.807295 tramp-get-connection-property (7) # process-buffer nil; cache used: nil
12:46:32.807315 tramp-get-connection-property (7) # process-buffer nil; cache used: nil
12:46:32.807335 tramp-set-connection-property (7) # process-buffer nil
12:46:32.807495 tramp-maybe-open-connection (3) # Opening connection nil for root@srv using sudo...
12:46:32.807686 tramp-call-process (6) # ‘locale -a’ nil *temp*-119282
12:46:32.808395 tramp-call-process (6) # 0
bg_BG.utf8
C
C.UTF-8
en_US.utf8
POSIX
12:46:32.808429 tramp-get-local-locale (7) # locale en_US.utf8
12:46:43.771992 tramp-compute-multi-hops (10) #
backtrace()
tramp-error((tramp-file-name "sudo" #("root" 0 4 (tramp-default t)) nil #("srv" 0 3 (tramp-default t)) nil "/etc/test.conf" nil) quit "")
tramp-signal-hook-function(quit nil)
#f(compiled-function () #<bytecode -0x1c8a4feadcf07a87>)()
format-spec(#("/ssh:srv:" 0 9 (tramp-ad-hoc t)) ((117 . "") (104 . #("srv" 0 3 (tramp-ad-hoc t)))))
tramp-compute-multi-hops((tramp-file-name "sudo" #("root" 0 4 (tramp-default t)) nil #("srv" 0 3 (tramp-default t)) nil "/etc/test.conf" nil))
tramp-maybe-open-connection((tramp-file-name "sudo" #("root" 0 4 (tramp-default t)) nil #("srv" 0 3 (tramp-default t)) nil "/etc/test.conf" nil))
tramp-send-command((tramp-file-name "sudo" #("root" 0 4 (tramp-default t)) nil #("srv" 0 3 (tramp-default t)) nil "/etc/test.conf" nil) "test 0 2>/dev/null; echo tramp_exit_status $?")
tramp-send-command-and-check((tramp-file-name "sudo" #("root" 0 4 (tramp-default t)) nil #("srv" 0 3 (tramp-default t)) nil "/etc/test.conf" nil) "test 0")
tramp-get-test-command((tramp-file-name "sudo" #("root" 0 4 (tramp-default t)) nil #("srv" 0 3 (tramp-default t)) nil "/etc/test.conf" nil))
tramp-find-file-exists-command((tramp-file-name "sudo" #("root" 0 4 (tramp-default t)) nil #("srv" 0 3 (tramp-default t)) nil "/etc/test.conf" nil))
tramp-get-file-exists-command((tramp-file-name "sudo" #("root" 0 4 (tramp-default t)) nil #("srv" 0 3 (tramp-default t)) nil "/etc/test.conf" nil))
tramp-sh-handle-file-exists-p(#("/sudo:root@srv:/etc/test.conf" 6 10 (tramp-default t) 11 14 (tramp-default t)))
tramp-sh-file-name-handler(file-exists-p #("/sudo:root@srv:/etc/test.conf" 6 10 (tramp-default t) 11 14 (tramp-default t)))
apply(tramp-sh-file-name-handler file-exists-p #("/sudo:root@srv:/etc/test.conf" 6 10 (tramp-default t) 11 14 (tramp-default t)))
tramp-file-name-handler(file-exists-p #("/sudo:root@srv:/etc/test.conf" 6 10 (tramp-default t) 11 14 (tramp-default t)))
file-exists-p("/ssh:srv|sudo::/etc/test.conf")
#f(compiled-function (by-fn) #<bytecode 0x35da530f428fa83>)(("/ssh:srv|sudo::/etc/test.conf" ("conf" 14 "1.org" "file:/home/dinko/1.org::*test" "test:1" ((:colname-names) (:rowname-names) (:result-params "replace") (:result-type . value) (:results . "replace") (:exports . "code") (:tangle . "/ssh:srv|sudo::/etc/test.conf") (:hlines . "no") (:noweb . "no") (:cache . "no") (:session . "none")) "test" nil)))
org-babel-tangle(nil)
funcall-interactively(org-babel-tangle nil)
command-execute(org-babel-tangle)
12:46:43.772057 tramp-compute-multi-hops (1) # Quit: "Quit", ""
12:46:43.772218 tramp-maybe-open-connection (3) # Opening connection nil for root@srv using sudo...failed
12:46:43.772930 tramp-get-connection-property (7) # process-buffer nil; cache used: t
12:46:43.772992 tramp-get-file-property (8) # / file-truename nil; inhibit: 10; cache used: nil; cached at: nil
12:46:43.773033 tramp-flush-directory-properties (8) # /
12:46:43.773080 tramp-flush-connection-properties (7) # (tramp-file-name sudo root nil srv nil nil nil) (process-buffer null-device)
--
Kostadin Ninev.
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-19 9:43 ` Michael Albinus
2023-05-19 9:49 ` Kostadin Ninev
@ 2023-05-19 10:57 ` Kostadin Ninev
2023-05-20 8:30 ` Kostadin Ninev
2 siblings, 0 replies; 20+ messages in thread
From: Kostadin Ninev @ 2023-05-19 10:57 UTC (permalink / raw)
To: Michael Albinus; +Cc: Bastien, 63578, Ihor Radchenko, Eli Zaretskii
This patch fixes the problem for me but I'm positive that its not correct
and may brake something:
--- /usr/share/emacs/29.0.91/lisp/net/tramp.el 2023-05-18
15:20:57.000000000 +0300
+++ tramp.el 2023-05-19 13:51:36.270802339 +0300
@@ -4678,7 +4678,7 @@
;; Add the hop.
(push l target-alist)
;; Start next search.
- (setq choices tramp-default-proxies-alist)))))
+ (setq choices nil)))))
;; Foreign and out-of-band methods are not supported for multi-hops.
(when (cdr target-alist)
I hope this is enough information to help fix this bug.
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-19 9:43 ` Michael Albinus
2023-05-19 9:49 ` Kostadin Ninev
2023-05-19 10:57 ` Kostadin Ninev
@ 2023-05-20 8:30 ` Kostadin Ninev
2023-05-20 11:16 ` Michael Albinus
2 siblings, 1 reply; 20+ messages in thread
From: Kostadin Ninev @ 2023-05-20 8:30 UTC (permalink / raw)
To: Michael Albinus; +Cc: Bastien, 63578, Ihor Radchenko, Eli Zaretskii
After a lot of debugging I propose this patch which fixes the problem for
me without observable side effects:
--- /usr/share/emacs/29.0.91/lisp/net/tramp.el 2023-05-18
15:20:57.000000000 +0300
+++ tramp.el 2023-05-20 11:24:51.869320508 +0300
@@ -4621,7 +4621,7 @@
(when-let ((hops (tramp-file-name-hop vec))
(item vec))
(dolist (proxy (reverse (split-string hops tramp-postfix-hop-regexp
'omit)))
- (let* ((host-port (tramp-file-name-host-port item))
+ (when-let* ((host-port (tramp-file-name-host-port item))
(user-domain (tramp-file-name-user-domain item))
(proxy (concat
tramp-prefix-format proxy tramp-postfix-host-format))
I realy hope this is fixed before the release of emacs 29.1. Let me know if
I can anything else.--
Kostadin Ninev.
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-20 8:30 ` Kostadin Ninev
@ 2023-05-20 11:16 ` Michael Albinus
2023-05-20 11:26 ` Kostadin Ninev
0 siblings, 1 reply; 20+ messages in thread
From: Michael Albinus @ 2023-05-20 11:16 UTC (permalink / raw)
To: Kostadin Ninev; +Cc: Bastien, 63578, Ihor Radchenko, Eli Zaretskii
Kostadin Ninev <k.ninev@cdots.bg> writes:
Hi Kostadin,
> After a lot of debugging I propose this patch which fixes the problem
> for me without observable side effects:
>
> --- /usr/share/emacs/29.0.91/lisp/net/tramp.el 2023-05-18
> 15:20:57.000000000 +0300
> +++ tramp.el 2023-05-20 11:24:51.869320508 +0300
> @@ -4621,7 +4621,7 @@
> (when-let ((hops (tramp-file-name-hop vec))
> (item vec))
> (dolist (proxy (reverse (split-string hops
> tramp-postfix-hop-regexp 'omit)))
> - (let* ((host-port (tramp-file-name-host-port item))
> + (when-let* ((host-port (tramp-file-name-host-port item))
> (user-domain (tramp-file-name-user-domain item))
> (proxy (concat
> tramp-prefix-format proxy tramp-postfix-host-format))
It doesn't look proper to me; we cannot expect that both host-port and
user-domain are always non-nil.
> I realy hope this is fixed before the release of emacs 29.1. Let me
> know if I can anything else.-- Kostadin Ninev.
I have no idea yet what goes wrong, I'm trying to assemble a recipe for
reproduction first. Perhaps you can send the value of
tramp-default-proxies-alist at the moment everything goes wrong.
Do you use several multi-hops in parallel? Something like
"/ssh:user@server|sudo::" and "/ssh:anotheruser@anotherserver|sudo::"?
And while it might be good to have it fixed in Emacs 29.1, it is not a
must. There are regular Tramp releases on GNU ELPA, which could fix it
also after the Emacs 29.1 release.
Best regards, Michael.
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-20 11:16 ` Michael Albinus
@ 2023-05-20 11:26 ` Kostadin Ninev
2023-05-20 11:50 ` Michael Albinus
0 siblings, 1 reply; 20+ messages in thread
From: Kostadin Ninev @ 2023-05-20 11:26 UTC (permalink / raw)
To: Michael Albinus; +Cc: Bastien, 63578, Ihor Radchenko, Eli Zaretskii
> Perhaps you can send the value of
> tramp-default-proxies-alist at the moment everything goes wrong.
This is the wrong value of tramp-default-proxies-alist
((nil nil
#("/ssh:srv:" 0 9
(tramp-ad-hoc t)))
("^srv$" "^root$"
#("/ssh:srv:" 0 9
(tramp-ad-hoc t))))
And I get this with my patch
((#("^srv$" 1 4
(tramp-default t))
#("^root$" 1 5
(tramp-default t))
#("/ssh:srv:" 0 9
(tramp-ad-hoc t))))
> Do you use several multi-hops in parallel? Something like
> "/ssh:user@server|sudo::" and "/ssh:anotheruser@anotherserver|sudo::"?
No but I tried it with the same results, the patch fixes it for me.
--
Kostadin Ninev.
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-20 11:26 ` Kostadin Ninev
@ 2023-05-20 11:50 ` Michael Albinus
2023-05-20 11:53 ` Kostadin Ninev
0 siblings, 1 reply; 20+ messages in thread
From: Michael Albinus @ 2023-05-20 11:50 UTC (permalink / raw)
To: Kostadin Ninev; +Cc: Bastien, 63578, Ihor Radchenko, Eli Zaretskii
Kostadin Ninev <k.ninev@cdots.bg> writes:
Hi Kostadin,
>> Perhaps you can send the value of
>> tramp-default-proxies-alist at the moment everything goes wrong.
>
> This is the wrong value of tramp-default-proxies-alist
>
> ((nil nil
> #("/ssh:srv:" 0 9
> (tramp-ad-hoc t)))
> ("^srv$" "^root$"
> #("/ssh:srv:" 0 9
> (tramp-ad-hoc t))))
Thanks.
Perhaps you could help me with the recipe (I'm not an Org user). I have
created a file ~/tmp/123.org with the content
--8<---------------cut here---------------start------------->8---
#+begin_src conf :tangle /ssh:user@host|sudo::/etc/test.conf
test
#+end_src
--8<---------------cut here---------------end--------------->8---
"user" and "host" are existing ones in my local domain. When I call
--8<---------------cut here---------------start------------->8---
emacs -Q -l tramp --eval '(setq tramp-verbose 10 debug-on-quit t)' ~/tmp/123.org
--8<---------------cut here---------------end--------------->8---
and I do eval the Org src block with "C-c C-c", I get the message
--8<---------------cut here---------------start------------->8---
org-babel-execute-src-block: No org-babel-execute function for conf!
--8<---------------cut here---------------end--------------->8---
What do I miss?
Best regards, Michael.
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-20 11:50 ` Michael Albinus
@ 2023-05-20 11:53 ` Kostadin Ninev
2023-05-20 14:48 ` Michael Albinus
0 siblings, 1 reply; 20+ messages in thread
From: Kostadin Ninev @ 2023-05-20 11:53 UTC (permalink / raw)
To: Michael Albinus; +Cc: Bastien, 63578, Ihor Radchenko, Eli Zaretskii
You want ta call org-babel-tangle or C-c C-v C-t to create the file
C-c C-c attempts to execute the contents of the block.
On Saturday, May 20, 2023 2:50 PM (+03:00), Michael Albinus wrote:
> Kostadin Ninev writes:
>
> Hi Kostadin,
>
> >> Perhaps you can send the value of
> >> tramp-default-proxies-alist at the moment everything goes wrong.
> >
> > This is the wrong value of tramp-default-proxies-alist
> >
> > ((nil nil
> > #("/ssh:srv:" 0 9
> > (tramp-ad-hoc t)))
> > ("^srv$" "^root$"
> > #("/ssh:srv:" 0 9
> > (tramp-ad-hoc t))))
>
> Thanks.
>
> Perhaps you could help me with the recipe (I'm not an Org user). I have
> created a file ~/tmp/123.org with the content
>
> --8<---------------cut here---------------start------------->8---
> #+begin_src conf :tangle /ssh:user@host|sudo::/etc/test.conf
> test
> #+end_src
> --8<---------------cut here---------------end--------------->8---
>
> "user" and "host" are existing ones in my local domain. When I call
>
> --8<---------------cut here---------------start------------->8---
> emacs -Q -l tramp --eval '(setq tramp-verbose 10 debug-on-quit t)'
~/tmp/123.org
> --8<---------------cut here---------------end--------------->8---
>
> and I do eval the Org src block with "C-c C-c", I get the message
>
> --8<---------------cut here---------------start------------->8---
> org-babel-execute-src-block: No org-babel-execute function for conf!
> --8<---------------cut here---------------end--------------->8---
>
> What do I miss?
>
> Best regards, Michael.
>
--
Kostadin Ninev.
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-20 11:53 ` Kostadin Ninev
@ 2023-05-20 14:48 ` Michael Albinus
2023-05-20 16:50 ` Michael Albinus
0 siblings, 1 reply; 20+ messages in thread
From: Michael Albinus @ 2023-05-20 14:48 UTC (permalink / raw)
To: Kostadin Ninev; +Cc: Bastien, 63578, Ihor Radchenko, Eli Zaretskii
Kostadin Ninev <k.ninev@cdots.bg> writes:
Hi Kostadin,
> You want ta call org-babel-tangle or C-c C-v C-t to create the file
>
> C-c C-c attempts to execute the contents of the block.
Thanks, I can reproduce the problem now. Let's see what analysis yields.
Best regards, Michael.
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-20 14:48 ` Michael Albinus
@ 2023-05-20 16:50 ` Michael Albinus
2023-05-20 17:09 ` Kostadin Ninev
0 siblings, 1 reply; 20+ messages in thread
From: Michael Albinus @ 2023-05-20 16:50 UTC (permalink / raw)
To: Kostadin Ninev; +Cc: Bastien, 63578, Ihor Radchenko, Eli Zaretskii
[-- Attachment #1: Type: text/plain, Size: 534 bytes --]
Michael Albinus <michael.albinus@gmx.de> writes:
Hi Kostadin,
> Thanks, I can reproduce the problem now. Let's see what analysis yields.
The problem happens, when tramp-add-hops is called with a
tramp-file-name structure which has not expanded the default user and
host names yet, like in "/sudo::". The appended patch should fix it,
could you pls check in your environment?
Since the change is very basic to Tramp, I'll let run all regression
tests for Tramp. This will take 2-3 days. I'll let you know.
Best regards, Michael.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 1005 bytes --]
diff --git a/lisp/tramp.el b/lisp/tramp.el
index b70fd95a..90e497a9 100644
--- a/lisp/tramp.el
+++ b/lisp/tramp.el
@@ -1692,8 +1692,9 @@ The structure consists of method, user, domain, host, port,
localname (file name on remote host), and hop.
Unless NODEFAULT is non-nil, method, user and host are expanded
-to their default values. For the other file name parts, no
-default values are used."
+to their default values. Hop is set to nil if NODEFAULT is non-nil.
+
+For the other file name parts, no default values are used."
(save-match-data
(unless (tramp-tramp-file-p name)
(tramp-user-error nil "Not a Tramp file name: \"%s\"" name))
@@ -1719,7 +1720,8 @@ default values are used."
(when (string-match tramp-postfix-ipv6-regexp host)
(setq host (replace-match "" nil t host))))
- (unless nodefault
+ (if nodefault
+ (setq hop nil)
(when hop
(setq v (tramp-dissect-hop-name hop)
hop (and hop (tramp-make-tramp-hop-name v))))
^ permalink raw reply related [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-20 16:50 ` Michael Albinus
@ 2023-05-20 17:09 ` Kostadin Ninev
2023-05-22 10:44 ` Michael Albinus
0 siblings, 1 reply; 20+ messages in thread
From: Kostadin Ninev @ 2023-05-20 17:09 UTC (permalink / raw)
To: Michael Albinus; +Cc: Bastien, 63578, Ihor Radchenko, Eli Zaretskii
On Saturday, May 20, 2023 7:50 PM (+03:00), Michael Albinus wrote:
> could you pls check in your environment?
I can confirm that your patch works for me. I hope the tests run
successfully. Thank you for your work !
--
Kostadin Ninev.
^ permalink raw reply [flat|nested] 20+ messages in thread
* bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo
2023-05-20 17:09 ` Kostadin Ninev
@ 2023-05-22 10:44 ` Michael Albinus
0 siblings, 0 replies; 20+ messages in thread
From: Michael Albinus @ 2023-05-22 10:44 UTC (permalink / raw)
To: Kostadin Ninev; +Cc: Bastien, 63578-done, Ihor Radchenko, Eli Zaretskii
Version: 29.1
Kostadin Ninev <k.ninev@cdots.bg> writes:
Hi Kostadin,
>> could you pls check in your environment?
>
> I can confirm that your patch works for me. I hope the tests run
> successfully. Thank you for your work !
Thanks. The regression tests have passed also. There are still some
oddities, but not related to *this* change.
I've pushed the change to the emacs-29 branch, closing the bug.
Best regards, Michael.
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2023-05-22 10:44 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-18 19:21 bug#63578: 29.0.91; Org Cannot tangle with tramp using sudo k.ninev@cdots.bg via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-05-19 5:54 ` Eli Zaretskii
2023-05-19 6:32 ` Ihor Radchenko
2023-05-19 6:55 ` Kostadin Ninev
2023-05-19 7:17 ` Ihor Radchenko
2023-05-19 7:18 ` Kostadin Ninev
2023-05-19 7:28 ` Ihor Radchenko
2023-05-19 9:12 ` Kostadin Ninev
2023-05-19 9:43 ` Michael Albinus
2023-05-19 9:49 ` Kostadin Ninev
2023-05-19 10:57 ` Kostadin Ninev
2023-05-20 8:30 ` Kostadin Ninev
2023-05-20 11:16 ` Michael Albinus
2023-05-20 11:26 ` Kostadin Ninev
2023-05-20 11:50 ` Michael Albinus
2023-05-20 11:53 ` Kostadin Ninev
2023-05-20 14:48 ` Michael Albinus
2023-05-20 16:50 ` Michael Albinus
2023-05-20 17:09 ` Kostadin Ninev
2023-05-22 10:44 ` Michael Albinus
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.