Bug #1376
[ruby] json being installed as a gem makes in inaccessible to bundles
Status:
fixed
Priority:
bug
Assignee:
% Done:
100%
Description
Ruby includes a json
implementation in the standard library--unfortunately, there is a problem with the license (#674). So, Parabola replaces it with an acceptably-licensed rubygem re-implementation of it.
However, because we ship it as a gem (under /usr/lib/ruby/gems/
), it isn't available when inside of bundles:
$ mkdir testcase-parabola $ cd testcase-parabola $ touch Gemfile $ BUNDLE_PATH=vendor/bundle bundle install The Gemfile specifies no dependencies Resolving dependencies... Bundle complete! 0 Gemfile dependencies, 1 gem now installed. Bundled gems are installed into ./vendor/bundle. $ BUNDLE_PATH=vendor/bundle bundle exec irb irb(main):001:0> require 'json' LoadError: cannot load such file -- json from (irb):1:in `require' from (irb):1 from /usr/bin/irb:11:in `<top (required)>' from /home/luke/.gem/ruby/2.4.0/gems/bundler-1.15.1/lib/bundler/cli/exec.rb:74:in `load' from /home/luke/.gem/ruby/2.4.0/gems/bundler-1.15.1/lib/bundler/cli/exec.rb:74:in `kernel_load' from /home/luke/.gem/ruby/2.4.0/gems/bundler-1.15.1/lib/bundler/cli/exec.rb:27:in `run' from /home/luke/.gem/ruby/2.4.0/gems/bundler-1.15.1/lib/bundler/cli.rb:360:in `exec' from /home/luke/.gem/ruby/2.4.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run' from /home/luke/.gem/ruby/2.4.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command' from /home/luke/.gem/ruby/2.4.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor.rb:369:in `dispatch' from /home/luke/.gem/ruby/2.4.0/gems/bundler-1.15.1/lib/bundler/cli.rb:20:in `dispatch' from /home/luke/.gem/ruby/2.4.0/gems/bundler-1.15.1/lib/bundler/vendor/thor/lib/thor/base.rb:444:in `start' from /home/luke/.gem/ruby/2.4.0/gems/bundler-1.15.1/lib/bundler/cli.rb:10:in `start' from /home/luke/.gem/ruby/2.4.0/gems/bundler-1.15.1/exe/bundle:35:in `block in <top (required)>' from /home/luke/.gem/ruby/2.4.0/gems/bundler-1.15.1/lib/bundler/friendly_errors.rb:121:in `with_friendly_errors' from /home/luke/.gem/ruby/2.4.0/gems/bundler-1.15.1/exe/bundle:27:in `<top (required)>' from /home/luke/.gem/ruby/2.4.0/bin/bundle:22:in `load' from /home/luke/.gem/ruby/2.4.0/bin/bundle:22:in `<main>' irb(main):002:0>
However, if we try the same with Arch's ruby
package, we don't have this problem, as it is installed as part of the standard library:
$ mkdir testcase-arch $ cd testcase-arch $ touch Gemfile $ BUNDLE_PATH=vendor/bundle bundle install The Gemfile specifies no dependencies Resolving dependencies... Bundle complete! 0 Gemfile dependencies, 1 gem now installed. Bundled gems are installed into ./vendor/bundle. $ BUNDLE_PATH=vendor/bundle bundle exec irb irb(main):001:0> require 'json' => true irb(main):002:0>
History
Updated by lukeshu almost 7 years ago
- % Done changed from 0 to 100
- Assignee set to lukeshu
- Status changed from open to fixed
fixed in ruby 2.4.1-3.parabola3