This might prevent an ebuild installing no files, but the main aim here is to give a better error message earlier on rather than the classic "Unable to generate gemspec file".
The output looks like: ``` * Failed to determine a path for ${RUBY} for USE=ruby_targets_ruby31: * ruby_implementation_command returned an empty RUBY for ruby31 * ERROR: dev-ruby/mercenary-0.4.0-r1::gentoo failed (setup phase): * Could not find RUBY for ruby31. Is dev-lang/ruby:3.1 installed? ``` Signed-off-by: Sam James <s...@gentoo.org> --- eclass/ruby-ng.eclass | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/eclass/ruby-ng.eclass b/eclass/ruby-ng.eclass index b81038237a6b2..d808b7bd98b3a 100644 --- a/eclass/ruby-ng.eclass +++ b/eclass/ruby-ng.eclass @@ -419,6 +419,13 @@ _ruby_each_implementation() { use ruby_targets_${_ruby_implementation} || continue RUBY=$(ruby_implementation_command ${_ruby_implementation}) + + if [[ -z ${RUBY} ]]; then + eerror "Failed to determine a path for \${RUBY} for USE=ruby_targets_${_ruby_implementation}:" + eerror " ruby_implementation_command returned an empty RUBY for ${_ruby_implementation}" + die "Could not find RUBY for ${_ruby_implementation}. Is $(_ruby_implementation_depend ${_ruby_implementation}) installed?" + fi + invoked=yes if [[ -n "$1" ]]; then -- 2.40.0