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_KEYCHAIN_FILE: 'homebrew_installer_signing.keychain-db'
|
||||
# Set to the oldest supported version of macOS
|
||||
HOMEBREW_MACOS_OLDEST_SUPPORTED: '13.0'
|
||||
HOMEBREW_MACOS_OLDEST_SUPPORTED: '14.0'
|
||||
permissions:
|
||||
contents: read # for code access
|
||||
attestations: write # for actions/attest-build-provenance
|
||||
@ -152,10 +152,6 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# Intel
|
||||
- runner: macos-13
|
||||
name: macos-13-x86_64
|
||||
# Apple Silicon
|
||||
- runner: macos-14
|
||||
name: macos-14-arm64
|
||||
- runner: macos-15
|
||||
|
@ -576,18 +576,19 @@ esac
|
||||
# - docs/Installation.md
|
||||
# - https://github.com/Homebrew/install/blob/HEAD/install.sh
|
||||
# - Library/Homebrew/os/mac.rb (latest_sdk_version)
|
||||
# - Library/Homebrew/os/mac/xcode.rb (latest_version), (minimum_version)
|
||||
# and, if needed:
|
||||
# - MacOSVersion::SYMBOLS
|
||||
HOMEBREW_MACOS_NEWEST_UNSUPPORTED="16"
|
||||
HOMEBREW_MACOS_NEWEST_UNSUPPORTED="27"
|
||||
# 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:
|
||||
# - docs/Installation.md
|
||||
# - HOMEBREW_MACOS_OLDEST_SUPPORTED in .github/workflows/pkg-installer.yml
|
||||
# - `os-version min` in package/Distribution.xml
|
||||
# - https://github.com/Homebrew/install/blob/HEAD/install.sh
|
||||
HOMEBREW_MACOS_OLDEST_SUPPORTED="13"
|
||||
HOMEBREW_MACOS_OLDEST_ALLOWED="10.11"
|
||||
HOMEBREW_MACOS_OLDEST_SUPPORTED="14"
|
||||
HOMEBREW_MACOS_OLDEST_ALLOWED="10.15"
|
||||
|
||||
if [[ -n "${HOMEBREW_MACOS}" ]]
|
||||
then
|
||||
|
@ -50,7 +50,7 @@ homebrew-shellenv() {
|
||||
echo "setenv HOMEBREW_REPOSITORY ${HOMEBREW_REPOSITORY};"
|
||||
if [[ -n "${PATH_HELPER_ROOT}" ]]
|
||||
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
|
||||
echo "setenv PATH ${HOMEBREW_PREFIX}/bin:${HOMEBREW_PREFIX}/sbin:\$PATH;"
|
||||
fi
|
||||
@ -75,7 +75,7 @@ homebrew-shellenv() {
|
||||
fi
|
||||
if [[ -n "${PATH_HELPER_ROOT}" ]]
|
||||
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
|
||||
echo "export PATH=\"${HOMEBREW_PREFIX}/bin:${HOMEBREW_PREFIX}/sbin\${PATH+:\$PATH}\";"
|
||||
fi
|
||||
|
@ -974,7 +974,11 @@ class ReporterHub
|
||||
# Skip non-homebrew/core formulae for security.
|
||||
return if formula.include?("/")
|
||||
|
||||
begin
|
||||
Formula[formula].desc&.presence
|
||||
rescue FormulaUnavailableError
|
||||
nil
|
||||
end
|
||||
else
|
||||
all_formula_json.find { |f| f["name"] == formula }
|
||||
&.fetch("desc", nil)
|
||||
@ -988,7 +992,11 @@ class ReporterHub
|
||||
# Skip non-homebrew/cask formulae for security.
|
||||
return if cask.include?("/")
|
||||
|
||||
begin
|
||||
Cask::CaskLoader.load(cask).desc&.presence
|
||||
rescue Cask::CaskError
|
||||
nil
|
||||
end
|
||||
else
|
||||
all_cask_json.find { |f| f["token"] == cask }
|
||||
&.fetch("desc", nil)
|
||||
|
@ -1156,17 +1156,6 @@ on_request: installed_on_request?, options:)
|
||||
def link(keg)
|
||||
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::CaskLoader.load(formula.name, warn: false).installed?
|
||||
rescue Cask::CaskUnavailableError, Cask::CaskInvalidError
|
||||
@ -1175,6 +1164,17 @@ on_request: installed_on_request?, options:)
|
||||
|
||||
if cask_installed_with_formula_name
|
||||
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
|
||||
end
|
||||
|
||||
|
@ -9,7 +9,7 @@ class GitHubRunnerMatrix
|
||||
# on homebrew/core and tag the first commit with a bottle e.g.
|
||||
# `git tag 15-sequoia f42c4a659e4da887fc714f8f41cc26794a4bb320`
|
||||
# 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
|
||||
NEWEST_HOMEBREW_CORE_INTEL_MACOS_RUNNER = :sonoma
|
||||
|
||||
|
@ -56,7 +56,7 @@ module OS
|
||||
def self.latest_sdk_version
|
||||
# TODO: bump version when new Xcode macOS SDK is released
|
||||
# NOTE: We only track the major version of the SDK.
|
||||
::Version.new("15")
|
||||
::Version.new("26")
|
||||
end
|
||||
|
||||
sig { returns(String) }
|
||||
|
@ -17,6 +17,7 @@ module OS
|
||||
def self.latest_version(macos: MacOS.version)
|
||||
macos = macos.strip_patch
|
||||
case macos
|
||||
when "26" then "26.0"
|
||||
when "15" then "16.4"
|
||||
when "14" then "16.2"
|
||||
when "13" then "15.2"
|
||||
@ -43,6 +44,7 @@ module OS
|
||||
def self.minimum_version
|
||||
macos = MacOS.version
|
||||
case macos
|
||||
when "26" then "26.0"
|
||||
when "15" then "16.0"
|
||||
when "14" then "15.0"
|
||||
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",
|
||||
"version": "1.0.0",
|
||||
"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
|
||||
@ -418,22 +398,6 @@ RSpec.describe Cask::Cask, :cask do
|
||||
"catalina": {
|
||||
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel.zip",
|
||||
"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
|
||||
@ -469,22 +433,6 @@ RSpec.describe Cask::Cask, :cask do
|
||||
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-darwin.zip",
|
||||
"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": {
|
||||
"url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine-intel-linux.zip",
|
||||
"sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||
|
@ -9,7 +9,7 @@ cask "with-depends-on-everything" do
|
||||
depends_on cask: "local-caffeine"
|
||||
depends_on cask: "with-depends-on-cask"
|
||||
depends_on formula: "unar"
|
||||
depends_on macos: ">= :el_capitan"
|
||||
depends_on macos: ">= :catalina"
|
||||
|
||||
app "Caffeine.app"
|
||||
end
|
||||
|
@ -7,7 +7,7 @@ cask "with-depends-on-macos-comparison" do
|
||||
url "file://#{TEST_FIXTURE_DIR}/cask/caffeine.zip"
|
||||
homepage "https://brew.sh/with-depends-on-macos-comparison"
|
||||
|
||||
depends_on macos: ">= :el_capitan"
|
||||
depends_on macos: ">= :catalina"
|
||||
|
||||
app "Caffeine.app"
|
||||
end
|
||||
|
@ -82,7 +82,7 @@
|
||||
],
|
||||
"macos": {
|
||||
">=": [
|
||||
"10.11"
|
||||
"10.15"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
@ -82,7 +82,7 @@
|
||||
],
|
||||
"macos": {
|
||||
">=": [
|
||||
"10.11"
|
||||
"10.15"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
@ -654,7 +654,7 @@ module GitHub
|
||||
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)
|
||||
files = []
|
||||
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 |
|
||||
| `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)) |
|
||||
| `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 |
|
||||
|
@ -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`. |
|
||||
| [`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. |
|
||||
| [`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. |
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
last_review_date: "2025-04-12"
|
||||
last_review_date: "2025-09-12"
|
||||
---
|
||||
|
||||
# Installation
|
||||
@ -13,7 +13,7 @@ The macOS `.pkg` installer also installs Homebrew to its default prefix (`/opt/h
|
||||
## macOS Requirements
|
||||
|
||||
* 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
|
||||
[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>
|
||||
@ -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="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/).
|
||||
|
||||
|
@ -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:
|
||||
|
||||
- Today (August 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:
|
||||
- Today (September 2025):
|
||||
- Tier 1: macOS Tahoe 26, Sequoia 15, Sonoma 14 on Apple Silicon and Intel x86_64
|
||||
- Tier 3: macOS Catalina 10.15 - Ventura 13
|
||||
- Unsupported: macOS Mojave 10.14 and earlier
|
||||
|
@ -4,7 +4,7 @@
|
||||
<options customize="never" hostArchitectures="x86_64,arm64" rootVolumeOnly="true"/>
|
||||
<volume-check>
|
||||
<allowed-os-versions>
|
||||
<os-version min="13.0.0"/>
|
||||
<os-version min="14.0.0"/>
|
||||
</allowed-os-versions>
|
||||
</volume-check>
|
||||
<choices-outline>
|
||||
@ -27,7 +27,7 @@
|
||||
<license file="LICENSE.rtf"/>
|
||||
<conclusion file="CONCLUSION.rtf" />
|
||||
<allowed-os-versions>
|
||||
<os-version min="13.0.0"/>
|
||||
<os-version min="14.0.0"/>
|
||||
</allowed-os-versions>
|
||||
|
||||
<script>
|
||||
|
Loading…
x
Reference in New Issue
Block a user