[Bug 258108] devel/ruby-gems: Update to 3.2.26 (Fixes for Ruby 3.0)

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 14 Oct 2021 12:53:42 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258108

Thibault Jouan <tj+freebsd_ports@a13.fr> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #228666|0                           |1
        is obsolete|                            |

--- Comment #13 from Thibault Jouan <tj+freebsd_ports@a13.fr> ---
Created attachment 228695
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=228695&action=edit
update to 3.2.29 - with new plugins system handling

(In reply to Yasuhiro Kimura from comment #11)
> I tried your patch but it causes plist error as following if I build
> rubygem ports.

  Thank you for testing the patch and your feedback. With that version
of the patch, this error is expected. I didn't fully understand the
issue at the time, but I worked on it and made progress. Here are my
notes (full notes in the patch) about this specific issue:

    RubyGems reworked the plugins system (see upstream 27d786e8). There
    isn't a lot of info, but by looking at upstream change f5bd2fe0 we can
    guess that the idea is to generate wrappers in the new "global"
    plugins directory (${GEMS_BASE_DIR}/plugins) with code to require the
    actual plugin in the gem own directory. For example with the `yard'
    gem (`textproc/rubygem-yard' port):

      % cat /usr/local/lib/ruby/gems/2.7/plugins/yard_plugin.rb
      require_relative '../gems/yard-0.9.26/lib/rubygems_plugin.rb'

    We handle plugins like extensions: if the gem has no plugin, we remove
    the empty directory at the end of `do-install' target; if the gem has
    a plugin, we add it to the plist at the end of `gem-autoplist' target.

  Regarding the last part, in `gem-autoplist' target of
`Mk/Uses/gem.mk' file, I kept the usage of find but there is only
*one* file to find, maybe the path can be derived from the port name:
with port `yard' path is `plugins/yard_plugin.rb'. But I'd need to
check for special cases.

  With the new attached patch, the "new" plugin wrapper is
automatically included in the plist, gets in the package built from
the port, and RubyGems loads it successfully (I only tested with yard
however for now).

-- 
You are receiving this mail because:
You are the assignee for the bug.