From f874603a21ea5ea5c77790db27a9e2bd72a66679 Mon Sep 17 00:00:00 2001 From: Rylan Polster Date: Wed, 5 Feb 2025 10:26:50 -0500 Subject: [PATCH] Add implicit macOS dependency to casks without explicit `depends_on` stanza --- Library/Homebrew/cask/cask.rb | 1 + Library/Homebrew/cask/dsl.rb | 7 +++++++ .../Homebrew/test/support/fixtures/cask/everything.json | 7 ++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/cask/cask.rb b/Library/Homebrew/cask/cask.rb index 7eba153bdf..0bbe88cc10 100644 --- a/Library/Homebrew/cask/cask.rb +++ b/Library/Homebrew/cask/cask.rb @@ -114,6 +114,7 @@ module Cask return unless @block @dsl.instance_eval(&@block) + @dsl.add_implicit_macos_dependency @dsl.language_eval end diff --git a/Library/Homebrew/cask/dsl.rb b/Library/Homebrew/cask/dsl.rb index b602ee5cd8..d6c5d4ab12 100644 --- a/Library/Homebrew/cask/dsl.rb +++ b/Library/Homebrew/cask/dsl.rb @@ -390,6 +390,13 @@ module Cask @depends_on end + # @api private + def add_implicit_macos_dependency + return if @depends_on.present? && @depends_on.macos.present? + + depends_on macos: ">= :#{MacOSVersion::SYMBOLS.key MacOSVersion::SYMBOLS.values.min}" + end + # Declare conflicts that keep a cask from installing or working correctly. # # @api public diff --git a/Library/Homebrew/test/support/fixtures/cask/everything.json b/Library/Homebrew/test/support/fixtures/cask/everything.json index 9bc4c6af19..b247e82a05 100644 --- a/Library/Homebrew/test/support/fixtures/cask/everything.json +++ b/Library/Homebrew/test/support/fixtures/cask/everything.json @@ -76,7 +76,12 @@ "depends_on": { "cask": [ "something" - ] + ], + "macos": { + ">=": [ + "10.11" + ] + } }, "conflicts_with": { "formula": [