diff options
author | 2018-12-27 19:21:12 +0100 | |
---|---|---|
committer | 2018-12-27 20:06:33 +0100 | |
commit | 6e2686448ec8ff2355fecee39426a20bac4cb61f (patch) | |
tree | cfa21a4b85942dd7ccdfaefd483565599831eb6c /dev-lang/ruby/files | |
parent | profiles/prefix/package.use.mask: apply some USE-masks (diff) | |
download | gentoo-6e2686448ec8ff2355fecee39426a20bac4cb61f.tar.gz gentoo-6e2686448ec8ff2355fecee39426a20bac4cb61f.tar.bz2 gentoo-6e2686448ec8ff2355fecee39426a20bac4cb61f.zip |
dev-lang/ruby: fix various install issues
Properly unbundle rdoc and bundler which we install via the gems.
Fix install path for default bundled gemspec, fixing file collisions
without FEATURES=userpriv.
Add USE flag for jit, but note that this does not fully disable jit, and
jit does not work due to issues with the .pch file generated for it.
Add missing PDEPEND on bundler since we now unbundle it properly.
Fixes: https://bugs.gentoo.org/673760
Signed-off-by: Hans de Graaff <graaff@gentoo.org>
Package-Manager: Portage-2.3.51, Repoman-2.3.11
Diffstat (limited to 'dev-lang/ruby/files')
-rw-r--r-- | dev-lang/ruby/files/2.6/009_no-gems.patch | 88 | ||||
-rw-r--r-- | dev-lang/ruby/files/2.6/010-libressl_2.7.patch | 15 |
2 files changed, 16 insertions, 87 deletions
diff --git a/dev-lang/ruby/files/2.6/009_no-gems.patch b/dev-lang/ruby/files/2.6/009_no-gems.patch index e12429a43242..f98801d50312 100644 --- a/dev-lang/ruby/files/2.6/009_no-gems.patch +++ b/dev-lang/ruby/files/2.6/009_no-gems.patch @@ -1,12 +1,8 @@ ---- a/tool/rbinstall.rb.~1~ 2017-10-30 06:45:20.000000000 +0100 -+++ b/tool/rbinstall.rb 2017-12-25 11:06:53.340432435 +0100 -@@ -700,20 +700,10 @@ +--- a/tool/rbinstall.rb.~1~ 2018-12-27 07:43:59.938638174 +0100 ++++ b/tool/rbinstall.rb 2018-12-27 07:51:09.096382161 +0100 +@@ -723,17 +723,7 @@ # :startdoc: - install?(:ext, :comm, :gem, :'default-gems', :'default-gems-comm') do -- install_default_gem('lib', srcdir) -+ # Gems are unbundled in Gentoo - end install?(:ext, :arch, :gem, :'default-gems', :'default-gems-arch') do - install_default_gem('ext', srcdir) do |path| - # assume that gemspec and extconf.rb are placed in the same directory @@ -23,73 +19,21 @@ end def load_gemspec(file) -@@ -765,68 +755,7 @@ +@@ -743,7 +743,7 @@ end - install?(:ext, :comm, :gem, :'bundled-gems') do + def install_default_gem(dir, srcdir) - gem_dir = Gem.default_dir -- directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode) -- prepare "bundled gems", gem_dir, directories -- install_dir = with_destdir(gem_dir) -- installed_gems = {} -- options = { -- :install_dir => install_dir, -- :bin_dir => with_destdir(bindir), -- :domain => :local, -- :ignore_dependencies => true, -- :dir_mode => $dir_mode, -- :data_mode => $data_mode, -- :prog_mode => $prog_mode, -- :wrappers => true, -- :format_executable => true, -- } -- gem_ext_dir = "#$extout/gems/#{CONFIG['arch']}" -- extensions_dir = Gem::StubSpecification.gemspec_stub("", gem_dir, gem_dir).extensions_dir -- Gem::Specification.each_gemspec([srcdir+'/gems/*']) do |path| -- spec = load_gemspec(path) -- next unless spec.platform == Gem::Platform::RUBY -- next unless spec.full_name == path[srcdir.size..-1][/\A\/gems\/([^\/]+)/, 1] -- spec.extension_dir = "#{extensions_dir}/#{spec.full_name}" -- if File.directory?(ext = "#{gem_ext_dir}/#{spec.full_name}") -- spec.extensions[0] ||= "-" -- end -- ins = RbInstall::UnpackedInstaller.new(spec, options) -- puts "#{INDENT}#{spec.name} #{spec.version}" -- ins.install -- File.chmod($data_mode, File.join(install_dir, "specifications", "#{spec.full_name}.gemspec")) -- unless spec.extensions.empty? -- install_recursive(ext, spec.extension_dir) -- end -- installed_gems[spec.full_name] = true -- end -- installed_gems, gems = Dir.glob(srcdir+'/gems/*.gem').partition {|gem| installed_gems.key?(File.basename(gem, '.gem'))} -- unless installed_gems.empty? -- install installed_gems, gem_dir+"/cache" -- end -- next if gems.empty? -- if defined?(Zlib) -- Gem.instance_variable_set(:@ruby, with_destdir(File.join(bindir, ruby_install_name))) -- silent = Gem::SilentUI.new -- gems.each do |gem| -- inst = Gem::Installer.new(gem, options) -- inst.spec.extension_dir = with_destdir(inst.spec.extension_dir) -- begin -- Gem::DefaultUserInteraction.use_ui(silent) {inst.install} -- rescue Gem::InstallError => e -- next -- end -- gemname = File.basename(gem) -- puts "#{INDENT}#{gemname}" -- end -- # fix directory permissions -- # TODO: Gem.install should accept :dir_mode option or something -- File.chmod($dir_mode, *Dir.glob(install_dir+"/**/")) -- # fix .gemspec permissions -- File.chmod($data_mode, *Dir.glob(install_dir+"/specifications/*.gemspec")) -- else -- puts "skip installing bundled gems because of lacking zlib" -- end -+ # Gems are unbundled in Gentoo ++ gem_dir = ENV['GEM_DESTDIR'] ; puts "gem_dir for default gems = #{gem_dir}" + directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode) + prepare "default gems from #{dir}", gem_dir, directories + +@@ -777,7 +777,7 @@ end - parse_args() + install?(:ext, :comm, :gem, :'bundled-gems') do +- gem_dir = Gem.default_dir ++ gem_dir = ENV['GEM_DESTDIR'] + directories = Gem.ensure_gem_subdirectories(gem_dir, :mode => $dir_mode) + prepare "bundled gems", gem_dir, directories + install_dir = with_destdir(gem_dir) diff --git a/dev-lang/ruby/files/2.6/010-libressl_2.7.patch b/dev-lang/ruby/files/2.6/010-libressl_2.7.patch deleted file mode 100644 index 150f43c9e55d..000000000000 --- a/dev-lang/ruby/files/2.6/010-libressl_2.7.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/ext/openssl/extconf.rb.orig 2018-04-02 09:57:14 UTC -+++ b/ext/openssl/extconf.rb -@@ -122,8 +122,11 @@ OpenSSL.check_func_or_macro("SSL_get_ser - have_func("SSL_is_server") - - # added in 1.1.0 -+if !have_struct_member("SSL", "ctx", "openssl/ssl.h") || -+ try_static_assert("LIBRESSL_VERSION_NUMBER >= 0x2070000fL", "openssl/opensslv.h") -+ $defs.push("-DHAVE_OPAQUE_OPENSSL") -+end - have_func("CRYPTO_lock") || $defs.push("-DHAVE_OPENSSL_110_THREADING_API") --have_struct_member("SSL", "ctx", "openssl/ssl.h") || $defs.push("-DHAVE_OPAQUE_OPENSSL") - have_func("BN_GENCB_new") - have_func("BN_GENCB_free") - have_func("BN_GENCB_get_arg") |