Compare commits
	
		
			19 Commits
		
	
	
		
			cd4fc80ec1
			...
			b9297dcdfc
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					b9297dcdfc | ||
| 
						 | 
					6c44d1a8f1 | ||
| 
						 | 
					5f1241b953 | ||
| 
						 | 
					6cb3473e9e | ||
| 
						 | 
					263ca54e7a | ||
| 
						 | 
					41198d866f | ||
| 
						 | 
					8304edbf2c | ||
| 
						 | 
					96048f0a5a | ||
| 
						 | 
					a9cc3c49f5 | ||
| 
						 | 
					c834a862ab | ||
| 
						 | 
					57578cf91a | ||
| 
						 | 
					47b7bf378e | ||
| 
						 | 
					d7c0052e78 | ||
| 
						 | 
					f1aa78993c | ||
| 
						 | 
					e63c885033 | ||
| 
						 | 
					d3e7e6bde5 | ||
| 
						 | 
					c35fe04c91 | ||
| 
						 | 
					8567e8bcd3 | ||
| 
						 | 
					00a49bf8e1 | 
							
								
								
									
										6
									
								
								.github/workflows/pkg-installer.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/pkg-installer.yml
									
									
									
									
										vendored
									
									
								
							@ -32,7 +32,7 @@ jobs:
 | 
				
			|||||||
      TEMPORARY_CERTIFICATE_FILE: 'homebrew_developer_id_installer_certificate.p12'
 | 
					      TEMPORARY_CERTIFICATE_FILE: 'homebrew_developer_id_installer_certificate.p12'
 | 
				
			||||||
      TEMPORARY_KEYCHAIN_FILE: 'homebrew_installer_signing.keychain-db'
 | 
					      TEMPORARY_KEYCHAIN_FILE: 'homebrew_installer_signing.keychain-db'
 | 
				
			||||||
      # Set to the oldest supported version of macOS
 | 
					      # Set to the oldest supported version of macOS
 | 
				
			||||||
      HOMEBREW_MACOS_OLDEST_SUPPORTED: '13.0'
 | 
					      HOMEBREW_MACOS_OLDEST_SUPPORTED: '14.0'
 | 
				
			||||||
    permissions:
 | 
					    permissions:
 | 
				
			||||||
      contents: read # for code access
 | 
					      contents: read # for code access
 | 
				
			||||||
      attestations: write # for actions/attest-build-provenance
 | 
					      attestations: write # for actions/attest-build-provenance
 | 
				
			||||||
@ -152,10 +152,6 @@ jobs:
 | 
				
			|||||||
      fail-fast: false
 | 
					      fail-fast: false
 | 
				
			||||||
      matrix:
 | 
					      matrix:
 | 
				
			||||||
        include:
 | 
					        include:
 | 
				
			||||||
          # Intel
 | 
					 | 
				
			||||||
          - runner: macos-13
 | 
					 | 
				
			||||||
            name: macos-13-x86_64
 | 
					 | 
				
			||||||
          # Apple Silicon
 | 
					 | 
				
			||||||
          - runner: macos-14
 | 
					          - runner: macos-14
 | 
				
			||||||
            name: macos-14-arm64
 | 
					            name: macos-14-arm64
 | 
				
			||||||
          - runner: macos-15
 | 
					          - runner: macos-15
 | 
				
			||||||
 | 
				
			|||||||
@ -576,18 +576,19 @@ esac
 | 
				
			|||||||
# - docs/Installation.md
 | 
					# - docs/Installation.md
 | 
				
			||||||
# - https://github.com/Homebrew/install/blob/HEAD/install.sh
 | 
					# - https://github.com/Homebrew/install/blob/HEAD/install.sh
 | 
				
			||||||
# - Library/Homebrew/os/mac.rb (latest_sdk_version)
 | 
					# - Library/Homebrew/os/mac.rb (latest_sdk_version)
 | 
				
			||||||
 | 
					# - Library/Homebrew/os/mac/xcode.rb (latest_version), (minimum_version)
 | 
				
			||||||
# and, if needed:
 | 
					# and, if needed:
 | 
				
			||||||
# - MacOSVersion::SYMBOLS
 | 
					# - MacOSVersion::SYMBOLS
 | 
				
			||||||
