From: naruse@... Date: 2014-02-25T15:20:14+00:00 Subject: [ruby-dev:48016] [ruby-trunk - Bug #9562] [Assigned] Cannot install gems from gzip-compressing gem server Issue #9562 has been updated by Yui NARUSE. Status changed from Open to Assigned Assignee set to Eric Hodel Target version set to current: 2.2.0 Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN to 1.9.3: DONTNEED, 2.0.0: REQUIRED, 2.1: REQUIRED You know, since Ruby 2.0.0, net/http automatically decode content-encoding;gzip. Therefore Gem::Request, which uses Net::HTTP internally, also decode gz file, for example specs.4.8.gz, if a gemsource server sets Content-Encoding: gzip to gz files. Individual gem servers may hit this issue if people accidentally set Content-Encoding: gzip. I think this issue should be avoided by RubyGems, and a patch may be following: diff --git a/lib/rubygems/request.rb b/lib/rubygems/request.rb index d2f076f..588dae4 100644 --- a/lib/rubygems/request.rb +++ b/lib/rubygems/request.rb @@ -112,6 +112,7 @@ class Gem::Request request.add_field 'User-Agent', @user_agent request.add_field 'Connection', 'keep-alive' request.add_field 'Keep-Alive', '30' + request.add_field 'Accept-Encoding', '' if @last_modified then request.add_field 'If-Modified-Since', @last_modified.httpdate ---------------------------------------- Bug #9562: Cannot install gems from gzip-compressing gem server https://bugs.ruby-lang.org/issues/9562#change-45470 * Author: 5 5 * Status: Assigned * Priority: Normal * Assignee: Eric Hodel * Category: lib/rubygems * Target version: current: 2.2.0 * ruby -v: ruby 2.0.0p353 (2013-11-22) [i386-mingw32] * Backport: 1.9.3: DONTNEED, 2.0.0: REQUIRED, 2.1: REQUIRED ---------------------------------------- gem generate_index で作成した gem server が gzip 圧縮を行う場合,Ruby 2.0 以上では gem のインストールに失敗します。 Ruby 1.9 では正常です。 サーバーを gzip 圧縮しない設定にすれば問題が解消します。 -- http://bugs.ruby-lang.org/