Subject: Re: [PATCH 0/5] Add Zstandard compression for installation and utilities

From: Michael Albinus <[email-masked]>
Date: Sun, 30 Dec 2018 11:06:10 +0100

Alex <[email-masked]> writes:

Hi Alex,

> I figured that it would be nice to support other compression programs
> for installed files, and Zstandard[1] seems like a good alternative
> for gzip in this area due to its fast decompression and wide range of
> options.

Thanks.

> 1) I tested about everything except the Tramp part. One possible issue
> is that zstd prints a progress/summary line to stdout without the -q
> flag when compressing a single file; does Tramp care about that here?

I cannot test your integration into tramp-archive.el, my Ubuntu 18.10
carries libarchive 3.2.2 only. Next year, @work, I have a Fedora 29
machine, which I can use for testing. Will report then.

Integration into tramp-sh.el works. The "-q" argument is not needed,
because Tramp redirects stderr to /dev/null for the compression
commands. The progress line seems to go there.

> diff --git a/etc/NEWS b/etc/NEWS
> index af99e29e40..e65823413b 100644
> --- a/etc/NEWS
> +++ b/etc/NEWS
> @@ -927,6 +927,10 @@ ad-hoc multi-hop file names must match the previous hop.
>  timeout, after which the underlying session is disabled.  This is for
>  security reasons.
>
> ++++
> +*** Zstandard compression is now supported when using libarchive 3.3
> +or newer.
> +
>  ** Rcirc

This is superfluous. tramp-archive.el is new in Emacs 27, and it is
mentioned in etc/NEWS. Changes on that file do not need to be documented
additionally.

Changes in compression of tramp-sh.el are not user visible, no need to
document them in etc/NEWS. This might change, if we decide to give the
user an option to decide, which compression has to be applied in
Tramp. That's not possible for now.

> --- a/lisp/net/tramp-archive.el
> +++ b/lisp/net/tramp-archive.el
> +;; ".gz", ".lrz", ".lz", ".lz4", ".lzma", ".lzo", ".uu", ".xz",".Z",
> +;; and .zst.  A valid archive file name would be

This shall be 

;; ".gz", ".lrz", ".lz", ".lz4", ".lzma", ".lzo", ".uu", ".xz", ".Z",
;; and ".zst".  A valid archive file name would be

> +    "tar" "tbz" "tgz" "tlz" "txz" ".tzst" ;; (Compressed) tape archives.

This shall be

    "tar" "tbz" "tgz" "tlz" "txz" "tzst" ;; (Compressed) tape archives.

Best regards, Michael.