Merge pull request #9452 from mistydemeo/ruby_fix_up_broken_system_headers

RbConfig: fix broken MacOS SDK paths
This commit is contained in:
Misty De Meo 2020-12-07 16:18:12 -08:00 committed by GitHub
commit 08be577d5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 0 deletions

View File

@ -0,0 +1,17 @@
# typed: false
# frozen_string_literal: true
macos_version = ENV["HOMEBREW_MACOS_VERSION"][0..4]
macos_sdk = "MacOSX#{macos_version}.sdk"
# Ruby hardcodes what might end up being an incorrect SDK path in some of the
# variables that get used in mkmf.rb.
# This patches them up to use the correct SDK.
RbConfig::CONFIG.each do |k, v|
next unless v.include?("MacOSX.sdk")
new_value = v.gsub("MacOSX.sdk", macos_sdk)
next unless File.exist?(new_value)
RbConfig::CONFIG[k] = new_value
end

View File

@ -109,6 +109,15 @@ module Homebrew
install_bundler! install_bundler!
ENV["BUNDLE_GEMFILE"] = File.join(ENV.fetch("HOMEBREW_LIBRARY"), "Homebrew", "Gemfile") ENV["BUNDLE_GEMFILE"] = File.join(ENV.fetch("HOMEBREW_LIBRARY"), "Homebrew", "Gemfile")
# We can't use OS.mac? because not enough has
# been required yet this early in the boot process
if ENV["HOMEBREW_SYSTEM"] == "Macintosh"
# This patches up some paths used by mkmf.rb
extend_path = File.join(ENV.fetch("HOMEBREW_LIBRARY"), "Homebrew", "extend")
ENV["RUBYOPT"] = "-r#{extend_path}/rbconfig_extension"
end
@bundle_installed ||= begin @bundle_installed ||= begin
bundle = File.join(find_in_path("bundle"), "bundle") bundle = File.join(find_in_path("bundle"), "bundle")
bundle_check_output = `#{bundle} check 2>&1` bundle_check_output = `#{bundle} check 2>&1`
@ -126,6 +135,8 @@ module Homebrew
end end
end end
ENV["RUBYOPT"] = ""
setup_gem_environment! setup_gem_environment!
end end
end end