$NetBSD: patch-al,v 1.1.1.1 2010/09/12 03:50:06 taca Exp $ Add install_root option for pkgsrc's rubygems support. --- lib/rubygems/dependency_installer.rb.orig 2010-04-22 08:24:42.000000000 +0000 +++ lib/rubygems/dependency_installer.rb @@ -38,6 +38,7 @@ class Gem::DependencyInstaller # :format_executable:: See Gem::Installer#initialize. # :ignore_dependencies:: Don't install any dependencies. # :install_dir:: See Gem::Installer#install. + # :install_root: See Gem::Installer#install. # :prerelease:: Allow prerelease versions. See #install. # :security_policy:: See Gem::Installer::new and Gem::Security. # :user_install:: See Gem::Installer.new @@ -45,7 +46,11 @@ class Gem::DependencyInstaller def initialize(options = {}) if options[:install_dir] then - spec_dir = options[:install_dir], 'specifications' + if options[:install_root].nil? or options[:install_root] == "" then + spec_dir = options[:install_dir], 'specifications' + else + spec_dir = options[:install_root], options[:install_dir], 'specifications' + end @source_index = Gem::SourceIndex.from_gems_in spec_dir else @source_index = Gem.source_index @@ -68,7 +73,12 @@ class Gem::DependencyInstaller @installed_gems = [] @install_dir = options[:install_dir] || Gem.dir - @cache_dir = options[:cache_dir] || @install_dir + @install_root = options[:install_root] + install_dir = @install_dir + unless @install_root.nil? or @install_root == "" + install_dir = File.join(@install_root, @install_dir) + end + @cache_dir = options[:cache_dir] || install_dir # Set with any errors that SpecFetcher finds while search through # gemspecs for a dep @@ -269,6 +279,7 @@ class Gem::DependencyInstaller :format_executable => @format_executable, :ignore_dependencies => @ignore_dependencies, :install_dir => @install_dir, + :install_root => @install_root, :security_policy => @security_policy, :source_index => @source_index, :user_install => @user_install,