[ESS] ess-17.11-tgz is not compressed

Martin Maechler m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Fri Dec 8 11:21:22 CET 2017


>>>>> Martin Maechler <maechler using stat.math.ethz.ch>
>>>>>     on Fri, 8 Dec 2017 09:57:08 +0100 writes:

>>>>> Ulrich Mueller <ulm using gentoo.org>
>>>>>     on Fri, 8 Dec 2017 09:34:52 +0100 writes:

>>>>> On Thu, 7 Dec 2017, Martin Maechler wrote:
    >>> well, I'm managing the ess.r-project.org server and I
    >>> have actually mounted the file system where
    >>> ess-17.11.tgz lives and 'ls -l' and 'file' say

    >>> ls -l ess-17.11.tgz -rw-r--r--. 1 maechler sfsstaff
    >>> 3275703 Nov 13 15:13 ess-17.11.tgz

    >>> file ess-17.11.tgz ess-17.11.tgz: gzip compressed data,
    >>> last modified: Mon Nov 13 14:13:29 2017, from Unix

    >> So ess-17.11.tgz is what we distro builders would call
    >> the "pristine tarball". It is the file that should be
    >> stored after downloading and whose integrity is verified
    >> with a checksum [1].

    >>> Now look closely at the output of wget -- which I can
    >>> reproduce in my (Fedora 26) Linux :

    >>>> ~/tmp/ess $ wget
    >>>> http://ess.r-project.org/downloads/ess/ess-17.11.tgz
    >>>> --2017-12-05 08:12:09--
    >>>> http://ess.r-project.org/downloads/ess/ess-17.11.tgz
    >>>> Resolving ess.r-project.org... 129.132.119.195
    >>>> Connecting to
    >>>> ess.r-project.org|129.132.119.195|:80... connected.
    >>>> HTTP request sent, awaiting response... 200 OK Length:
    >>>> 3275703 (3.1M) [application/x-tar]
    >>> ^^^^^^^^^^^^^^
    >>>> Saving to: ‘ess-17.11.tgz’
    >>>> 
    >>>> ess-17.11.tgz
    >>>> 100%[===========================================================================================>]
    >>>> 3.12M 6.30MB/s in 0.5s
    >>>> 
    >>>> 2017-12-05 08:12:09 (6.30 MB/s) - ‘ess-17.11.tgz’ saved
    >>>> [8898560]
    >>> ^^^^^^^^

    >> Regardless of wget's choice of defaults (which is a
    >> separate discussion), I believe that the server's
    >> response is not correct:

    >> | $ wget --server-response
    >> http://ess.r-project.org/downloads/ess/ess-17.11.tgz |
    >> --2017-12-08 09:07:29--
    >> http://ess.r-project.org/downloads/ess/ess-17.11.tgz |
    >> Resolving ess.r-project.org... 129.132.119.195 |
    >> Connecting to
    >> ess.r-project.org|129.132.119.195|:80... connected.  |
    >> HTTP request sent, awaiting response...  | HTTP/1.1 200
    >> OK | Date: Fri, 08 Dec 2017 08:07:29 GMT | Server:
    >> Apache/2.2.32 (Unix) | Last-Modified: Mon, 13 Nov 2017
    >> 14:13:29 GMT | ETag: "3e16cc-31fbb7-55ddddfe47440" |
    >> Accept-Ranges: bytes | Content-Length: 3275703 |
    >> Keep-Alive: timeout=15, max=100 | Connection: Keep-Alive
    >> | Content-Type: application/x-tar | Content-Encoding:
    >> gzip | Length: 3275703 (3.1M) [application/x-tar] |
    >> Saving to: ‘ess-17.11.tgz’ | [...]  | 2017-12-08 09:07:34
    >> (714 KB/s) - ‘ess-17.11.tgz’ saved [8898560]

    >> The server is sending a "Content-Encoding: gzip" header,
    >> indicating that gzip is used for transport compression,
    >> and that the compression should be undone on the
    >> receiver's side. But see above, we consider ess-17.11.tgz
    >> as the pristine sources, not ess-17.11.tar. So the server
    >> should neither apply nor indicate any Content-Encoding
    >> for it.

    >>> so indeed wget seems to do __silly!__ behave a bit
    >>> magically nowadays ... -- at least being honest about
    >>> it:

    >>> It gets a *.tgz of size 3275703 bytes (~ 3.1 M) and
    >>> internally uses gunzip absolutely with*OUT* saying so,
    >>> but then honestly reports that the result is of size
    >>> 8898560 bytes

    >> No. The client is explicitly asking for a .tgz file, but
    >> the server indicates in its response that it is sending a
    >> tar file (incorrectly named *.tgz, on top of that) which
    >> is compressed only for the purpose of transport.

    >> I don't want to clutter this message with another log,
    >> but in the downstream bug report [2] you can see that
    >> downloading the file from one of the Gentoo mirrors
    >> behaves correctly.


    >> [1]
    >> https://gitweb.gentoo.org/repo/gentoo.git/tree/app-emacs/ess/Manifest
    >> [2] https://bugs.gentoo.org/639752#c8

    > Thank you, Ulrich.

    > Your reasoning seems quite convincing, and I am enquiring
    > why our server does what you show above it does, and how
    > we can change that.

and it has been changed now .. with thanks to Ulrich (and our
D-MATH ETHZ Webmaster who reacted so quickly) :

Martin


$ wget --server-response http://ess.r-project.org/downloads/ess/ess-17.11.tgz
--2017-12-08 11:13:57--  http://ess.r-project.org/downloads/ess/ess-17.11.tgz
Resolving ess.r-project.org (ess.r-project.org)... 129.132.119.195
Connecting to ess.r-project.org (ess.r-project.org)|129.132.119.195|:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 200 OK
  Date: Fri, 08 Dec 2017 10:13:57 GMT
  Server: Apache/2.2.32 (Unix)
  Last-Modified: Mon, 13 Nov 2017 14:13:29 GMT
  ETag: "3e16cc-31fbb7-55ddddfe47440"
  Accept-Ranges: bytes
  Content-Length: 3275703
  Keep-Alive: timeout=15, max=100
  Connection: Keep-Alive
  Content-Type: application/x-gzip
Length: 3275703 (3.1M) [application/x-gzip]
Saving to: ‘ess-17.11.tgz’

ess-17.11.tgz              100%[=====================================>]   3.12M  --.-KB/s    in 0.03s   

2017-12-08 11:13:57 (99.6 MB/s) - ‘ess-17.11.tgz’ saved [3275703/3275703]

$




More information about the ESS-help mailing list