Updating Ruby in OpenSolaris to add support for later versions of RubyGems
Amanda Waite <amanda.waite@sun.com>
07 January 2008
1. Summary and motivation
1.1. Introduction
This project will deprecate certain interfaces that were provided as discrete executables
by Ruby Gems 0.9.4 and which were included in PSARC/2007/600. In RubyGems 1.3.1, the
functionality provided by many of these executables is now implemented in the core RubyGems
executable 'gem', other functionality now uses standard Ruby tools such as 'ri'.
An update from RubyGems 0.9.4 to RubyGems 1.3.1 is an absolute requirement as Ruby on
Rails versions > 2.1.0 require RubyGems 1.1.1 or greater while Ruby on Rails 2.2.2
specifically requires RubyGems 1.3.1
This case seeks micro release binding.
2. Technical Description
2.1. Details
This project will mark the deprecated interfaces as obsolete and will update all relevant
documentation to reflect this change. The interfaces themselves will be updated to emit
a warning to indicate that it's usage has been deprecated and detail how similar functionality
can be achieved through the use of other commands. The changes will also be documented on
publicly accessible web sites including blogs and project pages.
These changes will follow the guidelines for obsoleting interfaces here:
http://opensolaris.org/os/community/arc/policies/obsolete-eof/
2.2. Ongoing updates
Although RubyGems no longer includes these executables (the interfaces to be obsoleted) there
is still a requirement to continue to provide updates to RubyGems in the affected packages.
As such, these updates will include scripts of the same name as the deprecated executables
that wrap the same functionality as provided by the gem command and standard Ruby tools. These
scripts will be removed with the expiry of the one year timer that starts after acceptance of
this ARC case. Additional details of how the functionality of the deprecated executable
is accessed in the update are available in Appendix 1.
2.3 Exported Interfaces
NAME STABILITY NOTES
/usr/ruby/[version]/bin
erb Uncommitted Executable
gem Uncommitted Executable
irb Uncommitted Executable
rdoc Uncommitted Executable
ri Uncommitted Executable
ruby Uncommitted Executable
testrb Uncommitted Executable
gem_mirror Obsolete Uncommitted Executable
gem_server Obsolete Uncommitted Executable
gemlock Obsolete Uncommitted Executable
gemri Obsolete Uncommitted Executable
gemwhich Obsolete Uncommitted Executable
index_gem_repository.rb Obsolete Uncommitted Executable
update_rubygems Obsolete Uncommitted Executable
/usr/bin/
erb Volatile Symbolic link
gem Volatile Symbolic link
irb Volatile Symbolic link
rdoc Volatile Symbolic link
ri Volatile Symbolic link
ruby Volatile Symbolic link
testrb Volatile Symbolic link
update_rubygems Volatile Symbolic link
gem_mirror Obsolete Volatile Symbolic link
gem_server Obsolete Volatile Symbolic link
gemlock Obsolete Volatile Symbolic link
gemri Obsolete Volatile Symbolic link
gemwhich Obsolete Volatile Symbolic link
index_gem_repository.rb Obsolete Volatile Symbolic link
update_rubygems Obsolete Volatile Symbolic link
erb18 Uncommitted Symbolic link
gem18 Uncommitted Symbolic link
irb18 Uncommitted Symbolic link
rdoc18 Uncommitted Symbolic link
ri18 Uncommitted Symbolic link
ruby18 Uncommitted Symbolic link
testrb18 Uncommitted Symbolic link
gem_mirror18 Obsolete Volatile Symbolic link
gem_server18 Obsolete Volatile Symbolic link
gemlock18 Obsolete Volatile Symbolic link
gemri18 Obsolete Volatile Symbolic link
gemwhich18 Obsolete Volatile Symbolic link
index_gem_repository.rb18 Obsolete Volatile Symbolic link
update_rubygems18 Obsolete Volatile Symbolic link
/usr/share/man/man1/
ruby.1 Volatile Symbolic link
/usr/ruby/1.8/share/man/man1/
ruby.1 Uncommitted Man Page
2.4 Changes to documentation
The gem[1] man page will be updated to include information on how to access the new functionality
provided by the 'gem' command that replaces that provided by the deprecated executables.
2.5 Packaging and Delivery
The changes described will be implemented in the update of the SUNWruby18[r|u] packages to include
RubyGems 1.3.1. There should otherwise be no obvious changes to the packaging.
Appendix 1
RubyGems 1.3.1 commands used to provide similar functionality as that provided by the deprecated executables
gem_mirror gem mirror -v
gemwhich gem which -v
gemri ri --gems --doc-dir
index_gem_repository.rb gem generate_index
gem_server gem server
gem_lock gem lock
update_rubygems gem update --system