HOMEBREW_MACOS_NEWEST_UNSUPPORTED="16"
 | 
					HOMEBREW_MACOS_NEWEST_UNSUPPORTED="27"
 | 
				
			||||||
# TODO: bump version when new macOS is released
 | 
					# TODO: bump version when new macOS is released
 | 
				
			||||||
HOMEBREW_MACOS_NEWEST_SUPPORTED="15"
 | 
					HOMEBREW_MACOS_NEWEST_SUPPORTED="26"
 | 
				
			||||||
# TODO: bump version when new macOS is released and update references in:
 | 
					# TODO: bump version when new macOS is released and update references in:
 | 
				
			||||||
# - docs/Installation.md
 | 
					# - docs/Installation.md
 | 
				
			||||||
# - HOMEBREW_MACOS_OLDEST_SUPPORTED in .github/workflows/pkg-installer.yml
 | 
					# - HOMEBREW_MACOS_OLDEST_SUPPORTED in .github/workflows/pkg-installer.yml
 | 
				
			||||||
# - `os-version min` in package/Distribution.xml
 | 
					# - `os-version min` in package/Distribution.xml
 | 
				
			||||||
# - https://github.com/Homebrew/install/blob/HEAD/install.sh
 | 
					# - https://github.com/Homebrew/install/blob/HEAD/install.sh
 | 
				
			||||||
HOMEBREW_MACOS_OLDEST_SUPPORTED="13"
 | 
					HOMEBREW_MACOS_OLDEST_SUPPORTED="14"
 | 
				
			||||||
HOMEBREW_MACOS_OLDEST_ALLOWED="10.11"
 | 
					HOMEBREW_MACOS_OLDEST_ALLOWED="10.15"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [[ -n "${HOMEBREW_MACOS}" ]]
 | 
					if [[ -n "${HOMEBREW_MACOS}" ]]
 | 
				
			||||||
then
 | 
					then
 | 
				
			||||||
 | 
				
			|||||||
