Merge pull request #3151 from MikeMcQuaid/audit-more-http
Require more HTTP mirrors for old OS X versions.
This commit is contained in:
commit
dce8938373
@ -202,12 +202,12 @@ class FormulaAuditor
|
||||
@specs = %w[stable devel head].map { |s| formula.send(s) }.compact
|
||||
end
|
||||
|
||||
def self.check_http_content(url, name, user_agents: [:default], check_content: false, strict: false)
|
||||
def self.check_http_content(url, user_agents: [:default], check_content: false, strict: false, require_http: false)
|
||||
return unless url.start_with? "http"
|
||||
|
||||
details = nil
|
||||
user_agent = nil
|
||||
hash_needed = url.start_with?("http:") && name != "curl"
|
||||
hash_needed = url.start_with?("http:") && !require_http
|
||||
user_agents.each do |ua|
|
||||
details = http_content_headers_and_checksum(url, hash_needed: hash_needed, user_agent: ua)
|
||||
user_agent = ua
|
||||
@ -576,7 +576,6 @@ class FormulaAuditor
|
||||
|
||||
return unless DevelopmentTools.curl_handles_most_https_homepages?
|
||||
if http_content_problem = FormulaAuditor.check_http_content(homepage,
|
||||
formula.name,
|
||||
user_agents: [:browser, :default],
|
||||
check_content: true,
|
||||
strict: @strict)
|
||||
@ -629,13 +628,14 @@ class FormulaAuditor
|
||||
end
|
||||
|
||||
%w[Stable Devel HEAD].each do |name|
|
||||
next unless spec = formula.send(name.downcase)
|
||||
spec_name = name.downcase.to_sym
|
||||
next unless spec = formula.send(spec_name)
|
||||
|
||||
ra = ResourceAuditor.new(spec, online: @online, strict: @strict).audit
|
||||
ra = ResourceAuditor.new(spec, spec_name, online: @online, strict: @strict).audit
|
||||
problems.concat ra.problems.map { |problem| "#{name}: #{problem}" }
|
||||
|
||||
spec.resources.each_value do |resource|
|
||||
ra = ResourceAuditor.new(resource, online: @online, strict: @strict).audit
|
||||
ra = ResourceAuditor.new(resource, spec_name, online: @online, strict: @strict).audit
|
||||
problems.concat ra.problems.map { |problem|
|
||||
"#{name} resource #{resource.name.inspect}: #{problem}"
|
||||
}
|
||||
@ -1086,10 +1086,10 @@ class FormulaAuditor
|
||||
end
|
||||
|
||||
class ResourceAuditor
|
||||
attr_reader :problems
|
||||
attr_reader :version, :checksum, :using, :specs, :url, :mirrors, :name
|
||||
attr_reader :name, :version, :checksum, :url, :mirrors, :using, :specs, :owner
|
||||
attr_reader :spec_name, :problems
|
||||
|
||||
def initialize(resource, options = {})
|
||||
def initialize(resource, spec_name, options = {})
|
||||
@name = resource.name
|
||||
@version = resource.version
|
||||
@checksum = resource.checksum
|
||||
@ -1097,9 +1097,11 @@ class ResourceAuditor
|
||||
@mirrors = resource.mirrors
|
||||
@using = resource.using
|
||||
@specs = resource.specs
|
||||
@online = options[:online]
|
||||
@strict = options[:strict]
|
||||
@problems = []
|
||||
@owner = resource.owner
|
||||
@spec_name = spec_name
|
||||
@online = options[:online]
|
||||
@strict = options[:strict]
|
||||
@problems = []
|
||||
end
|
||||
|
||||
def audit
|
||||
@ -1173,11 +1175,26 @@ class ResourceAuditor
|
||||
problem "Redundant :using value in URL"
|
||||
end
|
||||
|
||||
def self.curl_git_openssl_and_deps
|
||||
@curl_git_openssl_and_deps ||= begin
|
||||
formulae_names = ["curl", "git", "openssl"]
|
||||
formulae_names += formulae_names.flat_map do |f|
|
||||
Formula[f].recursive_dependencies.map(&:name)
|
||||
end
|
||||
formulae_names.uniq
|
||||
rescue FormulaUnavailableError
|
||||
[]
|
||||
end
|
||||
end
|
||||
|
||||
def audit_urls
|
||||
urls = [url] + mirrors
|
||||
|
||||
if name == "curl" && !urls.find { |u| u.start_with?("http://") } && url != Formula["curl"].head.url
|
||||
problem "should always include at least one HTTP url"
|
||||
require_http = ResourceAuditor.curl_git_openssl_and_deps.include?(owner.name)
|
||||
|
||||
if spec_name == :stable && require_http &&
|
||||
!urls.find { |u| u.start_with?("http://") }
|
||||
problem "should always include at least one HTTP mirror"
|
||||
end
|
||||
|
||||
return unless @online
|
||||
@ -1189,7 +1206,7 @@ class ResourceAuditor
|
||||
# A `brew mirror`'ed URL is usually not yet reachable at the time of
|
||||
# pull request.
|
||||
next if url =~ %r{^https://dl.bintray.com/homebrew/mirror/}
|
||||
if http_content_problem = FormulaAuditor.check_http_content(url, name)
|
||||
if http_content_problem = FormulaAuditor.check_http_content(url, name, require_http: require_http)
|
||||
problem http_content_problem
|
||||
end
|
||||
elsif strategy <= GitDownloadStrategy
|
||||
|
||||
@ -47,7 +47,7 @@ PowerPC and Tiger branches from other users in the fork network. See
|
||||
[Interesting Taps and Forks](Interesting-Taps-and-Forks.md).
|
||||
|
||||
<a name="2"><sup>2</sup></a> 10.10 or higher is recommended. 10.5–10.9 are
|
||||
supported on a best-effort basis. For 10.4 and 10.5, see
|
||||
supported on a best-effort basis. For 10.4 see
|
||||
[Tigerbrew](https://github.com/mistydemeo/tigerbrew).
|
||||
|
||||
<a name="3"><sup>3</sup></a> Most formulae require a compiler. A handful
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user