From fec6fc4b4fc0760d3587fce9cbbb00e0b561d8d6 Mon Sep 17 00:00:00 2001 From: Misty De Meo Date: Fri, 27 Nov 2020 16:23:10 -0800 Subject: [PATCH 1/2] SDK: allow SDK mismatches if major version matches --- Library/Homebrew/os/mac/sdk.rb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/os/mac/sdk.rb b/Library/Homebrew/os/mac/sdk.rb index bfc648fce5..d5869888db 100644 --- a/Library/Homebrew/os/mac/sdk.rb +++ b/Library/Homebrew/os/mac/sdk.rb @@ -52,7 +52,17 @@ module OS rescue NoSDKError latest_sdk end - # Only return an SDK older than the OS version if it was specifically requested + # Accept an SDK for another OS version if it shares a major version + # with the current OS - for example, the 11.0 SDK on 11.1, + # or vice versa. + # Note that this only applies on macOS 11 + # or greater, given the way the versioning has changed. + # This shortcuts the below check, since we *do* accept an older version + # on macOS 11 or greater if the major version matches. + return sdk if sdk.present? && OS::Mac.version >= :big_sur && sdk.version.major == OS::Mac.version.major + + # On OSs lower than 11, or where the major versions don't match, + # only return an SDK older than the OS version if it was specifically requested return unless v || (sdk.present? && sdk.version >= OS::Mac.sdk_version) sdk From a70d89112223e91a5e06e8268755f1055f3a7dee Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Mon, 30 Nov 2020 12:58:38 +0000 Subject: [PATCH 2/2] os/mac/sdk: refactor for readability. --- Library/Homebrew/os/mac/sdk.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/os/mac/sdk.rb b/Library/Homebrew/os/mac/sdk.rb index d5869888db..5fc79d6268 100644 --- a/Library/Homebrew/os/mac/sdk.rb +++ b/Library/Homebrew/os/mac/sdk.rb @@ -52,6 +52,8 @@ module OS rescue NoSDKError latest_sdk end + return if sdk.blank? + # Accept an SDK for another OS version if it shares a major version # with the current OS - for example, the 11.0 SDK on 11.1, # or vice versa. @@ -59,11 +61,11 @@ module OS # or greater, given the way the versioning has changed. # This shortcuts the below check, since we *do* accept an older version # on macOS 11 or greater if the major version matches. - return sdk if sdk.present? && OS::Mac.version >= :big_sur && sdk.version.major == OS::Mac.version.major + return sdk if OS::Mac.version >= :big_sur && sdk.version.major == OS::Mac.version.major # On OSs lower than 11, or where the major versions don't match, # only return an SDK older than the OS version if it was specifically requested - return unless v || (sdk.present? && sdk.version >= OS::Mac.sdk_version) + return if v.blank? && sdk.version < OS::Mac.version sdk end