Skip to content

Instantly share code, notes, and snippets.

@ILMostro
Created June 23, 2020 22:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ILMostro/6dd12260c030c8def4efe76521a70298 to your computer and use it in GitHub Desktop.
Save ILMostro/6dd12260c030c8def4efe76521a70298 to your computer and use it in GitHub Desktop.
emerge -avuDN @world
WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict:
dev-ruby/xmlrpc:0
(dev-ruby/xmlrpc-0.3.0:0/0::gentoo, ebuild scheduled for merge) USE="-doc -test" ABI_X86="(64)" RUBY_TARGETS="ruby25 -ruby24 (-ruby26) (-ruby27)" conflicts with
>=dev-ruby/xmlrpc-0.2.1[ruby_targets_ruby24] required by (dev-lang/ruby-2.4.10:2.4/2.4::gentoo, installed) USE="berkdb gdbm ipv6 rdoc ssl -debug -doc -examples -jemalloc -libressl -rubytests -socks5 -static-libs -tk -xemacs" ABI_X86="(
64)"
^^^^^^^^^^^^^^^^^^^
>=dev-ruby/xmlrpc-0.3.0[ruby_targets_ruby26] required by (dev-lang/ruby-2.6.6-r2:2.6/2.6::gentoo, installed) USE="berkdb gdbm ipv6 rdoc ssl -debug -doc -examples -jemalloc -jit -libressl -rubytests -socks5 -static-libs -systemtap -tk -
xemacs" ABI_X86="(64)"
^^^^^^^^^^^^^^^^^^^
dev-ruby/json:2
(dev-ruby/json-2.3.0:2/2::gentoo, ebuild scheduled for merge) USE="-doc -test" ABI_X86="(64)" RUBY_TARGETS="ruby25 -ruby24 (-ruby26) (-ruby27)" conflicts with
>=dev-ruby/json-2.0.2[ruby_targets_ruby26] required by (dev-lang/ruby-2.6.6-r2:2.6/2.6::gentoo, installed) USE="berkdb gdbm ipv6 rdoc ssl -debug -doc -examples -jemalloc -jit -libressl -rubytests -socks5 -static-libs -systemtap -tk -xe
macs" ABI_X86="(64)"
^^^^^^^^^^^^^^^^^^^
>=dev-ruby/json-2.0.2[ruby_targets_ruby24] required by (dev-lang/ruby-2.4.10:2.4/2.4::gentoo, installed) USE="berkdb gdbm ipv6 rdoc ssl -debug -doc -examples -jemalloc -libressl -rubytests -socks5 -static-libs -tk -xemacs" ABI_X86="(64
)"
^^^^^^^^^^^^^^^^^^^
dev-ruby/kpeg:1
(dev-ruby/kpeg-1.1.0-r1:1/1::gentoo, ebuild scheduled for merge) USE="-doc -test" ABI_X86="(64)" RUBY_TARGETS="ruby25 -ruby24 (-ruby26) (-ruby27)" conflicts with
>=dev-ruby/kpeg-1.1.0-r1[ruby_targets_ruby26(-)] required by (dev-ruby/rdoc-6.2.0:0/0::gentoo, installed) USE="-doc -test" ABI_X86="(64)" RUBY_TARGETS="(ruby24) ruby25 ruby26 -ruby27"
>=dev-ruby/kpeg-1.1.0-r1[ruby_targets_ruby24(-)] required by (dev-ruby/rdoc-6.2.0:0/0::gentoo, installed) USE="-doc -test" ABI_X86="(64)" RUBY_TARGETS="(ruby24) ruby25 ruby26 -ruby27"
!!! The following installed packages are masked:
- dev-ruby/did_you_mean-1.1.2::gentoo (masked by: package.mask)
/usr/portage/profiles/package.mask:
# Hans de Graaff <graaff@gentoo.org> (2020-06-14)
# Ruby 2.4 is no longer supported by upstream and no longer gets
# security updates since the 2.4.10 release. Use ruby 2.5 or later
# instead.
- dev-lang/ruby-2.4.10::gentoo (masked by: package.mask)
For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.
@ILMostro
Copy link
Author

