Issue #888 has been updated by Yasuhiro MISE.


I can reproduce this issue, and I think following method might
have fixed that.

1. open ``c:/opt/ruby19/lib/ruby19/1.9.1/rubygems/package/tar_input.rb''
2. edit ``zipped_stream(entry)'' (line 203--216) as follows:

   def zipped_stream(entry)
     if defined? Rubinius then
       zis = Zlib::GzipReader.new entry
       dis = zis.read
       is = StringIO.new(dis)
     else
       # This is Jamis Buck's Zlib workaround for some unknown issue
       entry.read(10) # skip the gzip header
       zis = Zlib::Inflate.new(-Zlib::MAX_WBITS)

       ######### EDIT START ###
       #is = StringIO.new(zis.inflate(entry.read))
       
       __buf = ""
       while __temp = entry.read( 128 * 1024 ) do
         __buf << zis.inflate( __temp )
       end
       
       is = StringIO.new( __buf )
       ######### EDIT END #####

     end
   ensure
     zis.finish if zis
   end


On my machine this method seems like working, but I'm not sure it works correctly.
Could you confirm this?

Regards.

Y. MISE

----------------------------------------
http://redmine.ruby-lang.org/issues/show/888

----------------------------------------
http://redmine.ruby-lang.org