@ -50,7 +50,7 @@ homebrew-shellenv() {
 | 
				
			|||||||
      echo "setenv HOMEBREW_REPOSITORY ${HOMEBREW_REPOSITORY};"
 | 
					      echo "setenv HOMEBREW_REPOSITORY ${HOMEBREW_REPOSITORY};"
 | 
				
			||||||
      if [[ -n "${PATH_HELPER_ROOT}" ]]
 | 
					      if [[ -n "${PATH_HELPER_ROOT}" ]]
 | 
				
			||||||
      then
 | 
					      then
 | 
				
			||||||
        PATH_HELPER_ROOT="${PATH_HELPER_ROOT}" PATH="${HOMEBREW_PATH}" /usr/libexec/path_helper -c
 | 
					        echo "eval \`PATH_HELPER_ROOT=\"${PATH_HELPER_ROOT}\" /usr/libexec/path_helper -c\`;"
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
        echo "setenv PATH ${HOMEBREW_PREFIX}/bin:${HOMEBREW_PREFIX}/sbin:\$PATH;"
 | 
					        echo "setenv PATH ${HOMEBREW_PREFIX}/bin:${HOMEBREW_PREFIX}/sbin:\$PATH;"
 | 
				
			||||||
      fi
 | 
					      fi
 | 
				
			||||||
@ -75,7 +75,7 @@ homebrew-shellenv() {
 | 
				
			|||||||
      fi
 | 
					      fi
 | 
				
			||||||
      if [[ -n "${PATH_HELPER_ROOT}" ]]
 | 
					      if [[ -n "${PATH_HELPER_ROOT}" ]]
 | 
				
			||||||
      then
 | 
					      then
 | 
				
			||||||
        PATH_HELPER_ROOT="${PATH_HELPER_ROOT}" PATH="${HOMEBREW_PATH}" /usr/libexec/path_helper -s
 | 
					        echo "eval \"\$(PATH_HELPER_ROOT=\"${PATH_HELPER_ROOT}\" /usr/libexec/path_helper -s)\""
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
        echo "export PATH=\"${HOMEBREW_PREFIX}/bin:${HOMEBREW_PREFIX}/sbin\${PATH+:\$PATH}\";"
 | 
					        echo "export PATH=\"${HOMEBREW_PREFIX}/bin:${HOMEBREW_PREFIX}/sbin\${PATH+:\$PATH}\";"
 | 
				
			||||||
      fi
 | 
					      fi
 | 
				
			||||||
 | 
				
			|||||||
@ -974,7 +974,11 @@ class ReporterHub
 | 
				
			|||||||
      # Skip non-homebrew/core formulae for security.
 | 
					      # Skip non-homebrew/core formulae for security.
 | 
				
			||||||
      return if formula.include?("/")
 | 
					      return if formula.include?("/")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      Formula[formula].desc&.presence
 | 
					      begin
 | 
				
			||||||
 | 
					        Formula[formula].desc&.presence
 | 
				
			||||||
 | 
					      rescue FormulaUnavailableError
 | 
				
			||||||
 | 
					        nil
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      all_formula_json.find { |f| f["name"] == formula }
 | 
					      all_formula_json.find { |f| f["name"] == formula }
 | 
				
			||||||
                      &.fetch("desc", nil)
 | 
					                      &.fetch("desc", nil)
 | 
				
			||||||
@ -988,7 +992,11 @@ class ReporterHub
 | 
				
			|||||||
      # Skip non-homebrew/cask formulae for security.
 | 
					      # Skip non-homebrew/cask formulae for security.
 | 
				
			||||||
      return if cask.include?("/")
 | 
					      return if cask.include?("/")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      Cask::CaskLoader.load(cask).desc&.presence
 | 
					      begin
 | 
				
			||||||
 | 
					        Cask::CaskLoader.load(cask).desc&.presence
 | 
				
			||||||
 | 
					      rescue Cask::CaskError
 | 
				
			||||||
 | 
					        nil
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      all_cask_json.find { |f| f["token"] == cask }
 | 
					      all_cask_json.find { |f| f["token"] == cask }
 | 
				
			||||||
                   &.fetch("desc", nil)
 | 
					                   &.fetch("desc", nil)
 | 
				
			||||||
 | 
				
			|||||||
@ -1156,17 +1156,6 @@ on_request: installed_on_request?, options:)
 | 
				
			|||||||
  def link(keg)
 | 
					  def link(keg)
 | 
				
			||||||
    Formula.clear_cache
 | 
					    Formula.clear_cache
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    unless link_keg
 | 
					 | 
				
			||||||
      begin
 | 
					 | 
				
			||||||
        keg.optlink(verbose: verbose?, overwrite: overwrite?)
 | 
					 | 
				
			||||||
      rescue Keg::LinkError => e
 | 
					 | 
				
			||||||
        ofail "Failed to create #{formula.opt_prefix}"
 | 
					 | 
				
			||||||
        puts "Things that depend on #{formula.full_name} will probably not build."
 | 
					 | 
				
			||||||
        puts e
 | 
					 | 
				
			||||||
      end
 | 
					 | 
				
			||||||
      return
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    cask_installed_with_formula_name = begin
 | 
					    cask_installed_with_formula_name = begin
 | 
				
			||||||
      Cask::CaskLoader.load(formula.name, warn: false).installed?
 | 
					      Cask::CaskLoader.load(formula.name, warn: false).installed?
 | 
				
			||||||
    rescue Cask::CaskUnavailableError, Cask::CaskInvalidError
 | 
					    rescue Cask::CaskUnavailableError, Cask::CaskInvalidError
 | 
				
			||||||
@ -1175,6 +1164,17 @@ on_request: installed_on_request?, options:)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if cask_installed_with_formula_name
 | 
					    if cask_installed_with_formula_name
 | 
				
			||||||
      ohai "#{formula.name} cask is installed, skipping link."
 | 
					      ohai "#{formula.name} cask is installed, skipping link."
 | 
				
			||||||
 | 
					      @link_keg = false
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    unless link_keg
 | 
				
			||||||
 | 
					      begin
 | 
				
			||||||
 | 
					        keg.optlink(verbose: verbose?, overwrite: overwrite?)
 | 
				
			||||||
 | 
					      rescue Keg::LinkError => e
 | 
				
			||||||
 | 
					        ofail "Failed to create #{formula.opt_prefix}"
 | 
				
			||||||
 | 
					        puts "Things that depend on #{formula.full_name} will probably not build."
 | 
				
			||||||
 | 
					        puts e
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
      return
 | 
					      return
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ class GitHubRunnerMatrix
 | 
				
			|||||||
  # on homebrew/core and tag the first commit with a bottle e.g.
 | 
					  # on homebrew/core and tag the first commit with a bottle e.g.
 | 
				
			||||||
  # `git tag 15-sequoia f42c4a659e4da887fc714f8f41cc26794a4bb320`
 | 
					  # `git tag 15-sequoia f42c4a659e4da887fc714f8f41cc26794a4bb320`
 | 
				
			||||||
  # to allow people to jump to specific commits based on their macOS version.
 | 
					  # to allow people to jump to specific commits based on their macOS version.
 | 
				
			||||||
  NEWEST_HOMEBREW_CORE_MACOS_RUNNER = :sequoia
 | 
					  NEWEST_HOMEBREW_CORE_MACOS_RUNNER = :tahoe
 | 
				
			||||||
  OLDEST_HOMEBREW_CORE_MACOS_RUNNER = :sonoma
 | 
					  OLDEST_HOMEBREW_CORE_MACOS_RUNNER = :sonoma
 | 
				
			||||||
  NEWEST_HOMEBREW_CORE_INTEL_MACOS_RUNNER = :sonoma
 | 
					  NEWEST_HOMEBREW_CORE_INTEL_MACOS_RUNNER = :sonoma
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -56,7 +56,7 @@ module OS
 | 
				
			|||||||
    def self.latest_sdk_version
 | 
					    def self.latest_sdk_version
 | 
				
			||||||
      # TODO: bump version when new Xcode macOS SDK is released
 | 
					      # TODO: bump version when new Xcode macOS SDK is released
 | 
				
			||||||
      # NOTE: We only track the major version of the SDK.
 | 
					      # NOTE: We only track the major version of the SDK.
 | 
				
			||||||
      ::Version.new("15")
 | 
					      ::Version.new("26")
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    sig { returns(String) }
 | 
					    sig { returns(String) }
 | 
				
			||||||
 | 
				
			|||||||
