[ESS] ess-17.11-tgz is not compressed
Ulrich Mueller
u|m @end|ng |rom gentoo@org
Fri Dec 8 09:34:52 CET 2017
>>>>> 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
More information about the ESS-help
mailing list