On 2022.10.11 19:41, Michael wrote:
On Tuesday, 11 October 2022 22:43:02 BST Neil Bothwick wrote:
> On Tue, 11 Oct 2022 16:02:52 -0400, Jack wrote:
> > For example, "emerge -1 dev-ruby/thor" gives me
> >
> > !!! Problem resolving dependencies for dev-ruby/thor
> > ... done!
> >
> > !!! The ebuild selected to satisfy "dev-ruby/thor" has unmet
> > requirements.
> > - dev-ruby/thor-1.2.1::gentoo USE="-doc -test" ABI_X86="(64)"
> > RUBY_TARGETS="-ruby27 (-ruby30) (-ruby31)"
>
> ruby30 and ruby31 are in parentheses, which means they are not available.
>
> >    The following REQUIRED_USE flag constraints are unsatisfied:
> >      any-of ( ruby_targets_ruby27 ruby_targets_ruby30
> >
> > ruby_targets_ruby31 )
> >
> > I would expect USE_RUBY="ruby31" to translate into ruby_targets_ruby31,
> > but even explicitly adding that to package.use has no effect.
>
> The ebuild contains USE_RUBY="ruby26 ruby27" ruby_add_bdepend "
>
> Have you tried setting RUBY_TARGETS to ruby27 for this package?
>
> I must say I find the whole RUBY_* thing even more troublesome than the
> PYTHON_* stuff, and that's saying something!

As per the emerge man page:

-        prefix      not enabled (either disabled or removed)
[snip...]

()       circumfix   forced, masked, or removed

On a stable system with default ruby targets, I get this:

[ebuild  N     ] dev-ruby/thor-1.2.1:1::gentoo  USE="-doc -test"
RUBY_TARGETS="ruby27 (-ruby30) (-ruby31)" 95 KiB

and, dev-lang/ruby-2.7.6:2.7 is drawn in as a build dependency:

[ebuild N ] dev-lang/ruby-2.7.6:2.7::gentoo USE="gdbm ipv6 rdoc ssl - berkdb -debug -doc -examples -jemalloc -jit -rubytests -socks5 -static-libs -
systemtap -tk -xemacs" 11,802 KiB

NOTE: ruby 3.0 and 3.1 are marked as testing.
I explicitly have ruby-3.1 unmasked with "=dev-lang/ruby-3.1.2-r1 ~amd64" in package.accept_keyword, and USE_RUBY="ruby31" in make.conf. I do not see any reference to ruby in the profile. Is there somewhere else I need to unmask something? emerge --info also says 'RUBY_TARGETS="ruby31"' as its only reference to a specific ruby version.

As I said in my reply to Neil, why would this happen in just a handful of packages, but not in over thirty others? mini_mime is the other problem package, and it does not use ruby_add_bdepend so there is only one line with USE_RUBY: 'USE_RUBY="ruby26 ruby27 ruby30 ruby31"'.

So - why is ruby31 disabled for (so far) only these two packages? (The other packages which are failing depend on one of these two.)

Jack

Reply via email to