[Rubygems-developers] [ rubygems-Bugs-28661 ] gem pristine does not observe installer options

noreply at rubyforge.org noreply at rubyforge.org
Fri Nov 12 23:42:56 EST 2010


Bugs item #28661, was opened at 2010-10-21 11:01
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=575&aid=28661&group_id=126

Category: `gem` commands (other)
Group: None
Status: Open
Resolution: None
Priority: 3
Submitted By: Charles Nutter (headius)
>Assigned to: John Barnette (jbarnette)
Summary: gem pristine does not observe installer options

Initial Comment:
In pristine_command.rb, there are the following lines:

      # TODO use installer options
      installer = Gem::Installer.new gem, :wrappers => true, :force => true
      installer.install

Obviously it was intended that this code eventually propagate installer options, but it has never been done. Unfortunately rvm's gemset support uses "gem pristine --all", which on JRuby will lose the --env-shebang default we require to allow using jruby's bash-based startup script in shebang likes for installed gem executables. This led to the following bug report: http://jira.codehaus.org/browse/JRUBY-5031

After a short exploration, I could not find the proper way to propagate installer options for pristine installs, so I ended up going with the following patch. RubyGems should be fixed to propagate installer options appropriately.

 diff --git a/lib/ruby/site_ruby/1.8/rubygems/commands/pristine_command.rb b/lib/ruby/site_ruby/1.8/rubygems/commands/pristine_command.rb
 index ef11129..61897cc 100644
 --- a/lib/ruby/site_ruby/1.8/rubygems/commands/pristine_command.rb
 +++ b/lib/ruby/site_ruby/1.8/rubygems/commands/pristine_command.rb
 @@ -82,7 +82,11 @@ revert the gem.
        end
  
        # TODO use installer options
 -      installer = Gem::Installer.new gem, :wrappers => true, :force => true
 +      # Modified for JRUBY-5031, to propagate --env-shebang if set
 +      installer = Gem::Installer.new gem,
 +        :wrappers => true,
 +        :force => true,
 +        :env_shebang => !Gem::ConfigFile::PLATFORM_DEFAULTS['install'].to_s['--env-shebang'].nil?
        installer.install
  
        say "Restored #{spec.full_name}"


----------------------------------------------------------------------

>Comment By: Ryan Davis (zenspider)
Date: 2010-11-12 20:42

Message:
I think this is a dupe. I brought this up a long time ago... but I haven't seen the ticket. keeping this one for now. *shrug*

----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=575&aid=28661&group_id=126


More information about the Rubygems-developers mailing list