emacs-rcp  

tramp ($Id: tramp.el,v 2.30 2001/07/13 09:34:10 grossjoh Exp $); copying in dired from ange-ftp to tramp

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
 )

  • tramp ($Id: tramp.el,v 2.30 2001/07/13 09:34:10 grossjoh Exp $); copying in dired from ange-ftp to tramp Eli Tziperman