summary refs log tree commit diff
path: root/gnu/packages/patches/ruby-symlinkfix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/ruby-symlinkfix.patch')
-rw-r--r--gnu/packages/patches/ruby-symlinkfix.patch53
1 files changed, 0 insertions, 53 deletions
diff --git a/gnu/packages/patches/ruby-symlinkfix.patch b/gnu/packages/patches/ruby-symlinkfix.patch
deleted file mode 100644
index 16beecc97a..0000000000
--- a/gnu/packages/patches/ruby-symlinkfix.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Fix symlinks to '..' to fix rubygems improperly expanding symlinked
-paths. Without this fix, some gems fail to install. This patch is applied in
-rubygems 2.5.2, but ruby version 2.3.1 bundles an older version of rubygems
-(2.5.1).
-
---- a/lib/rubygems/package.rb
-+++ b/lib/rubygems/package.rb
-@@ -383,7 +383,7 @@ def extract_tar_gz io, destination_dir, pattern = "*" # :nodoc:
-           FileUtils.chmod entry.header.mode, destination
-         end if entry.file?
-
--        File.symlink(install_location(entry.header.linkname, destination_dir), destination) if entry.symlink?
-+        File.symlink(entry.header.linkname, destination) if entry.symlink?
-
-         verbose destination
-       end
-diff --git a/test/rubygems/test_gem_package.rb b/test/rubygems/test_gem_package.rb
-index 7848bc2..f287bd3 100644
---- a/test/rubygems/test_gem_package.rb
-+++ b/test/rubygems/test_gem_package.rb
-@@ -428,19 +428,25 @@ def test_extract_tar_gz_absolute
-                  "#{@destination} is not allowed", e.message)
-   end
-
--  def test_extract_tar_gz_symlink_absolute
-+  def test_extract_tar_gz_symlink_relative_path
-+    skip 'symlink not supported' if Gem.win_platform?
-+
-     package = Gem::Package.new @gem
-
-     tgz_io = util_tar_gz do |tar|
--      tar.add_symlink 'code.rb', '/absolute.rb', 0644
-+      tar.add_file    'relative.rb', 0644 do |io| io.write 'hi' end
-+      tar.mkdir       'lib',         0755
-+      tar.add_symlink 'lib/foo.rb', '../relative.rb', 0644
-     end
-
--    e = assert_raises Gem::Package::PathError do
--      package.extract_tar_gz tgz_io, @destination
--    end
-+    package.extract_tar_gz tgz_io, @destination
-
--    assert_equal("installing into parent path /absolute.rb of " +
--                 "#{@destination} is not allowed", e.message)
-+    extracted = File.join @destination, 'lib/foo.rb'
-+    assert_path_exists extracted
-+    assert_equal '../relative.rb',
-+                 File.readlink(extracted)
-+    assert_equal 'hi',
-+                 File.read(extracted)
-   end
-
-   def test_extract_tar_gz_directory