From 983cbb1aed57665e3a616f40b759f35bf143e091 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 16 Jan 2015 04:52:59 +0000 Subject: common.mk: extract-gems * common.mk (extract-gems): extract gem files to install them even if zlib is not available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- common.mk | 11 +++++++++++ tool/gem-unpack.rb | 16 ++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100755 tool/gem-unpack.rb diff --git a/common.mk b/common.mk index 0b82bcc1a7..96f621584d 100644 --- a/common.mk +++ b/common.mk @@ -924,6 +924,14 @@ update-gems: PHONY -e 'File.unlink(*(old-[gem]))' \ bundled_gems +extract-gems: PHONY + $(ECHO) Extracting bundled gem files... + $(Q) $(RUNRUBY) -C "$(srcdir)/gems" \ + -I../tool -rgem-unpack -answ \ + -e 'gem, ver = *$$F' \ + -e 'Gem.unpack("#{gem}-#{ver}.gem")' \ + bundled_gems + UPDATE_LIBRARIES = no ### set the following environment variable or uncomment the line if @@ -973,6 +981,9 @@ extract-extlibs: clean-extlibs: $(Q) $(RMALL) $(srcdir)/.downloaded-cache +clean-gems: + $(Q) $(RM) gems/*.gem + CLEAN_CACHE = clean-extlibs info: info-program info-libruby_a info-libruby_so info-arch diff --git a/tool/gem-unpack.rb b/tool/gem-unpack.rb new file mode 100755 index 0000000000..5f15751d9c --- /dev/null +++ b/tool/gem-unpack.rb @@ -0,0 +1,16 @@ +require 'rubygems' +require 'rubygems/package' + +def Gem.unpack(file, dir = nil) + pkg = Gem::Package.new(file) + pkg.security_policy = Gem::Security::LowSecurity + spec = pkg.spec + target = spec.full_name + target = File.join(dir, target) if dir + pkg.extract_files target + spec_file = File.join(target, "#{spec.name}.gemspec") + open(spec_file, 'wb') do |f| + f.print spec.to_ruby + end + puts "Unpacked #{file}" +end -- cgit v1.2.3