* bug#74105: 30.0.92; Some issues in TRAMP NEWS entries
@ 2024-10-30 11:10 Sean Whitton
2024-10-30 11:54 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 12+ messages in thread
From: Sean Whitton @ 2024-10-30 11:10 UTC (permalink / raw)
To: 74105; +Cc: michael.albinus
X-debbugs-cc: michael.albinus@gmx.de
Hello,
In NEWS we have
+++
*** Direct asynchronous processes are indicated by a connection-local variable.
If direct asynchronous processes shall be used, set the connection-local
variable 'tramp-direct-async-process' to a non-nil value. This has been
changed, in previous Emacs versions this was indicated by the now
deprecated connection property "direct-async-process". See the Tramp
manual "(tramp) Improving performance of asynchronous remote processes".
In my init.el I have this:
(with-eval-after-load 'tramp
(add-to-list 'tramp-connection-properties
'("/ssh:" "direct-async-process" t))
(add-to-list 'tramp-connection-properties '(nil "session-timeout" nil)))
I have some documentation issues:
(1) The NEWS entry, together with the Info manual, were not sufficient
for me to figure how to migrate my config. For example, is the
whole of tramp-connection-properties being replaced? Or do I only
need to migrate the direct-async-process part?
I think additional documentation, even an explicit migration guide,
would be desirable.
(2) Turning on direct async processes for all SSH connections seems like
a common configuration. How about adding that to the manual, in
addition to the example for enabling them for one host?
(3) Has there been a change to how password caching works?
I tried deleting the session-timeout configuration. I made a
/sudo:: connection. After some time passed, I saw the familiar
"Tramp connection timed out" message. But it reconnected
immediately when I tried to save a buffer I had open. Does it now
cache the sudo password? In the past, you had to type it again,
after the timeout.
If there is a change here, it's security-relevant, so it should
probably be in NEWS.
Thanks.
--
Sean Whitton
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#74105: 30.0.92; Some issues in TRAMP NEWS entries
2024-10-30 11:10 bug#74105: 30.0.92; Some issues in TRAMP NEWS entries Sean Whitton
@ 2024-10-30 11:54 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-03 7:15 ` Sean Whitton
0 siblings, 1 reply; 12+ messages in thread
From: Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-10-30 11:54 UTC (permalink / raw)
To: Sean Whitton; +Cc: 74105
Sean Whitton <spwhitton@spwhitton.name> writes:
> Hello,
Hi Sean,
thank you for your report.
> In NEWS we have
>
> +++
> *** Direct asynchronous processes are indicated by a connection-local variable.
> If direct asynchronous processes shall be used, set the connection-local
> variable 'tramp-direct-async-process' to a non-nil value. This has been
> changed, in previous Emacs versions this was indicated by the now
> deprecated connection property "direct-async-process". See the Tramp
> manual "(tramp) Improving performance of asynchronous remote processes".
>
> In my init.el I have this:
>
> (with-eval-after-load 'tramp
> (add-to-list 'tramp-connection-properties
> '("/ssh:" "direct-async-process" t))
> (add-to-list 'tramp-connection-properties '(nil "session-timeout" nil)))
>
> I have some documentation issues:
>
> (1) The NEWS entry, together with the Info manual, were not sufficient
> for me to figure how to migrate my config. For example, is the
> whole of tramp-connection-properties being replaced? Or do I only
> need to migrate the direct-async-process part?
No, the whole tramp-connection-properties machinery is not replaced,
otherwise it would have been mentioned in NEWS. Furthermore, it is still
explained in the Tramp info manual of Emacs 30, which could give you an
indication that it still exists.
> I think additional documentation, even an explicit migration guide,
> would be desirable.
What you need to set is described in the Tramp manual. That's why the
quoted NEWS entry says
--8<---------------cut here---------------start------------->8---
See the Tramp manual "(tramp) Improving performance of asynchronous
remote processes".
--8<---------------cut here---------------end--------------->8---
That doesn't need a migration guide.
> (2) Turning on direct async processes for all SSH connections seems like
> a common configuration. How about adding that to the manual, in
> addition to the example for enabling them for one host?
I don't know whether it is common praxis. I, for example, access my NAS
boxes (QNAP) via ssh w/o direct async processes. Simply, because they
are special, and do not cooperate well with direct async processes.
Furthermore, there are also disadvantages using direct async processes,
which are listed in the Tramp manual (same node as above). This prevents
me from saying, all connections using "ssh" shall use direct async
processes. And what's about "scp"? You can also use direct async
processes for such connections. Would you like to recommend this as well
in general? Where do you want to stop? Recommend "rsync"?
Sorry, but the conditions are more complex than you expect. People shall
find out what's best suited for them.
> (3) Has there been a change to how password caching works?
>
> I tried deleting the session-timeout configuration. I made a
> /sudo:: connection. After some time passed, I saw the familiar
> "Tramp connection timed out" message. But it reconnected
> immediately when I tried to save a buffer I had open. Does it now
> cache the sudo password? In the past, you had to type it again,
> after the timeout.
>
> If there is a change here, it's security-relevant, so it should
> probably be in NEWS.
Likely, you're trapped by the following change, documented in NEWS.29:
--8<---------------cut here---------------start------------->8---
*** Proper password prompts for methods "doas", "sudo" and "sudoedit".
The password prompts for these methods reflect now the credentials of
the user requesting such a connection, and not of the user who is the
target. This has always been needed, just the password prompt and the
related 'auth-sources' entry were wrong.
--8<---------------cut here---------------end--------------->8---
If it is something else, we need to debug.
> Thanks.
Best regards, Michael.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#74105: 30.0.92; Some issues in TRAMP NEWS entries
2024-10-30 11:54 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-11-03 7:15 ` Sean Whitton
2024-11-03 15:01 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-04 0:41 ` Dmitry Gutov
0 siblings, 2 replies; 12+ messages in thread
From: Sean Whitton @ 2024-11-03 7:15 UTC (permalink / raw)
To: Michael Albinus; +Cc: 74105
Hello,
On Wed 30 Oct 2024 at 12:54pm +01, Michael Albinus wrote:
> No, the whole tramp-connection-properties machinery is not replaced,
> otherwise it would have been mentioned in NEWS. Furthermore, it is still
> explained in the Tramp info manual of Emacs 30, which could give you an
> indication that it still exists.
How about explicitly saying that it's not deprecated?
NEWS says that the connection property is deprecated, and the manual
says that the old way will eventually stop working.
In the presence of the new connection local variables, it is very
natural to mistakenly think that connection properties as a whole are
going away.
So how about just
In previous Emacs versions this was indicated by the
connection property "direct-async-process". That connection
property (though not connection properties and
`tramp-connection-properties' in general) is now deprecated.
> I don't know whether it is common praxis. I, for example, access my NAS
> boxes (QNAP) via ssh w/o direct async processes. Simply, because they
> are special, and do not cooperate well with direct async processes.
That's fair enough, it's easy to assume one's own practices are common.
> Furthermore, there are also disadvantages using direct async processes,
> which are listed in the Tramp manual (same node as above). This prevents
> me from saying, all connections using "ssh" shall use direct async
> processes. And what's about "scp"? You can also use direct async
> processes for such connections. Would you like to recommend this as well
> in general? Where do you want to stop? Recommend "rsync"?
>
> Sorry, but the conditions are more complex than you expect. People shall
> find out what's best suited for them.
I read the list of disadvantages, and I think most of them don't apply
to the majority of users. I didn't know about it for SCP and rsync but
now intend to enable it :)
I still think it would be a good idea to give an answer to "just turn
this on for everything, please" in the manual.
>> (3) Has there been a change to how password caching works?
>>
>> I tried deleting the session-timeout configuration. I made a
>> /sudo:: connection. After some time passed, I saw the familiar
>> "Tramp connection timed out" message. But it reconnected
>> immediately when I tried to save a buffer I had open. Does it now
>> cache the sudo password? In the past, you had to type it again,
>> after the timeout.
>>
>> If there is a change here, it's security-relevant, so it should
>> probably be in NEWS.
>
> Likely, you're trapped by the following change, documented in NEWS.29:
>
> --8<---------------cut here---------------start------------->8---
> *** Proper password prompts for methods "doas", "sudo" and "sudoedit".
> The password prompts for these methods reflect now the credentials of
> the user requesting such a connection, and not of the user who is the
> target. This has always been needed, just the password prompt and the
> related 'auth-sources' entry were wrong.
> --8<---------------cut here---------------end--------------->8---
>
> If it is something else, we need to debug.
Hmm, isn't this NEWS.29 change just a change in the password prompt? I
don't see how that applies to what I described.
Unless it caches the sudo password, it shouldn't have been able to
reconnect.
--
Sean Whitton
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#74105: 30.0.92; Some issues in TRAMP NEWS entries
2024-11-03 7:15 ` Sean Whitton
@ 2024-11-03 15:01 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-03 23:20 ` Sean Whitton
2024-11-04 0:41 ` Dmitry Gutov
1 sibling, 1 reply; 12+ messages in thread
From: Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-11-03 15:01 UTC (permalink / raw)
To: Sean Whitton; +Cc: 74105
Sean Whitton <spwhitton@spwhitton.name> writes:
> Hello,
Hi Sean,
> So how about just
>
> In previous Emacs versions this was indicated by the
> connection property "direct-async-process". That connection
> property (though not connection properties and
> `tramp-connection-properties' in general) is now deprecated.
Thanks. I've pushed your rephrased version to the emacs-30 repo.
> I still think it would be a good idea to give an answer to "just turn
> this on for everything, please" in the manual.
I've added the following to the Tramp manual (after the example with
'remotehost'):
--8<---------------cut here---------------start------------->8---
This enables direct async processes for the host ‘remotehost’. If
you want to enable direct async processes for all remote hosts
connected via the same method (e.g., ‘ssh’), use instead
(connection-local-set-profiles
'(:application tramp :protocol "ssh")
'remote-direct-async-process)
--8<---------------cut here---------------end--------------->8---
Pushed to emacs-30.
>>> (3) Has there been a change to how password caching works?
>>>
>>> I tried deleting the session-timeout configuration. I made a
>>> /sudo:: connection. After some time passed, I saw the familiar
>>> "Tramp connection timed out" message. But it reconnected
>>> immediately when I tried to save a buffer I had open. Does it now
>>> cache the sudo password? In the past, you had to type it again,
>>> after the timeout.
>>>
>>> If there is a change here, it's security-relevant, so it should
>>> probably be in NEWS.
>>
>> Likely, you're trapped by the following change, documented in NEWS.29:
>>
>> --8<---------------cut here---------------start------------->8---
>> *** Proper password prompts for methods "doas", "sudo" and "sudoedit".
>> The password prompts for these methods reflect now the credentials of
>> the user requesting such a connection, and not of the user who is the
>> target. This has always been needed, just the password prompt and the
>> related 'auth-sources' entry were wrong.
>> --8<---------------cut here---------------end--------------->8---
>>
>> If it is something else, we need to debug.
>
> Hmm, isn't this NEWS.29 change just a change in the password prompt? I
> don't see how that applies to what I described.
>
> Unless it caches the sudo password, it shouldn't have been able to
> reconnect.
No, there is also a change in the user name in .authinfo and
friends. The Tramp manual says:
--8<---------------cut here---------------start------------->8---
For the methods ‘doas’, ‘sudo’, ‘sudoedit’ and ‘nspawn’ the
password of the user requesting the connection is needed, and not the
password of the target user(1). If these connections happen on the
local host, an entry with the local user and local host is used:
machine HOST port sudo login USER password secret
USER and HOST are the strings returned by ‘(user-login-name)’ and
‘(system-name)’. If one of these methods is connected via a multi-hop
(*note Multi-hops::), the credentials of the previous hop are used.
--8<---------------cut here---------------end--------------->8---
Before Emacs 29, you needed "login root" instead. This change was
mentioned in the etc/NEWS file indirectly, by saying "related
'auth-sources' entry":
--8<---------------cut here---------------start------------->8---
This has always been needed, just the password prompt and the
related 'auth-sources' entry were wrong.
--8<---------------cut here---------------end--------------->8---
Best regards, Michael.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#74105: 30.0.92; Some issues in TRAMP NEWS entries
2024-11-03 15:01 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-11-03 23:20 ` Sean Whitton
2024-11-04 17:32 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 12+ messages in thread
From: Sean Whitton @ 2024-11-03 23:20 UTC (permalink / raw)
To: Michael Albinus; +Cc: 74105
Hello,
On Sun 03 Nov 2024 at 04:01pm +01, Michael Albinus wrote:
> [...]
> Pushed to emacs-30.
Nice, thanks for your consideration.
> No, there is also a change in the user name in .authinfo and
> friends.
I don't use any of those files.
I don't think the behaviour I described is covered by this.
--
Sean Whitton
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#74105: 30.0.92; Some issues in TRAMP NEWS entries
2024-11-03 7:15 ` Sean Whitton
2024-11-03 15:01 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-11-04 0:41 ` Dmitry Gutov
2024-11-04 0:59 ` Sean Whitton
1 sibling, 1 reply; 12+ messages in thread
From: Dmitry Gutov @ 2024-11-04 0:41 UTC (permalink / raw)
To: Sean Whitton, Michael Albinus; +Cc: 74105
On 03/11/2024 09:15, Sean Whitton wrote:
> I read the list of disadvantages, and I think most of them don't apply
> to the majority of users. I didn't know about it for SCP and rsync but
> now intend to enable it 🙂
"cannot be killed via ‘interrupt-process’" might bite at some occasions.
No support for interactive user authentication could stump some users
too (do we have a meaningful error message when that happens?)
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#74105: 30.0.92; Some issues in TRAMP NEWS entries
2024-11-04 0:41 ` Dmitry Gutov
@ 2024-11-04 0:59 ` Sean Whitton
2024-11-04 8:00 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 12+ messages in thread
From: Sean Whitton @ 2024-11-04 0:59 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: 74105, Michael Albinus
Hello,
On Mon 04 Nov 2024 at 02:41am +02, Dmitry Gutov wrote:
> On 03/11/2024 09:15, Sean Whitton wrote:
>> I read the list of disadvantages, and I think most of them don't apply
>> to the majority of users. I didn't know about it for SCP and rsync but
>> now intend to enable it 🙂
>
> "cannot be killed via ‘interrupt-process’" might bite at some occasions.
Good point.
> No support for interactive user authentication could stump some users
> too (do we have a meaningful error message when that happens?)
I guess I assume the majority use SSH keys, and Emacs-external
interactive authentication for those definitely still works.
--
Sean Whitton
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#74105: 30.0.92; Some issues in TRAMP NEWS entries
2024-11-04 0:59 ` Sean Whitton
@ 2024-11-04 8:00 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 0 replies; 12+ messages in thread
From: Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-11-04 8:00 UTC (permalink / raw)
To: Sean Whitton; +Cc: 74105, Dmitry Gutov
Sean Whitton <spwhitton@spwhitton.name> writes:
> Hello,
Hi Sean,
> On Mon 04 Nov 2024 at 02:41am +02, Dmitry Gutov wrote:
>> No support for interactive user authentication could stump some users
>> too (do we have a meaningful error message when that happens?)
>
> I guess I assume the majority use SSH keys, and Emacs-external
> interactive authentication for those definitely still works.
But if you have protected your ssh keys by a passphrase, you'll run into
the same problem. Unless you run ssh-agent in the background. I, for
example, don't run it.
Best regards, Michael.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#74105: 30.0.92; Some issues in TRAMP NEWS entries
2024-11-03 23:20 ` Sean Whitton
@ 2024-11-04 17:32 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-07 2:18 ` Sean Whitton
0 siblings, 1 reply; 12+ messages in thread
From: Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-11-04 17:32 UTC (permalink / raw)
To: Sean Whitton; +Cc: 74105
Sean Whitton <spwhitton@spwhitton.name> writes:
> Hello,
Hi Sean,
>> No, there is also a change in the user name in .authinfo and
>> friends.
>
> I don't use any of those files.
>
> I don't think the behaviour I described is covered by this.
Hmm. Does it mean you have set auth-sources to nil? There is a possible
error indeed in tramp-read-passwd for this case. Could you, please,
apply the appended patch?
Furthermore, Tramp caches the passwords indeed. If auth-sources is not
enabled, it uses the function password-read from
password-cache.el. However, the password is cached just for
password-cache-expiry seconds (16 by default). If you want to disable
this, set password-cache to nil. See the Tramp manual, at the bottom of
(info "(tramp) Password handling")
I have no idea where the changed behavior you've described comes from.
Best regards, Michael.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#74105: 30.0.92; Some issues in TRAMP NEWS entries
2024-11-04 17:32 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-11-07 2:18 ` Sean Whitton
2024-11-07 8:23 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 12+ messages in thread
From: Sean Whitton @ 2024-11-07 2:18 UTC (permalink / raw)
To: Michael Albinus; +Cc: 74105
Hello,
On Mon 04 Nov 2024 at 06:32pm +01, Michael Albinus wrote:
> Sean Whitton <spwhitton@spwhitton.name> writes:
>
>> Hello,
>
> Hi Sean,
>
>>> No, there is also a change in the user name in .authinfo and
>>> friends.
>>
>> I don't use any of those files.
>>
>> I don't think the behaviour I described is covered by this.
>
> Hmm. Does it mean you have set auth-sources to nil?
No, I haven't done any particular setup, I just don't (intentionally)
use any password-saving features in Emacs.
> There is a possible error indeed in tramp-read-passwd for this
> case. Could you, please, apply the appended patch?
Just to confirm, do you still want me to do this even though I don't set
auth-sources to nil?
> I have no idea where the changed behavior you've described comes from.
Okay -- I'll investigate further, including from 'emacs -q'.
--
Sean Whitton
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#74105: 30.0.92; Some issues in TRAMP NEWS entries
2024-11-07 2:18 ` Sean Whitton
@ 2024-11-07 8:23 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-08 2:40 ` Sean Whitton
0 siblings, 1 reply; 12+ messages in thread
From: Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-11-07 8:23 UTC (permalink / raw)
To: Sean Whitton; +Cc: 74105
Sean Whitton <spwhitton@spwhitton.name> writes:
> Hello,
Hi Sean,
>> Hmm. Does it mean you have set auth-sources to nil?
>
> No, I haven't done any particular setup, I just don't (intentionally)
> use any password-saving features in Emacs.
>
>> There is a possible error indeed in tramp-read-passwd for this
>> case. Could you, please, apply the appended patch?
>
> Just to confirm, do you still want me to do this even though I don't set
> auth-sources to nil?
No, not needed for you. But since this case is missing in
tramp-read-passwd, I'll apply this patch anyway.
auth-sources has the initial value '("~/.authinfo" "~/.authinfo.gpg" "~/.netrc")
Do you own one of these files?
>> I have no idea where the changed behavior you've described comes from.
>
> Okay -- I'll investigate further, including from 'emacs -q'.
It might be helpful to step through tramp-read-passwd with the debugger.
Another idea: if auth-sources doesn't cooperate due to lack of useful
data, Tramp uses password-cache.el as fallback. password-cache-expiry
has the default value of 16 seconds. Could this explain what you see?
Best regards, Michael.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#74105: 30.0.92; Some issues in TRAMP NEWS entries
2024-11-07 8:23 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-11-08 2:40 ` Sean Whitton
0 siblings, 0 replies; 12+ messages in thread
From: Sean Whitton @ 2024-11-08 2:40 UTC (permalink / raw)
To: Michael Albinus; +Cc: 74105
Hello,
On Thu 07 Nov 2024 at 09:23am +01, Michael Albinus wrote:
> auth-sources has the initial value '("~/.authinfo" "~/.authinfo.gpg" "~/.netrc")
> Do you own one of these files?
No, I don't have any of them.
>>> I have no idea where the changed behavior you've described comes from.
>>
>> Okay -- I'll investigate further, including from 'emacs -q'.
>
> It might be helpful to step through tramp-read-passwd with the debugger.
>
> Another idea: if auth-sources doesn't cooperate due to lack of useful
> data, Tramp uses password-cache.el as fallback. password-cache-expiry
> has the default value of 16 seconds. Could this explain what you see?
Here are steps to reproduce in 'emacs -q' on recent master:
1. Ensure sudo is set up to require a password, i.e., not configured
with NOPASSWD for the current user.
2. emacs -q
3. Evaluate (with-eval-after-load 'tramp
(add-to-list 'tramp-connection-properties '(nil "session-timeout" 8)))
4. Evaluate (with-eval-after-load 'password-cache
(setq password-cache-expiry 8))
4. C-x C-f /sudo::/root/foo RET
5. Make some edits, C-x C-s.
6. Wait 10 seconds.
7. Make some more edits, C-x C-s.
- Expected result: prompted for sudo password again.
- Actual result: edits are saved, with no password prompts.
Where could the password be getting cached?
Thanks.
--
Sean Whitton
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2024-11-08 2:40 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-30 11:10 bug#74105: 30.0.92; Some issues in TRAMP NEWS entries Sean Whitton
2024-10-30 11:54 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-03 7:15 ` Sean Whitton
2024-11-03 15:01 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-03 23:20 ` Sean Whitton
2024-11-04 17:32 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-07 2:18 ` Sean Whitton
2024-11-07 8:23 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-08 2:40 ` Sean Whitton
2024-11-04 0:41 ` Dmitry Gutov
2024-11-04 0:59 ` Sean Whitton
2024-11-04 8:00 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
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.