Project

General

Profile

Bug #1376

[ruby] json being installed as a gem makes in inaccessible to bundles

lukeshu - almost 7 years ago - . Updated almost 7 years ago.

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

#1

Updated by lukeshu almost 7 years ago

  • Description updated (diff)
#2

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

Also available in: Atom PDF