[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
This commit is contained in:
Hiroshi SHIBATA 2023-03-03 18:19:23 +09:00 committed by git
parent bab809d98f
commit 0c9a2ce6e0

View File

@ -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"))