@ -17,6 +17,7 @@ module OS
 | 
				
			|||||||
      def self.latest_version(macos: MacOS.version)
 | 
					      def self.latest_version(macos: MacOS.version)
 | 
				
			||||||
        macos = macos.strip_patch
 | 
					        macos = macos.strip_patch
 | 
				
			||||||
        case macos
 | 
					        case macos
 | 
				
			||||||
 | 
					        when "26" then "26.0"
 | 
				
			||||||
        when "15" then "16.4"
 | 
					        when "15" then "16.4"
 | 
				
			||||||
        when "14" then "16.2"
 | 
					        when "14" then "16.2"
 | 
				
			||||||
        when "13" then "15.2"
 | 
					        when "13" then "15.2"
 | 
				
			||||||
@ -43,6 +44,7 @@ module OS
 | 
				
			|||||||
      def self.minimum_version
 | 
					      def self.minimum_version
 | 
				
			||||||
        macos = MacOS.version
 | 
					        macos = MacOS.version
 | 
				
			||||||
        case macos
 | 
					        case macos
 | 
				
			||||||
 | 
					        when "26" then "26.0"
 | 
				
			||||||
        when "15" then "16.0"
 | 
					        when "15" then "16.0"
 | 
				
			||||||
        when "14" then "15.0"
 | 
					        when "14" then "15.0"
 | 
				
			||||||
        when "13" then "14.1"
 | 
					        when "13" then "14.1"
 | 
				
			||||||
 | 
				
			|||||||
