Merge pull request #14074 from SMillerDev/fix/audit/sparkle_min_os

fix: allow sparkle without a macOS version
This commit is contained in:
Bo Anderson 2022-11-01 21:25:19 +00:00 committed by GitHub
commit 73d535a206
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 5 deletions

View File

@ -550,7 +550,7 @@ module Cask
return unless cask.livecheckable?
return unless cask.livecheck.strategy == :sparkle
out, _, status = curl_output(cask.livecheck.url)
out, _, status = curl_output("--fail", "--silent", "--location", cask.livecheck.url)
return unless status.success?
require "rexml/document"
@ -563,14 +563,21 @@ module Cask
return if xml.blank?
item = xml.get_elements("//rss//channel//item").first
item = xml.elements["//rss//channel//item"]
return if item.blank?
min_os = item.elements["sparkle:minimumSystemVersion"].text
min_os = item.elements["sparkle:minimumSystemVersion"]&.text
return if min_os.blank?
min_os_string = OS::Mac::Version.new(min_os).strip_patch
cask_min_os = cask.depends_on.macos.version
begin
min_os_string = OS::Mac::Version.new(min_os).strip_patch
rescue MacOSVersionError
return
end
return if min_os_string == MacOS::Version::OLDEST_ALLOWED
cask_min_os = cask.depends_on.macos&.version
return if cask_min_os == min_os_string

View File

@ -11,6 +11,7 @@ module Cask
#
# @api private
class DependsOn < SimpleDelegator
extend T::Sig
VALID_KEYS = Set.new([
:formula,
:cask,
@ -49,6 +50,7 @@ module Cask
@cask.concat(args)
end
sig { params(args: T.any(String, Symbol)).returns(T.nilable(MacOSRequirement)) }
def macos=(*args)
raise "Only a single 'depends_on macos' is allowed." if defined?(@macos)