From 7f9bf068fcff9ca7d6a21711f31c5b8d6022dddf Mon Sep 17 00:00:00 2001 From: hsbt Date: Wed, 12 Dec 2018 05:07:50 +0000 Subject: Merge rubygems@21f12a8 from upstream. * [BudlerVersionFinder] set .filter! and .compatible? to match only on major versions https://github.com/rubygems/rubygems/pull/2515 * Fix broken symlink that points to ../* https://github.com/rubygems/rubygems/pull/2516 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66347 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rubygems/package.rb | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'lib/rubygems/package.rb') diff --git a/lib/rubygems/package.rb b/lib/rubygems/package.rb index 9af84981a4..3d81b8b7ac 100644 --- a/lib/rubygems/package.rb +++ b/lib/rubygems/package.rb @@ -119,8 +119,8 @@ class Gem::Package # Permission for other files attr_accessor :data_mode - def self.build(spec, skip_validation = false, strict_validation = false) - gem_file = spec.file_name + def self.build(spec, skip_validation = false, strict_validation = false, file_name = nil) + gem_file = file_name || spec.file_name package = new gem_file package.spec = spec @@ -223,8 +223,13 @@ class Gem::Package stat = File.lstat file if stat.symlink? - relative_dir = File.dirname(file).sub("#{Dir.pwd}/", '') - target_path = File.join(relative_dir, File.readlink(file)) + target_path = File.readlink(file) + + unless target_path.start_with? '.' + relative_dir = File.dirname(file).sub("#{Dir.pwd}/", '') + target_path = File.join(relative_dir, target_path) + end + tar.add_symlink file, target_path, stat.mode end @@ -281,7 +286,7 @@ class Gem::Package Successfully built RubyGem Name: #{@spec.name} Version: #{@spec.version} - File: #{File.basename @spec.cache_file} + File: #{File.basename @gem.path} EOM ensure @signer = nil -- cgit v1.2.3