Skip to content

Commit

Permalink
Use --insecure to download ca-certificates source where necessary
Browse files Browse the repository at this point in the history
  • Loading branch information
Bo98 committed Oct 4, 2021
1 parent ebc0783 commit 76c6b52
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 3 deletions.
8 changes: 8 additions & 0 deletions Library/Homebrew/download_strategy.rb
Original file line number Diff line number Diff line change
Expand Up @@ -544,6 +544,14 @@ def _curl_args

args += [meta[:header], meta[:headers]].flatten.compact.flat_map { |h| ["--header", h.strip] }

if meta[:insecure]
unless @insecure_warning_shown
opoo "Using --insecure with curl to download `ca-certificates` because we need it installed to download securely."
@insecure_warning_shown = true
end
args += ["--insecure"] if meta[:insecure]
end

args
end

Expand Down
13 changes: 11 additions & 2 deletions Library/Homebrew/resource.rb
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,11 @@ def initialize(name = nil, &block)
def owner=(owner)
@owner = owner
patches.each { |p| p.owner = owner }

return if !owner.respond_to?(:full_name) || owner.full_name != "ca-certificates"
return if Homebrew::EnvConfig.no_insecure_redirect?

@specs[:insecure] = !specs[:bottle] && !DevelopmentTools.ca_file_handles_most_https_certificates?
end

def downloader
Expand Down Expand Up @@ -170,10 +175,14 @@ def sha256(val)
def url(val = nil, **specs)
return @url if val.nil?

specs = specs.dup
# Don't allow this to be set.
specs.delete(:insecure)

@url = val
@specs.merge!(specs)
@using = @specs.delete(:using)
@using = specs.delete(:using)
@download_strategy = DownloadStrategyDetector.detect(url, using)
@specs.merge!(specs)
@downloader = nil
end

Expand Down
2 changes: 1 addition & 1 deletion Library/Homebrew/software_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -310,8 +310,8 @@ def extname
def initialize(formula, spec, tag = nil)
@name = formula.name
@resource = Resource.new
@resource.owner = formula
@resource.specs[:bottle] = true
@resource.owner = formula
@spec = spec

tag_spec = spec.tag_specification_for(Utils::Bottles.tag(tag))
Expand Down

0 comments on commit 76c6b52

Please sign in to comment.