@ -364,26 +364,6 @@ RSpec.describe Cask::Cask, :cask do
 | 
				
			|||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.0.0/intel.zip",
 | 
					            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.0.0/intel.zip",
 | 
				
			||||||
            "version": "1.0.0",
 | 
					            "version": "1.0.0",
 | 
				
			||||||
            "sha256": "1866dfa833b123bb8fe7fa7185ebf24d28d300d0643d75798bc23730af734216"
 | 
					            "sha256": "1866dfa833b123bb8fe7fa7185ebf24d28d300d0643d75798bc23730af734216"
 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "mojave": {
 | 
					 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.0.0/intel.zip",
 | 
					 | 
				
			||||||
            "version": "1.0.0",
 | 
					 | 
				
			||||||
            "sha256": "1866dfa833b123bb8fe7fa7185ebf24d28d300d0643d75798bc23730af734216"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "high_sierra": {
 | 
					 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.0.0/intel.zip",
 | 
					 | 
				
			||||||
            "version": "1.0.0",
 | 
					 | 
				
			||||||
            "sha256": "1866dfa833b123bb8fe7fa7185ebf24d28d300d0643d75798bc23730af734216"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "sierra": {
 | 
					 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.0.0/intel.zip",
 | 
					 | 
				
			||||||
            "version": "1.0.0",
 | 
					 | 
				
			||||||
            "sha256": "1866dfa833b123bb8fe7fa7185ebf24d28d300d0643d75798bc23730af734216"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "el_capitan": {
 | 
					 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine/darwin/1.0.0/intel.zip",
 | 
					 | 
				
			||||||
            "version": "1.0.0",
 | 
					 | 
				
			||||||
            "sha256": "1866dfa833b123bb8fe7fa7185ebf24d28d300d0643d75798bc23730af734216"
 | 
					 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      JSON
 | 
					      JSON
 | 
				
			||||||
@ -418,22 +398,6 @@ RSpec.describe Cask::Cask, :cask do
 | 
				
			|||||||
          "catalina": {
 | 
					          "catalina": {
 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
 | 
					            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
 | 
				
			||||||
            "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
 | 
					            "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "mojave": {
 | 
					 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
 | 
					 | 
				
			||||||
            "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "high_sierra": {
 | 
					 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
 | 
					 | 
				
			||||||
            "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "sierra": {
 | 
					 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
 | 
					 | 
				
			||||||
            "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "el_capitan": {
 | 
					 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
 | 
					 | 
				
			||||||
            "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
 | 
					 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      JSON
 | 
					      JSON
 | 
				
			||||||
@ -469,22 +433,6 @@ RSpec.describe Cask::Cask, :cask do
 | 
				
			|||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
 | 
					            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
 | 
				
			||||||
            "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
 | 
					            "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
          "mojave": {
 | 
					 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
 | 
					 | 
				
			||||||
            "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "high_sierra": {
 | 
					 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
 | 
					 | 
				
			||||||
            "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "sierra": {
 | 
					 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
 | 
					 | 
				
			||||||
            "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "el_capitan": {
 | 
					 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
 | 
					 | 
				
			||||||
            "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "x86_64_linux": {
 | 
					          "x86_64_linux": {
 | 
				
			||||||
            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-linux.zip",
 | 
					            "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-linux.zip",
 | 
				
			||||||
            "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
 | 
					            "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ cask "with-depends-on-everything" do
 | 
				
			|||||||
  depends_on cask: "local-caffeine"
 | 
					  depends_on cask: "local-caffeine"
 | 
				
			||||||
  depends_on cask: "with-depends-on-cask"
 | 
					  depends_on cask: "with-depends-on-cask"
 | 
				
			||||||
  depends_on formula: "unar"
 | 
					  depends_on formula: "unar"
 | 
				
			||||||
  depends_on macos: ">= :el_capitan"
 | 
					  depends_on macos: ">= :catalina"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  app "Caffeine.app"
 | 
					  app "Caffeine.app"
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -7,7 +7,7 @@ cask "with-depends-on-macos-comparison" do
 | 
				
			|||||||
  url "file://#{TEST_FIXTURE_DIR}/cask/caffeine.zip"
 | 
					  url "file://#{TEST_FIXTURE_DIR}/cask/caffeine.zip"
 | 
				
			||||||
  homepage "https://brew.sh/with-depends-on-macos-comparison"
 | 
					  homepage "https://brew.sh/with-depends-on-macos-comparison"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  depends_on macos: ">= :el_capitan"
 | 
					  depends_on macos: ">= :catalina"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  app "Caffeine.app"
 | 
					  app "Caffeine.app"
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -82,7 +82,7 @@
 | 
				
			|||||||
    ],
 | 
					    ],
 | 
				
			||||||
    "macos": {
 | 
					    "macos": {
 | 
				
			||||||
      ">=": [
 | 
					      ">=": [
 | 
				
			||||||
        "10.11"
 | 
					        "10.15"
 | 
				
			||||||
      ]
 | 
					      ]
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -82,7 +82,7 @@
 | 
				
			|||||||
    ],
 | 
					    ],
 | 
				
			||||||
    "macos": {
 | 
					    "macos": {
 | 
				
			||||||
      ">=": [
 | 
					      ">=": [
 | 
				
			||||||
        "10.11"
 | 
					        "10.15"
 | 
				
			||||||
      ]
 | 
					      ]
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -654,7 +654,7 @@ module GitHub
 | 
				
			|||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  sig { params(tap_remote_repo: String, pull_request: String).returns(T::Array[T.untyped]) }
 | 
					  sig { params(tap_remote_repo: String, pull_request: T.any(String, Integer)).returns(T::Array[T.untyped]) }
 | 
				
			||||||
  def self.get_pull_request_changed_files(tap_remote_repo, pull_request)
 | 
					  def self.get_pull_request_changed_files(tap_remote_repo, pull_request)
 | 
				
			||||||
    files = []
 | 
					    files = []
 | 
				
			||||||
    API.paginate_rest(url_to("repos", tap_remote_repo, "pulls", pull_request, "files")) do |result|
 | 
					    API.paginate_rest(url_to("repos", tap_remote_repo, "pulls", pull_request, "files")) do |result|
 | 
				
			||||||
 | 
				
			|||||||
@ -185,7 +185,7 @@ Fill in the following stanzas for your cask:
 | 
				
			|||||||
| ------------------ | ----------- |
 | 
					| ------------------ | ----------- |
 | 
				
			||||||
| `version`          | application version |
 | 
					| `version`          | application version |
 | 
				
			||||||
| `sha256`           | SHA-256 checksum of the file downloaded from `url`, calculated by the command `shasum -a 256 <file>`. Can be suppressed by using the special value `:no_check`. (see [`sha256` Stanza Details](Cask-Cookbook.md#stanza-sha256)) |
 | 
					| `sha256`           | SHA-256 checksum of the file downloaded from `url`, calculated by the command `shasum -a 256 <file>`. Can be suppressed by using the special value `:no_check`. (see [`sha256` Stanza Details](Cask-Cookbook.md#stanza-sha256)) |
 | 
				
			||||||
| `url`              | URL to the `.dmg`/`.zip`/`.tgz`/`.tbz2` file that contains the application.<br />A [`verified` parameter](Cask-Cookbook.md#when-url-and-homepage-domains-differ-add-verified) must be added if the hostnames in the `url` and `homepage` stanzas differ. |
 | 
					| `url`              | URL to the `.dmg`/`.zip`/`.tgz` file (or other common archive formats) that contains the application.<br />A [`verified` parameter](Cask-Cookbook.md#when-url-and-homepage-domains-differ-add-verified) must be added if the hostnames in the `url` and `homepage` stanzas differ. |
 | 
				
			||||||
| `name`             | the full and proper name defined by the vendor, and any useful alternate names (see [`name` Stanza Details](Cask-Cookbook.md#stanza-name)) |
 | 
					| `name`             | the full and proper name defined by the vendor, and any useful alternate names (see [`name` Stanza Details](Cask-Cookbook.md#stanza-name)) |
 | 
				
			||||||
| `desc`             | one-line description of the software (see [`desc` Stanza Details](Cask-Cookbook.md#stanza-desc)) |
 | 
					| `desc`             | one-line description of the software (see [`desc` Stanza Details](Cask-Cookbook.md#stanza-desc)) |
 | 
				
			||||||
| `homepage`         | application homepage; used for the `brew home` command |
 | 
					| `homepage`         | application homepage; used for the `brew home` command |
 | 
				
			||||||
 | 
				
			|||||||
@ -120,7 +120,7 @@ Each of the following stanzas is required for every cask.
 | 
				
			|||||||
| ---------------------------------- | :---------------------------: | ----- |
 | 
					| ---------------------------------- | :---------------------------: | ----- |
 | 
				
			||||||
| [`version`](#stanza-version)       | no                            | Application version, or the special value `:latest`. |
 | 
					| [`version`](#stanza-version)       | no                            | Application version, or the special value `:latest`. |
 | 
				
			||||||
| [`sha256`](#stanza-sha256)         | no                            | SHA-256 checksum of the file downloaded from `url` as calculated by the command `shasum -a 256 <file>`, or the special value `:no_check`. |
 | 
					| [`sha256`](#stanza-sha256)         | no                            | SHA-256 checksum of the file downloaded from `url` as calculated by the command `shasum -a 256 <file>`, or the special value `:no_check`. |
 | 
				
			||||||
| [`url`](#stanza-url)               | no                            | URL to the `.dmg`/`.zip`/`.tgz`/`.tbz2` file that contains the application. A [comment](#when-url-and-homepage-domains-differ-add-verified) should be added if the domains in the `url` and `homepage` stanzas differ. |
 | 
					| [`url`](#stanza-url)               | no                            | URL to the `.dmg`/`.zip`/`.tgz` file (or other common archive formats) that contains the application. A [comment](#when-url-and-homepage-domains-differ-add-verified) should be added if the domains in the `url` and `homepage` stanzas differ. |
 | 
				
			||||||
| [`name`](#stanza-name)             | yes                           | String providing the full and proper name defined by the vendor. |
 | 
					| [`name`](#stanza-name)             | yes                           | String providing the full and proper name defined by the vendor. |
 | 
				
			||||||
| [`desc`](#stanza-desc)             | no                            | One-line description of the cask. Shown when running `brew info`. |
 | 
					| [`desc`](#stanza-desc)             | no                            | One-line description of the cask. Shown when running `brew info`. |
 | 
				
			||||||
| `homepage`                         | no                            | Application homepage; used for the `brew home` command. |
 | 
					| `homepage`                         | no                            | Application homepage; used for the `brew home` command. |
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
---
 | 
					---
 | 
				
			||||||
last_review_date: "2025-04-12"
 | 
					last_review_date: "2025-09-12"
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Installation
 | 
					# Installation
 | 
				
			||||||
@ -13,7 +13,7 @@ The macOS `.pkg` installer also installs Homebrew to its default prefix (`/opt/h
 | 
				
			|||||||
## macOS Requirements
 | 
					## macOS Requirements
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* An Apple Silicon CPU or 64-bit Intel CPU <sup>[1](#1)</sup>
 | 
					* An Apple Silicon CPU or 64-bit Intel CPU <sup>[1](#1)</sup>
 | 
				
			||||||
* macOS Ventura (13) (or higher) installed on officially supported hardware<sup>[2](#2)</sup>
 | 
					* macOS Sonoma (14) (or higher) installed on officially supported hardware<sup>[2](#2)</sup>
 | 
				
			||||||
* Command Line Tools (CLT) for Xcode (from `xcode-select --install` or
 | 
					* Command Line Tools (CLT) for Xcode (from `xcode-select --install` or
 | 
				
			||||||
  [https://developer.apple.com/download/all/](https://developer.apple.com/download/all/)) or
 | 
					  [https://developer.apple.com/download/all/](https://developer.apple.com/download/all/)) or
 | 
				
			||||||
  [Xcode](https://itunes.apple.com/us/app/xcode/id497799835) <sup>[3](#3)</sup>
 | 
					  [Xcode](https://itunes.apple.com/us/app/xcode/id497799835) <sup>[3](#3)</sup>
 | 
				
			||||||
@ -116,7 +116,7 @@ Uninstallation is documented in the [FAQ](FAQ.md#how-do-i-uninstall-homebrew).
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<a data-proofer-ignore name="1"><sup>1</sup></a> For 32-bit or PPC support see [Tigerbrew](https://github.com/mistydemeo/tigerbrew).
 | 
					<a data-proofer-ignore name="1"><sup>1</sup></a> For 32-bit or PPC support see [Tigerbrew](https://github.com/mistydemeo/tigerbrew).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<a data-proofer-ignore name="2"><sup>2</sup></a> macOS 13 (Ventura) or higher is best and supported, 10.11 (El Capitan) – 12 (Monterey) are unsupported but may work and 10.10 (Yosemite) and older will not run Homebrew at all. For 10.4 (Tiger) – 10.6 (Snow Leopard) see [Tigerbrew](https://github.com/mistydemeo/tigerbrew). Using OpenCore Legacy Patcher is a [Tier 2](Support-Tiers.md#tier-2) or [Tier 3](Support-Tiers.md#tier-3) configuration depending on CPU generation.
 | 
					<a data-proofer-ignore name="2"><sup>2</sup></a> macOS 14 (Sonoma) or higher is best and supported, 10.15 (Catalina) – 13 (Ventura) are unsupported but may work and 10.14 (Mojave) and older will not run Homebrew at all. Using OpenCore Legacy Patcher is a [Tier 2](Support-Tiers.md#tier-2) or [Tier 3](Support-Tiers.md#tier-3) configuration depending on CPU generation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<a data-proofer-ignore name="3"><sup>3</sup></a> You may need to install Xcode, the CLT, or both depending on the formula, to install a bottle (binary package) which is the only supported configuration. Downloading Xcode may require an Apple Developer account on older versions of Mac OS X. Sign up for free at [Apple's website](https://developer.apple.com/account/).
 | 
					<a data-proofer-ignore name="3"><sup>3</sup></a> You may need to install Xcode, the CLT, or both depending on the formula, to install a bottle (binary package) which is the only supported configuration. Downloading Xcode may require an Apple Developer account on older versions of Mac OS X. Sign up for free at [Apple's website](https://developer.apple.com/account/).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -120,12 +120,7 @@ As a result, Homebrew will also drop macOS Intel x86_64 support in a future rele
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Here's the timescale for planned future Tier support:
 | 
					Here's the timescale for planned future Tier support:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Today (August 2025):
 | 
					- Today (September 2025):
 | 
				
			||||||
  - Tier 1: macOS Sequoia 15, Sonoma 14, Ventura 13 on Apple Silicon and Intel x86_64
 | 
					 | 
				
			||||||
  - Tier 2: macOS Tahoe 26
 | 
					 | 
				
			||||||
  - Tier 3: macOS El Capitan 10.11 - Monterey 12
 | 
					 | 
				
			||||||
  - Unsupported: OS X Yosemite 10.10 and earlier
 | 
					 | 
				
			||||||
- September (or later) 2025:
 | 
					 | 
				
			||||||
  - Tier 1: macOS Tahoe 26, Sequoia 15, Sonoma 14 on Apple Silicon and Intel x86_64
 | 
					  - Tier 1: macOS Tahoe 26, Sequoia 15, Sonoma 14 on Apple Silicon and Intel x86_64
 | 
				
			||||||
  - Tier 3: macOS Catalina 10.15 - Ventura 13
 | 
					  - Tier 3: macOS Catalina 10.15 - Ventura 13
 | 
				
			||||||
  - Unsupported: macOS Mojave 10.14 and earlier
 | 
					  - Unsupported: macOS Mojave 10.14 and earlier
 | 
				
			||||||
 | 
				
			|||||||
@ -4,7 +4,7 @@
 | 
				
			|||||||
  <options customize="never" hostArchitectures="x86_64,arm64" rootVolumeOnly="true"/>
 | 
					  <options customize="never" hostArchitectures="x86_64,arm64" rootVolumeOnly="true"/>
 | 
				
			||||||
  <volume-check>
 | 
					  <volume-check>
 | 
				
			||||||
    <allowed-os-versions>
 | 
					    <allowed-os-versions>
 | 
				
			||||||
        <os-version min="13.0.0"/>
 | 
					        <os-version min="14.0.0"/>
 | 
				
			||||||
    </allowed-os-versions>
 | 
					    </allowed-os-versions>
 | 
				
			||||||
  </volume-check>
 | 
					  </volume-check>
 | 
				
			||||||
  <choices-outline>
 | 
					  <choices-outline>
 | 
				
			||||||
@ -27,7 +27,7 @@
 | 
				
			|||||||
  <license file="LICENSE.rtf"/>
 | 
					  <license file="LICENSE.rtf"/>
 | 
				
			||||||
  <conclusion file="CONCLUSION.rtf" />
 | 
					  <conclusion file="CONCLUSION.rtf" />
 | 
				
			||||||
  <allowed-os-versions>
 | 
					  <allowed-os-versions>
 | 
				
			||||||
    <os-version min="13.0.0"/>
 | 
					    <os-version min="14.0.0"/>
 | 
				
			||||||
  </allowed-os-versions>
 | 
					  </allowed-os-versions>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <script>
 | 
					  <script>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user