[17:33][5052]# grep ruby /var/lib/portage/world
app-eselect/eselect-ruby
dev-lang/ruby
[17:34][5053]# grep -i ruby /etc/portage/make.conf
# RUBY_TARGETS="${RUBY_TARGETS} ruby24 ruby25"
# RUBY_TARGETS="ruby25 ruby26 ruby27"
# RUBY_TARGETS="ruby25 ruby26"
RUBY_TARGETS="ruby25"

@ILMostro
Copy link
Author

ILMostro commented Jun 23, 2020

The contents of /etc/portage/package.accept_keywords/ruby:

# 20171203                   
# attempt to enable and use ruby-2.4, rather than the 
# default, "stable" version of ruby-2.2 
#                                                                                                                      
#### Ruby                                                                                                              
#                                                                                                                      
# required by dev-lang/ruby-2.4.2::gentoo
# required by dev-ruby/power_assert-1.1.1::gentoo[ruby_targets_ruby24]                                                 
# required by dev-ruby/test-unit-3.2.6::gentoo[ruby_targets_ruby24]                                                    
# required by dev-lang/ruby-2.2.8::gentoo
# required by dev-ruby/pkg-config-1.1.7::gentoo[ruby_targets_ruby22]                                                   
# required by @selected                                  
# required by @world (argument)                                                                                        
# =dev-ruby/did_you_mean-1.1.2 ~amd64                                                                                  
dev-ruby/did_you_mean ~amd64                                                                                           
# required by dev-ruby/rdoc-5.1.0::gentoo[ruby_targets_ruby22]                                                         
# required by dev-lang/ruby-2.4.2::gentoo[rdoc]                                                                        
# required by dev-ruby/power_assert-1.1.1::gentoo[ruby_targets_ruby24]
# required by dev-ruby/test-unit-3.2.6::gentoo[ruby_targets_ruby24]                  
# required by dev-lang/ruby-2.2.8::gentoo                                                                              
# required by dev-ruby/pkg-config-1.1.7::gentoo[ruby_targets_ruby22]                                                   
# required by @selected                                                                                                
# required by @world (argument)                                                                                        
dev-ruby/racc ~amd64                        
# required by dev-lang/ruby-2.4.2::gentoo[rdoc]                                                                        
# required by dev-ruby/power_assert-1.1.1::gentoo[ruby_targets_ruby24]
# required by dev-ruby/test-unit-3.2.6::gentoo[ruby_targets_ruby24]                        
# required by dev-lang/ruby-2.2.8::gentoo                                                                              
# required by dev-ruby/pkg-config-1.1.7::gentoo[ruby_targets_ruby22]                                                   
# required by @selected                                                                                                
# required by @world (argument)                                                                                        
dev-ruby/rdoc                                
#### 20181226 -- limit version of rdoc due to install failures                                                         
# <dev-ruby/rdoc-6.1.0                                                                                                 
#### 20181226 -- workaround: install rubocop from graaff for BUG: 673714
# required by dev-lang/ruby-2.4.2::gentoo                                                                              
# required by dev-ruby/power_assert-1.1.1::gentoo[ruby_targets_ruby24]
# required by dev-ruby/test-unit-3.2.6::gentoo[ruby_targets_ruby24]
# required by dev-lang/ruby-2.2.8::gentoo                                                                              
# required by dev-ruby/pkg-config-1.1.7::gentoo[ruby_targets_ruby22]
# required by @selected                        
# required by @world (argument)                                                                                        
dev-ruby/rake ~amd64                                                                                                   
# required by dev-ruby/rdoc-5.1.0::gentoo[ruby_targets_ruby22]
# required by dev-lang/ruby-2.4.2::gentoo[rdoc]                                                                        
# required by dev-ruby/power_assert-1.1.1::gentoo[ruby_targets_ruby24]
# required by dev-ruby/test-unit-3.2.6::gentoo[ruby_targets_ruby24]                                                    
# required by dev-lang/ruby-2.2.8::gentoo
# required by dev-ruby/pkg-config-1.1.7::gentoo[ruby_targets_ruby22]
# required by @selected
# required by @world (argument)
dev-ruby/kpeg ~amd64
# required by dev-lang/ruby-2.4.2::gentoo
# required by dev-ruby/power_assert-1.1.1::gentoo[ruby_targets_ruby24]
# required by dev-ruby/test-unit-3.2.6::gentoo[ruby_targets_ruby24]
# required by dev-lang/ruby-2.2.8::gentoo
# required by dev-ruby/pkg-config-1.1.7::gentoo[ruby_targets_ruby22]
# required by @selected
# required by @world (argument)
virtual/rubygems ~amd64     
# required by dev-lang/ruby-2.4.2::gentoo    
# required by dev-ruby/power_assert-1.1.1::gentoo[ruby_targets_ruby24]                                                 
# required by dev-ruby/test-unit-3.2.6::gentoo[ruby_targets_ruby24]                                                    
# required by dev-lang/ruby-2.2.8::gentoo                                                                              
# required by dev-ruby/pkg-config-1.1.7::gentoo[ruby_targets_ruby22]                                                   
# required by @selected                                                                                                
# required by @world (argument)                                                                                        
dev-ruby/minitest ~amd64                                                                                               
# required by dev-ruby/rdoc-5.1.0::gentoo[ruby_targets_ruby22]                                                         
# required by dev-lang/ruby-2.4.2::gentoo[rdoc]
# required by dev-ruby/power_assert-1.1.1::gentoo[ruby_targets_ruby24]                                                 
# required by dev-ruby/test-unit-3.2.6::gentoo[ruby_targets_ruby24]                                                    
# required by dev-lang/ruby-2.2.8::gentoo                                                                              
# required by dev-ruby/pkg-config-1.1.7::gentoo[ruby_targets_ruby22]                                                   
# required by @selected                                                                                                
# required by @world (argument)                                                                                        
dev-ruby/json ~amd64                     
# required by dev-lang/ruby-2.4.2::gentoo                                                                              
# required by dev-ruby/power_assert-1.1.1::gentoo[ruby_targets_ruby24]
# required by dev-ruby/test-unit-3.2.6::gentoo[ruby_targets_ruby24]
# required by dev-lang/ruby-2.2.8::gentoo
# required by dev-ruby/pkg-config-1.1.7::gentoo[ruby_targets_ruby22]
# required by @selected                                                                                                
# required by @world (argument)                                                                                        
dev-ruby/net-telnet ~amd64               
# required by dev-lang/ruby-2.4.2::gentoo                                                                              
# required by dev-ruby/power_assert-1.1.1::gentoo[ruby_targets_ruby24]
# required by dev-lang/ruby-2.2.8::gentoo                                                                              
# required by dev-ruby/pkg-config-1.1.7::gentoo[ruby_targets_ruby22]
# required by @selected                      
# required by @world (argument)                                                                                        
dev-ruby/test-unit ~amd64
# required by dev-lang/ruby-2.4.2::gentoo
# required by dev-ruby/power_assert-1.1.1::gentoo[ruby_targets_ruby24]
# required by dev-ruby/test-unit-3.2.6::gentoo[ruby_targets_ruby24]
# required by dev-lang/ruby-2.2.8::gentoo
# required by dev-ruby/pkg-config-1.1.7::gentoo[ruby_targets_ruby22]
# required by @selected
# required by @world (argument)
dev-ruby/xmlrpc ~amd64
# required by dev-lang/ruby-2.4.2::gentoo
# required by dev-ruby/net-telnet-0.1.1-r1::gentoo[ruby_targets_ruby24]
# =dev-ruby/power_assert-1.1.1 ~amd64
dev-ruby/power_assert ~amd64
# while only asciidoctor was a dependency during installation of blender, 
# the following line should take care of `asciidoctor-diagram` as well (should 
# it be needed or if wanted to install)
# 20180314 aml
dev-ruby/asciidoctor* ~amd64

