cask/audit: handle on_os range bounded by depends_on

This commit is contained in:
Eric Knibbe 2024-07-01 22:58:44 -04:00
parent 3baf9f2054
commit 3f73f32286
No known key found for this signature in database
GPG Key ID: 179D9CDDDB814168
2 changed files with 7 additions and 10 deletions

View File

@ -666,11 +666,7 @@ module Cask
return if min_os.nil? || min_os <= HOMEBREW_MACOS_OLDEST_ALLOWED
cask_min_os = if cask.on_system_blocks_exist? && cask.on_system_block_min_os.present?
cask.on_system_block_min_os
else
cask.depends_on.macos&.minimum_version
end
cask_min_os = [cask.on_system_block_min_os, cask.depends_on.macos&.minimum_version].compact.max
odebug "Declared minimum OS version: #{cask_min_os&.to_sym}"
return if cask_min_os&.to_sym == min_os.to_sym
return if cask.on_system_blocks_exist? &&
@ -678,8 +674,9 @@ module Cask
cask_min_os < MacOSVersion.new("11")
min_os_definition = if cask_min_os.present?
if cask.on_system_blocks_exist? && cask.on_system_block_min_os.present?
"a block with a minimum OS version of #{cask.on_system_block_min_os.inspect}"
if cask.on_system_block_min_os.present? &&
cask.on_system_block_min_os > cask.depends_on.macos&.minimum_version
"a block with a minimum OS version of #{cask_min_os.to_sym.inspect}"
else
cask_min_os.to_sym.inspect
end
@ -687,7 +684,7 @@ module Cask
"no minimum OS version"
end
add_error "Upstream defined #{min_os.to_sym.inspect} as the minimum OS version " \
"and the cask declared #{min_os_definition}",
"but the cask declared #{min_os_definition}",
strict_only: true
end

View File

@ -131,9 +131,9 @@ module OnSystem
return unless OnSystem.os_condition_met? os_condition, or_condition
@on_system_block_min_os = if or_condition == :or_older
MacOSVersion.new(HOMEBREW_MACOS_OLDEST_ALLOWED).to_sym
@called_in_on_system_block ? @on_system_block_min_os : MacOSVersion.new(HOMEBREW_MACOS_OLDEST_ALLOWED)
else
os_condition
MacOSVersion.from_symbol(os_condition)
end
@called_in_on_system_block = true
result = block.call