aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rw-r--r--Library/.rubocop.yml10
-rw-r--r--Library/Homebrew/.rubocop.yml5
-rw-r--r--Library/Homebrew/build.rb3
-rw-r--r--Library/Homebrew/cask/lib/hbc/artifact/moved.rb2
-rw-r--r--Library/Homebrew/cask/lib/hbc/cli/doctor.rb10
-rw-r--r--Library/Homebrew/cmd/deps.rb21
-rw-r--r--Library/Homebrew/cmd/info.rb2
-rw-r--r--Library/Homebrew/cmd/style.rb1
-rw-r--r--Library/Homebrew/cmd/uses.rb4
-rw-r--r--Library/Homebrew/cmd/vendor-install.sh31
-rw-r--r--Library/Homebrew/compat/ARGV.rb3
-rw-r--r--Library/Homebrew/compat/ENV/shared.rb2
-rw-r--r--Library/Homebrew/compat/ENV/std.rb14
-rw-r--r--Library/Homebrew/compat/ENV/super.rb24
-rw-r--r--Library/Homebrew/compat/build_options.rb6
-rw-r--r--Library/Homebrew/compat/dependency_collector.rb67
-rw-r--r--Library/Homebrew/compat/extend/string.rb1
-rw-r--r--Library/Homebrew/compat/fails_with_llvm.rb4
-rw-r--r--Library/Homebrew/compat/formula.rb54
-rw-r--r--Library/Homebrew/compat/formula_specialties.rb36
-rw-r--r--Library/Homebrew/compat/formula_support.rb18
-rw-r--r--Library/Homebrew/compat/global.rb3
-rw-r--r--Library/Homebrew/compat/gpg.rb36
-rw-r--r--Library/Homebrew/compat/hardware.rb24
-rw-r--r--Library/Homebrew/compat/json.rb30
-rw-r--r--Library/Homebrew/compat/keg.rb3
-rw-r--r--Library/Homebrew/compat/language/haskell.rb3
-rw-r--r--Library/Homebrew/compat/macos.rb85
-rw-r--r--Library/Homebrew/compat/pathname.rb16
-rw-r--r--Library/Homebrew/compat/requirements.rb156
-rw-r--r--Library/Homebrew/compat/requirements/emacs_requirement.rb35
-rw-r--r--Library/Homebrew/compat/requirements/fortran_requirement.rb13
-rw-r--r--Library/Homebrew/compat/requirements/mpi_requirement.rb66
-rw-r--r--Library/Homebrew/compat/requirements/perl_requirement.rb36
-rw-r--r--Library/Homebrew/compat/requirements/python_requirement.rb68
-rw-r--r--Library/Homebrew/compat/requirements/ruby_requirement.rb56
-rw-r--r--Library/Homebrew/compat/requirements/tex_requirement.rb20
-rw-r--r--Library/Homebrew/compat/software_spec.rb5
-rw-r--r--Library/Homebrew/compat/tab.rb3
-rw-r--r--Library/Homebrew/compat/tap.rb3
-rw-r--r--Library/Homebrew/compat/utils.rb13
-rw-r--r--Library/Homebrew/compat/utils/shell.rb3
-rw-r--r--Library/Homebrew/compat/version.rb5
-rw-r--r--Library/Homebrew/compat/xcode.rb3
-rw-r--r--Library/Homebrew/constants.rb5
-rw-r--r--Library/Homebrew/dev-cmd/create.rb134
-rw-r--r--Library/Homebrew/dev-cmd/pull.rb2
-rw-r--r--Library/Homebrew/extend/os/linux/requirements/java_requirement.rb2
-rw-r--r--Library/Homebrew/formula.rb9
-rw-r--r--Library/Homebrew/formula_installer.rb18
-rw-r--r--Library/Homebrew/formula_support.rb14
-rw-r--r--Library/Homebrew/keg.rb7
-rw-r--r--Library/Homebrew/os/mac/linkage_checker.rb3
-rw-r--r--Library/Homebrew/requirement.rb39
-rw-r--r--Library/Homebrew/rubocops/bottle_block_cop.rb2
-rw-r--r--Library/Homebrew/rubocops/checksum_cop.rb2
-rw-r--r--Library/Homebrew/rubocops/class_cop.rb2
-rw-r--r--Library/Homebrew/rubocops/components_order_cop.rb4
-rw-r--r--Library/Homebrew/rubocops/extend/formula_cop.rb2
-rw-r--r--Library/Homebrew/rubocops/formula_desc_cop.rb2
-rw-r--r--Library/Homebrew/rubocops/urls_cop.rb2
-rw-r--r--Library/Homebrew/test/Gemfile1
-rw-r--r--Library/Homebrew/test/Gemfile.lock17
-rw-r--r--Library/Homebrew/test/cask/dsl_spec.rb5
-rw-r--r--Library/Homebrew/test/cmd/style_spec.rb2
-rw-r--r--Library/Homebrew/test/dependency_collector_spec.rb5
-rw-r--r--Library/Homebrew/test/formula_installer_spec.rb60
-rw-r--r--Library/Homebrew/test/mpi_requirement_spec.rb9
-rw-r--r--Library/Homebrew/test/requirement_spec.rb55
-rw-r--r--Library/Homebrew/test/support/helper/output_as_tty.rb4
-rw-r--r--Library/Homebrew/utils.rb3
-rw-r--r--Library/Homebrew/utils/github.rb2
72 files changed, 438 insertions, 977 deletions
diff --git a/Library/.rubocop.yml b/Library/.rubocop.yml
index 051a57f93..d93d1bd8b 100644
--- a/Library/.rubocop.yml
+++ b/Library/.rubocop.yml
@@ -123,6 +123,14 @@ Style/Documentation:
Style/Encoding:
Enabled: true
+# disabled until we get the Metrics/LineLength down to 80.
+Style/IfUnlessModifier:
+ Enabled: false
+
+# messes with existing plist/caveats style
+Style/TrailingBodyOnMethodDefinition:
+ Enabled: false
+
# use spaces for indentation; detect tabs
Layout/Tab:
Enabled: true
@@ -214,7 +222,7 @@ Style/FrozenStringLiteralComment:
Enabled: false
# generally rescuing StandardError is fine
-Lint/RescueWithoutErrorClass:
+Style/RescueStandardError:
Enabled: false
# implicitly allow EOS as we use it everywhere
diff --git a/Library/Homebrew/.rubocop.yml b/Library/Homebrew/.rubocop.yml
index 354867738..e0089e050 100644
--- a/Library/Homebrew/.rubocop.yml
+++ b/Library/Homebrew/.rubocop.yml
@@ -5,6 +5,7 @@ AllCops:
Include:
- '**/.simplecov'
Exclude:
+ - 'bin/*'
- '**/Casks/**/*'
- '**/vendor/**/*'
@@ -79,3 +80,7 @@ Style/GuardClause:
# hash-rockets preferred for formulae, a: 1 preferred elsewhere
Style/HashSyntax:
EnforcedStyle: ruby19_no_mixed_keys
+
+# so many of these in formulae but none in here
+Style/TrailingBodyOnMethodDefinition:
+ Enabled: true
diff --git a/Library/Homebrew/build.rb b/Library/Homebrew/build.rb
index 836b360da..d61c3672a 100644
--- a/Library/Homebrew/build.rb
+++ b/Library/Homebrew/build.rb
@@ -48,9 +48,6 @@ class Build
Requirement.prune
elsif req.build? && dependent != formula
Requirement.prune
- elsif req.satisfied? && (dep = req.to_dependency) && dep.installed?
- deps << dep
- Requirement.prune
end
end
end
diff --git a/Library/Homebrew/cask/lib/hbc/artifact/moved.rb b/Library/Homebrew/cask/lib/hbc/artifact/moved.rb
index f5ef790eb..856ab2766 100644
--- a/Library/Homebrew/cask/lib/hbc/artifact/moved.rb
+++ b/Library/Homebrew/cask/lib/hbc/artifact/moved.rb
@@ -65,7 +65,7 @@ module Hbc
ohai "Moving #{self.class.english_name} '#{target.basename}' back to '#{source}'."
source.dirname.mkpath
- if source.parent.writable?
+ if target.parent.writable?
FileUtils.move(target, source)
else
command.run("/bin/mv", args: [target, source], sudo: true)
diff --git a/Library/Homebrew/cask/lib/hbc/cli/doctor.rb b/Library/Homebrew/cask/lib/hbc/cli/doctor.rb
index d7bcf1537..5aef2c420 100644
--- a/Library/Homebrew/cask/lib/hbc/cli/doctor.rb
+++ b/Library/Homebrew/cask/lib/hbc/cli/doctor.rb
@@ -12,6 +12,7 @@ module Hbc
def run
ohai "Homebrew-Cask Version", Hbc.full_version
ohai "macOS", MacOS.full_version
+ ohai "SIP", self.class.check_sip
ohai "Java", SystemConfig.describe_java
ohai "Homebrew-Cask Install Location", self.class.render_install_location
ohai "Homebrew-Cask Staging Location", self.class.render_staging_location(Hbc.caskroom)
@@ -37,6 +38,15 @@ module Hbc
(self.class.locale_variables + environment_variables).sort.each(&self.class.method(:render_env_var))
end
+ def self.check_sip
+ csrutil = "/usr/bin/csrutil"
+ return "N/A" unless File.executable?(csrutil)
+ Open3.capture2(csrutil, "status")[0]
+ .gsub("This is an unsupported configuration, likely to break in the future and leave your machine in an unknown state.", "")
+ .gsub("System Integrity Protection status: ", "")
+ .delete("\t\.").capitalize.strip
+ end
+
def self.locale_variables
ENV.keys.grep(/^(?:LC_\S+|LANG|LANGUAGE)\Z/).sort
end
diff --git a/Library/Homebrew/cmd/deps.rb b/Library/Homebrew/cmd/deps.rb
index ae758e143..0627e84bd 100644
--- a/Library/Homebrew/cmd/deps.rb
+++ b/Library/Homebrew/cmd/deps.rb
@@ -94,26 +94,14 @@ module Homebrew
if ARGV.include?("--include-requirements")
deps
else
- deps.map do |dep|
- if dep.is_a? Dependency
- dep
- elsif dep.default_formula?
- dep.to_dependency
- end
- end.compact
+ deps.select { |dep| dep.is_a? Dependency }
end
end
def dep_display_name(dep)
str = if dep.is_a? Requirement
if ARGV.include?("--include-requirements")
- if dep.default_formula?
- ":#{dep.display_s} (#{dep_display_name(dep.to_dependency)})"
- else
- ":#{dep.display_s}"
- end
- elsif dep.default_formula?
- dep_display_name(dep.to_dependency)
+ ":#{dep.display_s}"
else
# This shouldn't happen, but we'll put something here to help debugging
"::#{dep.name}"
@@ -207,7 +195,7 @@ module Homebrew
max = dependables.length - 1
@dep_stack.push f.name
dependables.each_with_index do |dep, i|
- next if !ARGV.include?("--include-requirements") && dep.is_a?(Requirement) && !dep.default_formula?
+ next if !ARGV.include?("--include-requirements") && dep.is_a?(Requirement)
tree_lines = if i == max
"└──"
else
@@ -223,9 +211,6 @@ module Homebrew
else
"│ "
end
- if dep.is_a?(Requirement) && dep.default_formula?
- recursive_deps_tree(Formulary.factory(dep.to_dependency.name), prefix + prefix_addition, true)
- end
if dep.is_a? Dependency
recursive_deps_tree(Formulary.factory(dep.name), prefix + prefix_addition, true)
end
diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb
index 83bb712ab..a78159a15 100644
--- a/Library/Homebrew/cmd/info.rb
+++ b/Library/Homebrew/cmd/info.rb
@@ -164,7 +164,7 @@ module Homebrew
end
end
- unless f.options.empty?
+ if !f.options.empty? || f.head || f.devel
ohai "Options"
Homebrew.dump_options_for_formula f
end
diff --git a/Library/Homebrew/cmd/style.rb b/Library/Homebrew/cmd/style.rb
index 27047dfd0..89484d67d 100644
--- a/Library/Homebrew/cmd/style.rb
+++ b/Library/Homebrew/cmd/style.rb
@@ -70,7 +70,6 @@ module Homebrew
def check_style_impl(files, output_type, options = {})
fix = options[:fix]
- Homebrew.install_gem_setup_path! "parser", HOMEBREW_RUBOCOP_PARSER_VERSION, "ruby-parse"
Homebrew.install_gem_setup_path! "rubocop", HOMEBREW_RUBOCOP_VERSION
require "rubocop"
require_relative "../rubocops"
diff --git a/Library/Homebrew/cmd/uses.rb b/Library/Homebrew/cmd/uses.rb
index 1688899f9..d5c9210f6 100644
--- a/Library/Homebrew/cmd/uses.rb
+++ b/Library/Homebrew/cmd/uses.rb
@@ -113,9 +113,7 @@ module Homebrew
end
end
- reqs.any? do |req|
- req.name == ff.name || [ff.name, ff.full_name].include?(req.default_formula)
- end
+ reqs.any? { |req| req.name == ff.name }
rescue FormulaUnavailableError
# Silently ignore this case as we don't care about things used in
# taps that aren't currently tapped.
diff --git a/Library/Homebrew/cmd/vendor-install.sh b/Library/Homebrew/cmd/vendor-install.sh
index bf6fe0c59..3b91dae5c 100644
--- a/Library/Homebrew/cmd/vendor-install.sh
+++ b/Library/Homebrew/cmd/vendor-install.sh
@@ -8,26 +8,26 @@ source "$HOMEBREW_LIBRARY/Homebrew/utils/lock.sh"
VENDOR_DIR="$HOMEBREW_LIBRARY/Homebrew/vendor"
-# Built from https://github.com/Homebrew/homebrew-portable.
+# Built from https://github.com/Homebrew/homebrew-portable-ruby.
if [[ -n "$HOMEBREW_MACOS" ]]
then
if [[ "$HOMEBREW_PROCESSOR" = "Intel" ]]
then
- ruby_URL="https://homebrew.bintray.com/bottles-portable/portable-ruby-2.3.3.leopard_64.bottle.1.tar.gz"
+ ruby_URL="https://homebrew.bintray.com/bottles-portable-ruby/portable-ruby-2.3.3.leopard_64.bottle.1.tar.gz"
+ ruby_URL2="https://github.com/Homebrew/homebrew-portable-ruby/releases/download/2.3.3/portable-ruby-2.3.3.leopard_64.bottle.1.tar.gz"
ruby_SHA="34ce9e4c9c1be28db564d744165aa29291426f8a3d2ef806ba4f0b9175aedb2b"
- else
- ruby_URL=""
- ruby_SHA=""
fi
elif [[ -n "$HOMEBREW_LINUX" ]]
then
case "$HOMEBREW_PROCESSOR" in
armv7l)
- ruby_URL="https://homebrew.bintray.com/bottles-portable/portable-ruby-2.3.3.armv7l_linux.bottle.1.tar.gz"
+ ruby_URL="https://homebrew.bintray.com/bottles-portable-ruby/portable-ruby-2.3.3.armv7l_linux.bottle.1.tar.gz"
+ ruby_URL2="https://github.com/Homebrew/homebrew-portable-ruby/releases/download/2.3.3/portable-ruby-2.3.3.armv7l_linux.bottle.1.tar.gz"
ruby_SHA="d26affe6f6ac299557a9044b311b4066b554874fc828ebc323d2705d3f4a8249"
;;
x86_64)
- ruby_URL="https://homebrew.bintray.com/bottles-portable/portable-ruby-2.3.3.x86_64_linux.bottle.1.tar.gz"
+ ruby_URL="https://homebrew.bintray.com/bottles-portable-ruby/portable-ruby-2.3.3.x86_64_linux.bottle.1.tar.gz"
+ ruby_URL2="https://github.com/Homebrew/homebrew-portable-ruby/releases/download/2.3.3/portable-ruby-2.3.3.x86_64_linux.bottle.1.tar.gz"
ruby_SHA="33643b1ca6f860d6df01686636326785763e5e81cf0cef37d8a7ab96a6ca1fa1"
;;
esac
@@ -90,7 +90,20 @@ fetch() {
if [[ ! -f "$temporary_path" ]]
then
- odie "Download failed: $VENDOR_URL"
+ [[ -n "$HOMEBREW_QUIET" ]] || echo "==> Downloading $VENDOR_URL2" >&2
+ "$HOMEBREW_CURL" "${curl_args[@]}" "$VENDOR_URL2" -o "$temporary_path"
+ fi
+
+ if [[ ! -f "$temporary_path" ]]
+ then
+ odie <<EOS
+Failed to download $VENDOR_URL and $VENDOR_URL2!
+
+Do not file an issue on GitHub about this: you will need to figure out for
+yourself what issue with your internet connection restricts your access to
+both Bintray (used for Homebrew bottles/binary packages) and GitHub
+(used for Homebrew updates).
+EOS
fi
trap '' SIGINT
@@ -211,8 +224,10 @@ homebrew-vendor-install() {
[[ -n "$HOMEBREW_DEBUG" ]] && set -x
url_var="${VENDOR_NAME}_URL"
+ url2_var="${VENDOR_NAME}_URL2"
sha_var="${VENDOR_NAME}_SHA"
VENDOR_URL="${!url_var}"
+ VENDOR_URL2="${!url2_var}"
VENDOR_SHA="${!sha_var}"
if [[ -z "$VENDOR_URL" || -z "$VENDOR_SHA" ]]
diff --git a/Library/Homebrew/compat/ARGV.rb b/Library/Homebrew/compat/ARGV.rb
index e5fa8188f..e56c4e01f 100644
--- a/Library/Homebrew/compat/ARGV.rb
+++ b/Library/Homebrew/compat/ARGV.rb
@@ -1,6 +1,5 @@
module HomebrewArgvExtension
def build_32_bit?
- odeprecated "ARGV.build_32_bit?"
- include? "--32-bit"
+ odisabled "ARGV.build_32_bit?"
end
end
diff --git a/Library/Homebrew/compat/ENV/shared.rb b/Library/Homebrew/compat/ENV/shared.rb
index c700b1e00..36ee45627 100644
--- a/Library/Homebrew/compat/ENV/shared.rb
+++ b/Library/Homebrew/compat/ENV/shared.rb
@@ -5,6 +5,6 @@ module SharedEnvExtension
end
def java_cache
- # odeprecated "ENV.java_cache"
+ odeprecated "ENV.java_cache"
end
end
diff --git a/Library/Homebrew/compat/ENV/std.rb b/Library/Homebrew/compat/ENV/std.rb
index 26dabe440..beca4ed6f 100644
--- a/Library/Homebrew/compat/ENV/std.rb
+++ b/Library/Homebrew/compat/ENV/std.rb
@@ -1,27 +1,25 @@
module Stdenv
def fast
- odeprecated "ENV.fast"
+ odisabled "ENV.fast"
end
def O4
- odeprecated "ENV.O4"
+ odisabled "ENV.O4"
end
def Og
- odeprecated "ENV.Og"
+ odisabled "ENV.Og"
end
def gcc_4_0_1
- odeprecated "ENV.gcc_4_0_1", "ENV.gcc_4_0"
- gcc_4_0
+ odisabled "ENV.gcc_4_0_1", "ENV.gcc_4_0"
end
def gcc
- odeprecated "ENV.gcc", "ENV.gcc_4_2"
- gcc_4_2
+ odisabled "ENV.gcc", "ENV.gcc_4_2"
end
def libpng
- odeprecated "ENV.libpng", "ENV.x11"
+ odisabled "ENV.libpng", "ENV.x11"
end
end
diff --git a/Library/Homebrew/compat/ENV/super.rb b/Library/Homebrew/compat/ENV/super.rb
index 2020ad752..53a6bdc4d 100644
--- a/Library/Homebrew/compat/ENV/super.rb
+++ b/Library/Homebrew/compat/ENV/super.rb
@@ -1,47 +1,45 @@
module Superenv
def fast
- odeprecated "ENV.fast"
+ odisabled "ENV.fast"
end
def O4
- odeprecated "ENV.O4"
+ odisabled "ENV.O4"
end
def Og
- odeprecated "ENV.Og"
+ odisabled "ENV.Og"
end
def gcc_4_0_1
- odeprecated "ENV.gcc_4_0_1", "ENV.gcc_4_0"
- gcc_4_0
+ odisabled "ENV.gcc_4_0_1", "ENV.gcc_4_0"
end
def gcc
- odeprecated "ENV.gcc", "ENV.gcc_4_2"
- gcc_4_2
+ odisabled "ENV.gcc", "ENV.gcc_4_2"
end
def libxml2
- odeprecated "ENV.libxml2"
+ odisabled "ENV.libxml2"
end
def minimal_optimization
- odeprecated "ENV.minimal_optimization"
+ odisabled "ENV.minimal_optimization"
end
def no_optimization
- odeprecated "ENV.no_optimization"
+ odisabled "ENV.no_optimization"
end
def enable_warnings
- odeprecated "ENV.enable_warnings"
+ odisabled "ENV.enable_warnings"
end
def macosxsdk
- odeprecated "ENV.macosxsdk"
+ odisabled "ENV.macosxsdk"
end
def remove_macosxsdk
- odeprecated "ENV.remove_macosxsdk"
+ odisabled "ENV.remove_macosxsdk"
end
end
diff --git a/Library/Homebrew/compat/build_options.rb b/Library/Homebrew/compat/build_options.rb
index 73722dadb..6e566a08c 100644
--- a/Library/Homebrew/compat/build_options.rb
+++ b/Library/Homebrew/compat/build_options.rb
@@ -1,11 +1,9 @@
class BuildOptions
def build_32_bit?
- odeprecated "build.build_32_bit?"
- include?("32-bit") && option_defined?("32-bit")
+ odisabled "build.build_32_bit?"
end
def build_bottle?
- odeprecated "build.build_bottle?", "build.bottle?"
- bottle?
+ odisabled "build.build_bottle?", "build.bottle?"
end
end
diff --git a/Library/Homebrew/compat/dependency_collector.rb b/Library/Homebrew/compat/dependency_collector.rb
index 82511bcc7..1c91f2283 100644
--- a/Library/Homebrew/compat/dependency_collector.rb
+++ b/Library/Homebrew/compat/dependency_collector.rb
@@ -10,6 +10,7 @@ class DependencyCollector
def parse_string_spec(spec, tags)
if (tag = tags.first) && LANGUAGE_MODULES.include?(tag)
+ odeprecated "'depends_on :#{tag}'"
LanguageModuleRequirement.new(tag, spec, tags[1])
else
_parse_string_spec(spec, tags)
@@ -23,60 +24,45 @@ class DependencyCollector
when :clt
odeprecated "'depends_on :clt'"
when :tex
- # odeprecated "'depends_on :tex'"
+ odeprecated "'depends_on :tex'"
TeXRequirement.new(tags)
when :autoconf, :automake, :bsdmake, :libtool
- output_deprecation(spec, tags)
+ output_deprecation(spec)
autotools_dep(spec, tags)
when :cairo, :fontconfig, :freetype, :libpng, :pixman
- output_deprecation(spec, tags)
+ output_deprecation(spec)
Dependency.new(spec.to_s, tags)
when :ant, :expat
- # output_deprecation(spec, tags)
+ output_deprecation(spec)
Dependency.new(spec.to_s, tags)
when :libltdl
tags << :run
- output_deprecation("libtool", tags)
+ output_deprecation("libtool")
Dependency.new("libtool", tags)
when :apr
- # output_deprecation(spec, tags, "apr-util")
+ output_deprecation(spec, "apr-util")
Dependency.new("apr-util", tags)
when :fortran
- # output_deprecation(spec, tags, "gcc")
- FortranRequirement.new(tags)
+ output_deprecation(spec, "gcc")
+ Dependency.new("gcc", tags)
when :gpg
- # output_deprecation(spec, tags, "gnupg")
- GPG2Requirement.new(tags)
+ output_deprecation(spec, "gnupg")
+ Dependency.new("gnupg", tags)
when :hg
- # output_deprecation(spec, tags, "mercurial")
- MercurialRequirement.new(tags)
+ output_deprecation(spec, "mercurial")
+ Dependency.new("mercurial", tags)
when :mpi
- # output_deprecation(spec, tags, "open-mpi")
- MPIRequirement.new(*tags)
- when :emacs
- # output_deprecation(spec, tags)
- EmacsRequirement.new(tags)
- when :mysql
- # output_deprecation(spec, tags)
- MysqlRequirement.new(tags)
- when :perl
- # output_deprecation(spec, tags)
- PerlRequirement.new(tags)
- when :postgresql
- # output_deprecation(spec, tags)
- PostgresqlRequirement.new(tags)
+ output_deprecation(spec, "open-mpi")
+ Dependency.new("open-mpi", tags)
when :python, :python2
- # output_deprecation(spec, tags)
- PythonRequirement.new(tags)
+ output_deprecation(spec, "python")
+ Dependency.new("python", tags)
when :python3
- # output_deprecation(spec, tags)
- Python3Requirement.new(tags)
- when :rbenv
- # output_deprecation(spec, tags)
- RbenvRequirement.new(tags)
- when :ruby
- # output_deprecation(spec, tags)
- RubyRequirement.new(tags)
+ output_deprecation(spec, "python3")
+ Dependency.new("python3", tags)
+ when :emacs, :mysql, :perl, :postgresql, :rbenv, :ruby
+ output_deprecation(spec)
+ Dependency.new(spec, tags)
else
_parse_symbol_spec(spec, tags)
end
@@ -87,13 +73,8 @@ class DependencyCollector
Dependency.new(spec.to_s, tags)
end
- def output_deprecation(dependency, tags, new_dependency = dependency)
- tags_string = if tags.length > 1
- " => [:#{tags.join ", :"}]"
- elsif tags.length == 1
- " => :#{tags.first}"
- end
+ def output_deprecation(dependency, new_dependency = dependency)
odeprecated "'depends_on :#{dependency}'",
- "'depends_on \"#{new_dependency}\"#{tags_string}'"
+ "'depends_on \"#{new_dependency}\"'"
end
end
diff --git a/Library/Homebrew/compat/extend/string.rb b/Library/Homebrew/compat/extend/string.rb
index 6069a6bec..9d1f66557 100644
--- a/Library/Homebrew/compat/extend/string.rb
+++ b/Library/Homebrew/compat/extend/string.rb
@@ -1,5 +1,6 @@
class String
def undent
+ odeprecated "<<-EOS.undent", "<<~EOS"
gsub(/^[ \t]{#{(slice(/^[ \t]+/) || '').length}}/, "")
end
alias unindent undent
diff --git a/Library/Homebrew/compat/fails_with_llvm.rb b/Library/Homebrew/compat/fails_with_llvm.rb
index 4e8b94b03..47bda4e0b 100644
--- a/Library/Homebrew/compat/fails_with_llvm.rb
+++ b/Library/Homebrew/compat/fails_with_llvm.rb
@@ -1,9 +1,9 @@
class Formula
def fails_with_llvm(_msg = nil, _data = nil)
- odeprecated "Formula#fails_with_llvm in install"
+ odisabled "Formula#fails_with_llvm in install"
end
def self.fails_with_llvm(_msg = nil, _data = {})
- odeprecated "Formula.fails_with_llvm"
+ odisabled "Formula.fails_with_llvm"
end
end
diff --git a/Library/Homebrew/compat/formula.rb b/Library/Homebrew/compat/formula.rb
index 57ab84a76..6f740710d 100644
--- a/Library/Homebrew/compat/formula.rb
+++ b/Library/Homebrew/compat/formula.rb
@@ -1,12 +1,10 @@
module FormulaCompat
def x11_installed?
- odeprecated "Formula#x11_installed?", "MacOS::X11.installed?"
- MacOS::X11.installed?
+ odisabled "Formula#x11_installed?", "MacOS::X11.installed?"
end
def snow_leopard_64?
- odeprecated "Formula#snow_leopard_64?", "MacOS.prefer_64_bit?"
- MacOS.prefer_64_bit?
+ odisabled "Formula#snow_leopard_64?", "MacOS.prefer_64_bit?"
end
end
@@ -15,48 +13,40 @@ class Formula
extend FormulaCompat
def std_cmake_parameters
- odeprecated "Formula#std_cmake_parameters", "Formula#std_cmake_args"
- "-DCMAKE_INSTALL_PREFIX='#{prefix}' -DCMAKE_BUILD_TYPE=None -DCMAKE_FIND_FRAMEWORK=LAST -Wno-dev"
+ odisabled "Formula#std_cmake_parameters", "Formula#std_cmake_args"
end
- def cxxstdlib_check(check_type)
- odeprecated "Formula#cxxstdlib_check in install",
- "Formula.cxxstdlib_check outside install"
- self.class.cxxstdlib_check check_type
+ def cxxstdlib_check(_)
+ odisabled "Formula#cxxstdlib_check in install",
+ "Formula.cxxstdlib_check outside install"
end
def self.bottle_sha1(*)
- odeprecated "Formula.bottle_sha1"
+ odisabled "Formula.bottle_sha1"
end
def self.all
- odeprecated "Formula.all", "Formula.map"
- map
+ odisabled "Formula.all", "Formula.map"
end
- def self.canonical_name(name)
- odeprecated "Formula.canonical_name", "Formulary.canonical_name"
- Formulary.canonical_name(name)
+ def self.canonical_name(_)
+ odisabled "Formula.canonical_name", "Formulary.canonical_name"
end
- def self.class_s(name)
- odeprecated "Formula.class_s", "Formulary.class_s"
- Formulary.class_s(name)
+ def self.class_s(_)
+ odisabled "Formula.class_s", "Formulary.class_s"
end
- def self.factory(name)
- odeprecated "Formula.factory", "Formulary.factory"
- Formulary.factory(name)
+ def self.factory(_)
+ odisabled "Formula.factory", "Formulary.factory"
end
def self.require_universal_deps
- odeprecated "Formula.require_universal_deps"
- define_method(:require_universal_deps?) { true }
+ odisabled "Formula.require_universal_deps"
end
- def self.path(name)
- odeprecated "Formula.path", "Formulary.core_path"
- Formulary.core_path(name)
+ def self.path(_)
+ odisabled "Formula.path", "Formulary.core_path"
end
DATA = :DATA
@@ -67,20 +57,18 @@ class Formula
{}
end
- def python(_options = {}, &_block)
- odeprecated "Formula#python"
- yield if block_given?
- PythonRequirement.new
+ def python(_options = {}, &_)
+ odisabled "Formula#python"
end
alias python2 python
alias python3 python
def startup_plist
- odeprecated "Formula#startup_plist", "Formula#plist"
+ odisabled "Formula#startup_plist", "Formula#plist"
end
def rake(*args)
- # odeprecated "FileUtils#rake", "system \"rake\""
+ odeprecated "FileUtils#rake", "system \"rake\""
system "rake", *args
end
end
diff --git a/Library/Homebrew/compat/formula_specialties.rb b/Library/Homebrew/compat/formula_specialties.rb
index 3f8102575..bc4d20bea 100644
--- a/Library/Homebrew/compat/formula_specialties.rb
+++ b/Library/Homebrew/compat/formula_specialties.rb
@@ -1,47 +1,23 @@
class ScriptFileFormula < Formula
def install
- odeprecated "ScriptFileFormula#install", "Formula#install"
- bin.install Dir["*"]
+ odisabled "ScriptFileFormula#install", "Formula#install"
end
end
class GithubGistFormula < ScriptFileFormula
- def self.url(val)
- odeprecated "GithubGistFormula.url", "Formula.url"
- super
- version File.basename(File.dirname(val))[0, 6]
+ def self.url(_val)
+ odisabled "GithubGistFormula.url", "Formula.url"
end
end
-# This formula serves as the base class for several very similar
-# formulae for Amazon Web Services related tools.
class AmazonWebServicesFormula < Formula
- # Use this method to perform a standard install for Java-based tools,
- # keeping the .jars out of HOMEBREW_PREFIX/lib
def install
- odeprecated "AmazonWebServicesFormula#install", "Formula#install"
-
- rm Dir["bin/*.cmd"] # Remove Windows versions
- libexec.install Dir["*"]
- bin.install_symlink Dir["#{libexec}/bin/*"] - ["#{libexec}/bin/service"]
+ odisabled "AmazonWebServicesFormula#install", "Formula#install"
end
alias standard_install install
# Use this method to generate standard caveats.
- def standard_instructions(home_name, home_value = libexec)
- odeprecated "AmazonWebServicesFormula#standard_instructions", "Formula#caveats"
-
- <<~EOS
- Before you can use these tools you must export some variables to your $SHELL.
-
- To export the needed variables, add them to your dotfiles.
- * On Bash, add them to `~/.bash_profile`.
- * On Zsh, add them to `~/.zprofile` instead.
-
- export JAVA_HOME="$(/usr/libexec/java_home)"
- export AWS_ACCESS_KEY="<Your AWS Access ID>"
- export AWS_SECRET_KEY="<Your AWS Secret Key>"
- export #{home_name}="#{home_value}"
- EOS
+ def standard_instructions(_, _)
+ odisabled "AmazonWebServicesFormula#standard_instructions", "Formula#caveats"
end
end
diff --git a/Library/Homebrew/compat/formula_support.rb b/Library/Homebrew/compat/formula_support.rb
new file mode 100644
index 000000000..f56a4909b
--- /dev/null
+++ b/Library/Homebrew/compat/formula_support.rb
@@ -0,0 +1,18 @@
+require "formula_support"
+
+class KegOnlyReason
+ alias _to_s to_s
+
+ def to_s
+ case @reason
+ when :provided_by_osx
+ odeprecated "keg_only :provided_by_osx", "keg_only :provided_by_macos"
+ @reason = :provided_by_macos
+ when :shadowed_by_osx
+ odeprecated "keg_only :shadowed_by_osx", "keg_only :shadowed_by_macos"
+ @reason = :shadowed_by_macos
+ end
+
+ _to_s
+ end
+end
diff --git a/Library/Homebrew/compat/global.rb b/Library/Homebrew/compat/global.rb
index 82c452cc0..9c8f0624c 100644
--- a/Library/Homebrew/compat/global.rb
+++ b/Library/Homebrew/compat/global.rb
@@ -3,8 +3,7 @@ module Homebrew
def method_missing(method, *args, &block)
if instance_methods.include?(method)
- odeprecated "#{self}##{method}", "'module_function' or 'def self.#{method}' to convert it to a class method"
- return instance_method(method).bind(self).call(*args, &block)
+ odisabled "#{self}##{method}", "'module_function' or 'def self.#{method}' to convert it to a class method"
end
super
end
diff --git a/Library/Homebrew/compat/gpg.rb b/Library/Homebrew/compat/gpg.rb
index 01880f71e..e802d939c 100644
--- a/Library/Homebrew/compat/gpg.rb
+++ b/Library/Homebrew/compat/gpg.rb
@@ -4,46 +4,24 @@ module Gpg
module_function
def executable
+ odeprecated "Gpg.executable", 'which "gpg"'
which "gpg"
end
def available?
+ odeprecated "Gpg.available?", 'which "gpg"'
File.executable?(executable.to_s)
end
- def create_test_key(path)
- odie "No GPG present to test against!" unless available?
-
- (path/"batch.gpg").write <<~EOS
- Key-Type: RSA
- Key-Length: 2048
- Subkey-Type: RSA
- Subkey-Length: 2048
- Name-Real: Testing
- Name-Email: testing@foo.bar
- Expire-Date: 1d
- %no-protection
- %commit
- EOS
- system executable, "--batch", "--gen-key", "batch.gpg"
+ def create_test_key(_)
+ odeprecated "Gpg.create_test_key"
end
def cleanup_test_processes!
- odie "No GPG present to test against!" unless available?
-
- gpgconf = Pathname.new(executable).parent/"gpgconf"
-
- system gpgconf, "--kill", "gpg-agent"
- system gpgconf, "--homedir", "keyrings/live", "--kill",
- "gpg-agent"
+ odeprecated "Gpg.cleanup_test_processes!"
end
- def test(path)
- create_test_key(path)
- begin
- yield
- ensure
- cleanup_test_processes!
- end
+ def test(_)
+ odeprecated "Gpg.test"
end
end
diff --git a/Library/Homebrew/compat/hardware.rb b/Library/Homebrew/compat/hardware.rb
index 07a63f048..28bc79c60 100644
--- a/Library/Homebrew/compat/hardware.rb
+++ b/Library/Homebrew/compat/hardware.rb
@@ -1,43 +1,35 @@
module Hardware
class << self
def is_32_bit?
- odeprecated "Hardware.is_32_bit?", "Hardware::CPU.is_32_bit?"
- !CPU.is_64_bit?
+ odisabled "Hardware.is_32_bit?", "Hardware::CPU.is_32_bit?"
end
def is_64_bit?
- odeprecated "Hardware.is_64_bit?", "Hardware::CPU.is_64_bit?"
- CPU.is_64_bit?
+ odisabled "Hardware.is_64_bit?", "Hardware::CPU.is_64_bit?"
end
def bits
- odeprecated "Hardware.bits", "Hardware::CPU.bits"
- Hardware::CPU.bits
+ odisabled "Hardware.bits", "Hardware::CPU.bits"
end
def cpu_type
- odeprecated "Hardware.cpu_type", "Hardware::CPU.type"
- Hardware::CPU.type
+ odisabled "Hardware.cpu_type", "Hardware::CPU.type"
end
def cpu_family
- odeprecated "Hardware.cpu_family", "Hardware::CPU.family"
- Hardware::CPU.family
+ odisabled "Hardware.cpu_family", "Hardware::CPU.family"
end
def intel_family
- odeprecated "Hardware.intel_family", "Hardware::CPU.family"
- Hardware::CPU.family
+ odisabled "Hardware.intel_family", "Hardware::CPU.family"
end
def ppc_family
- odeprecated "Hardware.ppc_family", "Hardware::CPU.family"
- Hardware::CPU.family
+ odisabled "Hardware.ppc_family", "Hardware::CPU.family"
end
def processor_count
- odeprecated "Hardware.processor_count", "Hardware::CPU.cores"
- Hardware::CPU.cores
+ odisabled "Hardware.processor_count", "Hardware::CPU.cores"
end
end
end
diff --git a/Library/Homebrew/compat/json.rb b/Library/Homebrew/compat/json.rb
index c8bf1c292..18763b8a6 100644
--- a/Library/Homebrew/compat/json.rb
+++ b/Library/Homebrew/compat/json.rb
@@ -4,34 +4,16 @@ module Utils
module JSON
module_function
- Error = Class.new(StandardError)
-
- def load(str)
- odeprecated "Utils::JSON.load", "JSON.parse"
- ::JSON.parse(str)
- rescue ::JSON::ParserError => e
- raise Error, e.message
+ def load(_)
+ odisabled "Utils::JSON.load", "JSON.parse"
end
- def dump(obj)
- odeprecated "Utils::JSON.dump", "JSON.generate"
- ::JSON.generate(obj)
+ def dump(_)
+ odisabled "Utils::JSON.dump", "JSON.generate"
end
- def stringify_keys(obj)
- odeprecated "Utils::JSON.stringify_keys"
- case obj
- when Array
- obj.map { |val| stringify_keys(val) }
- when Hash
- obj.inject({}) do |result, (key, val)|
- key = key.respond_to?(:to_s) ? key.to_s : key
- val = stringify_keys(val)
- result.merge!(key => val)
- end
- else
- obj
- end
+ def stringify_keys(_)
+ odisabled "Utils::JSON.stringify_keys"
end
end
end
diff --git a/Library/Homebrew/compat/keg.rb b/Library/Homebrew/compat/keg.rb
index 8f5606d09..81e1cf0b3 100644
--- a/Library/Homebrew/compat/keg.rb
+++ b/Library/Homebrew/compat/keg.rb
@@ -1,6 +1,5 @@
class Keg
def fname
- odeprecated "Keg#fname", "Keg#name"
- name
+ odisabled "Keg#fname", "Keg#name"
end
end
diff --git a/Library/Homebrew/compat/language/haskell.rb b/Library/Homebrew/compat/language/haskell.rb
index cef97d818..8e5059874 100644
--- a/Library/Homebrew/compat/language/haskell.rb
+++ b/Library/Homebrew/compat/language/haskell.rb
@@ -2,8 +2,7 @@ module Language
module Haskell
module Cabal
def cabal_clean_lib
- odeprecated "Language::Haskell::Cabal#cabal_clean_lib"
- rm_rf lib
+ odisabled "Language::Haskell::Cabal#cabal_clean_lib"
end
end
end
diff --git a/Library/Homebrew/compat/macos.rb b/Library/Homebrew/compat/macos.rb
index 1f2c651c5..879af8357 100644
--- a/Library/Homebrew/compat/macos.rb
+++ b/Library/Homebrew/compat/macos.rb
@@ -10,142 +10,115 @@ module OS
module_function
def xcode_folder
- odeprecated "MacOS.xcode_folder", "MacOS::Xcode.folder"
- Xcode.folder
+ odisabled "MacOS.xcode_folder", "MacOS::Xcode.folder"
end
def xcode_prefix
- odeprecated "MacOS.xcode_prefix", "MacOS::Xcode.prefix"
- Xcode.prefix
+ odisabled "MacOS.xcode_prefix", "MacOS::Xcode.prefix"
end
def xcode_installed?
- odeprecated "MacOS.xcode_installed?", "MacOS::Xcode.installed?"
- Xcode.installed?
+ odisabled "MacOS.xcode_installed?", "MacOS::Xcode.installed?"
end
def xcode_version
- odeprecated "MacOS.xcode_version", "MacOS::Xcode.version"
- Xcode.version
+ odisabled "MacOS.xcode_version", "MacOS::Xcode.version"
end
def clt_installed?
- odeprecated "MacOS.clt_installed?", "MacOS::CLT.installed?"
- CLT.installed?
+ odisabled "MacOS.clt_installed?", "MacOS::CLT.installed?"
end
def clt_version?
- odeprecated "MacOS.clt_version?", "MacOS::CLT.version"
- CLT.version
+ odisabled "MacOS.clt_version?", "MacOS::CLT.version"
end
def x11_installed?
- odeprecated "MacOS.x11_installed?", "MacOS::X11.installed?"
- X11.installed?
+ odisabled "MacOS.x11_installed?", "MacOS::X11.installed?"
end
def x11_prefix
- odeprecated "MacOS.x11_prefix", "MacOS::X11.prefix"
- X11.prefix
+ odisabled "MacOS.x11_prefix", "MacOS::X11.prefix"
end
def leopard?
- odeprecated "MacOS.leopard?", "'MacOS.version == :leopard'"
- version == :leopard
+ odisabled "MacOS.leopard?", "'MacOS.version == :leopard'"
end
def snow_leopard?
- odeprecated "MacOS.snow_leopard?", "'MacOS.version >= :snow_leopard'"
- version >= :snow_leopard
+ odisabled "MacOS.snow_leopard?", "'MacOS.version >= :snow_leopard'"
end
def snow_leopard_or_newer?
- odeprecated "MacOS.snow_leopard_or_newer?", "'MacOS.version >= :snow_leopard'"
- version >= :snow_leopard
+ odisabled "MacOS.snow_leopard_or_newer?", "'MacOS.version >= :snow_leopard'"
end
def lion?
- odeprecated "MacOS.lion?", "'MacOS.version >= :lion'"
- version >= :lion
+ odisabled "MacOS.lion?", "'MacOS.version >= :lion'"
end
def lion_or_newer?
- odeprecated "MacOS.lion_or_newer?", "'MacOS.version >= :lion'"
- version >= :lion
+ odisabled "MacOS.lion_or_newer?", "'MacOS.version >= :lion'"
end
def mountain_lion?
- odeprecated "MacOS.mountain_lion?", "'MacOS.version >= :mountain_lion'"
- version >= :mountain_lion
+ odisabled "MacOS.mountain_lion?", "'MacOS.version >= :mountain_lion'"
end
def mountain_lion_or_newer?
- odeprecated "MacOS.mountain_lion_or_newer?", "'MacOS.version >= :mountain_lion'"
- version >= :mountain_lion
+ odisabled "MacOS.mountain_lion_or_newer?", "'MacOS.version >= :mountain_lion'"
end
def macports_or_fink_installed?
- odeprecated "MacOS.macports_or_fink_installed?", "!MacOS.macports_or_fink.empty?"
- !macports_or_fink.empty?
+ odisabled "MacOS.macports_or_fink_installed?", "!MacOS.macports_or_fink.empty?"
end
- def locate(tool)
- odeprecated "MacOS.locate", "DevelopmentTools.locate"
- DevelopmentTools.locate(tool)
+ def locate(_)
+ odisabled "MacOS.locate", "DevelopmentTools.locate"
end
def default_cc
- odeprecated "MacOS.default_cc", "DevelopmentTools.default_cc"
- DevelopmentTools.default_cc
+ odisabled "MacOS.default_cc", "DevelopmentTools.default_cc"
end
def default_compiler
- odeprecated "MacOS.default_compiler", "DevelopmentTools.default_compiler"
- DevelopmentTools.default_compiler
+ odisabled "MacOS.default_compiler", "DevelopmentTools.default_compiler"
end
def gcc_40_build_version
- odeprecated "MacOS.gcc_40_build_version", "DevelopmentTools.gcc_4_0_build_version"
- DevelopmentTools.gcc_4_0_build_version
+ odisabled "MacOS.gcc_40_build_version", "DevelopmentTools.gcc_4_0_build_version"
end
def gcc_4_0_build_version
- odeprecated "MacOS.gcc_4_0_build_version", "DevelopmentTools.gcc_4_0_build_version"
- DevelopmentTools.gcc_4_0_build_version
+ odisabled "MacOS.gcc_4_0_build_version", "DevelopmentTools.gcc_4_0_build_version"
end
def gcc_42_build_version
- odeprecated "MacOS.gcc_42_build_version", "DevelopmentTools.gcc_4_2_build_version"
- DevelopmentTools.gcc_4_2_build_version
+ odisabled "MacOS.gcc_42_build_version", "DevelopmentTools.gcc_4_2_build_version"
end
def gcc_build_version
- odeprecated "MacOS.gcc_build_version", "DevelopmentTools.gcc_4_2_build_version"
- DevelopmentTools.gcc_4_2_build_version
+ odisabled "MacOS.gcc_build_version", "DevelopmentTools.gcc_4_2_build_version"
end
def llvm_build_version
- odeprecated "MacOS.llvm_build_version"
+ odisabled "MacOS.llvm_build_version"
end
def clang_version
- odeprecated "MacOS.clang_version", "DevelopmentTools.clang_version"
- DevelopmentTools.clang_version
+ odisabled "MacOS.clang_version", "DevelopmentTools.clang_version"
end
def clang_build_version
- odeprecated "MacOS.clang_build_version", "DevelopmentTools.clang_build_version"
- DevelopmentTools.clang_build_version
+ odisabled "MacOS.clang_build_version", "DevelopmentTools.clang_build_version"
end
def has_apple_developer_tools?
- odeprecated "MacOS.has_apple_developer_tools?", "DevelopmentTools.installed?"
- DevelopmentTools.installed?
+ odisabled "MacOS.has_apple_developer_tools?", "DevelopmentTools.installed?"
end
def release
- odeprecated "MacOS.release", "MacOS.version"
- version
+ odisabled "MacOS.release", "MacOS.version"
end
end
end
diff --git a/Library/Homebrew/compat/pathname.rb b/Library/Homebrew/compat/pathname.rb
index 58888f017..df4b261a9 100644
--- a/Library/Homebrew/compat/pathname.rb
+++ b/Library/Homebrew/compat/pathname.rb
@@ -1,17 +1,9 @@
class Pathname
- def cp(dst)
- odeprecated "Pathname#cp", "FileUtils.cp"
- if file?
- FileUtils.cp to_s, dst
- else
- FileUtils.cp_r to_s, dst
- end
- dst
+ def cp(_)
+ odisabled "Pathname#cp", "FileUtils.cp"
end
- def chmod_R(perms)
- odeprecated "Pathname#chmod_R", "FileUtils.chmod_R"
- require "fileutils"
- FileUtils.chmod_R perms, to_s
+ def chmod_R(_)
+ odisabled "Pathname#chmod_R", "FileUtils.chmod_R"
end
end
diff --git a/Library/Homebrew/compat/requirements.rb b/Library/Homebrew/compat/requirements.rb
index 304dd2504..bffc5f5f1 100644
--- a/Library/Homebrew/compat/requirements.rb
+++ b/Library/Homebrew/compat/requirements.rb
@@ -1,76 +1,134 @@
require "requirements"
-require "compat/requirements/emacs_requirement"
-require "compat/requirements/fortran_requirement"
require "compat/requirements/language_module_requirement"
-require "compat/requirements/mpi_requirement"
-require "compat/requirements/perl_requirement"
-require "compat/requirements/python_requirement"
-require "compat/requirements/ruby_requirement"
-require "compat/requirements/tex_requirement"
-class MysqlRequirement < Requirement
+class CVSRequirement < Requirement
fatal true
- default_formula "mysql"
- satisfy { which "mysql_config" }
+ satisfy do
+ odeprecated("CVSRequirement", "'depends_on \"cvs\"'")
+ which "cvs"
+ end
end
-class PostgresqlRequirement < Requirement
+class EmacsRequirement < Requirement
fatal true
- default_formula "postgresql"
- satisfy { which "pg_config" }
+ satisfy do
+ odeprecated("EmacsRequirement", "'depends_on \"cvs\"'")
+ which "emacs"
+ end
end
-class RbenvRequirement < Requirement
+class FortranRequirement < Requirement
fatal true
- default_formula "rbenv"
- satisfy { which "rbenv" }
+ satisfy do
+ odeprecated("FortranRequirement", "'depends_on \"cvs\"'")
+ which "gfortran"
+ end
end
-class CVSRequirement < Requirement
+class GitRequirement < Requirement
+ fatal true
+ satisfy do
+ odeprecated("GitRequirement", "'depends_on \"cvs\"'")
+ which "git"
+ end
+end
+
+class GPG2Requirement < Requirement
fatal true
- default_formula "cvs"
- satisfy { which "cvs" }
+ satisfy do
+ odeprecated("GPG2Requirement", "'depends_on \"cvs\"'")
+ which "gpg"
+ end
end
class MercurialRequirement < Requirement
fatal true
- default_formula "mercurial"
- satisfy { which "hg" }
+ satisfy do
+ odeprecated("MercurialRequirement", "'depends_on \"cvs\"'")
+ which "hg"
+ end
end
-class GPG2Requirement < Requirement
+class MPIRequirement < Requirement
fatal true
- default_formula "gnupg"
- satisfy { which "gpg" }
+ satisfy do
+ odeprecated("MPIRequirement", "'depends_on \"cvs\"'")
+ which "mpicc"
+ end
end
-class GitRequirement < Requirement
+class MysqlRequirement < Requirement
+ fatal true
+ satisfy do
+ odeprecated("MysqlRequirement", "'depends_on \"cvs\"'")
+ which "mysql_config"
+ end
+end
+
+class PerlRequirement < Requirement
+ fatal true
+ satisfy do
+ odeprecated("PerlRequirement", "'depends_on \"cvs\"'")
+ which "perl"
+ end
+end
+
+class PostgresqlRequirement < Requirement
+ fatal true
+ satisfy do
+ odeprecated("PostgresqlRequirement", "'depends_on \"cvs\"'")
+ which "pg_config"
+ end
+end
+
+class PythonRequirement < Requirement
+ fatal true
+ satisfy do
+ odeprecated("PythonRequirement", "'depends_on \"cvs\"'")
+ which "python"
+ end
+end
+
+class Python3Requirement < Requirement
fatal true
- default_formula "git"
- satisfy { Utils.git_available? }
+ satisfy do
+ odeprecated("Python3Requirement", "'depends_on \"cvs\"'")
+ which "python3"
+ end
+end
+
+class RbenvRequirement < Requirement
+ fatal true
+ satisfy do
+ odeprecated("RbenvRequirement", "'depends_on \"cvs\"'")
+ which "rbenv"
+ end
+end
+
+class RubyRequirement < Requirement
+ fatal true
+ satisfy do
+ odeprecated("RubyRequirement", "'depends_on \"cvs\"'")
+ which "ruby"
+ end
end
class SubversionRequirement < Requirement
fatal true
- default_formula "subversion"
- satisfy { Utils.svn_available? }
-end
-
-XcodeDependency = XcodeRequirement
-MysqlDependency = MysqlRequirement
-PostgresqlDependency = PostgresqlRequirement
-GPGDependency = GPG2Requirement
-GPGRequirement = GPG2Requirement
-TeXDependency = TeXRequirement
-MercurialDependency = MercurialRequirement
-GitDependency = GitRequirement
-FortranDependency = FortranRequirement
-JavaDependency = JavaRequirement
-LanguageModuleDependency = LanguageModuleRequirement
-MPIDependency = MPIRequirement
-OsxfuseDependency = OsxfuseRequirement
-PythonDependency = PythonRequirement
-TuntapDependency = TuntapRequirement
-X11Dependency = X11Requirement
-ConflictsWithBinaryOsxfuse = NonBinaryOsxfuseRequirement
-MinimumMacOSRequirement = MacOSRequirement
+ satisfy do
+ odeprecated("SubversionRequirement", "'depends_on \"cvs\"'")
+ which "svn"
+ end
+end
+
+class TeXRequirement < Requirement
+ fatal true
+ cask "mactex"
+ download "https://www.tug.org/mactex/"
+ satisfy do
+ odeprecated("TeXRequirement", "'depends_on \"cvs\"'")
+ which("tex") || which("latex")
+ end
+end
+
+MinimumMacOSRequirement = MacOSRequirement
diff --git a/Library/Homebrew/compat/requirements/emacs_requirement.rb b/Library/Homebrew/compat/requirements/emacs_requirement.rb
deleted file mode 100644
index c8e2ec274..000000000
--- a/Library/Homebrew/compat/requirements/emacs_requirement.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-class EmacsRequirement < Requirement
- fatal true
- default_formula "emacs"
-
- def initialize(tags)
- @version = tags.shift if /\d+\.*\d*/ =~ tags.first
- super
- end
-
- satisfy build_env: false do
- next false unless which "emacs"
- next true unless @version
- emacs_version = Utils.popen_read("emacs", "--batch", "--eval", "(princ emacs-version)")
- Version.create(emacs_version) >= Version.create(@version)
- end
-
- env do
- ENV.prepend_path "PATH", which("emacs").dirname
- ENV["EMACS"] = "emacs"
- end
-
- def message
- if @version
- s = "Emacs #{@version} or later is required."
- else
- s = "Emacs is required."
- end
- s += super
- s
- end
-
- def inspect
- "#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>"
- end
-end
diff --git a/Library/Homebrew/compat/requirements/fortran_requirement.rb b/Library/Homebrew/compat/requirements/fortran_requirement.rb
deleted file mode 100644
index ba3fead6f..000000000
--- a/Library/Homebrew/compat/requirements/fortran_requirement.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-require "requirement"
-
-class FortranRequirement < Requirement
- fatal true
-
- default_formula "gcc"
-
- env { ENV.fortran }
-
- satisfy build_env: false do
- which(ENV["FC"] || "gfortran")
- end
-end
diff --git a/Library/Homebrew/compat/requirements/mpi_requirement.rb b/Library/Homebrew/compat/requirements/mpi_requirement.rb
deleted file mode 100644
index 065b56c8b..000000000
--- a/Library/Homebrew/compat/requirements/mpi_requirement.rb
+++ /dev/null
@@ -1,66 +0,0 @@
-require "requirement"
-
-# There are multiple implementations of MPI-2 available.
-# http://www.mpi-forum.org/
-# This requirement is used to find an appropriate one.
-class MPIRequirement < Requirement
- attr_reader :lang_list
-
- fatal true
-
- default_formula "open-mpi"
-
- env :userpaths
-
- # This method must accept varargs rather than an array for
- # backwards compatibility with formulae that call it directly.
- def initialize(*tags)
- @non_functional = []
- @unknown_langs = []
- @lang_list = [:cc, :cxx, :f77, :f90] & tags
- tags -= @lang_list
- super(tags)
- end
-
- def mpi_wrapper_works?(compiler)
- compiler = which compiler
- return false if compiler.nil? || !compiler.executable?
-
- # Some wrappers are non-functional and will return a non-zero exit code
- # when invoked for version info.
- #
- # NOTE: A better test may be to do a small test compilation a la autotools.
- quiet_system compiler, "--version"
- end
-
- def inspect
- "#<#{self.class.name}: #{name.inspect} #{tags.inspect} lang_list=#{@lang_list.inspect}>"
- end
-
- satisfy do
- @lang_list.each do |lang|
- case lang
- when :cc, :cxx, :f90, :f77
- compiler = "mpi" + lang.to_s
- @non_functional << compiler unless mpi_wrapper_works? compiler
- else
- @unknown_langs << lang.to_s
- end
- end
- @unknown_langs.empty? && @non_functional.empty?
- end
-
- env do
- # Set environment variables to help configure scripts find MPI compilers.
- # Variable names taken from:
- # https://www.gnu.org/software/autoconf-archive/ax_mpi.html
- @lang_list.each do |lang|
- compiler = "mpi" + lang.to_s
- mpi_path = which compiler
-
- # Fortran 90 environment var has a different name
- compiler = "MPIFC" if lang == :f90
- ENV[compiler.upcase] = mpi_path
- end
- end
-end
diff --git a/Library/Homebrew/compat/requirements/perl_requirement.rb b/Library/Homebrew/compat/requirements/perl_requirement.rb
deleted file mode 100644
index 70eb2a36c..000000000
--- a/Library/Homebrew/compat/requirements/perl_requirement.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-class PerlRequirement < Requirement
- fatal true
- default_formula "perl"
-
- def initialize(tags)
- @version = tags.shift if /^\d+\.\d+$/ =~ tags.first
- raise "PerlRequirement requires a version!" unless @version
- super
- end
-
- satisfy(build_env: false) do
- which_all("perl").detect do |perl|
- perl_version = Utils.popen_read(perl, "--version")[/v(\d+\.\d+)(?:\.\d+)?/, 1]
- next unless perl_version
- Version.create(perl_version.to_s) >= Version.create(@version)
- end
- end
-
- def message
- s = "Perl #{@version} is required to install this formula."
- s += super
- s
- end
-
- def inspect
- "#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>"
- end
-
- def display_s
- if @version
- "#{name} >= #{@version}"
- else
- name
- end
- end
-end
diff --git a/Library/Homebrew/compat/requirements/python_requirement.rb b/Library/Homebrew/compat/requirements/python_requirement.rb
deleted file mode 100644
index 3215d0a6c..000000000
--- a/Library/Homebrew/compat/requirements/python_requirement.rb
+++ /dev/null
@@ -1,68 +0,0 @@
-require "language/python"
-
-class PythonRequirement < Requirement
- fatal true
- default_formula "python"
-
- satisfy build_env: false do
- python = which_python
- next unless python
- next unless short_version
- # Always use Python 2.7 for consistency on older versions of Mac OS X.
- short_version == Version.create("2.7")
- end
-
- env do
- if !system_python? && short_version == Version.create("2.7")
- ENV.prepend_path "PATH", which_python.dirname
- end
-
- # Homebrew Python should take precedence over other Pythons in the PATH
- ENV.prepend_path "PATH", Formula["python"].opt_bin
- ENV.prepend_path "PATH", Formula["python"].opt_libexec/"bin"
-
- if system_python?
- ENV["PYTHONPATH"] = "#{HOMEBREW_PREFIX}/lib/python#{short_version}/site-packages"
- end
- end
-
- private
-
- def short_version
- @short_version ||= Language::Python.major_minor_version which_python
- end
-
- def which_python
- python = which python_binary
- return unless python
- Pathname.new Utils.popen_read(python, "-c", "import sys; print(sys.executable)").strip
- end
-
- def system_python
- "/usr/bin/#{python_binary}"
- end
-
- def system_python?
- system_python == which_python.to_s
- end
-
- def python_binary
- "python2.7"
- end
-
- # Deprecated
- alias to_s python_binary
-end
-
-class Python3Requirement < PythonRequirement
- fatal true
- default_formula "python3"
-
- satisfy(build_env: false) { which_python }
-
- private
-
- def python_binary
- "python3"
- end
-end
diff --git a/Library/Homebrew/compat/requirements/ruby_requirement.rb b/Library/Homebrew/compat/requirements/ruby_requirement.rb
deleted file mode 100644
index a9ec8c42d..000000000
--- a/Library/Homebrew/compat/requirements/ruby_requirement.rb
+++ /dev/null
@@ -1,56 +0,0 @@
-class RubyRequirement < Requirement
- fatal true
- default_formula "ruby"
-
- def initialize(tags)
- @version = tags.shift if /(\d\.)+\d/ =~ tags.first
- raise "RubyRequirement requires a version!" unless @version
- super
- end
-
- satisfy(build_env: false) { new_enough_ruby }
-
- env do
- ENV.prepend_path "PATH", new_enough_ruby.dirname
- end
-
- def message
- s = "Ruby >= #{@version} is required to install this formula."
- s += super
- s
- end
-
- def inspect
- "#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>"
- end
-
- def display_s
- if @version
- "#{name} >= #{@version}"
- else
- name
- end
- end
-
- private
-
- def new_enough_ruby
- rubies.detect { |ruby| new_enough?(ruby) }
- end
-
- def rubies
- rubies = which_all("ruby")
- ruby_formula = Formula["ruby"]
- rubies.unshift ruby_formula.bin/"ruby" if ruby_formula&.installed?
- rubies.uniq
- end
-
- def new_enough?(ruby)
- version = Utils.popen_read(ruby, "-e", "print RUBY_VERSION").strip
- version =~ /^\d+\.\d+/ && Version.create(version) >= min_version
- end
-
- def min_version
- @min_version ||= Version.create(@version)
- end
-end
diff --git a/Library/Homebrew/compat/requirements/tex_requirement.rb b/Library/Homebrew/compat/requirements/tex_requirement.rb
deleted file mode 100644
index cb26a8477..000000000
--- a/Library/Homebrew/compat/requirements/tex_requirement.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-require "requirement"
-
-class TeXRequirement < Requirement
- fatal true
- cask "mactex"
- download "https://www.tug.org/mactex/"
-
- satisfy { which("tex") || which("latex") }
-
- def message
- s = <<~EOS
- A LaTeX distribution is required for Homebrew to install this formula.
-
- Make sure that "/usr/texbin", or the location you installed it to, is in
- your PATH before proceeding.
- EOS
- s += super
- s
- end
-end
diff --git a/Library/Homebrew/compat/software_spec.rb b/Library/Homebrew/compat/software_spec.rb
index 8b0408d02..814c00fa8 100644
--- a/Library/Homebrew/compat/software_spec.rb
+++ b/Library/Homebrew/compat/software_spec.rb
@@ -1,6 +1,5 @@
class BottleSpecification
- def revision(*args)
- odeprecated "BottleSpecification.revision", "BottleSpecification.rebuild"
- rebuild(*args)
+ def revision(*)
+ odisabled "BottleSpecification.revision", "BottleSpecification.rebuild"
end
end
diff --git a/Library/Homebrew/compat/tab.rb b/Library/Homebrew/compat/tab.rb
index 2cf71c923..651bcf1e1 100644
--- a/Library/Homebrew/compat/tab.rb
+++ b/Library/Homebrew/compat/tab.rb
@@ -1,6 +1,5 @@
class Tab < OpenStruct
def build_32_bit?
- odeprecated "Tab.build_32_bit?"
- include?("32-bit")
+ odisabled "Tab.build_32_bit?"
end
end
diff --git a/Library/Homebrew/compat/tap.rb b/Library/Homebrew/compat/tap.rb
index 37b1eeac1..a1e3ce172 100644
--- a/Library/Homebrew/compat/tap.rb
+++ b/Library/Homebrew/compat/tap.rb
@@ -2,7 +2,6 @@ require "tap"
class Tap
def core_formula_repository?
- odeprecated "Tap#core_formula_repository?", "Tap#core_tap?"
- core_tap?
+ odisabled "Tap#core_formula_repository?", "Tap#core_tap?"
end
end
diff --git a/Library/Homebrew/compat/utils.rb b/Library/Homebrew/compat/utils.rb
index 8904f0f2b..f83d07599 100644
--- a/Library/Homebrew/compat/utils.rb
+++ b/Library/Homebrew/compat/utils.rb
@@ -2,17 +2,14 @@ module Tty
module_function
def white
- odeprecated "Tty.white", "Tty.reset.bold"
- reset.bold
+ odisabled "Tty.white", "Tty.reset.bold"
end
end
-def puts_columns(items)
- odeprecated "puts_columns", "puts Formatter.columns"
- puts Formatter.columns(items)
+def puts_columns(_)
+ odisabled "puts_columns", "puts Formatter.columns"
end
-def plural(n, s = "s")
- odeprecated "#plural", "Formatter.pluralize"
- (n == 1) ? "" : s
+def plural(_, _)
+ odisabled "#plural", "Formatter.pluralize"
end
diff --git a/Library/Homebrew/compat/utils/shell.rb b/Library/Homebrew/compat/utils/shell.rb
index 161f10ebb..2f387d967 100644
--- a/Library/Homebrew/compat/utils/shell.rb
+++ b/Library/Homebrew/compat/utils/shell.rb
@@ -1,8 +1,7 @@
module Utils
module Shell
def self.shell_profile
- odeprecated "Utils::Shell.shell_profile", "Utils::Shell.profile"
- Utils::Shell.profile
+ odisabled "Utils::Shell.shell_profile", "Utils::Shell.profile"
end
end
end
diff --git a/Library/Homebrew/compat/version.rb b/Library/Homebrew/compat/version.rb
index 2dd089015..4a6fd7ace 100644
--- a/Library/Homebrew/compat/version.rb
+++ b/Library/Homebrew/compat/version.rb
@@ -1,6 +1,5 @@
class Version
- def slice(*args)
- odeprecated "Version#slice", "Version#to_s.slice"
- to_s.slice(*args)
+ def slice(*)
+ odisabled "Version#slice", "Version#to_s.slice"
end
end
diff --git a/Library/Homebrew/compat/xcode.rb b/Library/Homebrew/compat/xcode.rb
index 14150cc7c..f212ada64 100644
--- a/Library/Homebrew/compat/xcode.rb
+++ b/Library/Homebrew/compat/xcode.rb
@@ -4,8 +4,7 @@ module OS
module_function
def provides_autotools?
- odeprecated "OS::Mac::Xcode.provides_autotools?"
- version < "4.3"
+ odisabled "OS::Mac::Xcode.provides_autotools?"
end
end
end
diff --git a/Library/Homebrew/constants.rb b/Library/Homebrew/constants.rb
index 41274922c..9514320ab 100644
--- a/Library/Homebrew/constants.rb
+++ b/Library/Homebrew/constants.rb
@@ -1,6 +1,5 @@
# frozen_string_literal: true
# RuboCop version used for `brew style` and `brew cask style`
-HOMEBREW_RUBOCOP_VERSION = "0.51.0"
-HOMEBREW_RUBOCOP_PARSER_VERSION = "2.4.0.0" # for Ruby 2.3.3
-HOMEBREW_RUBOCOP_CASK_VERSION = "~> 0.15.1" # has to be updated when RuboCop version changes
+HOMEBREW_RUBOCOP_VERSION = "0.52.1"
+HOMEBREW_RUBOCOP_CASK_VERSION = "~> 0.16.0" # has to be updated when RuboCop version changes
diff --git a/Library/Homebrew/dev-cmd/create.rb b/Library/Homebrew/dev-cmd/create.rb
index e5481b532..122be2593 100644
--- a/Library/Homebrew/dev-cmd/create.rb
+++ b/Library/Homebrew/dev-cmd/create.rb
@@ -165,77 +165,73 @@ class FormulaCreator
path.write ERB.new(template, nil, ">").result(binding)
end
- def template; <<~EOS
- # Documentation: https://docs.brew.sh/Formula-Cookbook.html
- # http://www.rubydoc.info/github/Homebrew/brew/master/Formula
- # PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST!
-
- class #{Formulary.class_s(name)} < Formula
- desc "#{desc}"
- homepage "#{homepage}"
- <% if head? %>
- head "#{url}"
- <% else %>
- url "#{url}"
- <% unless version.nil? or version.detected_from_url? %>
- version "#{version}"
- <% end %>
- sha256 "#{sha256}"
- <% end %>
-
- <% if mode == :cmake %>
- depends_on "cmake" => :build
- <% elsif mode == :meson %>
- depends_on "meson" => :build
- depends_on "ninja" => :build
- <% elsif mode.nil? %>
- # depends_on "cmake" => :build
- <% end %>
-
- def install
- # ENV.deparallelize # if your formula fails when building in parallel
-
- <% if mode == :cmake %>
- system "cmake", ".", *std_cmake_args
- <% elsif mode == :autotools %>
- # Remove unrecognized options if warned by configure
- system "./configure", "--disable-debug",
- "--disable-dependency-tracking",
- "--disable-silent-rules",
- "--prefix=\#{prefix}"
- <% elsif mode == :meson %>
- mkdir "build" do
- system "meson", "--prefix=\#{prefix}", ".."
- system "ninja"
- system "ninja", "test"
- system "ninja", "install"
+ def template
+ <<~EOS
+ # Documentation: https://docs.brew.sh/Formula-Cookbook.html
+ # http://www.rubydoc.info/github/Homebrew/brew/master/Formula
+ # PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST!
+ class #{Formulary.class_s(name)} < Formula
+ desc "#{desc}"
+ homepage "#{homepage}"
+ <% if head? %>
+ head "#{url}"
+ <% else %>
+ url "#{url}"
+ <% unless version.nil? or version.detected_from_url? %>
+ version "#{version}"
+ <% end %>
+ sha256 "#{sha256}"
+ <% end %>
+ <% if mode == :cmake %>
+ depends_on "cmake" => :build
+ <% elsif mode == :meson %>
+ depends_on "meson" => :build
+ depends_on "ninja" => :build
+ <% elsif mode.nil? %>
+ # depends_on "cmake" => :build
+ <% end %>
+ def install
+ # ENV.deparallelize # if your formula fails when building in parallel
+ <% if mode == :cmake %>
+ system "cmake", ".", *std_cmake_args
+ <% elsif mode == :autotools %>
+ # Remove unrecognized options if warned by configure
+ system "./configure", "--disable-debug",
+ "--disable-dependency-tracking",
+ "--disable-silent-rules",
+ "--prefix=\#{prefix}"
+ <% elsif mode == :meson %>
+ mkdir "build" do
+ system "meson", "--prefix=\#{prefix}", ".."
+ system "ninja"
+ system "ninja", "test"
+ system "ninja", "install"
+ end
+ <% else %>
+ # Remove unrecognized options if warned by configure
+ system "./configure", "--disable-debug",
+ "--disable-dependency-tracking",
+ "--disable-silent-rules",
+ "--prefix=\#{prefix}"
+ # system "cmake", ".", *std_cmake_args
+ <% end %>
+ <% if mode != :meson %>
+ system "make", "install" # if this fails, try separate make/make install steps
+ <% end %>
+ end
+ test do
+ # `test do` will create, run in and delete a temporary directory.
+ #
+ # This test will fail and we won't accept that! For Homebrew/homebrew-core
+ # this will need to be a test that verifies the functionality of the
+ # software. Run the test with `brew test #{name}`. Options passed
+ # to `brew install` such as `--HEAD` also need to be provided to `brew test`.
+ #
+ # The installed folder is not in the path, so use the entire path to any
+ # executables being tested: `system "\#{bin}/program", "do", "something"`.
+ system "false"
end
- <% else %>
- # Remove unrecognized options if warned by configure
- system "./configure", "--disable-debug",
- "--disable-dependency-tracking",
- "--disable-silent-rules",
- "--prefix=\#{prefix}"
- # system "cmake", ".", *std_cmake_args
- <% end %>
- <% if mode != :meson %>
- system "make", "install" # if this fails, try separate make/make install steps
- <% end %>
- end
-
- test do
- # `test do` will create, run in and delete a temporary directory.
- #
- # This test will fail and we won't accept that! For Homebrew/homebrew-core
- # this will need to be a test that verifies the functionality of the
- # software. Run the test with `brew test #{name}`. Options passed
- # to `brew install` such as `--HEAD` also need to be provided to `brew test`.
- #
- # The installed folder is not in the path, so use the entire path to any
- # executables being tested: `system "\#{bin}/program", "do", "something"`.
- system "false"
end
- end
EOS
end
end
diff --git a/Library/Homebrew/dev-cmd/pull.rb b/Library/Homebrew/dev-cmd/pull.rb
index 5979d87b8..959fbd6c7 100644
--- a/Library/Homebrew/dev-cmd/pull.rb
+++ b/Library/Homebrew/dev-cmd/pull.rb
@@ -447,7 +447,7 @@ module Homebrew
def publish_bottle_file_on_bintray(f, bintray_org, creds)
repo = Utils::Bottles::Bintray.repository(f.tap)
package = Utils::Bottles::Bintray.package(f.name)
- info = FormulaInfoFromJson.lookup(f.name)
+ info = FormulaInfoFromJson.lookup(f.full_name)
if info.nil?
raise "Failed publishing bottle: failed reading formula info for #{f.full_name}"
end
diff --git a/Library/Homebrew/extend/os/linux/requirements/java_requirement.rb b/Library/Homebrew/extend/os/linux/requirements/java_requirement.rb
index 7816f6b6f..23a68743d 100644
--- a/Library/Homebrew/extend/os/linux/requirements/java_requirement.rb
+++ b/Library/Homebrew/extend/os/linux/requirements/java_requirement.rb
@@ -1,8 +1,6 @@
require "language/java"
class JavaRequirement < Requirement
- default_formula "jdk"
-
env do
env_java_common
env_oracle_jdk
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 7b1d94eb2..ad7e28a2e 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -14,6 +14,7 @@ require "tap"
require "keg"
require "migrator"
require "extend/ENV"
+require "language/python"
# A formula provides instructions and metadata for Homebrew to install a piece
# of software. Every Homebrew formula is a {Formula}.
@@ -1486,15 +1487,10 @@ class Formula
# Returns a list of Dependency objects that are required at runtime.
# @private
def runtime_dependencies
- runtime_dependencies = recursive_dependencies do |_, dependency|
+ recursive_dependencies do |_, dependency|
Dependency.prune if dependency.build?
Dependency.prune if !dependency.required? && build.without?(dependency)
end
- runtime_requirement_deps = recursive_requirements do |_, requirement|
- Requirement.prune if requirement.build?
- Requirement.prune if !requirement.required? && build.without?(requirement)
- end.map(&:to_dependency).compact
- runtime_dependencies + runtime_requirement_deps
end
# Returns a list of formulae depended on by this formula that aren't
@@ -1552,7 +1548,6 @@ class Formula
hsh["requirements"] = requirements.map do |req|
{
"name" => req.name,
- "default_formula" => req.default_formula,
"cask" => req.cask,
"download" => req.download,
}
diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb
index 4f8708a4d..2105b9d71 100644
--- a/Library/Homebrew/formula_installer.rb
+++ b/Library/Homebrew/formula_installer.rb
@@ -415,16 +415,6 @@ class FormulaInstaller
raise UnsatisfiedRequirements, fatals
end
- def install_requirement_formula?(req_dependency, req, dependent, install_bottle_for_dependent)
- return false unless req_dependency
- return false if req.build? && dependent.installed?
- return true unless req.satisfied?
- return false if req.run?
- return true if build_bottle?
- return true if req.satisfied_by_formula?
- install_bottle_for_dependent
- end
-
def runtime_requirements(formula)
runtime_deps = formula.runtime_dependencies.map(&:to_formula)
recursive_requirements = formula.recursive_requirements do |dependent, _|
@@ -443,17 +433,9 @@ class FormulaInstaller
f.recursive_requirements do |dependent, req|
build = effective_build_options_for(dependent)
install_bottle_for_dependent = install_bottle_for?(dependent, build)
- use_default_formula = install_bottle_for_dependent || build_bottle?
- req_dependency = req.to_dependency(use_default_formula: use_default_formula)
if (req.optional? || req.recommended?) && build.without?(req)
Requirement.prune
- elsif req.build? && use_default_formula && req_dependency&.installed?
- Requirement.prune
- elsif install_requirement_formula?(req_dependency, req, dependent, install_bottle_for_dependent)
- deps.unshift(req_dependency)
- formulae.unshift(req_dependency.to_formula)
- Requirement.prune
elsif req.satisfied?
Requirement.prune
elsif !runtime_requirements.include?(req) && install_bottle_for_dependent
diff --git a/Library/Homebrew/formula_support.rb b/Library/Homebrew/formula_support.rb
index 53fd61db8..011d8a4b7 100644
--- a/Library/Homebrew/formula_support.rb
+++ b/Library/Homebrew/formula_support.rb
@@ -32,15 +32,25 @@ class KegOnlyReason
def to_s
return @explanation unless @explanation.empty?
+
+ case @reason
+ when :provided_by_osx
+ odeprecated "keg_only :provided_by_osx", "keg_only :provided_by_macos"
+ @reason = :provided_by_macos
+ when :shadowed_by_osx
+ odeprecated "keg_only :shadowed_by_osx", "keg_only :shadowed_by_macos"
+ @reason = :shadowed_by_macos
+ end
+
case @reason
when :versioned_formula then <<~EOS
this is an alternate version of another formula
EOS
- when :provided_by_macos, :provided_by_osx then <<~EOS
+ when :provided_by_macos then <<~EOS
macOS already provides this software and installing another version in
parallel can cause all kinds of trouble
EOS
- when :shadowed_by_macos, :shadowed_by_osx then <<~EOS
+ when :shadowed_by_macos then <<~EOS
macOS provides similar software and installing this software in
parallel can cause all kinds of trouble
EOS
diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb
index bb9778c81..e3b93fa72 100644
--- a/Library/Homebrew/keg.rb
+++ b/Library/Homebrew/keg.rb
@@ -54,9 +54,10 @@ class Keg
end
class DirectoryNotWritableError < LinkError
- def to_s; <<~EOS
- Could not symlink #{src}
- #{dst.dirname} is not writable.
+ def to_s
+ <<~EOS
+ Could not symlink #{src}
+ #{dst.dirname} is not writable.
EOS
end
end
diff --git a/Library/Homebrew/os/mac/linkage_checker.rb b/Library/Homebrew/os/mac/linkage_checker.rb
index 941a5a847..e1709d1b4 100644
--- a/Library/Homebrew/os/mac/linkage_checker.rb
+++ b/Library/Homebrew/os/mac/linkage_checker.rb
@@ -62,8 +62,7 @@ class LinkageChecker
formula.build.without?(dep)
end
declared_deps = formula.deps.reject { |dep| filter_out.call(dep) }.map(&:name)
- declared_requirement_deps = formula.requirements.reject { |req| filter_out.call(req) }.map(&:default_formula).compact
- declared_dep_names = (declared_deps + declared_requirement_deps).map { |dep| dep.split("/").last }
+ declared_dep_names = declared_deps.map { |dep| dep.split("/").last }
undeclared_deps = @brewed_dylibs.keys.reject do |full_name|
name = full_name.split("/").last
next true if name == formula.name
diff --git a/Library/Homebrew/requirement.rb b/Library/Homebrew/requirement.rb
index 91f84157e..e2b1afbb9 100644
--- a/Library/Homebrew/requirement.rb
+++ b/Library/Homebrew/requirement.rb
@@ -9,13 +9,11 @@ require "build_environment"
class Requirement
include Dependable
- attr_reader :tags, :name, :cask, :download, :default_formula
+ attr_reader :tags, :name, :cask, :download
def initialize(tags = [])
- @default_formula = self.class.default_formula
@cask ||= self.class.cask
@download ||= self.class.download
- @formula = nil
tags.each do |tag|
next unless tag.is_a? Hash
@cask ||= tag[:cask]
@@ -56,12 +54,6 @@ class Requirement
result = self.class.satisfy.yielder { |p| instance_eval(&p) }
@satisfied_result = result
return false unless result
-
- if parent = satisfied_result_parent
- parent.to_s =~ %r{(#{Regexp.escape(HOMEBREW_CELLAR)}|#{Regexp.escape(HOMEBREW_PREFIX)}/opt)/([\w+-.@]+)}
- @formula = Regexp.last_match(2)
- end
-
true
end
@@ -71,10 +63,6 @@ class Requirement
self.class.fatal || false
end
- def default_formula?
- self.class.default_formula || false
- end
-
def satisfied_result_parent
return unless @satisfied_result.is_a?(Pathname)
parent = @satisfied_result.resolved_path.parent
@@ -124,24 +112,6 @@ class Requirement
"#<#{self.class.name}: #{name.inspect} #{tags.inspect}>"
end
- def formula
- @formula || self.class.default_formula
- end
-
- def satisfied_by_formula?
- !@formula.nil?
- end
-
- def to_dependency(use_default_formula: false)
- if use_default_formula && default_formula?
- Dependency.new(self.class.default_formula, tags, method(:modify_build_environment), name)
- elsif formula =~ HOMEBREW_TAP_FORMULA_REGEX
- TapDependency.new(formula, tags, method(:modify_build_environment), name)
- elsif formula
- Dependency.new(formula, tags, method(:modify_build_environment), name)
- end
- end
-
def display_s
name
end
@@ -167,8 +137,11 @@ class Requirement
include BuildEnvironment::DSL
attr_reader :env_proc, :build
- attr_rw :fatal, :default_formula
- attr_rw :cask, :download
+ attr_rw :fatal, :cask, :download
+
+ def default_formula(val = nil)
+ # odeprecated "Requirement.default_formula"
+ end
def satisfy(options = nil, &block)
return @satisfied if options.nil? && !block_given?
diff --git a/Library/Homebrew/rubocops/bottle_block_cop.rb b/Library/Homebrew/rubocops/bottle_block_cop.rb
index 77759e427..3cfde01ad 100644
--- a/Library/Homebrew/rubocops/bottle_block_cop.rb
+++ b/Library/Homebrew/rubocops/bottle_block_cop.rb
@@ -16,8 +16,6 @@ module RuboCop
problem "Use rebuild instead of revision in bottle block" if method_called_in_block?(bottle, :revision)
end
- private
-
def autocorrect(node)
lambda do |corrector|
correction = node.source.sub("revision", "rebuild")
diff --git a/Library/Homebrew/rubocops/checksum_cop.rb b/Library/Homebrew/rubocops/checksum_cop.rb
index 23a787809..4dd8ad91c 100644
--- a/Library/Homebrew/rubocops/checksum_cop.rb
+++ b/Library/Homebrew/rubocops/checksum_cop.rb
@@ -50,8 +50,6 @@ module RuboCop
end
end
- private
-
def autocorrect(node)
lambda do |corrector|
correction = node.source.downcase
diff --git a/Library/Homebrew/rubocops/class_cop.rb b/Library/Homebrew/rubocops/class_cop.rb
index dad81abfc..6f1ffc144 100644
--- a/Library/Homebrew/rubocops/class_cop.rb
+++ b/Library/Homebrew/rubocops/class_cop.rb
@@ -16,8 +16,6 @@ module RuboCop
problem "#{parent_class} is deprecated, use Formula instead"
end
- private
-
def autocorrect(node)
lambda do |corrector|
corrector.replace(node.source_range, "Formula")
diff --git a/Library/Homebrew/rubocops/components_order_cop.rb b/Library/Homebrew/rubocops/components_order_cop.rb
index 3bf2ede16..a1a576177 100644
--- a/Library/Homebrew/rubocops/components_order_cop.rb
+++ b/Library/Homebrew/rubocops/components_order_cop.rb
@@ -62,8 +62,6 @@ module RuboCop
end
end
- private
-
# Method to format message for reporting component precedence violations
def component_problem(c1, c2)
problem "`#{format_component(c1)}` (line #{line_number(c1)}) should be put before `#{format_component(c2)}` (line #{line_number(c2)})"
@@ -99,7 +97,7 @@ module RuboCop
line_breaks = (order_idx > 8) ? "\n\n" : "\n"
corrector.insert_before(node2.source_range, node1.source + line_breaks + indentation)
end
- corrector.remove(range_with_surrounding_space(node1.source_range, :left))
+ corrector.remove(range_with_surrounding_space(range: node1.source_range, side: :left))
end
# Returns precedence index and component's index to properly reorder and group during autocorrect
diff --git a/Library/Homebrew/rubocops/extend/formula_cop.rb b/Library/Homebrew/rubocops/extend/formula_cop.rb
index de369a0aa..e53c02a44 100644
--- a/Library/Homebrew/rubocops/extend/formula_cop.rb
+++ b/Library/Homebrew/rubocops/extend/formula_cop.rb
@@ -425,7 +425,7 @@ module RuboCop
# Returns the block length of the block node
def block_size(block)
- block_length(block)
+ block.loc.end.line - block.loc.begin.line
end
# Source buffer is required as an argument to report style violations
diff --git a/Library/Homebrew/rubocops/formula_desc_cop.rb b/Library/Homebrew/rubocops/formula_desc_cop.rb
index 8a35e7d24..240a28072 100644
--- a/Library/Homebrew/rubocops/formula_desc_cop.rb
+++ b/Library/Homebrew/rubocops/formula_desc_cop.rb
@@ -88,8 +88,6 @@ module RuboCop
problem "Description shouldn't end with a full stop"
end
- private
-
def autocorrect(node)
lambda do |corrector|
correction = node.source
diff --git a/Library/Homebrew/rubocops/urls_cop.rb b/Library/Homebrew/rubocops/urls_cop.rb
index 414f633c9..4ef801689 100644
--- a/Library/Homebrew/rubocops/urls_cop.rb
+++ b/Library/Homebrew/rubocops/urls_cop.rb
@@ -206,8 +206,6 @@ module RuboCop
end
end
- private
-
def autocorrect(node)
lambda do |corrector|
url_string_node = parameters(node).first
diff --git a/Library/Homebrew/test/Gemfile b/Library/Homebrew/test/Gemfile
index 2dcb670aa..b6d1405ff 100644
--- a/Library/Homebrew/test/Gemfile
+++ b/Library/Homebrew/test/Gemfile
@@ -3,7 +3,6 @@ source "https://rubygems.org"
require_relative "../constants"
gem "parallel_tests"
-gem "parser", HOMEBREW_RUBOCOP_PARSER_VERSION
gem "rspec"
gem "rspec-its", require: false
gem "rspec-wait", require: false
diff --git a/Library/Homebrew/test/Gemfile.lock b/Library/Homebrew/test/Gemfile.lock
index 9ddc18e71..47f51e56b 100644
--- a/Library/Homebrew/test/Gemfile.lock
+++ b/Library/Homebrew/test/Gemfile.lock
@@ -12,12 +12,10 @@ GEM
parallel (1.12.0)
parallel_tests (2.17.0)
parallel
- parser (2.4.0.0)
- ast (~> 2.2)
+ parser (2.4.0.2)
+ ast (~> 2.3)
powerpack (0.1.1)
- rainbow (2.2.2)
- rake
- rake (12.1.0)
+ rainbow (3.0.0)
rspec (3.6.0)
rspec-core (~> 3.6.0)
rspec-expectations (~> 3.6.0)
@@ -36,11 +34,11 @@ GEM
rspec-support (3.6.0)
rspec-wait (0.0.9)
rspec (>= 3, < 4)
- rubocop (0.51.0)
+ rubocop (0.52.1)
parallel (~> 1.10)
- parser (>= 2.3.3.1, < 3.0)
+ parser (>= 2.4.0.2, < 3.0)
powerpack (~> 0.1)
- rainbow (>= 2.2.2, < 3.0)
+ rainbow (>= 2.2.2, < 4.0)
ruby-progressbar (~> 1.7)
unicode-display_width (~> 1.0, >= 1.0.1)
ruby-progressbar (1.9.0)
@@ -58,11 +56,10 @@ PLATFORMS
DEPENDENCIES
codecov
parallel_tests
- parser (= 2.4.0.0)
rspec
rspec-its
rspec-wait
- rubocop (= 0.51.0)
+ rubocop (= 0.52.1)
simplecov
BUNDLED WITH
diff --git a/Library/Homebrew/test/cask/dsl_spec.rb b/Library/Homebrew/test/cask/dsl_spec.rb
index a17acfca6..cd296b5ab 100644
--- a/Library/Homebrew/test/cask/dsl_spec.rb
+++ b/Library/Homebrew/test/cask/dsl_spec.rb
@@ -232,8 +232,9 @@ describe Hbc::DSL, :cask do
expect(cask.caveats).to be_empty
cask = Hbc::Cask.new("cask-with-caveats") do
- def caveats; <<~EOS
- When you install this Cask, you probably want to know this.
+ def caveats
+ <<~EOS
+ When you install this Cask, you probably want to know this.
EOS
end
end
diff --git a/Library/Homebrew/test/cmd/style_spec.rb b/Library/Homebrew/test/cmd/style_spec.rb
index 5c118f32e..61faa4af2 100644
--- a/Library/Homebrew/test/cmd/style_spec.rb
+++ b/Library/Homebrew/test/cmd/style_spec.rb
@@ -28,7 +28,7 @@ describe "brew style" do
rubocop_result = Homebrew.check_style_json([formula])
expect(rubocop_result.file_offenses(formula.realpath.to_s).map(&:message))
- .to include("Extra empty line detected at class body beginning.")
+ .to include("Layout/EmptyLinesAroundClassBody: Extra empty line detected at class body beginning.")
end
end
end
diff --git a/Library/Homebrew/test/dependency_collector_spec.rb b/Library/Homebrew/test/dependency_collector_spec.rb
index 216bbf316..0f182a69e 100644
--- a/Library/Homebrew/test/dependency_collector_spec.rb
+++ b/Library/Homebrew/test/dependency_collector_spec.rb
@@ -66,11 +66,6 @@ describe DependencyCollector do
expect(dep).to be_optional
end
- specify "ant dependency", :needs_compat do
- subject.add ant: :build
- expect(find_dependency("ant")).to eq(Dependency.new("ant", [:build]))
- end
-
it "doesn't mutate the dependency spec" do
spec = { "foo" => :optional }
copy = spec.dup
diff --git a/Library/Homebrew/test/formula_installer_spec.rb b/Library/Homebrew/test/formula_installer_spec.rb
index d3710a4cb..93f23b18f 100644
--- a/Library/Homebrew/test/formula_installer_spec.rb
+++ b/Library/Homebrew/test/formula_installer_spec.rb
@@ -132,64 +132,4 @@ describe FormulaInstaller do
fi.check_install_sanity
}.to raise_error(CannotInstallFormulaError)
end
-
- describe "#install_requirement_formula?", :needs_compat do
- before do
- @requirement = Python3Requirement.new
- @requirement_dependency = @requirement.to_dependency
- @install_bottle_for_dependent = false
- allow(@requirement).to receive(:satisfied?).and_return(satisfied?)
- allow(@requirement).to receive(:satisfied_by_formula?).and_return(satisfied_by_formula?)
- allow(@requirement).to receive(:build?).and_return(build?)
- @dependent = formula do
- url "foo"
- version "0.1"
- depends_on :python3
- end
- allow(@dependent).to receive(:installed?).and_return(installed?)
- @fi = FormulaInstaller.new(@dependent)
- end
-
- subject { @fi.install_requirement_formula?(@requirement_dependency, @requirement, @dependent, @install_bottle_for_dependent) }
-
- context "it returns false when requirement is satisfied" do
- let(:satisfied?) { true }
- let(:satisfied_by_formula?) { false }
- let(:build?) { false }
- let(:installed?) { false }
- it { is_expected.to be false }
- end
-
- context "it returns false when requirement is satisfied but default formula is installed" do
- let(:satisfied?) { true }
- let(:satisfied_by_formula?) { false }
- let(:build?) { false }
- let(:installed?) { false }
- it { is_expected.to be false }
- end
-
- context "it returns false when requirement is :build and dependent is installed" do
- let(:satisfied?) { false }
- let(:satisfied_by_formula?) { false }
- let(:build?) { true }
- let(:installed?) { true }
- it { is_expected.to be false }
- end
-
- context "it returns true when requirement isn't satisfied" do
- let(:satisfied?) { false }
- let(:satisfied_by_formula?) { false }
- let(:build?) { false }
- let(:installed?) { false }
- it { is_expected.to be true }
- end
-
- context "it returns true when requirement is satisfied by a formula" do
- let(:satisfied?) { true }
- let(:satisfied_by_formula?) { true }
- let(:build?) { false }
- let(:installed?) { false }
- it { is_expected.to be true }
- end
- end
end
diff --git a/Library/Homebrew/test/mpi_requirement_spec.rb b/Library/Homebrew/test/mpi_requirement_spec.rb
index 87f99eb3a..aecdb1b66 100644
--- a/Library/Homebrew/test/mpi_requirement_spec.rb
+++ b/Library/Homebrew/test/mpi_requirement_spec.rb
@@ -1,14 +1,13 @@
-require "compat/requirements/mpi_requirement"
+require "compat/requirements"
describe MPIRequirement, :needs_compat do
describe "::new" do
- subject { described_class.new(*(wrappers + tags)) }
+ subject { described_class.new(wrappers + tags) }
let(:wrappers) { [:cc, :cxx, :f77] }
let(:tags) { [:optional, "some-other-tag"] }
- it "untangles wrappers and tags" do
- expect(subject.lang_list).to eq(wrappers)
- expect(subject.tags).to eq(tags)
+ it "stores wrappers as tags" do
+ expect(subject.tags).to eq(wrappers + tags)
end
end
end
diff --git a/Library/Homebrew/test/requirement_spec.rb b/Library/Homebrew/test/requirement_spec.rb
index 2d0d86c86..1f3d872f3 100644
--- a/Library/Homebrew/test/requirement_spec.rb
+++ b/Library/Homebrew/test/requirement_spec.rb
@@ -2,7 +2,6 @@ require "extend/ENV"
require "requirement"
describe Requirement do
- alias_matcher :have_a_default_formula, :be_a_default_formula
alias_matcher :be_a_build_requirement, :be_a_build
subject { klass.new }
@@ -173,60 +172,6 @@ describe Requirement do
its(:option_names) { are_expected.to eq(["foo"]) }
end
- describe "#default_formula?" do
- context "#default_formula specified" do
- let(:klass) do
- Class.new(described_class) do
- default_formula "foo"
- end
- end
-
- it { is_expected.to have_a_default_formula }
- end
-
- context "#default_formula omitted" do
- it { is_expected.not_to have_a_default_formula }
- end
- end
-
- describe "#to_dependency" do
- let(:klass) do
- Class.new(described_class) do
- default_formula "foo"
- end
- end
-
- it "returns a Dependency for its default Formula" do
- expect(subject.to_dependency).to eq(Dependency.new("foo"))
- end
-
- context "#modify_build_environment" do
- context "with error" do
- let(:klass) do
- Class.new(described_class) do
- class ModifyBuildEnvironmentError < StandardError; end
-
- default_formula "foo"
-
- satisfy do
- true
- end
-
- env do
- raise ModifyBuildEnvironmentError
- end
- end
- end
-
- it "raises an error" do
- expect {
- subject.to_dependency.modify_build_environment
- }.to raise_error(klass.const_get(:ModifyBuildEnvironmentError))
- end
- end
- end
- end
-
describe "#modify_build_environment" do
context "without env proc" do
let(:klass) { Class.new(described_class) }
diff --git a/Library/Homebrew/test/support/helper/output_as_tty.rb b/Library/Homebrew/test/support/helper/output_as_tty.rb
index aa9da73cc..22f96510e 100644
--- a/Library/Homebrew/test/support/helper/output_as_tty.rb
+++ b/Library/Homebrew/test/support/helper/output_as_tty.rb
@@ -19,7 +19,7 @@ module Test
return super(block) unless @tty
colored_tty_block = lambda do
- instance_eval("$#{@output}").extend(Module.new do
+ instance_eval("$#{@output}", __FILE__, __LINE__).extend(Module.new do
def tty?
true
end
@@ -32,7 +32,7 @@ module Test
return super(colored_tty_block) if @colors
uncolored_tty_block = lambda do
- instance_eval <<-EOS
+ instance_eval <<-EOS, __FILE__, __LINE__ + 1
begin
captured_stream = StringIO.new
diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb
index c6e7d22df..a1fb0d235 100644
--- a/Library/Homebrew/utils.rb
+++ b/Library/Homebrew/utils.rb
@@ -101,7 +101,8 @@ def odeprecated(method, replacement = nil, disable: false, disable_on: nil, call
if ARGV.homebrew_developer? || disable ||
Homebrew.raise_deprecation_exceptions?
- raise MethodDeprecatedError, message
+ developer_message = message + "Or, even better, submit a PR to fix it!"
+ raise MethodDeprecatedError, developer_message
elsif !Homebrew.auditing?
opoo "#{message}\n"
end
diff --git a/Library/Homebrew/utils/github.rb b/Library/Homebrew/utils/github.rb
index be9bf4dd3..016676323 100644
--- a/Library/Homebrew/utils/github.rb
+++ b/Library/Homebrew/utils/github.rb
@@ -129,7 +129,7 @@ module GitHub
# This is a no-op if the user is opting out of using the GitHub API.
return block_given? ? yield({}) : {} if ENV["HOMEBREW_NO_GITHUB_API"]
- args = %W[--header application/vnd.github.v3+json --write-out \n%{http_code}]
+ args = %W[--header application/vnd.github.v3+json --write-out \n%{http_code}] # rubocop:disable Lint/NestedPercentLiteral
args += curl_args
token, username = api_credentials