The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Ruby-kit
Ruby-kit is a Funtoo kit (see FAQ:What Are Funtoo Kits) which contains the Ruby language itself as well as Ruby modules.
Status
The currently-active branch of Ruby-kit is 2.7-prime
, created in early January 2021 by Funtoo, and is based on a snapshot of Gentoo Ruby ebuilds from late December 2020. At this time, the Gentoo Ruby Team was focusing on integrating support for Ruby 3.0 into Gentoo. Another notable event happening at around this time was the deprecation of Ruby 2.5 by the Ruby team itself, as it is currently in maintenance mode and nearing EOL.
Funtoo Changes
Ruby-kit 2.7-prime
has a number of important Funtoo changes which are documented here. The Ruby versions available are:
- Funtoo System Preferred:
ruby-2.7
- Funtoo System Stable:
ruby-2.6
- Available for developer use with local gems if desired:
ruby-3.0
The ruby-*.eclass
eclasses have been forked and are stored in our kit-fixups
repository, in core-kit/curated/eclasses
, so they will end up on end-user systems inside Core-kit and will be available to all kits.
The forked eclasses are:
ruby-fakegem.eclass
ruby-ng.eclass
ruby-ng-gnome2.eclass
ruby-single.eclass
ruby-utils.eclass
The eclass changes, taken as a whole, allow Funtoo to set the Ruby implementation(s) active
in Funtoo more easily. Traditionally, in Gentoo, Ruby implementations are set based on RUBY_TARGETS
, which is defined in the profiles and set to something like this:
make.defaults
(bash source code) RUBY_TARGETS="ruby27 ruby26"
In addition, Ruby-using ebuilds that leverage the Ruby eclasses will set something like this:
ruby-using.ebuild
(bash source code) USE_RUBY="ruby25 ruby26 ruby27 ruby30"
The Funtoo changes cause the USE_RUBY
settings in ebuilds to be more aggressively masked based on the Funtoo OS settings for RUBY_TARGETS
. In addition, if our more aggressive masking causes a Ruby module or package to not have any valid Ruby implementations, a "backup" typically safe Ruby implementation will be enabled automatically.