diff --git a/Library/Homebrew/macos_version.rb b/Library/Homebrew/macos_version.rb index b3a3444a4e..fe04f6dab5 100644 --- a/Library/Homebrew/macos_version.rb +++ b/Library/Homebrew/macos_version.rb @@ -18,6 +18,8 @@ class MacOSVersion < Version # NOTE: When removing symbols here, ensure that they are added # to `DEPRECATED_MACOS_VERSIONS` in `MacOSRequirement`. + # When adding or removing symbols here, ensure that you + # also update the KERNEL_MAJOR_VERSIONS map below. SYMBOLS = { sequoia: "15", sonoma: "14", @@ -31,6 +33,21 @@ class MacOSVersion < Version el_capitan: "10.11", }.freeze + # Map of macOS version strings to kernel major versions. + # https://en.wikipedia.org/wiki/MacOS_version_history#Releases + KERNEL_MAJOR_VERSIONS = { + "15" => "24", + "14" => "23", + "13" => "22", + "12" => "21", + "11" => "20", + "10.15" => "19", + "10.14" => "18", + "10.13" => "17", + "10.12" => "16", + "10.11" => "15", + }.freeze + sig { params(version: Symbol).returns(T.attached_class) } def self.from_symbol(version) str = SYMBOLS.fetch(version) { raise MacOSVersion::Error, version }