# =dev-ruby/http-accept-1.7.0
dev-ruby/http-accept
# required by dev-ruby/net-ssh-4.2.0::gentoo
# required by dev-ruby/net-sftp-2.1.2-r2::gentoo[ruby_targets_ruby22]
# required by app-emulation/vagrant-2.0.2::gentoo[ruby_targets_ruby22]
# required by vagrant (argument)
# =virtual/ruby-ssl-10 ~amd64
virtual/ruby-ssl
# required by app-emulation/vagrant-2.0.2::gentoo[ruby_targets_ruby22]                                                 
# required by vagrant (argument)                                                                                       
# =dev-ruby/hashicorp-checkpoint-0.1.5 ~amd64
dev-ruby/hashicorp-checkpoint  
# required by app-emulation/vagrant-2.0.2::gentoo[ruby_targets_ruby22]
# required by vagrant (argument)                                                                                       
# =dev-ruby/net-scp-1.2.1-r1 ~amd64                                                                                    
dev-ruby/net-scp                                                                                                       
### 20181118 -- ruby25 (testing)         
dev-lang/ruby:2.5                                                                                                      
dev-lang/ruby:2.6                                                                                                      
app-eselect/eselect-ruby       
dev-ruby/unf_ext               
### END ruby25                           
### 20181118 -- vagrant (ruby25)                                                                                       
dev-ruby/ffi                                       
dev-ruby/net-ssh            
dev-ruby/listen                                                                                                        
dev-ruby/rb-inotify                                                                                                    
app-emulation/vagrant                  
dev-ruby/rest-client 
dev-ruby/domain_name                                                                                                   
### END vagrant                                                                                                        
dev-python/botocore             
# required by app-emulation/vagrant-2.2.2::gentoo[ruby_targets_ruby25]
# required by @selected                     
# required by @world (argument)                                                                                        
# =dev-ruby/vagrant_cloud-2.0.1 ~amd64                                                                                 
dev-ruby/vagrant_cloud            
# required by app-emulation/vagrant-2.2.2::gentoo[ruby_targets_ruby24]
# required by @selected                                                                                                
# required by @world (argument)                                                                                        
# =dev-ruby/i18n-1.1.1 ~amd64             
dev-ruby/i18n                                
# required by app-emulation/vagrant-2.2.2::gentoo[ruby_targets_ruby24]                                                 
# required by @selected                                                                                                
# required by @world (argument)               
# =dev-ruby/rubyzip-1.2.2 ~amd64   
dev-ruby/rubyzip     
# required by app-emulation/vagrant-2.2.2::gentoo[ruby_targets_ruby25]
# required by @selected     
# required by @world (argument)
# =dev-ruby/ed25519-1.2.4 ~amd64
dev-ruby/ed25519 
#### 20181226 -- enable rubocop from graaff overlay
dev-ruby/rubocop                
# required by dev-ruby/rubocop-0.61.1::graaff[ruby_targets_ruby24]
# required by rubocop (argument)
# =dev-ruby/jaro_winkler-1.5.1 ~amd64                                                                                  
dev-ruby/jaro_winkler
# required by dev-ruby/parser-2.5.3.0::gentoo[ruby_targets_ruby24]
# required by dev-ruby/rubocop-0.61.1::graaff[ruby_targets_ruby25]
# required by rubocop (argument)
# =dev-ruby/ast-2.4.0 ~amd64
dev-ruby/ast
# required by dev-ruby/rubocop-0.61.1::graaff[ruby_targets_ruby25]
# required by rubocop (argument)
# =dev-ruby/powerpack-0.1.2 ~amd64
dev-ruby/powerpack
# required by dev-ruby/rubocop-0.61.1::graaff[ruby_targets_ruby25]
# required by rubocop (argument)
# =dev-ruby/ruby-progressbar-1.10.0 ~amd64                                                                             
dev-ruby/ruby-progressbar                    
# required by dev-ruby/rubocop-0.61.1::graaff[ruby_targets_ruby25]
# required by rubocop (argument)                                                                                       
# =dev-ruby/unicode-display_width-1.4.0 ~amd64                                                                         
dev-ruby/unicode-display_width                                                                                         
dev-ruby/ruby-install                                                                                                  
dev-ruby/chruby                          
dev-ruby/asciidoctor-diagram                                                                                           
dev-ruby/parser                                                                                                        
### 20200114 -- enable ruby26  
dev-ruby/parallel              
# >dev-lang/ruby-2.4.0                   
dev-ruby/bundler                                                                                                       
dev-ruby/bcrypt_pbkdf                              
dev-ruby/rubygems           
dev-ruby/childprocess                                                                                                  
dev-ruby/rails                                                                                                         
sys-apps/yarn                          
app-vim/rails        
### 20200127 -- Bug 706410                                                                                             
# <dev-ruby/rack-2.1.0                                                                                                 
# -dev-ruby/rack                
dev-ruby/rack                                                                                                          
# dev-ruby/*                                
### 20200127 -- cleanup for specific ebuilds only, rather than wildcard (dev-ruby/*)                                   
dev-ruby/abstract                                                                                                      
dev-ruby/actioncable              
dev-ruby/actionmailbox                                                                                                 
dev-ruby/actionmailer                                                                                                  
dev-ruby/actionpack                                                                                                    
dev-ruby/actiontext                       
dev-ruby/actionview                          
dev-ruby/activejob                                                                                                     
dev-ruby/activemodel                                                                                                   
dev-ruby/activerecord                         
dev-ruby/activestorage             
dev-ruby/activesupport
dev-ruby/arel                                                                                                          
dev-ruby/builder            
dev-ruby/concurrent-ruby       
dev-ruby/crass                  
dev-ruby/erubi   
dev-ruby/erubis                                    
dev-ruby/globalid               
dev-ruby/http-cookie                                                                                                   
dev-ruby/libxml                 
dev-ruby/log4r                                                                                                         
dev-ruby/loofah      
dev-ruby/mail                                                                                                          
dev-ruby/marcel                                                                                                        
dev-ruby/method_source          
dev-ruby/mime-types         
dev-ruby/mime-types-data
dev-ruby/mimemagic                                                                                                     
dev-ruby/mini_mime              
dev-ruby/netrc                    
dev-ruby/nio4r    
dev-ruby/nokogiri                                                                                                      
dev-ruby/pkg-config
dev-ruby/rack-test
dev-ruby/rails-dom-testing
dev-ruby/rails-html-sanitizer
dev-ruby/railties
dev-ruby/ruby_dep
dev-ruby/rexical
dev-ruby/sprockets
dev-ruby/sprockets-rails
dev-ruby/thor
dev-ruby/thread_safe
dev-ruby/trollop
dev-ruby/tzinfo
dev-ruby/unf
dev-ruby/websocket-driver
dev-ruby/websocket-extensions
dev-ruby/zeitwerk

