From: Jeremy Evans Subject: Re: Update: Ruby 4.0.2 To: OpenBSD ports Date: Mon, 16 Mar 2026 23:30:47 -0700 On 03/16 06:14, Jeremy Evans wrote: > Update to the latest version of Ruby 4.0. Release notes at: > https://www.ruby-lang.org/en/news/2026/03/16/ruby-4-0-2-released/ > > Tested on amd64. I will be committing in a couple days unless I hear > objections. My extended testing of Ruby 4.0.2 found a regression, which I reported upstream, and they've prepared a fix which will be merged in a future release. This backports the fix as a distpatch. Best, Jeremy Index: Makefile =================================================================== RCS file: /cvs/ports/lang/ruby/4.0/Makefile,v retrieving revision 1.3 diff -u -p -u -p -r1.3 Makefile --- Makefile 20 Jan 2026 13:03:11 -0000 1.3 +++ Makefile 17 Mar 2026 06:28:27 -0000 @@ -1,4 +1,4 @@ -VERSION = 4.0.1 +VERSION = 4.0.2 DISTNAME = ruby-${VERSION} PKGNAME-main = ruby-${VERSION} PKGNAME-ri_docs = ruby${BINREV}-ri_docs-${VERSION} @@ -6,7 +6,9 @@ SHARED_LIBS = ruby40 0.0 NEXTVER = 4.1 PKGSPEC-main ?= ruby->=4.0.0beta0,<${NEXTVER} +SITES.rubygems = https://github.com/ruby/rubygems/commit/ PATCHFILES.p = ruby-box-test-fix{099da884fe95ccf6c684a1563ed1c4b0fd8e1196}.patch +PATCHFILES.rubygems = ruby402-gem-fix{60e7365256ddd055b3cc59a28c2288b37ad6bf29}.patch PSEUDO_FLAVORS= no_ri_docs bootstrap # Do not build the RI docs on slow arches Index: distinfo =================================================================== RCS file: /cvs/ports/lang/ruby/4.0/distinfo,v retrieving revision 1.2 diff -u -p -u -p -r1.2 distinfo --- distinfo 14 Jan 2026 01:28:06 -0000 1.2 +++ distinfo 17 Mar 2026 06:28:27 -0000 @@ -1,4 +1,6 @@ -SHA256 (ruby-4.0.1.tar.gz) = OSS+LQXbMPTjX4Wb8Ci+hfS33QFxQUL9gj5K9d4vr50= +SHA256 (ruby-4.0.2.tar.gz) = UVArJrULaN9JYzNspB42jN6SySj6+RZU3kxMF5H4Kqw= SHA256 (ruby-box-test-fix.patch) = GbHsCPL9ZNdpXZl62mqghVbwkVoqKj6H3KtVJOoSrdk= -SIZE (ruby-4.0.1.tar.gz) = 23807304 +SHA256 (ruby402-gem-fix.patch) = KyimCdjFgcYMTU1LJvA0SW/Wrj9IG5Ip/MumzjafhA8= +SIZE (ruby-4.0.2.tar.gz) = 23824654 SIZE (ruby-box-test-fix.patch) = 1047 +SIZE (ruby402-gem-fix.patch) = 2248 Index: patches/patch-lib_rubygems_rb =================================================================== RCS file: /cvs/ports/lang/ruby/4.0/patches/patch-lib_rubygems_rb,v retrieving revision 1.1.1.1 diff -u -p -u -p -r1.1.1.1 patch-lib_rubygems_rb --- patches/patch-lib_rubygems_rb 27 Dec 2025 16:25:13 -0000 1.1.1.1 +++ patches/patch-lib_rubygems_rb 17 Mar 2026 06:28:27 -0000 @@ -9,7 +9,7 @@ The ENV usage is to skip this logic duri Index: lib/rubygems.rb --- lib/rubygems.rb.orig +++ lib/rubygems.rb -@@ -1244,6 +1244,13 @@ An Array (#{env.inspect}) was passed in from #{caller[ +@@ -1245,6 +1245,13 @@ An Array (#{env.inspect}) was passed in from #{caller[ attr_accessor :disable_system_update_message Index: pkg/PLIST-main =================================================================== RCS file: /cvs/ports/lang/ruby/4.0/pkg/PLIST-main,v retrieving revision 1.2 diff -u -p -u -p -r1.2 PLIST-main --- pkg/PLIST-main 14 Jan 2026 01:28:06 -0000 1.2 +++ pkg/PLIST-main 17 Mar 2026 06:28:28 -0000 @@ -1345,7 +1345,7 @@ lib/ruby/gems/${REV}/cache/observer-0.1. lib/ruby/gems/${REV}/cache/ostruct-0.6.3.gem lib/ruby/gems/${REV}/cache/power_assert-3.0.1.gem lib/ruby/gems/${REV}/cache/prime-0.1.4.gem -lib/ruby/gems/${REV}/cache/pstore-0.2.0.gem +lib/ruby/gems/${REV}/cache/pstore-0.2.1.gem lib/ruby/gems/${REV}/cache/racc-1.8.1.gem lib/ruby/gems/${REV}/cache/rake-13.3.1.gem lib/ruby/gems/${REV}/cache/rbs-3.10.0.gem @@ -1451,10 +1451,10 @@ lib/ruby/gems/${REV}/gems/bigdecimal-4.0 lib/ruby/gems/${REV}/gems/bigdecimal-4.0.1/sample/linear.rb lib/ruby/gems/${REV}/gems/bigdecimal-4.0.1/sample/nlsolve.rb lib/ruby/gems/${REV}/gems/bigdecimal-4.0.1/sample/pi.rb -lib/ruby/gems/${REV}/gems/bundler-4.0.3/ -lib/ruby/gems/${REV}/gems/bundler-4.0.3/exe/ -lib/ruby/gems/${REV}/gems/bundler-4.0.3/exe/bundle -lib/ruby/gems/${REV}/gems/bundler-4.0.3/exe/bundler +lib/ruby/gems/${REV}/gems/bundler-4.0.6/ +lib/ruby/gems/${REV}/gems/bundler-4.0.6/exe/ +lib/ruby/gems/${REV}/gems/bundler-4.0.6/exe/bundle +lib/ruby/gems/${REV}/gems/bundler-4.0.6/exe/bundler lib/ruby/gems/${REV}/gems/csv-3.3.5/ lib/ruby/gems/${REV}/gems/csv-3.3.5/LICENSE.txt lib/ruby/gems/${REV}/gems/csv-3.3.5/NEWS.md @@ -2029,18 +2029,18 @@ lib/ruby/gems/${REV}/gems/prime-0.1.4/si lib/ruby/gems/${REV}/gems/prime-0.1.4/sig/integer-extension.rbs lib/ruby/gems/${REV}/gems/prime-0.1.4/sig/manifest.yaml lib/ruby/gems/${REV}/gems/prime-0.1.4/sig/prime.rbs -lib/ruby/gems/${REV}/gems/prism-1.8.0/ -lib/ruby/gems/${REV}/gems/pstore-0.2.0/ -lib/ruby/gems/${REV}/gems/pstore-0.2.0/BSDL -lib/ruby/gems/${REV}/gems/pstore-0.2.0/COPYING -lib/ruby/gems/${REV}/gems/pstore-0.2.0/Gemfile -lib/ruby/gems/${REV}/gems/pstore-0.2.0/README.md -lib/ruby/gems/${REV}/gems/pstore-0.2.0/Rakefile -lib/ruby/gems/${REV}/gems/pstore-0.2.0/bin/ -lib/ruby/gems/${REV}/gems/pstore-0.2.0/bin/console -lib/ruby/gems/${REV}/gems/pstore-0.2.0/bin/setup -lib/ruby/gems/${REV}/gems/pstore-0.2.0/lib/ -lib/ruby/gems/${REV}/gems/pstore-0.2.0/lib/pstore.rb +lib/ruby/gems/${REV}/gems/prism-1.8.1/ +lib/ruby/gems/${REV}/gems/pstore-0.2.1/ +lib/ruby/gems/${REV}/gems/pstore-0.2.1/BSDL +lib/ruby/gems/${REV}/gems/pstore-0.2.1/COPYING +lib/ruby/gems/${REV}/gems/pstore-0.2.1/Gemfile +lib/ruby/gems/${REV}/gems/pstore-0.2.1/README.md +lib/ruby/gems/${REV}/gems/pstore-0.2.1/Rakefile +lib/ruby/gems/${REV}/gems/pstore-0.2.1/bin/ +lib/ruby/gems/${REV}/gems/pstore-0.2.1/bin/console +lib/ruby/gems/${REV}/gems/pstore-0.2.1/bin/setup +lib/ruby/gems/${REV}/gems/pstore-0.2.1/lib/ +lib/ruby/gems/${REV}/gems/pstore-0.2.1/lib/pstore.rb lib/ruby/gems/${REV}/gems/psych-5.3.1/ lib/ruby/gems/${REV}/gems/racc-1.8.1/ lib/ruby/gems/${REV}/gems/racc-1.8.1/BSDL @@ -3274,9 +3274,9 @@ lib/ruby/gems/${REV}/gems/shellwords-0.2 lib/ruby/gems/${REV}/gems/singleton-0.3.0/ lib/ruby/gems/${REV}/gems/stringio-3.2.0/ lib/ruby/gems/${REV}/gems/strscan-3.1.6/ -lib/ruby/gems/${REV}/gems/syntax_suggest-2.0.2/ -lib/ruby/gems/${REV}/gems/syntax_suggest-2.0.2/exe/ -lib/ruby/gems/${REV}/gems/syntax_suggest-2.0.2/exe/syntax_suggest +lib/ruby/gems/${REV}/gems/syntax_suggest-2.0.3/ +lib/ruby/gems/${REV}/gems/syntax_suggest-2.0.3/exe/ +lib/ruby/gems/${REV}/gems/syntax_suggest-2.0.3/exe/syntax_suggest lib/ruby/gems/${REV}/gems/syslog-0.3.0/ lib/ruby/gems/${REV}/gems/syslog-0.3.0/BSDL lib/ruby/gems/${REV}/gems/syslog-0.3.0/COPYING @@ -3458,7 +3458,7 @@ lib/ruby/gems/${REV}/gems/un-0.3.0/ lib/ruby/gems/${REV}/gems/uri-1.1.1/ lib/ruby/gems/${REV}/gems/weakref-0.1.4/ lib/ruby/gems/${REV}/gems/yaml-0.4.0/ -lib/ruby/gems/${REV}/gems/zlib-3.2.2/ +lib/ruby/gems/${REV}/gems/zlib-3.2.3/ lib/ruby/gems/${REV}/plugins/ lib/ruby/gems/${REV}/plugins/rdoc_plugin.rb lib/ruby/gems/${REV}/specifications/ @@ -3469,7 +3469,7 @@ lib/ruby/gems/${REV}/specifications/bigd lib/ruby/gems/${REV}/specifications/csv-3.3.5.gemspec lib/ruby/gems/${REV}/specifications/debug-1.11.1.gemspec lib/ruby/gems/${REV}/specifications/default/ -lib/ruby/gems/${REV}/specifications/default/bundler-4.0.3.gemspec +lib/ruby/gems/${REV}/specifications/default/bundler-4.0.6.gemspec lib/ruby/gems/${REV}/specifications/default/date-3.5.1.gemspec lib/ruby/gems/${REV}/specifications/default/delegate-0.6.1.gemspec lib/ruby/gems/${REV}/specifications/default/did_you_mean-2.0.0.gemspec @@ -3495,7 +3495,7 @@ lib/ruby/gems/${REV}/specifications/defa lib/ruby/gems/${REV}/specifications/default/optparse-0.8.1.gemspec lib/ruby/gems/${REV}/specifications/default/pp-0.6.3.gemspec lib/ruby/gems/${REV}/specifications/default/prettyprint-0.2.0.gemspec -lib/ruby/gems/${REV}/specifications/default/prism-1.8.0.gemspec +lib/ruby/gems/${REV}/specifications/default/prism-1.8.1.gemspec lib/ruby/gems/${REV}/specifications/default/psych-5.3.1.gemspec lib/ruby/gems/${REV}/specifications/default/resolv-0.7.0.gemspec lib/ruby/gems/${REV}/specifications/default/ruby2_keywords-0.0.5.gemspec @@ -3504,7 +3504,7 @@ lib/ruby/gems/${REV}/specifications/defa lib/ruby/gems/${REV}/specifications/default/singleton-0.3.0.gemspec lib/ruby/gems/${REV}/specifications/default/stringio-3.2.0.gemspec lib/ruby/gems/${REV}/specifications/default/strscan-3.1.6.gemspec -lib/ruby/gems/${REV}/specifications/default/syntax_suggest-2.0.2.gemspec +lib/ruby/gems/${REV}/specifications/default/syntax_suggest-2.0.3.gemspec lib/ruby/gems/${REV}/specifications/default/tempfile-0.3.1.gemspec lib/ruby/gems/${REV}/specifications/default/time-0.4.2.gemspec lib/ruby/gems/${REV}/specifications/default/timeout-0.6.0.gemspec @@ -3514,7 +3514,7 @@ lib/ruby/gems/${REV}/specifications/defa lib/ruby/gems/${REV}/specifications/default/uri-1.1.1.gemspec lib/ruby/gems/${REV}/specifications/default/weakref-0.1.4.gemspec lib/ruby/gems/${REV}/specifications/default/yaml-0.4.0.gemspec -lib/ruby/gems/${REV}/specifications/default/zlib-3.2.2.gemspec +lib/ruby/gems/${REV}/specifications/default/zlib-3.2.3.gemspec lib/ruby/gems/${REV}/specifications/drb-2.2.3.gemspec lib/ruby/gems/${REV}/specifications/fiddle-1.1.8.gemspec lib/ruby/gems/${REV}/specifications/getoptlong-0.2.1.gemspec @@ -3532,7 +3532,7 @@ lib/ruby/gems/${REV}/specifications/obse lib/ruby/gems/${REV}/specifications/ostruct-0.6.3.gemspec lib/ruby/gems/${REV}/specifications/power_assert-3.0.1.gemspec lib/ruby/gems/${REV}/specifications/prime-0.1.4.gemspec -lib/ruby/gems/${REV}/specifications/pstore-0.2.0.gemspec +lib/ruby/gems/${REV}/specifications/pstore-0.2.1.gemspec lib/ruby/gems/${REV}/specifications/racc-1.8.1.gemspec lib/ruby/gems/${REV}/specifications/rake-13.3.1.gemspec lib/ruby/gems/${REV}/specifications/rbs-3.10.0.gemspec Index: pkg/PLIST-ri_docs =================================================================== RCS file: /cvs/ports/lang/ruby/4.0/pkg/PLIST-ri_docs,v retrieving revision 1.2 diff -u -p -u -p -r1.2 PLIST-ri_docs --- pkg/PLIST-ri_docs 14 Jan 2026 01:28:06 -0000 1.2 +++ pkg/PLIST-ri_docs 17 Mar 2026 06:28:29 -0000 @@ -1743,9 +1743,11 @@ share/ri/${REV}/system/Gem/BasicSpecific share/ri/${REV}/system/Gem/BundlerVersionFinder/ share/ri/${REV}/system/Gem/BundlerVersionFinder/bundle_config_version-c.ri share/ri/${REV}/system/Gem/BundlerVersionFinder/bundle_update_bundler_version-c.ri -share/ri/${REV}/system/Gem/BundlerVersionFinder/bundler_config_file-c.ri +share/ri/${REV}/system/Gem/BundlerVersionFinder/bundler_global_config_file-c.ri +share/ri/${REV}/system/Gem/BundlerVersionFinder/bundler_local_config_file-c.ri share/ri/${REV}/system/Gem/BundlerVersionFinder/bundler_version-c.ri share/ri/${REV}/system/Gem/BundlerVersionFinder/cdesc-BundlerVersionFinder.ri +share/ri/${REV}/system/Gem/BundlerVersionFinder/gemfile_path-c.ri share/ri/${REV}/system/Gem/BundlerVersionFinder/lockfile_contents-c.ri share/ri/${REV}/system/Gem/BundlerVersionFinder/lockfile_version-c.ri share/ri/${REV}/system/Gem/BundlerVersionFinder/prioritize%21-c.ri @@ -3566,6 +3568,7 @@ share/ri/${REV}/system/Gem/Specification share/ri/${REV}/system/Gem/Specification/find_in_unresolved-c.ri share/ri/${REV}/system/Gem/Specification/find_in_unresolved_tree-c.ri share/ri/${REV}/system/Gem/Specification/find_inactive_by_path-c.ri +share/ri/${REV}/system/Gem/Specification/find_unloaded_by_path-c.ri share/ri/${REV}/system/Gem/Specification/for_cache-i.ri share/ri/${REV}/system/Gem/Specification/from_yaml-c.ri share/ri/${REV}/system/Gem/Specification/gems_dir-i.ri @@ -3651,6 +3654,7 @@ share/ri/${REV}/system/Gem/Specification share/ri/${REV}/system/Gem/SpecificationPolicy/validate_array_attributes-i.ri share/ri/${REV}/system/Gem/SpecificationPolicy/validate_attribute_present-i.ri share/ri/${REV}/system/Gem/SpecificationPolicy/validate_authors_field-i.ri +share/ri/${REV}/system/Gem/SpecificationPolicy/validate_executable-i.ri share/ri/${REV}/system/Gem/SpecificationPolicy/validate_for_resolution-i.ri share/ri/${REV}/system/Gem/SpecificationPolicy/validate_lazy_metadata-i.ri share/ri/${REV}/system/Gem/SpecificationPolicy/validate_licenses-i.ri @@ -3685,6 +3689,7 @@ share/ri/${REV}/system/Gem/Specification share/ri/${REV}/system/Gem/SpecificationRecord/find_all_by_name-i.ri share/ri/${REV}/system/Gem/SpecificationRecord/find_by_path-i.ri share/ri/${REV}/system/Gem/SpecificationRecord/find_inactive_by_path-i.ri +share/ri/${REV}/system/Gem/SpecificationRecord/find_unloaded_by_path-i.ri share/ri/${REV}/system/Gem/SpecificationRecord/from_path-c.ri share/ri/${REV}/system/Gem/SpecificationRecord/installed_stubs-i.ri share/ri/${REV}/system/Gem/SpecificationRecord/latest_spec_for-i.ri