[前][次][番号順一覧][スレッド一覧]

ruby-changes:73812

From: David <ko1@a...>
Date: Sat, 1 Oct 2022 05:46:53 +0900 (JST)
Subject: [ruby-changes:73812] f04d249e83 (master): [rubygems/rubygems] Fix matching of eabihf platforms

https://git.ruby-lang.org/ruby.git/commit/?id=f04d249e83

From f04d249e8309aaf22f667fd2d505c9b2ead2d30b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20Rodr=C3=ADguez?= <deivid.rodriguez@r...>
Date: Thu, 29 Sep 2022 20:31:23 +0200
Subject: [rubygems/rubygems] Fix matching of eabihf platforms

https://github.com/rubygems/rubygems/commit/a03d30cd58
---
 lib/bundler/rubygems_ext.rb        | 4 ++--
 lib/rubygems/platform.rb           | 4 ++--
 test/rubygems/test_gem_platform.rb | 8 ++++++++
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/lib/bundler/rubygems_ext.rb b/lib/bundler/rubygems_ext.rb
index 1747b7cf22..d53d688009 100644
--- a/lib/bundler/rubygems_ext.rb
+++ b/lib/bundler/rubygems_ext.rb
@@ -261,7 +261,7 @@ module Gem https://github.com/ruby/ruby/blob/trunk/lib/bundler/rubygems_ext.rb#L261
           # version
           (
             (@os != "linux" && (@version.nil? || other.version.nil?)) ||
-            (@os == "linux" && (normalized_linux_version_ext == other.normalized_linux_version_ext || other.version == "musl#{@version}" || other.version == "musleabi#{@version}")) ||
+            (@os == "linux" && (normalized_linux_version_ext == other.normalized_linux_version_ext || ["musl#{@version}", "musleabi#{@version}", "musleabihf#{@version}"].include?(other.version))) ||
             @version == other.version
           )
       end
@@ -271,7 +271,7 @@ module Gem https://github.com/ruby/ruby/blob/trunk/lib/bundler/rubygems_ext.rb#L271
       def normalized_linux_version_ext
         return nil unless @version
 
-        without_gnu_nor_abi_modifiers = @version.sub(/\Agnu/, "").sub(/eabi\Z/, "")
+        without_gnu_nor_abi_modifiers = @version.sub(/\Agnu/, "").sub(/eabi(hf)?\Z/, "")
         return nil if without_gnu_nor_abi_modifiers.empty?
 
         without_gnu_nor_abi_modifiers
diff --git a/lib/rubygems/platform.rb b/lib/rubygems/platform.rb
index 0935fd8971..4dc24971c3 100644
--- a/lib/rubygems/platform.rb
+++ b/lib/rubygems/platform.rb
@@ -181,7 +181,7 @@ class Gem::Platform https://github.com/ruby/ruby/blob/trunk/lib/rubygems/platform.rb#L181
       # version
       (
         (@os != "linux" && (@version.nil? || other.version.nil?)) ||
-        (@os == "linux" && (normalized_linux_version == other.normalized_linux_version || other.version == "musl#{@version}" || other.version == "musleabi#{@version}")) ||
+        (@os == "linux" && (normalized_linux_version == other.normalized_linux_version || ["musl#{@version}", "musleabi#{@version}", "musleabihf#{@version}"].include?(other.version))) ||
         @version == other.version
       )
   end
@@ -189,7 +189,7 @@ class Gem::Platform https://github.com/ruby/ruby/blob/trunk/lib/rubygems/platform.rb#L189
   def normalized_linux_version
     return nil unless @version
 
-    without_gnu_nor_abi_modifiers = @version.sub(/\Agnu/, "").sub(/eabi\Z/, "")
+    without_gnu_nor_abi_modifiers = @version.sub(/\Agnu/, "").sub(/eabi(hf)?\Z/, "")
     return nil if without_gnu_nor_abi_modifiers.empty?
 
     without_gnu_nor_abi_modifiers
diff --git a/test/rubygems/test_gem_platform.rb b/test/rubygems/test_gem_platform.rb
index 03417d755a..ecb902ddbe 100644
--- a/test/rubygems/test_gem_platform.rb
+++ b/test/rubygems/test_gem_platform.rb
@@ -336,21 +336,29 @@ class TestGemPlatform < Gem::TestCase https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_platform.rb#L336
   def test_eabi_and_nil_version_combination_strictness
     arm_linux = Gem::Platform.new "arm-linux"
     arm_linux_eabi = Gem::Platform.new "arm-linux-eabi"
+    arm_linux_eabihf = Gem::Platform.new "arm-linux-eabihf"
     arm_linux_gnueabi = Gem::Platform.new "arm-linux-gnueabi"
+    arm_linux_gnueabihf = Gem::Platform.new "arm-linux-gnueabihf"
     arm_linux_musleabi = Gem::Platform.new "arm-linux-musleabi"
+    arm_linux_musleabihf = Gem::Platform.new "arm-linux-musleabihf"
     arm_linux_uclibceabi = Gem::Platform.new "arm-linux-uclibceabi"
+    arm_linux_uclibceabihf = Gem::Platform.new "arm-linux-uclibceabihf"
 
     # generic arm host runtime with eabi modifier accepts generic arm gems
     assert(arm_linux === arm_linux_eabi, "arm-linux =~ arm-linux-eabi")
+    assert(arm_linux === arm_linux_eabihf, "arm-linux =~ arm-linux-eabihf")
 
     # explicit gnu arm host runtime with eabi modifier accepts generic arm gems
     assert(arm_linux === arm_linux_gnueabi, "arm-linux =~ arm-linux-gnueabi")
+    assert(arm_linux === arm_linux_gnueabihf, "arm-linux =~ arm-linux-gnueabihf")
 
     # musl arm host runtime accepts libc-generic or statically linked gems...
     assert(arm_linux === arm_linux_musleabi, "arm-linux =~ arm-linux-musleabi")
+    assert(arm_linux === arm_linux_musleabihf, "arm-linux =~ arm-linux-musleabihf")
 
     # other libc arm hosts are not glibc compatible
     refute(arm_linux === arm_linux_uclibceabi, "arm-linux =~ arm-linux-uclibceabi")
+    refute(arm_linux === arm_linux_uclibceabihf, "arm-linux =~ arm-linux-uclibceabihf")
   end
 
   def test_equals3_cpu_arm
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]