diff options
author | Diego Elio Pettenò <flameeyes@gentoo.org> | 2012-06-15 07:19:51 +0000 |
---|---|---|
committer | Diego Elio Pettenò <flameeyes@gentoo.org> | 2012-06-15 07:19:51 +0000 |
commit | 70ba47405dd4d9908019beeed4afedfdb622ce38 (patch) | |
tree | a46551371e9bc617725cf26077d4c9de87f142f6 /dev-ruby/archive-tar-minitar | |
parent | marked x86 per bug 416215 (diff) | |
download | gentoo-2-70ba47405dd4d9908019beeed4afedfdb622ce38.tar.gz gentoo-2-70ba47405dd4d9908019beeed4afedfdb622ce38.tar.bz2 gentoo-2-70ba47405dd4d9908019beeed4afedfdb622ce38.zip |
Add patch to fix minitar's reader on non-seekable streams.
(Portage version: 2.2.0_alpha110/cvs/Linux x86_64)
Diffstat (limited to 'dev-ruby/archive-tar-minitar')
3 files changed, 82 insertions, 1 deletions
diff --git a/dev-ruby/archive-tar-minitar/ChangeLog b/dev-ruby/archive-tar-minitar/ChangeLog index 7176d8311ff9..dd7a4578e4b7 100644 --- a/dev-ruby/archive-tar-minitar/ChangeLog +++ b/dev-ruby/archive-tar-minitar/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-ruby/archive-tar-minitar # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-ruby/archive-tar-minitar/ChangeLog,v 1.34 2012/06/15 06:56:40 flameeyes Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-ruby/archive-tar-minitar/ChangeLog,v 1.35 2012/06/15 07:19:51 flameeyes Exp $ + +*archive-tar-minitar-0.5.3-r1 (15 Jun 2012) + + 15 Jun 2012; Diego E. Pettenò <flameeyes@gentoo.org> + +archive-tar-minitar-0.5.3-r1.ebuild, + +files/archive-tar-minitar-0.5.3-pipes.patch: + Add patch to fix minitar's reader on non-seekable streams. *archive-tar-minitar-0.5.3 (15 Jun 2012) diff --git a/dev-ruby/archive-tar-minitar/archive-tar-minitar-0.5.3-r1.ebuild b/dev-ruby/archive-tar-minitar/archive-tar-minitar-0.5.3-r1.ebuild new file mode 100644 index 000000000000..7275a1e860a1 --- /dev/null +++ b/dev-ruby/archive-tar-minitar/archive-tar-minitar-0.5.3-r1.ebuild @@ -0,0 +1,30 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-ruby/archive-tar-minitar/archive-tar-minitar-0.5.3-r1.ebuild,v 1.1 2012/06/15 07:19:51 flameeyes Exp $ + +EAPI=4 +USE_RUBY="ruby18 ree18 ruby19 jruby" + +RUBY_FAKEGEM_NAME="minitar" + +RUBY_FAKEGEM_TASK_TEST="" +RUBY_FAKEGEM_TASK_DOC="" + +RUBY_FAKEGEM_EXTRADOC="README ChangeLog" + +inherit ruby-fakegem + +DESCRIPTION="Provides POSIX tarchive management from Ruby programs." +HOMEPAGE="http://rubyforge.org/projects/ruwiki/" + +LICENSE="|| ( GPL-2 Ruby )" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" +IUSE="" + +RESTRICT="test" + +RUBY_PATCHES=( + ${PN}-0.5.2-gentoo.patch + ${P}-pipes.patch +) diff --git a/dev-ruby/archive-tar-minitar/files/archive-tar-minitar-0.5.3-pipes.patch b/dev-ruby/archive-tar-minitar/files/archive-tar-minitar-0.5.3-pipes.patch new file mode 100644 index 000000000000..27b626869f48 --- /dev/null +++ b/dev-ruby/archive-tar-minitar/files/archive-tar-minitar-0.5.3-pipes.patch @@ -0,0 +1,44 @@ +Index: minitar-0.5.3/lib/archive/tar/minitar.rb +=================================================================== +--- minitar-0.5.3.orig/lib/archive/tar/minitar.rb ++++ minitar-0.5.3/lib/archive/tar/minitar.rb +@@ -486,7 +486,11 @@ module Archive::Tar::Minitar + @devminor = header.devminor + @prefix = header.prefix + @read = 0 +- @orig_pos = @io.pos ++ begin ++ @orig_pos = @io.pos ++ rescue Errno::ESPIPE ++ @orig_pos = 0 ++ end + end + + # Reads +len+ bytes (or all remaining data) from the entry. Returns +@@ -585,7 +589,11 @@ module Archive::Tar::Minitar + # Creates and returns a new Reader object. + def initialize(anIO) + @io = anIO +- @init_pos = anIO.pos ++ begin ++ @init_pos = @io.pos ++ rescue Errno::ESPIPE ++ @init_pos = 0 ++ end + end + + # Iterates through each entry in the data stream. +@@ -621,10 +629,10 @@ module Archive::Tar::Minitar + + skip = (512 - (size % 512)) % 512 + +- if @io.respond_to?(:seek) +- # avoid reading... ++ begin ++ # avoid reading... + @io.seek(size - entry.bytes_read, IO::SEEK_CUR) +- else ++ rescue Errno::ESPIPE, NoMethodError + pending = size - entry.bytes_read + while pending > 0 + bread = @io.read([pending, 4096].min).size |