@ILMostro
Copy link
Author

The removed entries from /var/lib/portage/world, which will be replaced for the time being:

-dev-ruby/abstract
-dev-ruby/asciidoctor
-dev-ruby/asciidoctor-diagram
-dev-ruby/chruby
-dev-ruby/hashicorp-checkpoint
-dev-ruby/nokogiri
-dev-ruby/pkg-config
-dev-ruby/rails
-dev-ruby/rb-inotify
-dev-ruby/rexical
-dev-ruby/ruby-install
-dev-ruby/ruby_dep
-dev-ruby/trollop
-dev-ruby/unf

@ILMostro
Copy link
Author

The removed entries from /var/lib/portage/world, which will be replaced for the time being:

-dev-ruby/chruby
-dev-ruby/ruby-install

^^ These are no longer installed.

@ILMostro
Copy link
Author

Resolution

emerge -Cav dev-lang/ruby:2.4 && emerge -avuDN @world

This is the current state of the ruby upgrades on gentoo. There may be changes to this going forward; but for now, making sure to explicitly --unmerge the old version is the way to go.

A snippet from #gentoo-ruby on freenode 20200623:

01:28:27    @graaff | All installed packages still have the ruby_targets_ruby24 use flag so that tries to pull in ruby 2.4, and as long as you have 2.4 installed it will also require that use
                    | flag on a number of packages
01:28:42    @graaff | Would be nice to have completely seamless updates but I'm not sure it can be done.
01:29:21    @graaff | We also want to allow people to unmask ruby 2.4 while it is only masked should they need that, otherwise we could make the ruby24 support a no-op altogether.
01:30:00    @graaff | Perhaps a more structural solution could be found if we did not do this with USE flags
01:31:08   veremitz | yeah however its done it's gonna be a hack
01:36:44   ilmostro | makes sense; thank you for the explanation
01:37:41   ilmostro | The case could be made, though, if it's masked, that it should no longer be supported.  Although, then I suspect you have to allow for an older "unstable" version of   
                    | ruby.
01:37:54   ilmostro | But, given that there are no more security updates upstream...
01:38:11   ilmostro | anyway; this seems to have resolved the issue. Thanks again
01:39:31   ilmostro | maybe a news item about impending drop of support for a version before masking it and entirely removing support would be smoother.  But, that's just my own assessment, 
                    | as a regular user

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment