diff --git a/Library/Homebrew/extend/os/linux/install.rb b/Library/Homebrew/extend/os/linux/install.rb index bb830d2dc1a65..7940896db0144 100644 --- a/Library/Homebrew/extend/os/linux/install.rb +++ b/Library/Homebrew/extend/os/linux/install.rb @@ -16,7 +16,8 @@ module Install ].freeze def check_cpu - return if (Hardware::CPU.intel? && Hardware::CPU.is_64_bit?) || Hardware::CPU.arm? + return if Hardware::CPU.intel? && Hardware::CPU.is_64_bit? + return if Hardware::CPU.arm? message = "Sorry, Homebrew does not support your computer's CPU architecture!" if Hardware::CPU.ppc64le? diff --git a/Library/Homebrew/extend/os/mac/hardware/cpu.rb b/Library/Homebrew/extend/os/mac/hardware/cpu.rb index da5c4c5345f9d..fad0ba4ce52dd 100644 --- a/Library/Homebrew/extend/os/mac/hardware/cpu.rb +++ b/Library/Homebrew/extend/os/mac/hardware/cpu.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require "macho" + module Hardware class CPU class << self diff --git a/Library/Homebrew/install.rb b/Library/Homebrew/install.rb index 108b51b95cec0..f68572df0845d 100644 --- a/Library/Homebrew/install.rb +++ b/Library/Homebrew/install.rb @@ -10,10 +10,13 @@ module Install module_function def check_cpu - return if (Hardware::CPU.intel? && Hardware::CPU.is_64_bit?) || Hardware::CPU.arm? + return if Hardware::CPU.intel? && Hardware::CPU.is_64_bit? message = "Sorry, Homebrew does not support your computer's CPU architecture!" - if Hardware::CPU.ppc? + if Hardware::CPU.arm? + opoo message + return + elsif Hardware::CPU.ppc? message += <<~EOS For PowerPC Mac (PPC32/PPC64BE) support, see: #{Formatter.url("https://github.com/mistydemeo/tigerbrew")} diff --git a/Library/Homebrew/os/mac/version.rb b/Library/Homebrew/os/mac/version.rb index 0ca02de626dd4..dd52ffe1c3c58 100644 --- a/Library/Homebrew/os/mac/version.rb +++ b/Library/Homebrew/os/mac/version.rb @@ -1,12 +1,13 @@ # frozen_string_literal: true +require "hardware" require "version" module OS module Mac class Version < ::Version SYMBOLS = { - big_sur: "10.16", + big_sur: Hardware::CPU.arm? ? "11.00" : "10.16", catalina: "10.15", mojave: "10.14", high_sierra: "10.13", diff --git a/Library/Homebrew/os/mac/xcode.rb b/Library/Homebrew/os/mac/xcode.rb index c01ee433de4b4..4861320b5db33 100644 --- a/Library/Homebrew/os/mac/xcode.rb +++ b/Library/Homebrew/os/mac/xcode.rb @@ -13,9 +13,10 @@ module Xcode # CI systems have been updated. # This may be a beta version for a beta macOS. def latest_version - latest = "11.5" + latest_stable = "11.5" case MacOS.version - when "10.15" then latest + when "11.0", "10.16" then "12.0" + when "10.15" then latest_stable when "10.14" then "11.3.1" when "10.13" then "10.1" when "10.12" then "9.2" @@ -26,7 +27,7 @@ def latest_version raise "macOS '#{MacOS.version}' is invalid" unless OS::Mac.prerelease? # Default to newest known version of Xcode for unreleased macOS versions. - latest + latest_stable end end @@ -36,6 +37,7 @@ def latest_version # also in beta). def minimum_version case MacOS.version + when "11.0", "10.16" then "12.0" when "10.15" then "11.0" when "10.14" then "10.2" when "10.13" then "9.0" @@ -173,9 +175,10 @@ def detect_version_from_clang_version # installed CLT version. This is useful as they are packaged # simultaneously so workarounds need to apply to both based on their # comparable version. - latest = "11.5" + latest_stable = "11.5" case (DevelopmentTools.clang_version.to_f * 10).to_i - when 110 then latest + when 120 then "12.0" + when 110 then latest_stable when 100 then "10.3" when 91 then "9.4" when 90 then "9.2" @@ -186,7 +189,7 @@ def detect_version_from_clang_version when 61 then "6.1" when 60 then "6.0" when 0 then "dunno" - else latest + else latest_stable end end