From 36b62c50e03759b81e3dbece03faaaf5e3a0e5dd Mon Sep 17 00:00:00 2001 From: Michka Popoff Date: Thu, 25 Jun 2020 22:24:46 +0200 Subject: [PATCH] software_spec: do not add empty resources Empty resources are allowed to exist under the following form: resource "filelock" do on_linux do url "https://files.pythonhosted.org/packages/14/ec/6ee2168387ce0154632f856d5cc5592328e9cf93127c5c9aeca92c8c16cb/filelock-3.0.12.tar.gz" sha256 "18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59" end end In this case (or for the on_macos only resource case), just ignore the resource block. Fixes: /usr/local/Homebrew/Library/Homebrew/dependency_collector.rb:148:in `resource_dep' /usr/local/Homebrew/Library/Homebrew/dependency_collector.rb:99:in `parse_spec' /usr/local/Homebrew/Library/Homebrew/dependency_collector.rb:53:in `build' /usr/local/Homebrew/Library/Homebrew/dependency_collector.rb:40:in `block in fetch' /usr/local/Homebrew/Library/Homebrew/dependency_collector.rb:40:in `fetch' /usr/local/Homebrew/Library/Homebrew/dependency_collector.rb:40:in `fetch' /usr/local/Homebrew/Library/Homebrew/dependency_collector.rb:30:in `add' /usr/local/Homebrew/Library/Homebrew/software_spec.rb:120:in `resource' /usr/local/Homebrew/Library/Homebrew/formula.rb:2439:in `block in resource' /usr/local/Homebrew/Library/Homebrew/formula.rb:2438:in `each' /usr/local/Homebrew/Library/Homebrew/formula.rb:2438:in `resource' /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/aws-google-auth.rb:149:in `' /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/aws-google-auth.rb:1:in `load_formula' /usr/local/Homebrew/Library/Homebrew/formulary.rb:38:in `rescue in load_formula' /usr/local/Homebrew/Library/Homebrew/formulary.rb:35:in `load_formula' /usr/local/Homebrew/Library/Homebrew/formulary.rb:56:in `load_formula_from_path' /usr/local/Homebrew/Library/Homebrew/formulary.rb:138:in `load_file' /usr/local/Homebrew/Library/Homebrew/formulary.rb:128:in `klass' /usr/local/Homebrew/Library/Homebrew/formulary.rb:124:in `get_formula' /usr/local/Homebrew/Library/Homebrew/formulary.rb:333:in `factory' /usr/local/Homebrew/Library/Homebrew/cli/args.rb:87:in `block in formulae' /usr/local/Homebrew/Library/Homebrew/cli/args.rb:86:in `map' /usr/local/Homebrew/Library/Homebrew/cli/args.rb:86:in `formulae' /usr/local/Homebrew/Library/Homebrew/cmd/install.rb:133:in `install' /usr/local/Homebrew/Library/Homebrew/brew.rb:111:in `
' --- Library/Homebrew/software_spec.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Library/Homebrew/software_spec.rb b/Library/Homebrew/software_spec.rb index 3635edd3df..9d3b208a1b 100644 --- a/Library/Homebrew/software_spec.rb +++ b/Library/Homebrew/software_spec.rb @@ -115,6 +115,8 @@ class SoftwareSpec raise DuplicateResourceError, name if resource_defined?(name) res = klass.new(name, &block) + return unless res.url + resources[name] = res dependency_collector.add(res) else