Subject: Re: bug#64644: emacs-next eshell-tramp not working when ssh to non Guix System

From: Moisés Simón <[email-masked]>
Date: Mon, 17 Jul 2023 12:35:39 +0000

the Emacs commit that broke eshell/tramp on Guix is
cee1cbfd54375cdece23d4741ced6b0c7091f6d9

output fo magit bisect follows:

--8<---------------cut here---------------start------------->8---
Head:     cee1cbfd543 Improve handling of $PATH in Eshell for remote directories
Tags:     emacs-28.2 (159665), emacs-29.0.90 (4434)

cee1cbfd54375cdece23d4741ced6b0c7091f6d9 is the first bad commit
commit cee1cbfd54375cdece23d4741ced6b0c7091f6d9
Author: Jim Porter <[email-masked]>
Date:   Thu Sep 15 12:24:37 2022 -0700
    Improve handling of $PATH in Eshell for remote directories
    
    * lisp/eshell/esh-util.el (eshell-path-env, eshell-parse-colon-path):
    Make obsolete.
    (eshell-path-env-list): New variable.
    (eshell-connection-default-profile): New connection-local profile.
    (eshell-get-path): Reimplement using 'eshell-path-env-list'; add
    LITERAL-P argument.
    (eshell-set-path): New function.
    
    * lisp/eshell/esh-var.el (eshell-variable-aliases-list): Add entry for
    $PATH.
    (eshell-var-initialize): Add 'eshell-path-env-list' to
    'eshell-subcommand-bindings'.
    
    * lisp/eshell/esh-ext.el (eshell-search-path): Use 'file-name-concat'
    instead of 'concat'.
    (eshell/addpath): Use 'eshell-get-path' and 'eshell-set-path'.
    
    * lisp/net/tramp-integration.el: Only apply Eshell hooks when
    'eshell-path-env-list' is unbound.
    
    * test/lisp/eshell/esh-var-tests.el
    (esh-var-test/path-var/local-directory)
    (esh-var-test/path-var/remote-directory, esh-var-test/path-var/set)
    (esh-var-test/path-var/set-locally)
    (esh-var-test/path-var-preserve-across-hosts): New tests.
    
    * test/lisp/eshell/esh-ext-tests.el: New file.
    
    * test/lisp/eshell/eshell-tests-helpers.el
    (with-temp-eshell): Set 'eshell-last-dir-ring-file-name' to nil.
    (eshell-tests-remote-accessible-p, eshell-last-input)
    (eshell-last-output): New functions.
    (eshell-match-output, eshell-match-output--explainer): Use
    'eshell-last-input' and 'eshell-last-output'.
    
    * doc/misc/eshell.texi (Variables): Document $PATH.
    
    * etc/NEWS: Announce this change (bug#57556).
 doc/misc/eshell.texi                     | 10 +++++
 etc/NEWS                                 |  5 +++
 lisp/eshell/esh-ext.el                   | 23 +++++-----
 lisp/eshell/esh-util.el                  | 55 ++++++++++++++++++++---
 lisp/eshell/esh-var.el                   | 12 ++++-
 lisp/net/tramp-integration.el            | 21 ++++-----
 test/lisp/eshell/esh-ext-tests.el        | 76 ++++++++++++++++++++++++++++++++
 test/lisp/eshell/esh-var-tests.el        | 60 +++++++++++++++++++++++++
 test/lisp/eshell/eshell-tests-helpers.el | 32 +++++++++++---
 9 files changed, 257 insertions(+), 37 deletions(-)
 create mode 100644 test/lisp/eshell/esh-ext-tests.el

Bisect Rest (1)
cee1cbfd543 * @ Improve handling of $PATH in Eshell for remote directories

Bisect Log (20)
git bisect start 'emacs-29.0.91' 'd9732425a6b339d83332f265da32fc3802357701'
3aef46e466f bad Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs into emacs-29
d9732425a6b good Don't create unused file rmail-loaddefs.el

git bisect skip 2eb2eb0c9ead205935be58ce9bb54465d48b20c8
2eb2eb0c9ea skip ; * emoji.el (emoji--define-transient): Adapt to recent changes in transient.

git bisect skip 8b8038494ce8354a3e2cfffebba40dbd1328ebb9
8b8038494ce skip * src/gnutls.c (Fgnutls_available_p): Avoid duplicating capabilities.

git bisect skip abfe41cc2c2932525844d9d1cef83bf877145bf4
abfe41cc2c2 skip Prepare to sumbit to gnu elpa

git bisect good 8ec7f8f1699ca1ab4d1e75b369ea231f5802f0e3
8ec7f8f1699 good Update Unicode support to Unicode version 15.0.0 (bug#57846)

git bisect skip f35dc7058b22a6c7bca23c6696b815f137427fb0
f35dc7058b2 skip Add sqlite library version string retrieval function (bug#58766)

git bisect bad fafcf02c856ef8fd712ff75e8999dfb0f6d97f07
fafcf02c856 bad Fix syntax tables of tree-sitter modes (bug#59807)

git bisect bad 8721e87a6ec0874057f83f54498a0e3a64475a53
8721e87a6ec bad ; * etc/ERC-NEWS: Mention move to erc-common.el.

git bisect bad e08e9bc40f2c309bf119659a6496759493bd35e1
e08e9bc40f2 bad Remove modifications to the list of ignored files in source packages

git bisect good abe83f76de36bc3922b410f9872065fc3903738b
abe83f76de3 good Merge from origin/emacs-28

git bisect good 36ab1644964ae5a933bd9808536f60d4ae64c99f
36ab1644964 good Improve error message from sqlite-execute

git bisect good b9aff5fdb89092b68ebd7782c8dc85e6daca14b2
b9aff5fdb89 good Fix spurious "Compilation finished" native-comp messages

git bisect good 1a5e705dda54b74686cdc31543e4783a1f3337e1
1a5e705dda5 good ; * lisp/vc/vc-cvs.el (vc-cvs-clone): Remove function

git bisect skip 86581698acc1a0991592e018c1ba749f3ded21be
86581698acc skip Fix faulty loaddefs detection

git bisect bad 254536e41bf5fb62263206edb3c2d734f9cd50ef
254536e41bf bad Regenerated ldefs-boot.el

git bisect good 1beb389e472ab8132b478c9f24dd0ab6b7398670
1beb389e472 good ; Remove over-quoting of :application values in connection-local variables

git bisect bad 0954689cb3243e3af4b0c12c08bdcad608fd8433
0954689cb32 bad ; Fix some invalid Eshell syntax in an example

git bisect good 7c41016fca5ab0638f1e2fed260e2ee41f3400c2
7c41016fca5 good Allow setting the values of variable aliases in Eshell

git bisect bad cee1cbfd54375cdece23d4741ced6b0c7091f6d9
cee1cbfd543 bad Improve handling of $PATH in Eshell for remote directories

cee1cbfd54375cdece23d4741ced6b0c7091f6d9 is the first bad commit
--8<---------------cut here---------------end--------------->8---