From ddfecd1cca087ceeec5c8962a0b26ca5bce74b41 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Fri, 10 Aug 2018 05:08:50 +0200 Subject: [PATCH] Check if patches are still used. --- Library/Homebrew/cleanup.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/cleanup.rb b/Library/Homebrew/cleanup.rb index 8ab18abd0c..9d485a4e15 100644 --- a/Library/Homebrew/cleanup.rb +++ b/Library/Homebrew/cleanup.rb @@ -66,13 +66,14 @@ module CleanupRefinement end end + version ||= basename.to_s[/\A.*(?:\-\-.*?)*\-\-(.*?)#{Regexp.escape(extname)}\Z/, 1] version ||= basename.to_s[/\A.*\-\-?(.*?)#{Regexp.escape(extname)}\Z/, 1] return false unless version version = Version.new(version) - return false unless formula_name = basename.to_s[/\A(.*?)(\-\-.*)*\-\-?(?:#{Regexp.escape(version)})/, 1] + return false unless formula_name = basename.to_s[/\A(.*?)(?:\-\-.*?)*\-\-?(?:#{Regexp.escape(version)})/, 1] formula = begin Formulary.from_rack(HOMEBREW_CELLAR/formula_name) @@ -82,8 +83,11 @@ module CleanupRefinement resource_name = basename.to_s[/\A.*?\-\-(.*?)\-\-?(?:#{Regexp.escape(version)})/, 1] - if resource_name && resource_version = formula.stable&.resources&.dig(resource_name)&.version - return true if resource_version > version + if resource_name == "patch" + patch_hashes = formula.stable&.patches&.map(&:resource)&.map(&:version) + return true unless patch_hashes&.include?(Checksum.new(:sha256, version.to_s)) + elsif resource_name && resource_version = formula.stable&.resources&.dig(resource_name)&.version + return true if resource_version != version elsif version.is_a?(PkgVersion) return true if formula.pkg_version > version elsif formula.version > version