blob: 9d499b73f89dae0a441720235d93e17b23314e34 [file] [log] [blame]
# frozen_string_literal: true
# Gentoo defaults for rubygems 3.x
#
# Gentoo policy is to install all manually installed code into
# /usr/local and to keep /usr managed by Gentoo. This policy file
# ensures that all manually installed gems using "gem install" are
# installed in /usr/local. Gentoo gems are installed in /usr.
# TODO: We used to manipulate the default_dir, but this no longer
# works since this is now the base for the new "default" gems that
# ruby 2.6 uses with irb. So default_dir should refer to the system
# default now. rubygems also provides various hooks so we may be able
# to use those to install gems in /usr/local by default in a less
# intrusive way.
module Gem
class << self
def portage_gems_dir
ConfigMap[:sitelibdir].gsub('site_ruby', 'gems')
end
def local_dir
portage_gems_dir.gsub('@GENTOO_PORTAGE_EPREFIX@/usr',
'@GENTOO_PORTAGE_EPREFIX@/usr/local')
end
def install_dir
Process.euid.zero? ? local_dir : user_dir
end
undef :default_path
def default_path
path = []
path << user_dir if user_home && File.exist?(user_home)
path << default_dir
path << vendor_dir if vendor_dir && File.directory?(vendor_dir)
path << local_dir
path << portage_gems_dir
end
def system_config_path
'@GENTOO_PORTAGE_EPREFIX@/etc'
end
# Set Gentoo defaults for gem commands
begin
undef :operating_system_defaults
rescue NameError
# Avoid either runtime errors or redefinition warnings since
# this method is not present in all rubygem versions distributed
# with dev-lang/ruby.
end
def operating_system_defaults
{
'install' => "--install-dir #{install_dir}",
'uninstall' => "--install-dir #{install_dir}",
'update' => "--install-dir #{install_dir}"
}
end
end
end