From bbc71e68019134999a30b49e6fb13a45ede23c7b Mon Sep 17 00:00:00 2001 From: nagachika Date: Sun, 2 Jun 2024 07:13:25 +0900 Subject: [PATCH] merge revision(s) 9f708d48f6df37ee9600db9d51b57a156609a13b,0301473fb523c71d8cdc4966971f31f502001185,7f0e26b7f99bf76408569892ce20318501f74729: [Backport #20516] Clear runtime dependencies if default gems is specified. The current build system uses runtime dependencies from only `.bundle` directory. We shouldn't install runtime dependencies from rubygems.org when `make test-bundled-gems` is invoked. Fixed dependencies list format Re-use strscan with ruby repo --- tool/lib/bundled_gem.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tool/lib/bundled_gem.rb b/tool/lib/bundled_gem.rb index 0b7d52b86a..895aed4510 100644 --- a/tool/lib/bundled_gem.rb +++ b/tool/lib/bundled_gem.rb @@ -6,6 +6,16 @@ require 'rubygems/package' # unpack bundled gem files. module BundledGem + DEFAULT_GEMS_DEPENDENCIES = [ + "net-protocol", # net-ftp + "time", # net-ftp + "singleton", # prime + "ipaddr", # rinda + "forwardable", # prime, rinda + "ruby2_keywords", # drb + "strscan" # rexml + ] + module_function def unpack(file, *rest) @@ -35,6 +45,9 @@ module BundledGem gem_dir = File.join(dir, "gems", target) yield gem_dir spec_dir = spec.extensions.empty? ? "specifications" : File.join("gems", target) + if spec.extensions.empty? + spec.dependencies.reject! {|dep| DEFAULT_GEMS_DEPENDENCIES.include?(dep.name)} + end File.binwrite(File.join(dir, spec_dir, "#{target}.gemspec"), spec.to_ruby) unless spec.extensions.empty? spec.dependencies.clear