Subject: Re: bug#44217: bug#44216: 28.0.50; Incorret during delete in Tramp: Trashing...done

From: Jean Louis <[email-masked]>
Date: Wed, 28 Oct 2020 13:54:20 +0300

* Michael Albinus <[email-masked]> [2020-10-27 23:13]:
> Jean Louis <[email-masked]> writes:
> 
> Hi Jean,
> 
> >> The Trash specification
> >> <https://specifications.freedesktop.org/trash-spec/trashspec-latest.html>
> >> says
> >
> > Not universal for every OSs. Freedesktop specification is exclusively
> > for GNU/Linux which accept parts or whole of Freedesktop, yet there
> > are those which do not.
> 
> GNU/Linux is the primary target for Emacs. It is perfect to support its spec.

Freedesktop.org is not equivalent to GNU/Linux.

It is maybe popular but it is not and need not be standard.

From: https://www.freedesktop.org/wiki/Specifications/

Interoperability specifications

freedesktop.org produces specifications for interoperability, but we
are not an official standards body. There is no requirement for
projects to implement all of these specifications, nor certification.

so

GNU/Linux distributions may decide to adhere or may not.

I hope you that Emacs should NOT be exclusively target for GNU/Linux
distributions adopting some of specifications from Freedesktop.org as
Emacs is widely used for example on BSD systems. 

Tramp is supporting various file systems and those file systems are
not necessarily on GNU/Linux and thus I do not think it is necessary
to include that support for Tramp considering wild range of file
systems that can be accessed and those file system yet to come.

Tramp should not target Freedesktop.org specification on remote file
systems when variable `delete-by-moving-to-trash' is set, this
variable should be local only.

- If it is not set, I see no message from Tramp related to trashing
  when file is being deleted.

- If it is set, then I see that Tramp is trashing the file, although
  it is not trashing the file in this context.

- my remote system does not have any trash nor Freedesktop.org
  specification.

- And I am using LineageOS/Replicant/Android remote file systems

Let us also note that Freedesktop.org is for "desktop" so it is not
specification for servers. Tramp accessing remote SSH or other servers
should not assume automatically it is accessing remote desktops.

Tramp may access remote files by using FTP, rsync, scp, and other
protocols, I just hope that trash inclusion is not intertwined in
those protocols where remote command execution would not even work.

OpenSSH was targeting primarily OpenBSD and we use it wildly in
GNU/Linux, it would be somehow unfair to say that Emacs with the Tramp
which is using OpenSSH coming from OpenBSD is targeting only
GNU/Linux. Emacs is widely used on all *BSD derivates and other OSes
not being GNU/Linux. 

Documentation:
Specifies whether to use the system’s trash can.
When non-nil, certain file deletion commands use the function
‘move-file-to-trash’ instead of deleting files outright.
This includes interactive calls to ‘delete-file’ and
‘delete-directory’ and the Dired deletion commands.

I think that variable shall be local only, so that Tramp does not even
attempt moving anything to Trash remotely.

While that Trash thing would be convenient for me personally, I think
it would be badly designed for above reasons.

-- 
Jean Louis