Issue #19158 has been updated by hsbt (Hiroshi SHIBATA).
This issue caused by
https://git.ruby-lang.org/ruby.git/tree/tool/lib/bundled_gem.rb#n53.
```ruby
unless spec.extensions.empty?
spec.dependencies.clear
File.binwrite(File.join(dir, spec_dir, ".bundled.#{target}.gemspec"),
spec.to_ruby)
end
```
We removed dependencies of debug gem for testing from gemspec temporally. After that, We
re-use this modified gemspec for installation.
I confirmed to keep dependencies of debug gem with the following patch.
```
diff --git tool/rbinstall.rb tool/rbinstall.rb
index 85d05eff251..97e1a47fbae 100755
--- tool/rbinstall.rb
+++ tool/rbinstall.rb
@@ -1027,9 +1027,12 @@ def install_default_gem(dir, srcdir, bindir)
next if /^\s*(?:#|$)/ =~ name
next unless /^(\S+)\s+(\S+).*/ =~ name
gem_name = "#$1-#$2"
- path = "#{srcdir}/.bundle/specifications/#{gem_name}.gemspec"
+ # Try to find the gemspec file for C ext gems
+ # ex .bundle/gems/debug-1.7.1/debug-1.7.1.gemspec
+ # This gemspec keep the original dependencies
+ path = "#{srcdir}/.bundle/gems/#{gem_name}/#{gem_name}.gemspec"
unless File.exist?(path)
- path = "#{srcdir}/.bundle/gems/#{gem_name}/#{gem_name}.gemspec"
+ path = "#{srcdir}/.bundle/specifications/#{gem_name}.gemspec"
unless File.exist?(path)
skipped[gem_name] = "gemspec not found"
next
--
```
----------------------------------------
Bug #19158: Ruby 3.1.3 installs wrong gemspec for debug gem
https://bugs.ruby-lang.org/issues/19158#change-101889
* Author: deivid (David Rodríguez)
* Status: Assigned
* Priority: Normal
* Assignee: hsbt (Hiroshi SHIBATA)
* ruby -v: ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [arm64-darwin22]
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: REQUIRED, 3.2: REQUIRED
----------------------------------------
A pristine installation of Ruby 3.1.3 shows an installed `debug-1.6.3.gemspec` file that
claims that debug-1.6.3 has no dependencies. This is incorrect, and causes issues for
Bundler as reported at
https://github.com/rubygems/rubygems/issues/6082.
An issue workaround is to manually reinstall the gem with `gem install debug:1.6.3`. That
will reinstall the gem, including a correct gemspec file.
This is the file diff before and after reinstalling the gem
```diff
--- old.gemspec 2022-11-29 13:54:36
+++
/Users/deivid/.asdf/installs/ruby/3.1.3/lib/ruby/gems/3.1.0/specifications/debug-1.6.3.gemspec 2022-11-29
13:55:25
@@ -24,4 +24,16 @@
s.summary = "Debugging functionality for Ruby".freeze
s.installed_by_version = "3.3.26" if s.respond_to? :installed_by_version
+
+ if s.respond_to? :specification_version then
+ s.specification_version = 4
+ end
+
+ if s.respond_to? :add_runtime_dependency then
+ s.add_runtime_dependency(%q<irb>.freeze, [">= 1.3.6"])
+ s.add_runtime_dependency(%q<reline>.freeze, [">= 0.3.1"])
+ else
+ s.add_dependency(%q<irb>.freeze, [">= 1.3.6"])
+ s.add_dependency(%q<reline>.freeze, [">= 0.3.1"])
+ end
end
```
In general, the files installed by ruby-core for bundled gems should be identical to the
ones installed by explicit `gem install`.
This issue is also present in master and I'm guessing it was introduced by
https://github.com/ruby/ruby/commit/a2c66f52f402cb58372e271226f3341065561e53 (backported
at
https://github.com/ruby/ruby/commit/2d26e45135af8b427d9ccc6d47082c21be8b9c74).
--
https://bugs.ruby-lang.org/