• [gentoo-dev] [PATCH 1/2] ruby-ng.eclass: error out earlier if RUBY is u

    From Sam James@21:1/5 to All on Fri Apr 7 12:20:01 2023
    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 <sam@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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Sam James@21:1/5 to All on Fri Apr 7 12:20:01 2023
    This makes it a lot easier to narrow down the culprit given it warns in global scope.

    (Apparently ${EBUILD} isn't defined in PMS.)

    Signed-off-by: Sam James <sam@gentoo.org>
    ---
    eclass/ruby-fakegem.eclass | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/eclass/ruby-fakegem.eclass b/eclass/ruby-fakegem.eclass
    index b3262dc5cdb49..5dc653e1598e4 100644
    --- a/eclass/ruby-fakegem.eclass
    +++ b/eclass/ruby-fakegem.eclass
    @@ -202,7 +202,7 @@ case ${RUBY_FAKEGEM_RECIPE_TEST} in
    none)
    ;;
    *)
    - eqawarn "Unknown test recipe '${RUBY_FAKEGEM_RECIPE_TEST}' specified, using 'none'"
    + eqawarn "${CATEGORY}/${PF}: Unknown test recipe '${RUBY_FAKEGEM_RECIPE_TEST}' specified, using 'none'"
    RUBY_FAKEGEM_RECIPE_TEST="none"
    ;;
    esac
    --
    2.40.0

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)