GNU bug report logs - #31924
27.0.50; tramp handler /sudo::FILE fails when /bin/sh points to zsh

Previous Next

Package: emacs;

Reported by: Tino Calancha <tino.calancha <at> gmail.com>

Date: Thu, 21 Jun 2018 09:11:01 UTC

Severity: normal

Found in version 27.0.50

Fixed in version 27.1

Done: Michael Albinus <michael.albinus <at> gmx.de>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 31924 in the body.
You can then email your comments to 31924 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to michael.albinus <at> gmx.de, bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Thu, 21 Jun 2018 09:11:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Tino Calancha <tino.calancha <at> gmail.com>:
New bug report received and forwarded. Copy sent to michael.albinus <at> gmx.de, bug-gnu-emacs <at> gnu.org. (Thu, 21 Jun 2018 09:11:04 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Tino Calancha <tino.calancha <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 27.0.50; tramp handler /sudo::FILE fails when /bin/sh points to zsh
Date: Thu, 21 Jun 2018 18:09:59 +0900
X-Debbugs-Cc: Michael Albinus <michael.albinus <at> gmx.de>

$ cat ~/.zshrc
[[ $TERM == "dumb" ]] && unsetopt zle && PS1='$ ' && return

$ sudo cat /root/.zshrc
[[ $TERM == "dumb" ]] && unsetopt zle && PS1='$ ' && return

$ sudo ln -sf /bin/zsh /bin/sh
$ emacs -Q -eval '(setq tramp-verbose 10)'
C-x d /sudo::/bin

;; After 1 minute I canceled the command, i.e. `C-g'
;; Following is the content of the tramp debug buffer:
--8<-----------------------------cut here---------------start------------->8---
;; Emacs: 27.0.50 Tramp: 2.4.0-pre -*- mode: outline; -*-
;; Location: /home/calancha/soft/emacs-master/lisp/net/tramp.elc Git: 5583e6460c38c5d613e732934b066421349a5259
17:57:38.930500 tramp-get-connection-property (7) # case-insensitive undef
17:57:38.931248 tramp-get-file-property (8) # /bin file-directory-p undef
17:57:38.931337 tramp-get-connection-property (7) # test undef
17:57:38.931385 tramp-get-test-command (5) # Finding a suitable ‘test’ command
17:57:38.931437 tramp-get-connection-property (7) # process-name nil
17:57:38.931486 tramp-get-connection-property (7) # process-name nil
17:57:38.931533 tramp-get-connection-property (7) # process-buffer nil
17:57:38.931586 tramp-get-connection-property (7) # process-buffer nil
17:57:38.931627 tramp-set-connection-property (7) # process-buffer nil
17:57:38.931822 tramp-maybe-open-connection (3) # Opening connection for root <at> calancha-pc.dy.bbexcite.jp using sudo...
17:57:38.933788 tramp-get-local-locale (7) # locale en_US.utf8
17:57:38.934065 tramp-get-connection-property (7) # login-args undef
17:57:38.934225 tramp-get-connection-property (7) # login-args undef
17:57:38.934386 tramp-get-connection-property (7) # process-name nil
17:57:38.934459 tramp-get-connection-property (7) # process-buffer nil
17:57:38.934983 tramp-maybe-open-connection (6) # /bin/sh -i
17:57:38.935092 tramp-get-connection-property (7) # check-remote-echo nil
17:57:38.935183 tramp-get-connection-property (7) # check-remote-echo nil
17:57:38.936253 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run t
%                                                                               
17:57:38.936369 tramp-get-connection-property (7) # check-remote-echo nil
17:57:38.936451 tramp-get-connection-property (7) # check-remote-echo nil
17:57:38.936893 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run t
%                                                                               
#$ [?2004h
17:57:38.936963 tramp-get-connection-property (7) # check-remote-echo nil
17:57:38.937012 tramp-get-connection-property (7) # check-remote-echo nil
17:57:39.938226 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:39.938337 tramp-get-connection-property (7) # check-remote-echo nil
17:57:39.938394 tramp-get-connection-property (7) # check-remote-echo nil
17:57:40.939619 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:40.939717 tramp-get-connection-property (7) # check-remote-echo nil
17:57:40.939774 tramp-get-connection-property (7) # check-remote-echo nil
17:57:41.941010 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:41.941120 tramp-get-connection-property (7) # check-remote-echo nil
17:57:41.941176 tramp-get-connection-property (7) # check-remote-echo nil
17:57:42.942364 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:42.942474 tramp-get-connection-property (7) # check-remote-echo nil
17:57:42.942533 tramp-get-connection-property (7) # check-remote-echo nil
17:57:43.943718 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:43.943833 tramp-get-connection-property (7) # check-remote-echo nil
17:57:43.943892 tramp-get-connection-property (7) # check-remote-echo nil
17:57:44.945288 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:44.945402 tramp-get-connection-property (7) # check-remote-echo nil
17:57:44.945463 tramp-get-connection-property (7) # check-remote-echo nil
17:57:45.946721 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:45.946823 tramp-get-connection-property (7) # check-remote-echo nil
17:57:45.946904 tramp-get-connection-property (7) # check-remote-echo nil
17:57:46.948155 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:46.948263 tramp-get-connection-property (7) # check-remote-echo nil
17:57:46.948320 tramp-get-connection-property (7) # check-remote-echo nil
17:57:47.949508 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:47.949634 tramp-get-connection-property (7) # check-remote-echo nil
17:57:47.949699 tramp-get-connection-property (7) # check-remote-echo nil
17:57:48.950375 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:48.950485 tramp-get-connection-property (7) # check-remote-echo nil
17:57:48.950545 tramp-get-connection-property (7) # check-remote-echo nil
17:57:49.950749 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:49.950850 tramp-get-connection-property (7) # check-remote-echo nil
17:57:49.950907 tramp-get-connection-property (7) # check-remote-echo nil
17:57:50.952169 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:50.952306 tramp-get-connection-property (7) # check-remote-echo nil
17:57:50.952367 tramp-get-connection-property (7) # check-remote-echo nil
17:57:51.953626 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:51.953726 tramp-get-connection-property (7) # check-remote-echo nil
17:57:51.953783 tramp-get-connection-property (7) # check-remote-echo nil
17:57:52.954980 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:52.955082 tramp-get-connection-property (7) # check-remote-echo nil
17:57:52.955140 tramp-get-connection-property (7) # check-remote-echo nil
17:57:53.956340 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:53.956443 tramp-get-connection-property (7) # check-remote-echo nil
17:57:53.956501 tramp-get-connection-property (7) # check-remote-echo nil
17:57:54.957692 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:54.957802 tramp-get-connection-property (7) # check-remote-echo nil
17:57:54.957874 tramp-get-connection-property (7) # check-remote-echo nil
17:57:55.959064 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:55.959175 tramp-get-connection-property (7) # check-remote-echo nil
17:57:55.959234 tramp-get-connection-property (7) # check-remote-echo nil
17:57:56.960421 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:56.960541 tramp-get-connection-property (7) # check-remote-echo nil
17:57:56.960602 tramp-get-connection-property (7) # check-remote-echo nil
17:57:57.961791 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:57.961904 tramp-get-connection-property (7) # check-remote-echo nil
17:57:57.961964 tramp-get-connection-property (7) # check-remote-echo nil
17:57:58.963150 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:58.963253 tramp-get-connection-property (7) # check-remote-echo nil
17:57:58.963313 tramp-get-connection-property (7) # check-remote-echo nil
17:57:59.964253 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:57:59.964420 tramp-get-connection-property (7) # check-remote-echo nil
17:57:59.964500 tramp-get-connection-property (7) # check-remote-echo nil
17:58:00.965708 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:00.965811 tramp-get-connection-property (7) # check-remote-echo nil
17:58:00.965871 tramp-get-connection-property (7) # check-remote-echo nil
17:58:01.967062 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:01.967184 tramp-get-connection-property (7) # check-remote-echo nil
17:58:01.967248 tramp-get-connection-property (7) # check-remote-echo nil
17:58:02.968435 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:02.968545 tramp-get-connection-property (7) # check-remote-echo nil
17:58:02.968613 tramp-get-connection-property (7) # check-remote-echo nil
17:58:03.969805 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:03.969913 tramp-get-connection-property (7) # check-remote-echo nil
17:58:03.969971 tramp-get-connection-property (7) # check-remote-echo nil
17:58:04.971197 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:04.971300 tramp-get-connection-property (7) # check-remote-echo nil
17:58:04.971358 tramp-get-connection-property (7) # check-remote-echo nil
17:58:05.972615 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:05.972717 tramp-get-connection-property (7) # check-remote-echo nil
17:58:05.972775 tramp-get-connection-property (7) # check-remote-echo nil
17:58:06.973107 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:06.973217 tramp-get-connection-property (7) # check-remote-echo nil
17:58:06.973276 tramp-get-connection-property (7) # check-remote-echo nil
17:58:07.974499 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:07.974606 tramp-get-connection-property (7) # check-remote-echo nil
17:58:07.974664 tramp-get-connection-property (7) # check-remote-echo nil
17:58:08.975880 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:08.975993 tramp-get-connection-property (7) # check-remote-echo nil
17:58:08.976065 tramp-get-connection-property (7) # check-remote-echo nil
17:58:09.976733 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:09.976837 tramp-get-connection-property (7) # check-remote-echo nil
17:58:09.976894 tramp-get-connection-property (7) # check-remote-echo nil
17:58:10.977620 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:10.977720 tramp-get-connection-property (7) # check-remote-echo nil
17:58:10.977777 tramp-get-connection-property (7) # check-remote-echo nil
17:58:11.978996 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:11.979101 tramp-get-connection-property (7) # check-remote-echo nil
17:58:11.979159 tramp-get-connection-property (7) # check-remote-echo nil
17:58:12.980358 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:12.980518 tramp-get-connection-property (7) # check-remote-echo nil
17:58:12.980624 tramp-get-connection-property (7) # check-remote-echo nil
17:58:13.981863 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:13.982062 tramp-get-connection-property (7) # check-remote-echo nil
17:58:13.982173 tramp-get-connection-property (7) # check-remote-echo nil
17:58:14.983483 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:14.983641 tramp-get-connection-property (7) # check-remote-echo nil
17:58:14.983741 tramp-get-connection-property (7) # check-remote-echo nil
17:58:15.984978 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:15.985100 tramp-get-connection-property (7) # check-remote-echo nil
17:58:15.985151 tramp-get-connection-property (7) # check-remote-echo nil
17:58:16.986351 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:16.986507 tramp-get-connection-property (7) # check-remote-echo nil
17:58:16.986606 tramp-get-connection-property (7) # check-remote-echo nil
17:58:17.987829 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:17.987922 tramp-get-connection-property (7) # check-remote-echo nil
17:58:17.987970 tramp-get-connection-property (7) # check-remote-echo nil
17:58:18.988286 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:18.988427 tramp-get-connection-property (7) # check-remote-echo nil
17:58:18.988522 tramp-get-connection-property (7) # check-remote-echo nil
17:58:19.989752 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:19.989918 tramp-get-connection-property (7) # check-remote-echo nil
17:58:19.990037 tramp-get-connection-property (7) # check-remote-echo nil
17:58:20.991300 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:20.991402 tramp-get-connection-property (7) # check-remote-echo nil
17:58:20.991474 tramp-get-connection-property (7) # check-remote-echo nil
17:58:21.992277 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:21.992438 tramp-get-connection-property (7) # check-remote-echo nil
17:58:21.992563 tramp-get-connection-property (7) # check-remote-echo nil
17:58:22.993801 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:22.993902 tramp-get-connection-property (7) # check-remote-echo nil
17:58:22.993952 tramp-get-connection-property (7) # check-remote-echo nil
17:58:23.995116 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:23.995205 tramp-get-connection-property (7) # check-remote-echo nil
17:58:23.995253 tramp-get-connection-property (7) # check-remote-echo nil
17:58:24.996248 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:24.996340 tramp-get-connection-property (7) # check-remote-echo nil
17:58:24.996390 tramp-get-connection-property (7) # check-remote-echo nil
17:58:25.997580 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:25.997720 tramp-get-connection-property (7) # check-remote-echo nil
17:58:25.997805 tramp-get-connection-property (7) # check-remote-echo nil
17:58:26.999037 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:26.999131 tramp-get-connection-property (7) # check-remote-echo nil
17:58:26.999182 tramp-get-connection-property (7) # check-remote-echo nil
17:58:28.000242 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:28.000333 tramp-get-connection-property (7) # check-remote-echo nil
17:58:28.000383 tramp-get-connection-property (7) # check-remote-echo nil
17:58:29.001545 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:29.001645 tramp-get-connection-property (7) # check-remote-echo nil
17:58:29.001696 tramp-get-connection-property (7) # check-remote-echo nil
17:58:30.002340 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:30.002433 tramp-get-connection-property (7) # check-remote-echo nil
17:58:30.002484 tramp-get-connection-property (7) # check-remote-echo nil
17:58:31.003678 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:31.003783 tramp-get-connection-property (7) # check-remote-echo nil
17:58:31.003844 tramp-get-connection-property (7) # check-remote-echo nil
17:58:32.004268 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:32.004356 tramp-get-connection-property (7) # check-remote-echo nil
17:58:32.004427 tramp-get-connection-property (7) # check-remote-echo nil
17:58:33.005613 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:33.005720 tramp-get-connection-property (7) # check-remote-echo nil
17:58:33.005780 tramp-get-connection-property (7) # check-remote-echo nil
17:58:34.006973 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:34.007077 tramp-get-connection-property (7) # check-remote-echo nil
17:58:34.007147 tramp-get-connection-property (7) # check-remote-echo nil
17:58:35.008320 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:35.008420 tramp-get-connection-property (7) # check-remote-echo nil
17:58:35.008485 tramp-get-connection-property (7) # check-remote-echo nil
17:58:36.009666 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:36.009755 tramp-get-connection-property (7) # check-remote-echo nil
17:58:36.009806 tramp-get-connection-property (7) # check-remote-echo nil
17:58:37.011022 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:37.011136 tramp-get-connection-property (7) # check-remote-echo nil
17:58:37.011197 tramp-get-connection-property (7) # check-remote-echo nil
17:58:38.012381 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:38.012485 tramp-get-connection-property (7) # check-remote-echo nil
17:58:38.012545 tramp-get-connection-property (7) # check-remote-echo nil
17:58:39.013737 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:39.013843 tramp-get-connection-property (7) # check-remote-echo nil
17:58:39.013903 tramp-get-connection-property (7) # check-remote-echo nil
17:58:40.015096 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:40.015204 tramp-get-connection-property (7) # check-remote-echo nil
17:58:40.015264 tramp-get-connection-property (7) # check-remote-echo nil
17:58:41.016462 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:41.016567 tramp-get-connection-property (7) # check-remote-echo nil
17:58:41.027721 tramp-get-connection-property (7) # check-remote-echo nil
17:58:42.028335 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:42.028476 tramp-get-connection-property (7) # check-remote-echo nil
17:58:42.028532 tramp-get-connection-property (7) # check-remote-echo nil
17:58:43.029719 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:43.029820 tramp-get-connection-property (7) # check-remote-echo nil
17:58:43.029879 tramp-get-connection-property (7) # check-remote-echo nil
17:58:44.031132 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:44.031231 tramp-get-connection-property (7) # check-remote-echo nil
17:58:44.031287 tramp-get-connection-property (7) # check-remote-echo nil
17:58:45.032506 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:45.032606 tramp-get-connection-property (7) # check-remote-echo nil
17:58:45.032662 tramp-get-connection-property (7) # check-remote-echo nil
17:58:46.033872 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:46.033994 tramp-get-connection-property (7) # check-remote-echo nil
17:58:46.034053 tramp-get-connection-property (7) # check-remote-echo nil
17:58:47.035248 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:47.035351 tramp-get-connection-property (7) # check-remote-echo nil
17:58:47.035408 tramp-get-connection-property (7) # check-remote-echo nil
17:58:48.036630 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:48.036729 tramp-get-connection-property (7) # check-remote-echo nil
17:58:48.036784 tramp-get-connection-property (7) # check-remote-echo nil
17:58:49.038041 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:49.038139 tramp-get-connection-property (7) # check-remote-echo nil
17:58:49.038194 tramp-get-connection-property (7) # check-remote-echo nil
17:58:50.039367 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:50.039472 tramp-get-connection-property (7) # check-remote-echo nil
17:58:50.039531 tramp-get-connection-property (7) # check-remote-echo nil
17:58:51.040790 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:51.040889 tramp-get-connection-property (7) # check-remote-echo nil
17:58:51.040945 tramp-get-connection-property (7) # check-remote-echo nil
17:58:52.042161 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:52.042263 tramp-get-connection-property (7) # check-remote-echo nil
17:58:52.042319 tramp-get-connection-property (7) # check-remote-echo nil
17:58:53.043574 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:53.043672 tramp-get-connection-property (7) # check-remote-echo nil
17:58:53.043728 tramp-get-connection-property (7) # check-remote-echo nil
17:58:54.044950 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:54.045049 tramp-get-connection-property (7) # check-remote-echo nil
17:58:54.045106 tramp-get-connection-property (7) # check-remote-echo nil
17:58:55.046290 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:55.046396 tramp-get-connection-property (7) # check-remote-echo nil
17:58:55.046454 tramp-get-connection-property (7) # check-remote-echo nil
17:58:56.047678 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:56.047978 tramp-get-connection-property (7) # check-remote-echo nil
17:58:56.048082 tramp-get-connection-property (7) # check-remote-echo nil
17:58:57.049340 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:57.049440 tramp-get-connection-property (7) # check-remote-echo nil
17:58:57.049496 tramp-get-connection-property (7) # check-remote-echo nil
17:58:58.050703 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:58.050806 tramp-get-connection-property (7) # check-remote-echo nil
17:58:58.050863 tramp-get-connection-property (7) # check-remote-echo nil
17:58:59.052058 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:58:59.052177 tramp-get-connection-property (7) # check-remote-echo nil
17:58:59.052235 tramp-get-connection-property (7) # check-remote-echo nil
17:59:00.053505 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:59:00.053613 tramp-get-connection-property (7) # check-remote-echo nil
17:59:00.053669 tramp-get-connection-property (7) # check-remote-echo nil
17:59:01.054929 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run nil
%                                                                               
#$ [?2004h
17:59:01.055028 tramp-get-connection-property (7) # check-remote-echo nil
17:59:01.055085 tramp-get-connection-property (7) # check-remote-echo nil
17:59:01.832162 tramp-maybe-open-connection (3) # Opening connection for root <at> calancha-pc.dy.bbexcite.jp using sudo...failed
17:59:01.834591 tramp-get-file-property (8) #  file-truename nil
17:59:01.834722 tramp-flush-directory-properties (8) # 
17:59:01.834822 tramp-get-connection-property (7) # process-name nil
17:59:01.834900 tramp-get-connection-property (7) # process-name nil
17:59:01.834991 tramp-flush-connection-properties (7) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* nil
17:59:01.835144 tramp-get-connection-property (7) # process-name nil
17:59:01.835493 tramp-process-sentinel (5) # Sentinel called: ‘#<process *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp*>’ ‘killed
’
17:59:01.835660 tramp-flush-connection-properties (7) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* nil
17:59:01.835879 tramp-get-file-property (8) #  file-truename nil
17:59:01.836123 tramp-flush-directory-properties (8) # 
17:59:01.838168 tramp-flush-connection-properties (7) # (tramp-file-name sudo root nil calancha-pc.dy.bbexcite.jp nil nil nil) (process-buffer)
17:59:01.839437 tramp-get-connection-property (7) # process-buffer nil
17:59:01.839834 tramp-file-name-handler (1) # Interrupt received in operation (file-directory-p /sudo:root <at> calancha-pc.dy.bbexcite.jp:/bin)

--8<-----------------------------cut here---------------end--------------->8---


In GNU Emacs 27.0.50 (build 18, x86_64-pc-linux-gnu, GTK+ Version 3.22.11)
 of 2018-06-21 built on calancha-pc.dy.bbexcite.jp
Repository revision: 5583e6460c38c5d613e732934b066421349a5259
Windowing system distributor 'The X.Org Foundation', version 11.0.11902000
System Description: Debian GNU/Linux 9 (stretch)





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Thu, 21 Jun 2018 11:06:02 GMT) Full text and rfc822 format available.

Message #8 received at 31924 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Tino Calancha <tino.calancha <at> gmail.com>
Cc: 31924 <at> debbugs.gnu.org
Subject: Re: bug#31924: 27.0.50;
 tramp handler /sudo::FILE fails when /bin/sh points to zsh
Date: Thu, 21 Jun 2018 13:05:13 +0200
Tino Calancha <tino.calancha <at> gmail.com> writes:

Hi Tino,

thanks for the traces. Tramp doesn't run too much. First, it invokes the
local shell:

> 17:57:38.934983 tramp-maybe-open-connection (6) # /bin/sh -i

And this returns a nifty prompt:

> 17:57:38.936893 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run t
> %                                                                               #$ [?2004h

That's it. According to
<https://emacs.stackexchange.com/questions/19848/weird-characters-in-shell-mode-with-zsh>,
"^[[?2004h" is good for bracketed paste mode. This must be disabled as
well, the reference I've quoted recommends "unset
zle_bracketed_paste". As said, I have no idea how this plays together
with what is already recommended for zsh in the Tramp manual.

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Sun, 24 Jun 2018 07:08:01 GMT) Full text and rfc822 format available.

Message #11 received at 31924 <at> debbugs.gnu.org (full text, mbox):

From: Tino Calancha <tino.calancha <at> gmail.com>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 31924 <at> debbugs.gnu.org, tino.calancha <at> gmail.com
Subject: Re: bug#31924: 27.0.50;
 tramp handler /sudo::FILE fails when /bin/sh points to zsh
Date: Sun, 24 Jun 2018 16:07:35 +0900
Michael Albinus <michael.albinus <at> gmx.de> writes:

> Tino Calancha <tino.calancha <at> gmail.com> writes:
>
> Hi Tino,
>
> thanks for the traces. Tramp doesn't run too much. First, it invokes the
> local shell:
>
>> 17:57:38.934983 tramp-maybe-open-connection (6) # /bin/sh -i
>
> And this returns a nifty prompt:
>
>> 17:57:38.936893 tramp-accept-process-output (10) # *tramp/sudo root <at> calancha-pc.dy.bbexcite.jp* run t
>> %                                                                               #$ [?2004h
>
> That's it. According to
> <https://emacs.stackexchange.com/questions/19848/weird-characters-in-shell-mode-with-zsh>,
> "^[[?2004h" is good for bracketed paste mode. This must be disabled as
> well, the reference I've quoted recommends "unset
> zle_bracketed_paste". As said, I have no idea how this plays together
> with what is already recommended for zsh in the Tramp manual.
Hi Michael,

I got a patch that works in my box.  It does 2 things:

1) Ensure that zsh is invoked as zsh, that is, not as sh.  Otherwise
   our dotfiles are ignored, and we keep getting the bracketed paste
   codes.
   
2) I also need to disable the zsh option promptcr, otherwise after I
introduce my root password, Emacs gets stuck in `tramp-wait-for-output';
this is becuse some '\r' are added in front the prompt, so the
regexp in ``tramp-wait-for-regexp' cannot match.
--8<-----------------------------cut here---------------start------------->8---
commit 30f90a77db4dc1ebe5c98ab33f36ddffd5302b50
Author: Tino Calancha <tino.calancha <at> gmail.com>
Date:   Sun Jun 24 16:03:40 2018 +0900

    Tramp: Handle /sudo::FILE when /bin/sh points to zsh
    
    If zsh is invoked as sh, then the dotfiles, e.g. ~/.zshrc., aren't read.
    We also need to unset the option promptcr, otherwise
    `tramp-wait-for-output' gets stuck.
    * lisp/net/tramp-sh.el (tramp-maybe-open-connection):
    Use (file-truename tramp-encoding-shell) as the PROGRAM
    in the `start-process' call (Bug#31924).
    
    * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
    Same.
    
    * lisp/net/tramp-sh.el (tramp-sh-extra-args): Don't add CR to the
    zsh prompt.

diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 26bf3cd0c0..49963bff9d 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -550,7 +550,9 @@ tramp-remote-process-environment
   :type '(repeat string))
 
 ;;;###tramp-autoload
-(defcustom tramp-sh-extra-args '(("/bash\\'" . "-norc -noprofile"))
+(defcustom tramp-sh-extra-args
+  '(("/bash\\'" . "-norc -noprofile")
+    ("/zsh\\'" . "--no-promptcr"))
   "Alist specifying extra arguments to pass to the remote shell.
 Entries are (REGEXP . ARGS) where REGEXP is a regular expression
 matching the shell file name and ARGS is a string specifying the
@@ -4110,7 +4112,11 @@ tramp-open-connection-setup-interactive-shell
 process to set up.  VEC specifies the connection."
   (let ((tramp-end-of-output tramp-initial-end-of-output)
 	(case-fold-search t))
-    (tramp-open-shell vec (tramp-get-method-parameter vec 'tramp-remote-shell))
+    (tramp-open-shell
+     vec
+     (if (not (equal "sudo" (tramp-file-name-method vec)))
+         (tramp-get-method-parameter vec 'tramp-remote-shell)
+       (file-truename (tramp-get-method-parameter vec 'tramp-remote-shell))))
 
     ;; Disable echo expansion.
     (tramp-message vec 5 "Setting up remote shell environment")
@@ -4793,6 +4799,7 @@ tramp-maybe-open-connection
 		     ;; W32 systems.
 		     (process-coding-system-alist nil)
 		     (coding-system-for-read nil)
+		     (enconding-shell (file-truename tramp-encoding-shell))
 		     ;; This must be done in order to avoid our file
 		     ;; name handler.
 		     (p (let ((default-directory
@@ -4802,9 +4809,9 @@ tramp-maybe-open-connection
 			   (tramp-get-connection-name vec)
 			   (tramp-get-connection-buffer vec)
 			   (if tramp-encoding-command-interactive
-			       (list tramp-encoding-shell
+			       (list encoding-shell
 				     tramp-encoding-command-interactive)
-			     (list tramp-encoding-shell))))))
+			     (list encoding-shell))))))
 
 		;; Set sentinel and query flag.  Initialize variables.
 		(set-process-sentinel p 'tramp-process-sentinel)
@@ -4819,7 +4826,7 @@ tramp-maybe-open-connection
 		;; Check whether process is alive.
 		(tramp-barf-if-no-shell-prompt
 		 p 10
-		 "Couldn't find local shell prompt for %s" tramp-encoding-shell)
+		 "Couldn't find local shell prompt for %s" encoding-shell)
 
 		;; Now do all the connections as specified.
 		(while target-alist
@@ -4834,7 +4841,12 @@ tramp-maybe-open-connection
 			 (login-args
 			  (tramp-get-method-parameter hop 'tramp-login-args))
 			 (login-env
-			  (tramp-get-method-parameter hop 'tramp-login-env))
+			  (if (not (equal "sudo" (tramp-file-name-method vec)))
+			      (tramp-get-method-parameter hop 'tramp-login-env)
+			    (cl-letf ((tmp-login-env
+			               (tramp-get-method-parameter hop 'tramp-login-env)))
+			      (setf (caadr tmp-login-env) (file-truename (caadr tmp-login-env)))
+			      tmp-login-env)))
 			 (async-args
 			  (tramp-get-method-parameter hop 'tramp-async-args))
 			 (connection-timeout
--8<-----------------------------cut here---------------end--------------->8---
In GNU Emacs 27.0.50 (build 49, x86_64-pc-linux-gnu, GTK+ Version 3.22.11)
 of 2018-06-24 built on calancha-pc.dy.bbexcite.jp
Repository revision: 6ffc6a698f5d425e402c35010394cdb17d8888ce
Windowing system distributor 'The X.Org Foundation', version 11.0.11902000
System Description: Debian GNU/Linux 9 (stretch)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Sun, 24 Jun 2018 07:16:02 GMT) Full text and rfc822 format available.

Message #14 received at 31924 <at> debbugs.gnu.org (full text, mbox):

From: Tino Calancha <tino.calancha <at> gmail.com>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 31924 <at> debbugs.gnu.org
Subject: Re: bug#31924: 27.0.50;
 tramp handler /sudo::FILE fails when /bin/sh points to zsh
Date: Sun, 24 Jun 2018 16:15:41 +0900
Tino Calancha <tino.calancha <at> gmail.com> writes:

>  
>      ;; Disable echo expansion.
>      (tramp-message vec 5 "Setting up remote shell environment")
> @@ -4793,6 +4799,7 @@ tramp-maybe-open-connection
>  		     ;; W32 systems.
>  		     (process-coding-system-alist nil)
>  		     (coding-system-for-read nil)
> +		     (enconding-shell (file-truename tramp-encoding-shell))
             ^^^^^^^^^^^^^^^^
This must read 'encoding-shell'.
Sometimes the '\r' (\015) appears in the second line of the buffer.
I can live with that, but it would be cool if we could make dissapear
such \015.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Sun, 24 Jun 2018 10:34:02 GMT) Full text and rfc822 format available.

Message #17 received at 31924 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Tino Calancha <tino.calancha <at> gmail.com>
Cc: 31924 <at> debbugs.gnu.org
Subject: Re: bug#31924: 27.0.50;
 tramp handler /sudo::FILE fails when /bin/sh points to zsh
Date: Sun, 24 Jun 2018 12:33:11 +0200
Tino Calancha <tino.calancha <at> gmail.com> writes:

> Hi Michael,

Hi Tino,

> I got a patch that works in my box.  It does 2 things:
>
> 1) Ensure that zsh is invoked as zsh, that is, not as sh.  Otherwise
>    our dotfiles are ignored, and we keep getting the bracketed paste
>    codes.
>    
> 2) I also need to disable the zsh option promptcr, otherwise after I
> introduce my root password, Emacs gets stuck in `tramp-wait-for-output';
> this is becuse some '\r' are added in front the prompt, so the
> regexp in ``tramp-wait-for-regexp' cannot match.

Point 2) is OK. But your solution for point 1) doesn't work in general.

> @@ -4110,7 +4112,11 @@ tramp-open-connection-setup-interactive-shell
>  process to set up.  VEC specifies the connection."
>    (let ((tramp-end-of-output tramp-initial-end-of-output)
>  	(case-fold-search t))
> -    (tramp-open-shell vec (tramp-get-method-parameter vec 'tramp-remote-shell))
> +    (tramp-open-shell
> +     vec
> +     (if (not (equal "sudo" (tramp-file-name-method vec)))
> +         (tramp-get-method-parameter vec 'tramp-remote-shell)
> +       (file-truename (tramp-get-method-parameter vec 'tramp-remote-shell))))

In tramp-sh.el, there shall be no code which relies on a given
method. Everything which is method specific, must be configured in
`tramp-methods'.

Furthermore, this code does not work at all. (file-truename "/bin/sh")
is always eval'ed on the local host, but you want to get information
about the remote host.

The better solution is to overwrite the `tramp-remote-shell' connection
property. Do something like this:

     (add-to-list 'tramp-connection-properties
                  (list (regexp-quote "/ssh:user <at> randomhost.your.domain:")
                        "remote-shell" "/bin/zsh"))

See the Tramp manual, (info "(tramp) Predefined connection information")

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Mon, 25 Jun 2018 01:37:01 GMT) Full text and rfc822 format available.

Message #20 received at 31924 <at> debbugs.gnu.org (full text, mbox):

From: Tino Calancha <tino.calancha <at> gmail.com>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 31924 <at> debbugs.gnu.org, tino.calancha <at> gmail.com
Subject: Re: bug#31924: 27.0.50;
 tramp handler /sudo::FILE fails when /bin/sh points to zsh
Date: Mon, 25 Jun 2018 10:36:39 +0900
Michael Albinus <michael.albinus <at> gmx.de> writes:

> Tino Calancha <tino.calancha <at> gmail.com> writes:
>
>> Hi Michael,
>
> Hi Tino,
>
>> I got a patch that works in my box.  It does 2 things:
>>
>> 1) Ensure that zsh is invoked as zsh, that is, not as sh.  Otherwise
>>    our dotfiles are ignored, and we keep getting the bracketed paste
>>    codes.
>>    
>> 2) I also need to disable the zsh option promptcr, otherwise after I
>> introduce my root password, Emacs gets stuck in `tramp-wait-for-output';
>> this is becuse some '\r' are added in front the prompt, so the
>> regexp in ``tramp-wait-for-regexp' cannot match.
>
> Point 2) is OK. But your solution for point 1) doesn't work in general.
Please consider to apply the restricted patch at the end of this
message.  It's clean and it doesn't add method specific stuff.

I have successfully connected into a remote machine using this patch,
with my local machine having:
/bin/sh -> /bin/zsh


>> @@ -4110,7 +4112,11 @@ tramp-open-connection-setup-interactive-shell
>>  process to set up.  VEC specifies the connection."
>>    (let ((tramp-end-of-output tramp-initial-end-of-output)
>>  	(case-fold-search t))
>> -    (tramp-open-shell vec (tramp-get-method-parameter vec 'tramp-remote-shell))
>> +    (tramp-open-shell
>> +     vec
>> +     (if (not (equal "sudo" (tramp-file-name-method vec)))
>> +         (tramp-get-method-parameter vec 'tramp-remote-shell)
>> +       (file-truename (tramp-get-method-parameter vec 'tramp-remote-shell))))
>
> In tramp-sh.el, there shall be no code which relies on a given
> method. Everything which is method specific, must be configured in
> `tramp-methods'.
Do you want to support /sudo when the local machine has
/bin/sh -> /bin/zsh?
* If yes: then we obviously need to introduce changes in the code; it's
  a pity not supporting out of the box, i.e., with emacs -Q,
  a great shell as zsh is.

* If no: then I suggest explicitely say in the manual that such
configuration won't work.  Currently the manual suggest a workaround
that cannot work, because our .zshrc is ignored.  Reading the manual
that is not obvious for the reader.

> Furthermore, this code does not work at all. (file-truename "/bin/sh")
> is always eval'ed on the local host, but you want to get information
> about the remote host.
Have you tried it? It works for me :-) and pretty well, actually.
As you know better than me, the remote host _is_ just the local host
when you are invoking /sudo method.

> The better solution is to overwrite the `tramp-remote-shell' connection
> property. Do something like this:
>
>      (add-to-list 'tramp-connection-properties
>                   (list (regexp-quote "/ssh:user <at> randomhost.your.domain:")
>                         "remote-shell" "/bin/zsh"))
>
> See the Tramp manual, (info "(tramp) Predefined connection information")
I am afraid this doesn't fix the issue.
* It won't work with emacs -Q
--8<-----------------------------cut here---------------start------------->8---
commit 789f6d789b93f87be4732a03c607a6a5b59dbaf0
Author: Tino Calancha <tino.calancha <at> gmail.com>
Date:   Mon Jun 25 09:58:05 2018 +0900

    Tramp: Remote connection when local /bin/sh points to zsh
    
    The dotfiles, e.g. ~/.zshrc., aren't read if zsh is invoked as sh.
    We also need to unset the option promptcr, otherwise
    `tramp-wait-for-output' might get stuck.
    
    * lisp/net/tramp-sh.el (tramp-maybe-open-connection):
    Use (file-truename tramp-encoding-shell) as the PROGRAM
    in the `start-process' call (Bug#31924).
    
    (tramp-sh-extra-args): Don't add CR to the zsh prompt.

diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 63b39a0378..ce196ff80e 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -550,7 +550,9 @@ tramp-remote-process-environment
   :type '(repeat string))
 
 ;;;###tramp-autoload
-(defcustom tramp-sh-extra-args '(("/bash\\'" . "-norc -noprofile"))
+(defcustom tramp-sh-extra-args
+  '(("/bash\\'" . "-norc -noprofile")
+    ("/zsh\\'" . "--no-promptcr"))
   "Alist specifying extra arguments to pass to the remote shell.
 Entries are (REGEXP . ARGS) where REGEXP is a regular expression
 matching the shell file name and ARGS is a string specifying the
@@ -4792,6 +4794,7 @@ tramp-maybe-open-connection
 		     ;; W32 systems.
 		     (process-coding-system-alist nil)
 		     (coding-system-for-read nil)
+		     (encoding-shell (file-truename tramp-encoding-shell))
 		     ;; This must be done in order to avoid our file
 		     ;; name handler.
 		     (p (let ((default-directory
@@ -4801,9 +4804,9 @@ tramp-maybe-open-connection
 			   (tramp-get-connection-name vec)
 			   (tramp-get-connection-buffer vec)
 			   (if tramp-encoding-command-interactive
-			       (list tramp-encoding-shell
+			       (list encoding-shell
 				     tramp-encoding-command-interactive)
-			     (list tramp-encoding-shell))))))
+			     (list encoding-shell))))))
 
 		;; Set sentinel and query flag.  Initialize variables.
 		(set-process-sentinel p 'tramp-process-sentinel)
@@ -4818,7 +4821,7 @@ tramp-maybe-open-connection
 		;; Check whether process is alive.
 		(tramp-barf-if-no-shell-prompt
 		 p 10
-		 "Couldn't find local shell prompt for %s" tramp-encoding-shell)
+		 "Couldn't find local shell prompt for %s" encoding-shell)
 
 		;; Now do all the connections as specified.
 		(while target-alist

--8<-----------------------------cut here---------------end--------------->8---




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Mon, 25 Jun 2018 12:56:02 GMT) Full text and rfc822 format available.

Message #23 received at 31924 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Tino Calancha <tino.calancha <at> gmail.com>
Cc: 31924 <at> debbugs.gnu.org
Subject: Re: bug#31924: 27.0.50;
 tramp handler /sudo::FILE fails when /bin/sh points to zsh
Date: Mon, 25 Jun 2018 14:54:59 +0200
Tino Calancha <tino.calancha <at> gmail.com> writes:

Hi Tino,

> Please consider to apply the restricted patch at the end of this
> message.  It's clean and it doesn't add method specific stuff.
>
> I have successfully connected into a remote machine using this patch,
> with my local machine having:
> /bin/sh -> /bin/zsh

Looks OK to me. You could install it into master.

>> In tramp-sh.el, there shall be no code which relies on a given
>> method. Everything which is method specific, must be configured in
>> `tramp-methods'.
>
> Do you want to support /sudo when the local machine has
> /bin/sh -> /bin/zsh?
> * If yes: then we obviously need to introduce changes in the code; it's
>   a pity not supporting out of the box, i.e., with emacs -Q,
>   a great shell as zsh is.

We shall try it.

>> Furthermore, this code does not work at all. (file-truename "/bin/sh")
>> is always eval'ed on the local host, but you want to get information
>> about the remote host.
> Have you tried it? It works for me :-) and pretty well, actually.
> As you know better than me, the remote host _is_ just the local host
> when you are invoking /sudo method.

Not always. Think about a remote file name "/ssh:remotehost|sudo:remotehost:".
The remote host is _not_ just the local host.

So we must refrain from

+    (tramp-open-shell
+     vec
+     (if (not (equal "sudo" (tramp-file-name-method vec)))
+         (tramp-get-method-parameter vec 'tramp-remote-shell)
+       (file-truename (tramp-get-method-parameter vec 'tramp-remote-shell))))

as shown in your first patch variant. Instead of using `file-truename',
one must run something like

--8<---------------cut here---------------start------------->8---
(tramp-open-shell
 vec
 (tramp-send-command-and-read
  vec (format "readlink --canonicalize %s"
              (tramp-get-method-parameter vec 'tramp-remote-shell))))
--8<---------------cut here---------------end--------------->8---

Completely untested.

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Mon, 25 Jun 2018 15:23:01 GMT) Full text and rfc822 format available.

Message #26 received at 31924 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Tino Calancha <tino.calancha <at> gmail.com>
Cc: 31924 <at> debbugs.gnu.org, michael.albinus <at> gmx.de
Subject: Re: bug#31924: 27.0.50;
 tramp handler /sudo::FILE fails when /bin/sh points to zsh
Date: Mon, 25 Jun 2018 18:22:08 +0300
> From: Tino Calancha <tino.calancha <at> gmail.com>
> Date: Mon, 25 Jun 2018 10:36:39 +0900
> Cc: 31924 <at> debbugs.gnu.org, tino.calancha <at> gmail.com
> 
> --- a/lisp/net/tramp-sh.el
> +++ b/lisp/net/tramp-sh.el
> @@ -550,7 +550,9 @@ tramp-remote-process-environment
>    :type '(repeat string))
>  
>  ;;;###tramp-autoload
> -(defcustom tramp-sh-extra-args '(("/bash\\'" . "-norc -noprofile"))
> +(defcustom tramp-sh-extra-args
> +  '(("/bash\\'" . "-norc -noprofile")
> +    ("/zsh\\'" . "--no-promptcr"))

If you change the default value of a defcustom, please update its
:version tag.

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Wed, 09 Oct 2019 11:01:01 GMT) Full text and rfc822 format available.

Message #29 received at 31924 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Tino Calancha <tino.calancha <at> gmail.com>
Cc: 31924 <at> debbugs.gnu.org
Subject: Re: bug#31924: 27.0.50; tramp handler /sudo::FILE fails when
 /bin/sh points to zsh
Date: Wed, 09 Oct 2019 13:00:36 +0200
Michael Albinus <michael.albinus <at> gmx.de> writes:

Hi Tino,

>> Please consider to apply the restricted patch at the end of this
>> message.  It's clean and it doesn't add method specific stuff.
>>
>> I have successfully connected into a remote machine using this patch,
>> with my local machine having:
>> /bin/sh -> /bin/zsh
>
> Looks OK to me. You could install it into master.

Somehow, this patch hasn't been applied ever. And there were also
problems with multi-hop, IIRC. Hmm.

Some weeks ago, I've worked on support of zsh in Tramp for remote
shells. So I've taken the opportunity to come back to this bug, which is
about the local (encoding) shell being zsh.

I've applied a patch to Emacs master, which should fix this. Could you
please test? All you need is to run (setq tramp-encoding-shell "/usr/bin/zsh")
in advance, which tells Tramp to use the proper arguments from
`tramp-sh-extra-args'.

Best regards, Michael.




bug Marked as fixed in versions 27.1. Request was from Michael Albinus <michael.albinus <at> gmx.de> to control <at> debbugs.gnu.org. (Wed, 09 Oct 2019 12:03:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Wed, 16 Oct 2019 10:42:02 GMT) Full text and rfc822 format available.

Message #34 received at 31924 <at> debbugs.gnu.org (full text, mbox):

From: Tino Calancha <tino.calancha <at> gmail.com>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 31924 <at> debbugs.gnu.org
Subject: Re: bug#31924: 27.0.50; tramp handler /sudo::FILE fails when /bin/sh
 points to zsh
Date: Wed, 16 Oct 2019 10:41:09 +0000 (UTC)
[Message part 1 (text/plain, inline)]

On Wed, 9 Oct 2019, Michael Albinus wrote:

> I've applied a patch to Emacs master, which should fix this. Could you
> please test? All you need is to run (setq tramp-encoding-shell "/usr/bin/zsh")
> in advance, which tells Tramp to use the proper arguments from
> `tramp-sh-extra-args'.

>I've applied a patch to Emacs master, which should fix this. Could you
>please test? All you need is to run (setq tramp-encoding-shell "/usr/bin/zsh")
>in advance, which tells Tramp to use the proper arguments from
>`tramp-sh-extra-args'.

It's not working for me :-(
 After I set `tramp-encidng-shell', tramp
detects the shell extra arguments, as you can see here:

10:14:09.547170 tramp-maybe-open-connection (6) # /usr/bin/zsh -i -f +Z -V

But apparently, those options are been ignored because I still see those 
funny characters after the prompt (I mean, [?2004h ) causing the time out 
(I hide the IP with MACHINE_IP):

10:14:19.556057 tramp-flush-connection-properties (7) # *tramp/sudo root <at> ip-MACHINE_IP* (temp-file password-vector session-timeout last-cmd-time)
10:14:19.556173 tramp-get-file-property (8) #  file-truename nil
10:14:19.556233 tramp-flush-directory-properties (8) # 
10:14:19.556912 tramp-get-connection-property (7) # process-buffer nil
10:14:19.556995 tramp-get-connection-property (7) # process-buffer nil
10:14:19.557108 tramp-process-actions (1) # File error: Timeout reached, see buffer ‘*tramp/sudo root <at> ip-MACHINE_IP*’ for details
#                                                                               #$ [?2004h
10:14:34.916278 tramp-process-actions (3) # Waiting for prompts from remote shell...failed
10:14:34.916546 tramp-maybe-open-connection (3) # Opening connection for root <at> ip-MACHINE_IP using sudo...failed

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Wed, 16 Oct 2019 11:02:01 GMT) Full text and rfc822 format available.

Message #37 received at 31924 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Tino Calancha <tino.calancha <at> gmail.com>
Cc: 31924 <at> debbugs.gnu.org
Subject: Re: bug#31924: 27.0.50; tramp handler /sudo::FILE fails when
 /bin/sh points to zsh
Date: Wed, 16 Oct 2019 13:01:37 +0200
Tino Calancha <tino.calancha <at> gmail.com> writes:

Hi Tino,

>> I've applied a patch to Emacs master, which should fix this. Could you
>> please test? All you need is to run (setq tramp-encoding-shell "/usr/bin/zsh")
>> in advance, which tells Tramp to use the proper arguments from
>> `tramp-sh-extra-args'.

> It's not working for me :-(
>  After I set `tramp-encidng-shell', tramp
> detects the shell extra arguments, as you can see here:

Unfortunately, I don't see anything. Could you please start a new Emacs
stanze via "emacs -Q -l tramp", and eval the form

(setq tramp-encoding-shell "/usr/bin/zsh"
      tramp-verbose 10)

Then open a remote file (it's sudo'ed, isn't it?), and after the error,
pls send me the complete Tramp debug buffer.

For privacy reasons, you could replace user name and host name with a
pattern of your choice. Or you send the debug buffer off-list, to me.

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Wed, 16 Oct 2019 11:37:02 GMT) Full text and rfc822 format available.

Message #40 received at 31924 <at> debbugs.gnu.org (full text, mbox):

From: Tino Calancha <tino.calancha <at> gmail.com>
To: 31924 <at> debbugs.gnu.org
Subject: Re: bug#31924: 27.0.50; tramp handler /sudo::FILE fails when /bin/sh
 points to zsh
Date: Wed, 16 Oct 2019 11:36:13 +0000 (UTC)

On Wed, 16 Oct 2019, Michael Albinus wrote:

> Unfortunately, I don't see anything. Could you please start a new Emacs
> stanze via "emacs -Q -l tramp", and eval the form
>
> (setq tramp-encoding-shell "/usr/bin/zsh"
>      tramp-verbose 10)
>
> Then open a remote file (it's sudo'ed, isn't it?), and after the error,
> pls send me the complete Tramp debug buffer.

Sent offlist to Michael the content of the tramp debug buffers.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Wed, 16 Oct 2019 13:22:01 GMT) Full text and rfc822 format available.

Message #43 received at 31924 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Tino Calancha <tino.calancha <at> gmail.com>
Cc: 31924 <at> debbugs.gnu.org
Subject: Re: bug#31924: 27.0.50; tramp handler /sudo::FILE fails when
 /bin/sh points to zsh
Date: Wed, 16 Oct 2019 15:21:17 +0200
Tino Calancha <tino.calancha <at> gmail.com> writes:

Hi Tino,

>> Then open a remote file (it's sudo'ed, isn't it?), and after the error,
>> pls send me the complete Tramp debug buffer.
>
> Sent offlist to Michael the content of the tramp debug buffers.

Thanks, this made it obvious what happened. I could reproduce it locally.

When I've fixed this bug, I've tested with the ssh method. sudo is kinda
different, I have adapted now the template for calling it.

Works for me now also with sudo. Pushed to master. Could you pls check?

When you recompile the pulled sources, you need also to regenerate
tramp-loaddefs.el. This is not performed by default, so I suggest to
apply at least

--8<---------------cut here---------------start------------->8---
make -C lisp autoloads all
--8<---------------cut here---------------end--------------->8---

Note also, that you need both these settings

--8<---------------cut here---------------start------------->8---
(setq tramp-encoding-shell "/usr/bin/zsh")
(add-to-list
 'tramp-connection-properties '("^/sudo:" "remote-shell" "/usr/bin/zsh"))
--8<---------------cut here---------------end--------------->8---

Of course, you could apply any regexp instead of "^/sudo:". If you take
nil instead, "/usr/bin/zsh" would run on all your remote hosts.

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Thu, 17 Oct 2019 15:25:02 GMT) Full text and rfc822 format available.

Message #46 received at 31924 <at> debbugs.gnu.org (full text, mbox):

From: Tino Calancha <tino.calancha <at> gmail.com>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 31924 <at> debbugs.gnu.org
Subject: Re: bug#31924: 27.0.50; tramp handler /sudo::FILE fails when /bin/sh
 points to zsh
Date: Thu, 17 Oct 2019 17:24:48 +0200 (CEST)

On Wed, 16 Oct 2019, Michael Albinus wrote:

> When I've fixed this bug, I've tested with the ssh method. sudo is kinda
> different, I have adapted now the template for calling it.
>
> Works for me now also with sudo. Pushed to master. Could you pls check?
Good job Michael, I confirm now it's working in all my machines.

Thank you, I think you might want to close the bug now.





Reply sent to Michael Albinus <michael.albinus <at> gmx.de>:
You have taken responsibility. (Thu, 17 Oct 2019 16:26:01 GMT) Full text and rfc822 format available.

Notification sent to Tino Calancha <tino.calancha <at> gmail.com>:
bug acknowledged by developer. (Thu, 17 Oct 2019 16:26:02 GMT) Full text and rfc822 format available.

Message #51 received at 31924-done <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Tino Calancha <tino.calancha <at> gmail.com>
Cc: 31924-done <at> debbugs.gnu.org
Subject: Re: bug#31924: 27.0.50; tramp handler /sudo::FILE fails when
 /bin/sh points to zsh
Date: Thu, 17 Oct 2019 18:24:48 +0200
Version: 27.1

Tino Calancha <tino.calancha <at> gmail.com> writes:

> Good job Michael, I confirm now it's working in all my machines.
>
> Thank you, I think you might want to close the bug now.

Yes, I'm closing it.

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31924; Package emacs. (Thu, 24 Oct 2019 14:01:02 GMT) Full text and rfc822 format available.

Message #54 received at 31924 <at> debbugs.gnu.org (full text, mbox):

From: "Sheng Yang" <styang <at> fastmail.com>
To: 31924 <at> debbugs.gnu.org
Subject: Tramp handler timeout with custom method
Date: Thu, 24 Oct 2019 00:32:49 -0500
[Message part 1 (text/plain, inline)]
I am using tramp with a custom method, and the commit b70f885d seems to break it.

The usage is with yadm (https://yadm.io/), which prepares a bare git repo to host dotfiles. Here is a minimum script to reproduce the problem:

> #!/bin/bash
> # this file is /tmp/yadm.sh
> shell_opts=""
>  shell_path=""
>  if [[ "$SHELL" =~ bash$ ]]; then
>  shell_opts="--norc"
>  shell_path="\w"
>  elif [[ "$SHELL" =~ [cz]sh$ ]]; then
>  shell_opts="-f"
>  shell_path="%~"
>  fi
> 
>  if [[ "$TERM" == "dumb" ]]; then
>  yadm_prompt=" > "
>  fi
> 
>  # echo "Entering yadm repo"
> 
>  PROMPT="$yadm_prompt" PS1="$yadm_prompt" "$SHELL" $shell_opts
> 
>  echo "Leaving yadm repo"
> # end of yadm.sh

Start emacs with emacs -q, and evaluate the following

> (require 'tramp)
> (add-to-list 'tramp-methods
>  '("yadm"
>  (tramp-login-program "/tmp/yadm.sh")
>  ;; setting the following is crucial
>  (tramp-login-env
>  (("SHELL")
>  ("/bin/sh")))
>  (tramp-remote-shell "/bin/sh")
>  (tramp-remote-shell-args ("-c"))
>  (tramp-connection-timeout 10)))
> 
> (find-file "/yadm::.")

which will lead to a timeout.

Notes:
1. Note setting tramp-login-env with SHELL as "/bin/sh" is crucial for this method to work
2. My default shell is /usr/bin/zsh
3. The tramp buffer also has the mysterious "[?2004h" in the tramp buffer.

Please see log files with (setq tramp-verbose 10) in attachment.




Sheng Yang(杨圣), PhD student
Computer Science Department
University of Maryland, College Park
E-mail: styang <at> fastmail.com
E-mail (old but still used): yangsheng6810 <at> gmail.com

[Message part 2 (text/html, inline)]
[tramp.log (text/x-log, attachment)]
[tramp-yadm.log (text/x-log, attachment)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 22 Nov 2019 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 149 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.