On Apr 23, 2:57 pm, Eric Hodel <drbr... / segment7.net> wrote:
> On Apr 22, 2008, at 20:50 PM, denmat wrote:
>
> > Hi List,
>
> > I have ruby-1.8.6.114-1.fc7 and archive-tar-minitar (0.5.2).
>
> > If I run this script on windowsXP (ruby1.8.6.26 archive-tar-minitar
> > (0.5.2)) it completes without a problem
> > def tar_and_gzip(destination, paths)
> > Zlib::GzipWriter.new(File.open(destination, 'wb')) do |gzip|
>
> Try:
>
> open destination, 'wb' do |io|
>    Zlib::GzipWriter.wrap io do |gzip|
>
>
>
>
>
> >  begin
> >    out = Archive::Tar::Minitar::Output.new(gzip)
> >        paths.each do |f|
> >          Find.find(f) do |files|
> >                if FileTest.file?(files)
> >                     Minitar.pack_file(files, out)
> >                     $logger.info('tar_and_gzip') { "Packing file:
> > #{files}" }
> >                     Find.prune
> >                elsif FileTest.directory?(files)
> >                     Minitar.pack_file(files, out)
> >                     $logger.info('tar_and_gzip') { "Packing
> > directory: #{files}" }
> >                else
> >                     $logger.info('tar_and_gzip') { "Finished packing
> > files." }
> >                     Find.prune
> >                end
> >         end
> >       end
> >  ensure
> >    gzip.finish  # same result with gzip.close
>
> And remove this.
>
> >  end
> >  end
> > end
>
> > destination = '../buildspace'
> > tar_me = [ "control", "postinst", "md5sum" ]
>
> > tar_and_gzip("#{destination}/control.tar.gz", tar_me )
>
> > (* only changes to above script on the different boxes is the file
> > paths)
> > Yet the same script on my linux box produces:
> > zlib(finalizer): Zlib::GzipWriter object must be closed explicitly.
> > zlib(finalizer): the stream was freed prematurely.
> > zlib(finalizer): Zlib::GzipWriter object must be closed explicitly.
> > zlib(finalizer): the stream was freed prematurely.
>
> > Anyone seen this before or should I submit as a bug?
>
> > denmat

thank you that works.