From 0c9a2ce6e0732aa78dc07068ffb7b606ac340035 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Fri, 3 Mar 2023 18:19:23 +0900 Subject: [PATCH] [rubygems/rubygems] Build default gems same as fresh installtion. Current implementation tried to build installation artifact. But default gems didn't provide normal gem files. So, It's always build failure. https://github.com/ruby/bigdecimal/actions/runs/4269574995/jobs/7432842788 ERROR: Error installing pkg/bigdecimal-3.1.4.gem: ERROR: Failed to build gem native extension. No such file or directory @ dir_s_mkdir - /Users/runner/.rubies/ruby-head/lib/ruby/gems/3.3.0+0/gems/bigdecimal-3.1.4/ext/bigdecimal/.gem.20230225-2301-2mul99 Gem files will remain installed in /Users/runner/.rubies/ruby-head/lib/ruby/gems/3.3.0+0/gems/bigdecimal-3.1.4 for inspection. Results logged to /Users/runner/.rubies/ruby-head/lib/ruby/gems/3.3.0+0/extensions/x86_64-darwin-19/3.3.0+0/bigdecimal-3.1.4/gem_make.out https://github.com/rubygems/rubygems/commit/2157aa8ec8 --- lib/rubygems/specification.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb index d4640c12f0..6b61e8d2bc 100644 --- a/lib/rubygems/specification.rb +++ b/lib/rubygems/specification.rb @@ -1612,6 +1612,8 @@ class Gem::Specification < Gem::BasicSpecification def build_extensions # :nodoc: return if extensions.empty? return if default_gem? + # we need to fresh build when same name and version of default gems + return if self.class.find_by_full_name(full_name)&.default_gem? return if File.exist? gem_build_complete_path return if !File.writable?(base_dir) return if !File.exist?(File.join(base_dir, "extensions"))