Hi Antonio! Indeed if this is only a problem in Ruby < 3.1, it does not seem like a big deal. I think it’s probably fine to leave things as they are.
Thank you! On Tue, 10 Sep 2024 20:39:30 -0300 Antonio Terceiro <terce...@debian.org> wrote: > On Mon, Aug 26, 2024 at 04:00:06PM +0200, David Rodríguez wrote: > > Hello, RubyGems upstream maintainer here. > > > > I heard that Bundler now has trouble installing the proper platform > > specific version of any gems that ship “non-gnu” variants (not only > > `sass-embedded`) when using RubyGems packed by Debian due to this issue. > > That means that people using Debian stable fail to use Jekyll: > > https://github.com/jekyll/jekyll/issues/9478#issuecomment-1785797746. > > > > I’m not fully sure about this issues introduced by the upstream patch but > > happy to help out with making it possible to revert the patch. > > > > Thanks! > > Hi, > > The patch mentioned in the jekyll issue was written by me, and looks > like this: > > ───────┬───────────────────────────────────────────────────────────────────────────────── > │ File: > debian/patches/0002-Gem-Platform-emulate-3.3.15-behavior-on-Ruby-3.1.patch > ───────┼───────────────────────────────────────────────────────────────────────────────── > 1 │ From: Antonio Terceiro <terce...@debian.org> > 2 │ Date: Fri, 13 Oct 2023 11:14:01 -0300 > 3 │ Subject: Gem::Platform: emulate 3.3.15 behavior on Ruby 3.1 > 4 │ > 5 │ rubygems 3.4 calls a Linux platform something like aarch64-linux-gnu, > 6 │ where 3.3 called it just aarch64-linux. Given all the existing native > 7 │ extensions for Ruby 3.1 in the Debian archive had been built > 8 │ using rubygems 3.3, let's keep the old behavior on Ruby 3.1 as to not > 9 │ immediately break all the existing extensions. > 10 │ --- > 11 │ lib/rubygems/platform.rb | 3 +++ > 12 │ 1 file changed, 3 insertions(+) > 13 │ > 14 │ diff --git a/lib/rubygems/platform.rb b/lib/rubygems/platform.rb > 15 │ index b721629..34d94bd 100644 > 16 │ --- a/lib/rubygems/platform.rb > 17 │ +++ b/lib/rubygems/platform.rb > 18 │ @@ -117,6 +117,9 @@ def initialize(arch) > 19 │ when /^(\w+_platform)(\d+)?/ then [ $1, $2 ] > 20 │ else [ "unknown", nil ] > 21 │ end > 22 │ + > 23 │ + # emulate behavior from 3.3.15 on ruby 3.1 > 24 │ + @version = nil if (RUBY_VERSION < "3.2" && @os == "linux") > 25 │ when Gem::Platform then > 26 │ @cpu = arch.cpu > 27 │ @os = arch.os > ───────┴───────────────────────────────────────────────────────────────────────────────── > > As far as I can remember, it was necessary in order to not need to > rebuilding every single Debian package that had been compiled before > rubygems 3.4. The workaround mentioned in a previous message will work, > but it will also break all the Debian ruby-* packages that contain > compiled code. > > But, as you can see, the changed behavior only applies to ruby < 3.2. We > are about to start a transition to ruby 3.3, and that will probably take > a few months. After the transition is done, this problem will no longer > be relevant. > > With that said, I could not reproduce this issue with the current > default ruby. If someone can provide a minimal reproducer, I can try to > look into it.