$NetBSD: patch-ad,v 1.11.2.1 2013/07/16 17:00:51 tron Exp $

* Add install_root option for pkgsrc's rubygems support.

--- lib/rubygems/installer.rb.orig	2013-03-05 21:25:39.000000000 +0000
+++ lib/rubygems/installer.rb
@@ -89,6 +89,9 @@ class Gem::Installer
   #                      foo_exec18.
   # :ignore_dependencies:: Don't raise if a dependency is missing.
   # :install_dir:: The directory to install the gem into.
+  # :install_root:: The directory to use as a buildroot for "destdir"-style
+  #		  installation.  All paths during installation are relative
+  #               to the buildroot.
   # :security_policy:: Use the specified security policy.  See Gem::Security
   # :user_install:: Indicate that the gem should be unpacked into the users
   #                 personal gem directory.
@@ -538,7 +541,8 @@ class Gem::Installer
       :env_shebang  => false,
       :force        => false,
       :install_dir  => Gem.dir,
-      :only_install_dir => false
+      :only_install_dir => false,
+      :install_root => nil,
     }.merge options
 
     @env_shebang         = options[:env_shebang]
@@ -553,8 +557,13 @@ class Gem::Installer
     # If the user has asked for the gem to be installed in a directory that is
     # the system gem directory, then use the system bin directory, else create
     # (or use) a new bin dir under the gem_home.
-    @bin_dir             = options[:bin_dir] || Gem.bindir(gem_home)
+    install_root         = options[:install_root]
+    @bin_dir             = options[:bin_dir] || Gem.bindir(gem_home, install_root)
     @development         = options[:development]
+    unless install_root.nil? or install_root == ""
+      @install_root = File.expand_path install_root
+      @gem_home = File.join(@install_root, @gem_home)
+    end
 
     @build_args          = options[:build_args] || Gem::Command.build_args
   end
@@ -773,7 +782,9 @@ EOF
   def write_build_info_file
     return if @build_args.empty?
 
-    open spec.build_info_file, 'w' do |io|
+    build_info_file = (@options[:install_root].nil?) ? spec.build_info_file :
+      File.join(@options[:install_root], spec.build_info_file)
+    open build_info_file, 'w' do |io|
       @build_args.each do |arg|
         io.puts arg
       end
