[Bug 258108] devel/ruby-gems: Update to 3.2.26 (Fixes for Ruby 3.0)
- In reply to: bugzilla-noreply_a_freebsd.org: "[Bug 258108] devel/ruby-gems: Update to 3.2.26 (Fixes for Ruby 3.0)"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
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.