From 4657f08b7eebf01159f7d7dba8bcb0d44d68ac48 Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Tue, 25 Aug 2020 15:18:57 +0200 Subject: Sync with Tramp 2.4.5-pre * doc/misc/tramp.texi: Adapt Tramp and Emacs version numbers. (Remote processes): Describe `process-file-return-signal-string' and $INSIDE_EMACS. (Frequently Asked Questions): Mention Emacs 28. Describe `tramp-smb-options'. * doc/misc/trampver.texi: Change version to "2.4.5-pre". * lisp/net/tramp-adb.el (process-file-return-signal-string): Declare. (tramp-adb-handle-write-region): Flush the cache after the file has been written. (tramp-adb-handle-set-file-modes, tramp-adb-handle-set-file-times): Add optional _FLAG. (tramp-adb-handle-copy-file, tramp-adb-handle-rename-file) (tramp-adb-handle-process-file): Use `tramp-file-local-name'. (tramp-adb-get-signal-strings): New defun. (tramp-adb-handle-process-file): Use it. (tramp-adb-handle-make-process): Implement `stderr'. Use `insert-file-contents-literally'. (tramp-adb-send-command-and-check): Add optional argument EXIT-STATUS. (tramp-adb-handle-process-file): Use it. * lisp/net/tramp-archive.el (tramp-archive-file-name-handler): Increase `max-specpdl-size' temporarily. * lisp/net/tramp-cache.el (top): Use `insert-file-contents-literally'. * lisp/net/tramp-cmds.el (tramp-rename-files): Use `tramp-file-local-name'. * lisp/net/tramp-gvfs.el (tramp-gvfs-enabled): Prevent crash for older Emacsen. (top): Adapt `tramp-gvfs-unload-hook'. (tramp-gvfs-handle-file-system-info): Fix error. (tramp-gvfs-handle-set-file-modes, tramp-gvfs-handle-set-file-times): Add optional _FLAG. * lisp/net/tramp-rclone.el (tramp-rclone-flush-directory-cache): Fix a problem with older Emacsen. * lisp/net/tramp-sh.el (process-file-return-signal-string): Declare. (tramp-sh-extra-args): Add "-noediting" as bash arg. (tramp-hexdump-encode, tramp-hexdump-awk-encode) (tramp-od-encode, tramp-od-awk-encode): New defconst. (tramp-awk-encode, tramp-awk-decode): Adapt. (tramp-awk-coding-test): Remove. (tramp-remote-coding-commands): Add hexdump/awk encoding. (Bug#35639) (tramp-find-inline-encoding): Adapt handling of awk, hexdump and od. (tramp-get-remote-busybox, tramp-get-remote-awk) (tramp-get-remote-hexdump, tramp-get-remote-od): New defuns. (tramp-sh-handle-make-symbolic-link): (tramp-do-copy-or-rename-file-directly) (tramp-sh-handle-process-file, tramp-set-remote-path) (tramp-find-inline-encoding, tramp-get-remote-touch): Use `tramp-file-local-name'. (tramp-do-file-attributes-with-stat): Simplify shell command. Suppress errors (interpret as nil). (tramp-sh-handle-set-file-modes, tramp-sh-handle-set-file-times): Add optional _FLAG. (tramp-sh-handle-make-process): Do not visit with `insert-file-contents'. Delete tmp file only if exists. Support `stderr' as file name. Delete temporary stderr file. Flush connection properties in time. (tramp-sh-get-signal-strings): New defun. (tramp-sh-handle-process-file): Use it. (tramp-sh-handle-write-region): Copy to temp file only if FILENAME exists. (Bug#40156) (tramp-set-remote-path): Send the command in several chunks if it is too large. (Bug#42538) (tramp-open-connection-setup-interactive-shell): Move up "set +o vi +o emacs" command. (Bug#39399) (tramp-send-command-and-read): Suppress `signal-hook-function' when reading expression. (tramp-send-command-and-check): Add optional argument EXIT-STATUS. (tramp-sh-handle-process-file): Use it. (Bug#41099) * lisp/net/tramp-smb.el (tramp-smb-conf): Fix docstring. (tramp-smb-options): New defcustom. (tramp-smb-handle-copy-directory, tramp-smb-handle-file-acl) (tramp-smb-handle-set-file-acl, tramp-smb-maybe-open-connection): Use it. (tramp-smb-errors): Add "NT_STATUS_INVALID_PARAMETER". (tramp-smb-handle-make-symbolic-link) (tramp-smb-handle-process-file): Use `tramp-file-local-name'. * lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file): (tramp-sudoedit-handle-set-file-uid-gid): Use `tramp-unquote-file-local-name'. (tramp-sudoedit-handle-make-symbolic-link): Use `tramp-file-local-name'. (tramp-sudoedit-handle-file-system-info): Fix a scoping error. (tramp-sudoedit-handle-set-file-modes): (tramp-sudoedit-handle-set-file-times): Add optional _FLAG. * lisp/net/tramp.el: Bump version to 2.4.5-pre. (tramp-file-local-name, tramp-unquote-file-local-name): New defuns. (tramp-set-connection-local-variables-for-buffer) (tramp-equal-remote, tramp-handle-make-auto-save-file-name): Use `tramp-tramp-file-p'. (tramp-parse-file): Use `insert-file-contents-literally'. (tramp-handle-file-modes, tramp-handle-file-times): Add optional _FLAG. (tramp-handle-shell-command): Fix `window-start' in output buffer. (Bug#39171) Handle `shell-command-dont-erase-buffer'. (Bug#39067) Reorganize error-buffer handling. Set `default-directory'. (Bug#39253) (tramp-handle-shell-command, tramp-handle-start-file-process): Implement asynchronous `error-buffer'. (tramp-action-process-alive): Read pending output. (tramp-read-passwd): Use `tramp-compat-temporary-file-directory'. (Bug#39389, Bug#39489) (tramp-interrupt-process): Improve command. * lisp/net/trampver.el: Change version to "2.4.5-pre". (tramp-repository-branch, tramp-repository-version): Bind `debug-on-error' to nil. * test/lisp/net/tramp-tests.el (tramp-get-remote-gid) (process-file-return-signal-string) (shell-command-dont-erase-buffer): Declare. (tramp-test10-write-region, tramp-test28-process-file) (tramp-test29-start-file-process, tramp-test30-make-process) (tramp-test31-interrupt-process, tramp-test32-shell-command): Extend test. (tramp-test10-write-region, tramp-test21-file-links): Use function symbols. (tramp-test18-file-attributes): Check `file-ownership-preserved-p' only if possible. (tramp--test-async-shell-command): New defun. (tramp--test-shell-command-to-string-asynchronously): Use it. (tramp-test32-shell-command-dont-erase-buffer): New test. --- doc/misc/tramp.texi | 74 +++++++++++++++++++++++++++++++++++++------------- doc/misc/trampver.texi | 2 +- 2 files changed, 56 insertions(+), 20 deletions(-) (limited to 'doc/misc') diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index c68b9aad528..97a26421f2f 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -318,14 +318,14 @@ behind the scenes when you open a file with @value{tramp}. @uref{https://ftp.gnu.org/gnu/tramp/}. The version number of @value{tramp} can be obtained by the variable @code{tramp-version}. For released @value{tramp} versions, this is a three-number string -like ``2.4.2''. +like ``2.4.3''. A @value{tramp} release, which is packaged with Emacs, could differ slightly from the corresponding standalone release. This is because it isn't always possible to synchronize release dates between Emacs and @value{tramp}. Such version numbers have the Emacs version number -as suffix, like ``2.3.5.26.3''. This means @value{tramp} 2.3.5 as -integrated in Emacs 26.3. A complete list of @value{tramp} versions +as suffix, like ``2.4.3.27.1''. This means @value{tramp} 2.4.3 as +integrated in Emacs 27.1. A complete list of @value{tramp} versions packaged with Emacs can be retrieved by @vindex customize-package-emacs-version-alist @@ -337,12 +337,12 @@ packaged with Emacs can be retrieved by ELPA} package. Besides the standalone releases, further minor version of @value{tramp} will appear on GNU ELPA, until the next @value{tramp} release appears. These minor versions have a four-number string, like -``2.4.2.1''. +``2.4.3.1''. @value{tramp} development versions are available on Git servers. Development versions contain new and incomplete features. The development version of @value{tramp} is always the version number of -the next release, plus the suffix ``-pre'', like ``2.4.3-pre''. +the next release, plus the suffix ``-pre'', like ``2.4.4-pre''. One way to obtain @value{tramp} from Git server is to visit the Savannah project page at the following URL and then clicking on the @@ -2299,7 +2299,7 @@ string of that environment variable looks always like @example @group echo $INSIDE_EMACS -@result{} 26.2,tramp:2.3.4 +@result{} 27.1,tramp:2.4.3 @end group @end example @@ -3034,6 +3034,17 @@ host when the variable @code{default-directory} is remote: @end group @end lisp +@vindex process-file-return-signal-string +@code{process-file} shall return either the exit code of the process, +or a string describing the signal, when the process has been +interrupted. Since it cannot be determined reliably whether a remote +process has been interrupted, @code{process-file} returns always the +exit code. When the user option +@code{process-file-return-signal-string} is non-nil, +@code{process-file} regards all exit codes greater than 128 as an +indication that the process has been interrupted, and returns a +respective string. + Remote processes do not apply to @acronym{GVFS} (see @ref{GVFS-based methods}) because the remote file system is mounted on the local host and @value{tramp} just accesses by changing the @@ -3041,9 +3052,17 @@ and @value{tramp} just accesses by changing the @value{tramp} starts a remote process when a command is executed in a remote file or directory buffer. As of now, these packages have been -integrated to work with @value{tramp}: @file{compile.el} (commands -like @code{compile} and @code{grep}) and @file{gud.el} (@code{gdb} or -@code{perldb}). +integrated to work with @value{tramp}: @file{shell.el}, +@file{eshell.el}, @file{compile.el} (commands like @code{compile} and +@code{grep}) and @file{gud.el} (@code{gdb} or @code{perldb}). + +@vindex INSIDE_EMACS@r{, environment variable} +@value{tramp} always modifies the @env{INSIDE_EMACS} environment +variable for remote processes. Per default, this environment variable +shows the Emacs version. @value{tramp} adds its own version string, +so it looks like @samp{27.1,tramp:2.4.3.1}. However, other packages +might also add their name to this environment variable, like +@samp{27.1,comint,tramp:2.4.3.1}. For @value{tramp} to find the command on the remote, it must be accessible through the default search path as setup by @value{tramp} @@ -3238,10 +3257,10 @@ variables. @vindex async-shell-command-width @vindex COLUMNS@r{, environment variable} If Emacs supports the variable @code{async-shell-command-width} (since -Emacs 27.1), @value{tramp} cares about its value for asynchronous -shell commands. It specifies the number of display columns for -command output. For synchronous shell commands, a similar effect can -be achieved by adding the environment variable @env{COLUMNS} to +Emacs 27), @value{tramp} cares about its value for asynchronous shell +commands. It specifies the number of display columns for command +output. For synchronous shell commands, a similar effect can be +achieved by adding the environment variable @env{COLUMNS} to @code{tramp-remote-process-environment}. @@ -3725,7 +3744,7 @@ row are possible, like @file{/path/to/dir/file.tar.gz.uu/dir/file}. @vindex tramp-archive-all-gvfs-methods An archive file name could be a remote file name, as in -@file{/ftp:anonymous@@ftp.gnu.org:/gnu/tramp/tramp-2.3.2.tar.gz/INSTALL}. +@file{/ftp:anonymous@@ftp.gnu.org:/gnu/tramp/tramp-2.4.3.tar.gz/INSTALL}. Since all file operations are mapped internally to @acronym{GVFS} operations, remote file names supported by @code{tramp-gvfs} perform better, because no local copy of the file archive must be downloaded @@ -3736,7 +3755,7 @@ the similar @samp{/scp:user@@host:...}. See the constant If @code{url-handler-mode} is enabled, archives could be visited via URLs, like -@file{https://ftp.gnu.org/gnu/tramp/tramp-2.3.2.tar.gz/INSTALL}. This +@file{https://ftp.gnu.org/gnu/tramp/tramp-2.4.3.tar.gz/INSTALL}. This allows complex file operations like @lisp @@ -3744,8 +3763,8 @@ allows complex file operations like (progn (url-handler-mode 1) (ediff-directories - "https://ftp.gnu.org/gnu/tramp/tramp-2.3.1.tar.gz/tramp-2.3.1" - "https://ftp.gnu.org/gnu/tramp/tramp-2.3.2.tar.gz/tramp-2.3.2" "")) + "https://ftp.gnu.org/gnu/tramp/tramp-2.4.2.tar.gz/tramp-2.4.2" + "https://ftp.gnu.org/gnu/tramp/tramp-2.4.3.tar.gz/tramp-2.4.3" "")) @end group @end lisp @@ -3860,8 +3879,8 @@ Where is the latest @value{tramp}? @item Which systems does it work on? -The package works successfully on Emacs 24, Emacs 25, Emacs 26, and -Emacs 27. +The package works successfully on Emacs 24, Emacs 25, Emacs 26, Emacs +27, and Emacs 28. While Unix and Unix-like systems are the primary remote targets, @value{tramp} has equal success connecting to other platforms, such as @@ -4127,6 +4146,23 @@ Check @command{man ssh_config} whether these options are supported on your proxy host. +@item +@value{tramp} does not connect to Samba or MS Windows hosts running +SMB1 connection protocol. + +@vindex tramp-smb-options +Recent versions of @command{smbclient} do not support old connection +protocols by default. In order to connect to such a host, add a +respective option: + +@lisp +(add-to-list 'tramp-smb-options "client min protocol=NT1") +@end lisp + +@strong{Note} that using a deprecated connection protocol raises +security problems, you should do it only if absolutely necessary. + + @item File name completion does not work with @value{tramp} diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi index 478ec7037a8..cc3c768fe6e 100644 --- a/doc/misc/trampver.texi +++ b/doc/misc/trampver.texi @@ -8,7 +8,7 @@ @c In the Tramp GIT, the version numbers are auto-frobbed from @c tramp.el, and the bug report address is auto-frobbed from @c configure.ac. -@set trampver 2.4.3.27.1 +@set trampver 2.4.5-pre @set tramp-bug-report-address tramp-devel@@gnu.org @set emacsver 24.4 -- cgit v1.2.3