Eli Tziperman
Sat, 28 Jul 2001 19:35:02 -0700
Enter your bug report in this message, including as much detail as you
possibly can about the problem, what you did to cause it and what the
local and remote machines are.
If you can give a simple set of instructions to make this bug happen
reliably, please include those. Thank you for helping kill bugs in
TRAMP.
--bug report follows this line--
1) open a dired using ange-ftp to the address:
/eli@beach:/home/eli
2) with the cursor on one of the files, specify copy ("C") and give the
target directory address as follows
/r@rcp:[EMAIL PROTECTED]:/WWW/httpd-users/eser/People/Eli/private/
3) although tramp normally works with this address without a password, it
now prompts as follows:
Password for r@rcp:
there is now a buffer named *ftp r@rcp*:
ftp> open rcp
ftp: rcp: Unknown host
ftp>
and the tramp debug buffer is:
# Opening connection for [EMAIL PROTECTED] using rcp...
# Waiting 60s for shell or passwd prompt from kesem.weizmann.ac.il
Last login: Sun Jul 29 05:41:49 from beach.weizmann.a
Sun Microsystems Inc. SunOS 5.6 Generic August 1997
You have mail.
Terminal type was set to: vt100
biff: Command not found.
kesem:~->51% # Initializing remote shell
$ exec /bin/sh
# Waiting 30s for remote `/bin/sh' to come up...
exec /bin/sh
$ # Setting up remote shell environment
stty -inlcr -echo kill '^U'
$ $ # Determining coding system
foo
bar
$ # Waiting 30s for `HISTFILE=$HOME/.tramp_history; HISTSIZE=1'
$ # Waiting 30s for `set +o vi +o emacs'
$ # Waiting 30s for `unset MAIL MAILCHECK MAILPATH'
$ # Waiting 30s for `unset CDPATH'
$ # Setting shell prompt
$ PS1='
/////
'; PS2=''; PS3=''
$ echo hello
# Waiting for remote `/bin/sh' to come up...
hello
# Waiting for remote `/bin/sh' to come up...done
$ echo ~root
~root
$ while read d; do if test -x $d/ksh -a -f $d/ksh; then echo tramp_executable $d/ksh;
break; fi; done <<'EOF'
$ /bin
$ /usr/bin
$ /usr/sbin
$ /usr/local/bin
$ /usr/ccs/bin
$ /local/bin
$ /local/freeware/bin
$ /local/gnu/bin
$ /usr/freeware/bin
$ /usr/pkg/bin
$ EOF
tramp_executable /bin/ksh
# Starting remote shell `/bin/ksh' for tilde expansion...
$ PS1='$ ' ; exec /bin/ksh
$ $ echo hello
# Waiting for remote `/bin/ksh' to start up...
hello
# Waiting for remote `/bin/ksh' to start up...done
$ ls -d / 2>/dev/null; echo tramp_exit_status $?
/
tramp_exit_status 0
$ ls -d /\ this\ file\ does\ not\ exist\ 2>/dev/null; echo tramp_exit_status $?
tramp_exit_status 2
# Finding a suitable `ls' command
# Checking remote `/bin/ls' command for `-n' option
$ test -x /bin/ls 2>/dev/null; echo tramp_exit_status $?
tramp_exit_status 0
# Testing remote command `/bin/ls' for -n...
$ /bin/ls -lnd / >/dev/null 2>/dev/null; echo tramp_exit_status $?
tramp_exit_status 0
# Testing remote command `/bin/ls' for -n...okay
# Using remote command `/bin/ls' for getting directory listings
$ tramp_set_exit_status () {
return $1
}
$ ls -d /bin 2>/dev/null; echo tramp_exit_status $?
/bin
tramp_exit_status 0
$ ( test -d /bin 2>/dev/null; echo tramp_exit_status $? )
tramp_exit_status 0
$ ls -d /usr/bin 2>/dev/null; echo tramp_exit_status $?
/usr/bin
tramp_exit_status 0
$ ( test -d /usr/bin 2>/dev/null; echo tramp_exit_status $? )
tramp_exit_status 0
$ ls -d /usr/sbin 2>/dev/null; echo tramp_exit_status $?
/usr/sbin
tramp_exit_status 0
$ ( test -d /usr/sbin 2>/dev/null; echo tramp_exit_status $? )
tramp_exit_status 0
$ ls -d /usr/local/bin 2>/dev/null; echo tramp_exit_status $?
/usr/local/bin
tramp_exit_status 0
$ ( test -d /usr/local/bin 2>/dev/null; echo tramp_exit_status $? )
tramp_exit_status 0
$ ls -d /usr/ccs/bin 2>/dev/null; echo tramp_exit_status $?
/usr/ccs/bin
tramp_exit_status 0
$ ( test -d /usr/ccs/bin 2>/dev/null; echo tramp_exit_status $? )
tramp_exit_status 0
$ ls -d /local/bin 2>/dev/null; echo tramp_exit_status $?
/local/bin
tramp_exit_status 0
$ ( test -d /local/bin 2>/dev/null; echo tramp_exit_status $? )
tramp_exit_status 0
$ ls -d /local/freeware/bin 2>/dev/null; echo tramp_exit_status $?
tramp_exit_status 2
$ ls -d /local/gnu/bin 2>/dev/null; echo tramp_exit_status $?
tramp_exit_status 2
$ ls -d /usr/freeware/bin 2>/dev/null; echo tramp_exit_status $?
tramp_exit_status 2
$ ls -d /usr/pkg/bin 2>/dev/null; echo tramp_exit_status $?
tramp_exit_status 2
$ PATH=/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/ccs/bin:/local/bin; export PATH
$ LC_TIME=C; export LC_TIME; echo huhu
huhu
$ mesg n; echo huhu
huhu
$ biff n ; echo huhu
/bin/ksh: biff: not found
huhu
$ unalias ls; echo huhu
huhu
$ test / -nt /
$ tramp_test_nt () {
test -n "`find $1 -prune -newer $2 -print`"
}
$ while read d; do if test -x $d/perl5 -a -f $d/perl5; then echo tramp_executable
$d/perl5; break; fi; done <<'EOF'
$ /bin
$ /usr/bin
$ /usr/sbin
$ /usr/local/bin
$ /usr/ccs/bin
$ /local/bin
$ /local/freeware/bin
$ /local/gnu/bin
$ /usr/freeware/bin
$ /usr/pkg/bin
$ EOF
$ while read d; do if test -x $d/perl -a -f $d/perl; then echo tramp_executable
$d/perl; break; fi; done <<'EOF'
$ /bin
$ /usr/bin
$ /usr/sbin
$ /usr/local/bin
$ /usr/ccs/bin
$ /local/bin
$ /local/freeware/bin
$ /local/gnu/bin
$ /usr/freeware/bin
$ /usr/pkg/bin
$ EOF
tramp_executable /usr/local/bin/perl
# Sending the Perl `file-attributes' implementation.
$ tramp_file_attributes () {
/usr/local/bin/perl -e '$f = $ARGV[0];
@s = lstat($f);
if (($s[2] & 0170000) == 0120000) { $l = readlink($f); $l = "\"$l\""; }
elsif (($s[2] & 0170000) == 040000) { $l = "t"; }
else { $l = "nil" };
printf("(%s %u %u %u (%u %u) (%u %u) (%u %u) %u %u t (%u . %u) (%u %u))\n",
$l, $s[3], $s[4], $s[5], $s[8] >> 16 & 0xffff, $s[8] & 0xffff,
$s[9] >> 16 & 0xffff, $s[9] & 0xffff, $s[10] >> 16 & 0xffff, $s[10] & 0xffff,
$s[7], $s[2], $s[1] >> 16 & 0xffff, $s[1] & 0xffff, $s[0] >> 16 & 0xffff, $s[0] &
0xffff);' $1 2>/dev/null
}
# Sending the Perl `mime-encode' implementation.
$ while read d; do if test -x $d/mimencode -a -f $d/mimencode; then echo
tramp_executable $d/mimencode; break; fi; done <<'EOF'
$ /bin
$ /usr/bin
$ /usr/sbin
$ /usr/local/bin
$ /usr/ccs/bin
$ /local/bin
$ /local/freeware/bin
$ /local/gnu/bin
$ /usr/freeware/bin
$ /usr/pkg/bin
$ EOF
$ tramp_mimencode () {
/usr/local/bin/perl -e 'sub encode_base64 ($);
my $buf;
while(read(STDIN, $buf, 60*57)) { print encode_base64($buf) }
sub encode_base64 ($) {
my $res = "";
my $eol = "
";
pos($_[0]) = 0; # ensure start at the beginning
while ($_[0] =~ /(.{1,45})/gs) {
$res .= substr(pack("u", $1), 1);
chop($res);
}
$res =~ tr|` -_|AA-Za-z0-9+/|; # `# help emacs
# fix padding at the end
my $padding = (3 - length($_[0]) % 3) % 3;
$res =~ s/.{$padding}$/"=" x $padding/e if $padding;
# break encoded string into lines of no more than 76 characters each
if (length $eol) {
$res =~ s/(.{1,76})/$1$eol/g;
}
$res;}' $1 2>/dev/null
}
# Sending the Perl `mime-decode' implementation.
$ while read d; do if test -x $d/mimencode -a -f $d/mimencode; then echo
tramp_executable $d/mimencode; break; fi; done <<'EOF'
$ /bin
$ /usr/bin
$ /usr/sbin
$ /usr/local/bin
$ /usr/ccs/bin
$ /local/bin
$ /local/freeware/bin
$ /local/gnu/bin
$ /usr/freeware/bin
$ /usr/pkg/bin
$ EOF
$ tramp_mimedecode () {
/usr/local/bin/perl -e 'sub decode_base64 ($);
my $buf;
while(read(STDIN, $buf, 60*57)) { print decode_base64($buf) }
sub decode_base64 ($) {
local($^W) = 0; # unpack("u",...) gives bogus warning in 5.00[123]
my $str = shift;
my $res = "";
$str =~ tr|A-Za-z0-9+=/||cd; # remove non-base64 chars
if (length($str) % 4) {
warn("Length of base64 data not a multiple of 4")
}
$str =~ s/=+$//; # remove padding
$str =~ tr|A-Za-z0-9+/| -_|; # convert to uuencoded format
while ($str =~ /(.{1,60})/gs) {
my $len = chr(32 + length($1)*3/4); # compute length byte
$res .= unpack("u", $len . $1 ); # uudecode
}
$res;}' $1 2>/dev/null
}
$ while read d; do if test -x $d/ln -a -f $d/ln; then echo tramp_executable $d/ln;
break; fi; done <<'EOF'
$ /bin
$ /usr/bin
$ /usr/sbin
$ /usr/local/bin
$ /usr/ccs/bin
$ /local/bin
$ /local/freeware/bin
$ /local/gnu/bin
$ /usr/freeware/bin
$ /usr/pkg/bin
$ EOF
tramp_executable /bin/ln
$ ( test -d /WWW/httpd-users/eser/People/Eli/private 2>/dev/null; echo
tramp_exit_status $? )
tramp_exit_status 0
$ ls -d /WWW/httpd-users/eser/People/Eli/private/.emacs 2>/dev/null; echo
tramp_exit_status $?
tramp_exit_status 2
$ ( test -d /WWW/httpd-users/eser/People/Eli/private/.emacs 2>/dev/null; echo
tramp_exit_status $? )
tramp_exit_status 1
Emacs : GNU Emacs 21.0.104.1 (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2001-07-13 on beach.weizmann.ac.il
Package: tramp ($Id: tramp.el,v 2.30 2001/07/13 09:34:10 grossjoh Exp $)
current state:
==============
(setq
tramp-ls-command nil
tramp-test-groks-nt nil
tramp-file-exists-command nil
tramp-current-multi-method nil
tramp-current-method nil
tramp-current-user nil
tramp-current-host nil
tramp-auto-save-directory nil
tramp-default-method "rcp"
tramp-rsh-end-of-line "\n"
tramp-remote-path '("/bin" "/usr/bin" "/usr/sbin" "/usr/local/bin"
"/usr/ccs/bin" "/local/bin" "/local/freeware/bin"
"/local/gnu/bin" "/usr/freeware/bin" "/usr/pkg/bin")
tramp-login-prompt-regexp ".*ogin: *$"
tramp-password-prompt-regexp "^.*\\([pP]assword\\|passphrase.*\\): ? *$"
tramp-wrong-passwd-regexp "^.*\\(Permission denied.\\|Login [Ii]ncorrect\\|Received
signal [0-9]+\\|Connection \\(refused\\|closed\\)\\|Sorry, try again.\\|Name or
service not known\\).*$"
tramp-temp-name-prefix "tramp."
tramp-file-name-structure
'("\\`/r\\(@\\([a-zA-Z0-9]+\\)\\)?:\\(\\([-a-zA-Z0-9_#]+\\)@\\)?\\([-a-zA-Z0-9.]+\\):\\(.*\\)\\'"
2 4 5 6)
tramp-file-name-regexp "\\`/r[@:]"
tramp-make-tramp-file-format "/r@%m:%u@%h:%p"
tramp-end-of-output "/////"
shell-prompt-pattern "^[^#$%>\n]*[#$%>] *"
backup-by-copying nil
backup-by-copying-when-linked nil
backup-by-copying-when-mismatch nil
backup-by-copying-when-privileged-mismatch 200
)