diff options
| author | Yusuke Endoh <mame@ruby-lang.org> | 2022-11-28 14:52:13 +0900 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2022-12-02 04:12:16 +0000 |
| commit | bc3ac86795877b752c082230e561f547e682e951 (patch) | |
| tree | b311b475aaba4590d0c5e7659de3fd1152417673 /lib | |
| parent | b6c66ead9da8e4a8a0aeed0eece056d74273b6d9 (diff) | |
[rubygems/rubygems] require bundler/setup only when Bundler is not defined
... to prevent "circular require" when `--disable-gems` is used.
This is a simplified case of https://github.com/ruby/ruby/commit/e5a0abc5dedfd011986b16e8f8cf5cda476984c9
```
$ bundle exec ruby -we 'system("ruby", "-w", "--disable-gems", "-e", "")'
<internal:/home/mame/work/ruby/local/lib/ruby/3.2.0+3/rubygems/core_ext/kernel_require.rb>:85: warning: <internal:/home/mame/work/ruby/local/lib/ruby/3.2.0+3/rubygems/core_ext/kernel_require.rb>:85: warning: loading in progress, circular require considered harmful - /home/mame/work/ruby/local/lib/ruby/3.2.0+3/bundler/setup.rb
```
When bundler/setup is require'ed under --disable-gems mode, it loads
rubygems by `require "rubygems" unless defined?(Gem)` in
https://github.com/rubygems/rubygems/blob/0b1f682a6d65e57b86ba4853cba23cac361c769d/bundler/lib/bundler/rubygems_integration.rb#L3
In this case, require'ing bundler/setup from rubygems.rb is circular.
This change makes rubygems.rb to require "bundler/setup" only when
`Bundler` is not defined.
https://github.com/rubygems/rubygems/commit/b4608dee5e
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/rubygems.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/rubygems.rb b/lib/rubygems.rb index 43b1c45288..a869fc4c45 100644 --- a/lib/rubygems.rb +++ b/lib/rubygems.rb @@ -1349,4 +1349,4 @@ require_relative "rubygems/core_ext/kernel_gem" require_relative "rubygems/core_ext/kernel_require" require_relative "rubygems/core_ext/kernel_warn" -require ENV["BUNDLER_SETUP"] if ENV["BUNDLER_SETUP"] +require ENV["BUNDLER_SETUP"] if ENV["BUNDLER_SETUP"] && !defined?(Bundler) |
