mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Deprecations for Homebrew 2.6.0
Do the usual deprecate/disable dance for the Homebrew 2.6.0 release. Not to be merged until the next release will definitely be 2.6.0.
This commit is contained in:
parent
15da2fcb25
commit
d496f5c121
@ -13,9 +13,8 @@ class BuildOptions
|
||||
|
||||
# TODO: rename private_include? when include? is removed.
|
||||
# @deprecated
|
||||
def include?(name)
|
||||
odeprecated "BuildOptions#include?"
|
||||
private_include?("--#{name}")
|
||||
def include?(_)
|
||||
odisabled "BuildOptions#include?"
|
||||
end
|
||||
|
||||
# True if a {Formula} is being built with a specific option.
|
||||
@ -65,11 +64,6 @@ class BuildOptions
|
||||
private_include? "HEAD"
|
||||
end
|
||||
|
||||
# @private
|
||||
def devel?
|
||||
odisabled "BuildOptions#devel?"
|
||||
end
|
||||
|
||||
# True if a {Formula} is being built with {Formula.stable} instead of {Formula.head}.
|
||||
# This is the default.
|
||||
# <pre>args << "--some-beta" if build.head?</pre>
|
||||
@ -81,14 +75,12 @@ class BuildOptions
|
||||
# e.g. on newer Intel Macs this means a combined x86_64/x86 binary/library.
|
||||
# <pre>args << "--universal-binary" if build.universal?</pre>
|
||||
def universal?
|
||||
odeprecated "BuildOptions#universal?"
|
||||
private_include?("universal") && option_defined?("universal")
|
||||
odisabled "BuildOptions#universal?"
|
||||
end
|
||||
|
||||
# True if a {Formula} is being built in C++11 mode.
|
||||
def cxx11?
|
||||
odeprecated "BuildOptions#cxx11?"
|
||||
private_include?("c++11") && option_defined?("c++11")
|
||||
odisabled "BuildOptions#cxx11?"
|
||||
end
|
||||
|
||||
# True if the build has any arguments or options specified.
|
||||
|
@ -63,48 +63,39 @@ module Homebrew
|
||||
end
|
||||
|
||||
def formulae
|
||||
odeprecated "args.formulae", "args.named.to_formulae"
|
||||
named.to_formulae
|
||||
odisabled "args.formulae", "args.named.to_formulae"
|
||||
end
|
||||
|
||||
def formulae_and_casks
|
||||
odeprecated "args.formulae_and_casks", "args.named.to_formulae_and_casks"
|
||||
named.to_formulae_and_casks
|
||||
odisabled "args.formulae_and_casks", "args.named.to_formulae_and_casks"
|
||||
end
|
||||
|
||||
def resolved_formulae
|
||||
odeprecated "args.resolved_formulae", "args.named.to_resolved_formulae"
|
||||
named.to_resolved_formulae
|
||||
odisabled "args.resolved_formulae", "args.named.to_resolved_formulae"
|
||||
end
|
||||
|
||||
def resolved_formulae_casks
|
||||
odeprecated "args.resolved_formulae_casks", "args.named.to_resolved_formulae_to_casks"
|
||||
named.to_resolved_formulae_to_casks
|
||||
odisabled "args.resolved_formulae_casks", "args.named.to_resolved_formulae_to_casks"
|
||||
end
|
||||
|
||||
def formulae_paths
|
||||
odeprecated "args.formulae_paths", "args.named.to_formulae_paths"
|
||||
named.to_formulae_paths
|
||||
odisabled "args.formulae_paths", "args.named.to_formulae_paths"
|
||||
end
|
||||
|
||||
def casks
|
||||
odeprecated "args.casks", "args.named.homebrew_tap_cask_names"
|
||||
named.homebrew_tap_cask_names
|
||||
odisabled "args.casks", "args.named.homebrew_tap_cask_names"
|
||||
end
|
||||
|
||||
def loaded_casks
|
||||
odeprecated "args.loaded_casks", "args.named.to_cask"
|
||||
named.to_casks
|
||||
odisabled "args.loaded_casks", "args.named.to_cask"
|
||||
end
|
||||
|
||||
def kegs
|
||||
odeprecated "args.kegs", "args.named.to_kegs"
|
||||
named.to_kegs
|
||||
odisabled "args.kegs", "args.named.to_kegs"
|
||||
end
|
||||
|
||||
def kegs_casks
|
||||
odeprecated "args.kegs", "args.named.to_kegs_to_casks"
|
||||
named.to_kegs_to_casks
|
||||
odisabled "args.kegs", "args.named.to_kegs_to_casks"
|
||||
end
|
||||
|
||||
def build_stable?
|
||||
|
@ -57,16 +57,7 @@ module Homebrew
|
||||
files["00.tap.out"] = { content: tap }
|
||||
end
|
||||
|
||||
if GitHub.api_credentials_type == :none
|
||||
puts <<~EOS
|
||||
You can create a new personal access token:
|
||||
#{GitHub::ALL_SCOPES_URL}
|
||||
#{Utils::Shell.set_variable_in_profile("HOMEBREW_GITHUB_API_TOKEN", "your_token_here")}
|
||||
|
||||
EOS
|
||||
odeprecated "`brew gist-logs` with a password", "HOMEBREW_GITHUB_API_TOKEN"
|
||||
login!
|
||||
end
|
||||
odisabled "`brew gist-logs` with a password", "HOMEBREW_GITHUB_API_TOKEN" if GitHub.api_credentials_type == :none
|
||||
|
||||
# Description formatted to work well as page title when viewing gist
|
||||
descr = if f.core_formula?
|
||||
|
@ -103,8 +103,7 @@ module Homebrew
|
||||
ls_args << "-t" if args.t?
|
||||
|
||||
if !$stdout.tty? && !args.formula?
|
||||
odeprecated "`brew list` to only list formulae", "`brew list --formula`"
|
||||
safe_system "ls", *ls_args, HOMEBREW_CELLAR
|
||||
odisabled "`brew list` to only list formulae", "`brew list --formula`"
|
||||
else
|
||||
safe_system "ls", *ls_args, HOMEBREW_CELLAR
|
||||
list_casks(args: args) unless args.formula?
|
||||
|
@ -50,16 +50,7 @@ module Homebrew
|
||||
|
||||
case (j = json_version(args.json))
|
||||
when :v1, :default
|
||||
odeprecated "brew outdated --json#{j == :v1 ? "=v1" : ""}", "brew outdated --json=v2"
|
||||
|
||||
outdated = if args.formula? || !args.cask?
|
||||
outdated_formulae args: args
|
||||
else
|
||||
outdated_casks args: args
|
||||
end
|
||||
|
||||
puts JSON.generate(json_info(outdated, args: args))
|
||||
|
||||
odisabled "brew outdated --json#{j == :v1 ? "=v1" : ""}", "brew outdated --json=v2"
|
||||
when :v2
|
||||
formulae, casks = if args.formula?
|
||||
[outdated_formulae(args: args), []]
|
||||
|
@ -32,7 +32,7 @@ module Homebrew
|
||||
|
||||
odie "#{name} not found in the Cellar." unless rack.directory?
|
||||
|
||||
# odeprecated "`brew switch`", "`brew link` @-versioned formulae"
|
||||
odeprecated "`brew switch`", "`brew link` @-versioned formulae"
|
||||
|
||||
versions = rack.subdirs
|
||||
.map { |d| Keg.new(d).version }
|
||||
|
@ -1,12 +1,6 @@
|
||||
# typed: strict
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "compat/dependencies_helpers"
|
||||
require "compat/cli/parser"
|
||||
require "compat/extend/nil"
|
||||
require "compat/extend/string"
|
||||
require "compat/formula"
|
||||
require "compat/global"
|
||||
require "compat/language/java"
|
||||
require "compat/language/python"
|
||||
require "compat/os/mac" if OS.mac?
|
||||
|
@ -1,18 +0,0 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "cli/args"
|
||||
|
||||
module DependenciesHelpers
|
||||
module Compat
|
||||
def argv_includes_ignores(argv = nil)
|
||||
unless @printed_includes_ignores_warning
|
||||
odisabled "Homebrew.argv_includes_ignores", "Homebrew.args_includes_ignores"
|
||||
@printed_includes_ignores_warning = true
|
||||
end
|
||||
args_includes_ignores(argv ? Homebrew::CLI::Args.new : Homebrew.args)
|
||||
end
|
||||
end
|
||||
|
||||
prepend Compat
|
||||
end
|
@ -1,9 +0,0 @@
|
||||
# typed: strict
|
||||
|
||||
module DependenciesHelpers
|
||||
module Compat
|
||||
include Kernel
|
||||
|
||||
def args_includes_ignores(args); end
|
||||
end
|
||||
end
|
@ -1,12 +0,0 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
class NilClass
|
||||
module Compat
|
||||
def chuzzle
|
||||
odisabled ".chuzzle", "&.chomp.presence"
|
||||
end
|
||||
end
|
||||
|
||||
prepend Compat
|
||||
end
|
@ -1,7 +0,0 @@
|
||||
# typed: strict
|
||||
|
||||
class NilClass
|
||||
module Compat
|
||||
include Kernel
|
||||
end
|
||||
end
|
@ -1,12 +0,0 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
class String
|
||||
module Compat
|
||||
def chuzzle
|
||||
odisabled ".chuzzle", "&.chomp.presence"
|
||||
end
|
||||
end
|
||||
|
||||
prepend Compat
|
||||
end
|
@ -1,7 +0,0 @@
|
||||
# typed: strict
|
||||
|
||||
class String
|
||||
module Compat
|
||||
include Kernel
|
||||
end
|
||||
end
|
@ -3,33 +3,20 @@
|
||||
|
||||
class Formula
|
||||
module Compat
|
||||
def installed?
|
||||
odisabled "Formula#installed?",
|
||||
"Formula#latest_version_installed? (or Formula#any_version_installed? )"
|
||||
end
|
||||
|
||||
def prepare_patches
|
||||
odisabled "patches", "patch do" if respond_to?(:patches)
|
||||
super
|
||||
end
|
||||
|
||||
def installed_prefix
|
||||
odeprecated "Formula#installed_prefix",
|
||||
"Formula#latest_installed_prefix (or Formula#any_installed_prefix)"
|
||||
latest_installed_prefix
|
||||
odisabled "Formula#installed_prefix",
|
||||
"Formula#latest_installed_prefix (or Formula#any_installed_prefix)"
|
||||
end
|
||||
|
||||
# The currently installed version for this formula. Will raise an exception
|
||||
# if the formula is not installed.
|
||||
# @private
|
||||
def installed_version
|
||||
odeprecated "Formula#installed_version"
|
||||
Keg.new(latest_installed_prefix).version
|
||||
odisabled "Formula#installed_version"
|
||||
end
|
||||
|
||||
def opt_or_installed_prefix_keg
|
||||
odeprecated "Formula#opt_or_installed_prefix_keg", "Formula#any_installed_keg"
|
||||
any_installed_keg
|
||||
odisabled "Formula#opt_or_installed_prefix_keg", "Formula#any_installed_keg"
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -7,8 +7,7 @@ module Homebrew
|
||||
|
||||
def args
|
||||
unless @printed_args_warning
|
||||
odeprecated "Homebrew.args", "`args = <command>_args.parse` and pass `args` along the call chain"
|
||||
@printed_args_warning = true
|
||||
odisabled "Homebrew.args", "`args = <command>_args.parse` and pass `args` along the call chain"
|
||||
end
|
||||
|
||||
@args ||= CLI::Args.new
|
||||
|
@ -4,35 +4,9 @@
|
||||
module Language
|
||||
module Haskell
|
||||
module Cabal
|
||||
module Compat
|
||||
def cabal_sandbox(_options = {})
|
||||
odisabled "Language::Haskell::Cabal.cabal_sandbox"
|
||||
end
|
||||
|
||||
def cabal_sandbox_add_source(*_args)
|
||||
odisabled "Language::Haskell::Cabal.cabal_sandbox_add_source"
|
||||
end
|
||||
|
||||
def cabal_install(*_args)
|
||||
odisabled "Language::Haskell::Cabal.cabal_install",
|
||||
"cabal v2-install directly with std_cabal_v2_args"
|
||||
end
|
||||
|
||||
def cabal_configure(_flags)
|
||||
odisabled "Language::Haskell::Cabal.cabal_configure"
|
||||
end
|
||||
|
||||
def cabal_install_tools(*_tools)
|
||||
odisabled "Language::Haskell::Cabal.cabal_install_tools"
|
||||
end
|
||||
|
||||
def install_cabal_package(*_args, **_options)
|
||||
odisabled "Language::Haskell::Cabal.install_cabal_package",
|
||||
"cabal v2-update directly followed by v2-install with std_cabal_v2_args"
|
||||
end
|
||||
def self.included(_)
|
||||
odisabled "include Language::Haskell::Cabal"
|
||||
end
|
||||
|
||||
prepend Compat
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,17 +0,0 @@
|
||||
# typed: false
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Language
|
||||
module Java
|
||||
class << self
|
||||
module Compat
|
||||
def java_home_cmd(_version = nil)
|
||||
odisabled "Language::Java.java_home_cmd",
|
||||
"Language::Java.java_home or Language::Java.overridable_java_home_env"
|
||||
end
|
||||
end
|
||||
|
||||
prepend Compat
|
||||
end
|
||||
end
|
||||
end
|
@ -1,17 +0,0 @@
|
||||
# typed: false
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Language
|
||||
module Python
|
||||
class << self
|
||||
module Compat
|
||||
def rewrite_python_shebang(_python_path)
|
||||
odisabled "Language::Python.rewrite_python_shebang",
|
||||
"Utils::Shebang.rewrite_shebang and Shebang.python_shebang_rewrite_info(python_path)"
|
||||
end
|
||||
end
|
||||
|
||||
prepend Compat
|
||||
end
|
||||
end
|
||||
end
|
@ -1,24 +0,0 @@
|
||||
# typed: true
|
||||
# frozen_string_literal: true
|
||||
|
||||
module OS
|
||||
module Mac
|
||||
class << self
|
||||
module Compat
|
||||
def preferred_arch
|
||||
odisabled "MacOS.preferred_arch", "Hardware::CPU.arch (or ideally let the compiler handle it)"
|
||||
end
|
||||
|
||||
def tcc_db
|
||||
odisabled "MacOS.tcc_db"
|
||||
end
|
||||
|
||||
def pre_mavericks_accessibility_dotfile
|
||||
odisabled "MacOS.pre_mavericks_accessibility_dotfile"
|
||||
end
|
||||
end
|
||||
|
||||
prepend Compat
|
||||
end
|
||||
end
|
||||
end
|
@ -1,11 +0,0 @@
|
||||
# typed: strict
|
||||
|
||||
module OS
|
||||
module Mac
|
||||
class << self
|
||||
module Compat
|
||||
include Kernel
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -25,13 +25,14 @@ module Homebrew
|
||||
description: "Explicitly set the <version> of the package being installed."
|
||||
|
||||
max_named 0
|
||||
hide_from_man_page!
|
||||
end
|
||||
end
|
||||
|
||||
def diy
|
||||
args = diy_args.parse
|
||||
|
||||
# odeprecated "`brew diy`"
|
||||
odeprecated "`brew diy`"
|
||||
|
||||
path = Pathname.getwd
|
||||
|
||||
|
@ -25,7 +25,6 @@ module Homebrew
|
||||
description: "Upload to Bintray, but don't publish."
|
||||
|
||||
min_named :formula
|
||||
hide_from_man_page!
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1,52 +0,0 @@
|
||||
# typed: false
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "net/http"
|
||||
require "net/https"
|
||||
require "json"
|
||||
require "cli/parser"
|
||||
require "formula"
|
||||
require "formulary"
|
||||
require "version"
|
||||
require "pkg_version"
|
||||
require "formula_info"
|
||||
|
||||
module Homebrew
|
||||
extend T::Sig
|
||||
|
||||
module_function
|
||||
|
||||
sig { returns(CLI::Parser) }
|
||||
def pull_args
|
||||
Homebrew::CLI::Parser.new do
|
||||
usage_banner <<~EOS
|
||||
`pull` [<options>] <patch>
|
||||
|
||||
Get a patch from a GitHub commit or pull request and apply it to Homebrew.
|
||||
|
||||
Each <patch> may be the number of a pull request in `homebrew/core`
|
||||
or the URL of any pull request or commit on GitHub.
|
||||
EOS
|
||||
switch "--bump",
|
||||
description: "For one-formula PRs, automatically reword commit message to our preferred format."
|
||||
switch "--clean",
|
||||
description: "Do not rewrite or otherwise modify the commits found in the pulled PR."
|
||||
switch "--ignore-whitespace",
|
||||
description: "Silently ignore whitespace discrepancies when applying diffs."
|
||||
switch "--resolve",
|
||||
description: "When a patch fails to apply, leave in progress and allow user to resolve, instead "\
|
||||
"of aborting."
|
||||
switch "--branch-okay",
|
||||
description: "Do not warn if pulling to a branch besides master (useful for testing)."
|
||||
switch "--no-pbcopy",
|
||||
description: "Do not copy anything to the system clipboard."
|
||||
|
||||
min_named 1
|
||||
hide_from_man_page!
|
||||
end
|
||||
end
|
||||
|
||||
def pull
|
||||
odisabled "brew pull", "gh pr checkout"
|
||||
end
|
||||
end
|
@ -26,14 +26,14 @@ class JavaRequirement < Requirement
|
||||
end
|
||||
|
||||
def java_home_cmd
|
||||
# TODO: enable for all macOS versions and Linux on next minor release
|
||||
# TODO: disable for all macOS versions and Linux on next minor release
|
||||
# but --version with ranges is broken on Big Sur today.
|
||||
if MacOS.version >= :big_sur && @version&.end_with?("+")
|
||||
odisabled %Q(depends_on java: "#{@version}"),
|
||||
'depends_on "openjdk@11", depends_on "openjdk@8" or depends_on "openjdk"'
|
||||
end
|
||||
# odeprecated "depends_on :java",
|
||||
# 'depends_on "openjdk@11", depends_on "openjdk@8" or depends_on "openjdk"'
|
||||
odeprecated "depends_on :java",
|
||||
'depends_on "openjdk@11", depends_on "openjdk@8" or depends_on "openjdk"'
|
||||
|
||||
return unless File.executable?("/usr/libexec/java_home")
|
||||
|
||||
|
@ -113,11 +113,6 @@ class Formula
|
||||
# @private
|
||||
attr_reader :stable
|
||||
|
||||
# @private
|
||||
def devel
|
||||
odisabled "Formula#devel"
|
||||
end
|
||||
|
||||
# The HEAD {SoftwareSpec} for this {Formula}.
|
||||
# Installed when using `brew install --HEAD`.
|
||||
# This is always installed with the version `HEAD` and taken from the latest
|
||||
@ -328,11 +323,6 @@ class Formula
|
||||
active_spec == stable
|
||||
end
|
||||
|
||||
# @private
|
||||
def devel?
|
||||
odisabled "Formula#devel?"
|
||||
end
|
||||
|
||||
# Is the currently active {SoftwareSpec} a {#head} build?
|
||||
# @private
|
||||
def head?
|
||||
@ -2227,10 +2217,6 @@ class Formula
|
||||
raise "You cannot override Formula#brew in class #{name}"
|
||||
when :test
|
||||
define_method(:test_defined?) { true }
|
||||
when :patches
|
||||
odisabled "a Formula#patches definition", "'patch do' block calls"
|
||||
when :options
|
||||
odisabled "a Formula#options definition", "'option do' block calls"
|
||||
end
|
||||
end
|
||||
|
||||
@ -2274,10 +2260,7 @@ class Formula
|
||||
if args.nil?
|
||||
@licenses
|
||||
else
|
||||
if args.is_a? Array
|
||||
odeprecated "`license [...]`", "`license any_of: [...]`"
|
||||
args = { any_of: args }
|
||||
end
|
||||
odisabled "`license [...]`", "`license any_of: [...]`" if args.is_a? Array
|
||||
@licenses = args
|
||||
end
|
||||
end
|
||||
@ -2463,11 +2446,6 @@ class Formula
|
||||
@stable.instance_eval(&block)
|
||||
end
|
||||
|
||||
# @private
|
||||
def devel
|
||||
odisabled "'devel' blocks in formulae", "'head' blocks or @-versioned formulae"
|
||||
end
|
||||
|
||||
# @!attribute [w] head
|
||||
# Adds a {.head} {SoftwareSpec}.
|
||||
# This can be installed by passing the `--HEAD` option to allow
|
||||
|
@ -225,12 +225,12 @@ module Formulary
|
||||
|
||||
def load_file(flags:)
|
||||
if %r{githubusercontent.com/[\w-]+/[\w-]+/[a-f0-9]{40}(?:/Formula)?/(?<formula_name>[\w+-.@]+).rb} =~ url # rubocop:disable Style/CaseLikeIf
|
||||
odisabled "Installation of #{formula_name} from a GitHub commit URL",
|
||||
"'brew extract #{formula_name}' to stable tap on GitHub"
|
||||
raise UsageError, "Installation of #{formula_name} from a GitHub commit URL is unsupported! " \
|
||||
"'brew extract #{formula_name}' to stable tap on GitHub instead."
|
||||
elsif url.match?(%r{^(https?|ftp)://})
|
||||
odisabled "Non-checksummed download of #{name} formula file from an arbitrary URL",
|
||||
"'brew extract' or 'brew create' and 'brew tap-new' to create a "\
|
||||
"formula file in a tap on GitHub"
|
||||
raise UsageError, "Non-checksummed download of #{name} formula file from an arbitrary URL is unsupported! ",
|
||||
"'brew extract' or 'brew create' and 'brew tap-new' to create a "\
|
||||
"formula file in a tap on GitHub instead."
|
||||
end
|
||||
HOMEBREW_CACHE_FORMULA.mkpath
|
||||
FileUtils.rm_f(path)
|
||||
|
@ -41,14 +41,8 @@ module Patch
|
||||
else
|
||||
{}
|
||||
end.each_pair do |strip, urls|
|
||||
Array(urls).each do |url|
|
||||
patch = case url
|
||||
when :DATA
|
||||
DATAPatch.new(strip)
|
||||
else
|
||||
LegacyPatch.new(strip, url)
|
||||
end
|
||||
patches << patch
|
||||
Array(urls).each do
|
||||
patches << DATAPatch.new(strip)
|
||||
end
|
||||
end
|
||||
|
||||
@ -196,15 +190,3 @@ class ExternalPatch
|
||||
"#<#{self.class.name}: #{strip.inspect} #{url.inspect}>"
|
||||
end
|
||||
end
|
||||
|
||||
# A legacy patch.
|
||||
#
|
||||
# Legacy patches have no checksum and are not cached.
|
||||
#
|
||||
# @api private
|
||||
class LegacyPatch < ExternalPatch
|
||||
def initialize(strip, _url)
|
||||
odisabled "legacy patches", "'patch do' blocks"
|
||||
super(strip)
|
||||
end
|
||||
end
|
||||
|
@ -34,6 +34,9 @@ class JavaRequirement < Requirement
|
||||
end
|
||||
|
||||
def initialize(tags = [])
|
||||
odeprecated "depends_on :java",
|
||||
'"depends_on "openjdk@11", "depends_on "openjdk@8" or "depends_on "openjdk"'
|
||||
|
||||
@version = tags.shift if tags.first&.match?(/^\d/)
|
||||
super(tags)
|
||||
@cask = suggestion.token
|
||||
|
@ -14,16 +14,10 @@ class MacOSRequirement < Requirement
|
||||
attr_reader :comparator, :version
|
||||
|
||||
def initialize(tags = [], comparator: ">=")
|
||||
begin
|
||||
@version = if comparator == "==" && tags.first.respond_to?(:map)
|
||||
tags.shift.map { |s| MacOS::Version.from_symbol(s) }
|
||||
else
|
||||
MacOS::Version.from_symbol(tags.shift) unless tags.empty?
|
||||
end
|
||||
rescue MacOSVersionError => e
|
||||
raise if e.version != :mavericks
|
||||
|
||||
odisabled "depends_on :macos => :mavericks"
|
||||
@version = if comparator == "==" && tags.first.respond_to?(:map)
|
||||
tags.shift.map { |s| MacOS::Version.from_symbol(s) }
|
||||
else
|
||||
MacOS::Version.from_symbol(tags.shift) unless tags.empty?
|
||||
end
|
||||
|
||||
@comparator = comparator
|
||||
|
@ -95,21 +95,6 @@ module RuboCop
|
||||
end
|
||||
end
|
||||
|
||||
find_strings(body_node).each do |n|
|
||||
next unless regex_match_group(n, /JAVA_HOME/i)
|
||||
|
||||
next if @formula_name.match?(/^openjdk(@|$)/)
|
||||
|
||||
next if find_every_method_call_by_name(body_node, :depends_on).any? do |dependency|
|
||||
dependency.each_descendant(:str).count.zero? ||
|
||||
regex_match_group(dependency.each_descendant(:str).first, /^openjdk(@|$)/) ||
|
||||
depends_on?(:java)
|
||||
end
|
||||
|
||||
offending_node(n)
|
||||
problem "Use `depends_on :java` to set JAVA_HOME"
|
||||
end
|
||||
|
||||
prefix_path(body_node) do |prefix_node, path|
|
||||
next unless match = path.match(%r{^(bin|include|libexec|lib|sbin|share|Frameworks)(?:/| |$)})
|
||||
|
||||
|
@ -233,23 +233,17 @@ class Tab < OpenStruct
|
||||
end
|
||||
|
||||
def universal?
|
||||
odeprecated "Tab#universal?"
|
||||
include?("universal")
|
||||
odisabled "Tab#universal?"
|
||||
end
|
||||
|
||||
def cxx11?
|
||||
odeprecated "Tab#cxx11?"
|
||||
include?("c++11")
|
||||
odisabled "Tab#cxx11?"
|
||||
end
|
||||
|
||||
def head?
|
||||
spec == :head
|
||||
end
|
||||
|
||||
def devel?
|
||||
odisabled "Tab#devel?"
|
||||
end
|
||||
|
||||
def stable?
|
||||
spec == :stable
|
||||
end
|
||||
@ -314,10 +308,6 @@ class Tab < OpenStruct
|
||||
Version.create(versions["stable"]) if versions["stable"]
|
||||
end
|
||||
|
||||
def devel_version
|
||||
odisabled "Tab#devel_version"
|
||||
end
|
||||
|
||||
def head_version
|
||||
Version.create(versions["head"]) if versions["head"]
|
||||
end
|
||||
|
@ -6,17 +6,3 @@ require "cmd/shared_examples/args_parse"
|
||||
describe "Homebrew.switch_args" do
|
||||
it_behaves_like "parseable arguments"
|
||||
end
|
||||
|
||||
describe "brew switch", :integration_test do
|
||||
it "allows switching between Formula versions" do
|
||||
install_test_formula "testball"
|
||||
|
||||
testball_rack = HOMEBREW_CELLAR/"testball"
|
||||
FileUtils.cp_r testball_rack/"0.1", testball_rack/"0.2"
|
||||
|
||||
expect { brew "switch", "testball", "0.2" }
|
||||
.to output(/links created/).to_stdout
|
||||
.and not_to_output.to_stderr
|
||||
.and be_a_success
|
||||
end
|
||||
end
|
||||
|
@ -794,21 +794,19 @@ describe Formula do
|
||||
f1 = formula "f1" do
|
||||
url "f1-1"
|
||||
|
||||
depends_on :java
|
||||
depends_on x11: :recommended
|
||||
depends_on xcode: ["1.0", :optional]
|
||||
end
|
||||
stub_formula_loader(f1)
|
||||
|
||||
java = JavaRequirement.new
|
||||
x11 = X11Requirement.new([:recommended])
|
||||
xcode = XcodeRequirement.new(["1.0", :optional])
|
||||
|
||||
expect(Set.new(f1.recursive_requirements)).to eq(Set[java, x11])
|
||||
expect(Set.new(f1.recursive_requirements)).to eq(Set[x11])
|
||||
|
||||
f1.build = BuildOptions.new(["--with-xcode", "--without-x11"], f1.options)
|
||||
|
||||
expect(Set.new(f1.recursive_requirements)).to eq(Set[java, xcode])
|
||||
expect(Set.new(f1.recursive_requirements)).to eq(Set[xcode])
|
||||
|
||||
f1.build = f1.stable.build
|
||||
f2 = formula "f2" do
|
||||
@ -817,14 +815,14 @@ describe Formula do
|
||||
depends_on "f1"
|
||||
end
|
||||
|
||||
expect(Set.new(f2.recursive_requirements)).to eq(Set[java, x11])
|
||||
expect(Set.new(f2.recursive_requirements {})).to eq(Set[java, x11, xcode])
|
||||
expect(Set.new(f2.recursive_requirements)).to eq(Set[x11])
|
||||
expect(Set.new(f2.recursive_requirements {})).to eq(Set[x11, xcode])
|
||||
|
||||
requirements = f2.recursive_requirements do |_dependent, requirement|
|
||||
Requirement.prune if requirement.is_a?(JavaRequirement)
|
||||
Requirement.prune if requirement.is_a?(X11Requirement)
|
||||
end
|
||||
|
||||
expect(Set.new(requirements)).to eq(Set[x11, xcode])
|
||||
expect(Set.new(requirements)).to eq(Set[xcode])
|
||||
end
|
||||
|
||||
specify "#to_hash" do
|
||||
|
@ -6,13 +6,13 @@ require "language/java"
|
||||
describe Language::Java do
|
||||
describe "::java_home" do
|
||||
if !OS.mac? || MacOS.version < :big_sur
|
||||
it "returns valid JAVA_HOME if version is specified", :needs_java do
|
||||
it "returns valid JAVA_HOME if version is specified", :needs_macos do
|
||||
java_home = described_class.java_home("1.6+")
|
||||
expect(java_home/"bin/java").to be_an_executable
|
||||
end
|
||||
end
|
||||
|
||||
it "returns valid JAVA_HOME if version is not specified", :needs_java do
|
||||
it "returns valid JAVA_HOME if version is not specified", :needs_macos do
|
||||
java_home = described_class.java_home
|
||||
expect(java_home/"bin/java").to be_an_executable
|
||||
end
|
||||
@ -24,7 +24,7 @@ describe Language::Java do
|
||||
expect(java_home[:JAVA_HOME]).to include("--version blah")
|
||||
end
|
||||
|
||||
it "returns java_home path without version if version is not specified", :needs_java do
|
||||
it "returns java_home path without version if version is not specified", :needs_macos do
|
||||
java_home = described_class.java_home_env
|
||||
expect(java_home[:JAVA_HOME]).not_to include("--version")
|
||||
end
|
||||
@ -36,7 +36,7 @@ describe Language::Java do
|
||||
expect(java_home[:JAVA_HOME]).to include("--version blah")
|
||||
end
|
||||
|
||||
it "returns java_home path without version if version is not specified", :needs_java do
|
||||
it "returns java_home path without version if version is not specified", :needs_macos do
|
||||
java_home = described_class.overridable_java_home_env
|
||||
expect(java_home[:JAVA_HOME]).not_to include("--version")
|
||||
end
|
||||
|
@ -1,38 +0,0 @@
|
||||
# typed: false
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "requirements/java_requirement"
|
||||
require "fileutils"
|
||||
|
||||
describe JavaRequirement do
|
||||
subject { described_class.new(%w[1.8]) }
|
||||
|
||||
let(:java_home) { mktmpdir }
|
||||
|
||||
before do
|
||||
FileUtils.mkdir java_home/"bin"
|
||||
FileUtils.touch java_home/"bin/java"
|
||||
allow(subject).to receive(:preferred_java).and_return(java_home/"bin/java")
|
||||
end
|
||||
|
||||
specify "Apple Java environment" do
|
||||
expect(subject).to be_satisfied
|
||||
|
||||
expect(ENV).to receive(:prepend_path)
|
||||
expect(ENV).to receive(:append_to_cflags)
|
||||
|
||||
subject.modify_build_environment
|
||||
expect(ENV["JAVA_HOME"]).to eq(java_home.to_s)
|
||||
end
|
||||
|
||||
specify "Oracle Java environment" do
|
||||
expect(subject).to be_satisfied
|
||||
|
||||
FileUtils.mkdir java_home/"include"
|
||||
expect(ENV).to receive(:prepend_path)
|
||||
expect(ENV).to receive(:append_to_cflags).twice
|
||||
|
||||
subject.modify_build_environment
|
||||
expect(ENV["JAVA_HOME"]).to eq(java_home.to_s)
|
||||
end
|
||||
end
|
@ -1,159 +0,0 @@
|
||||
# typed: false
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "requirements/java_requirement"
|
||||
|
||||
describe JavaRequirement do
|
||||
subject { described_class.new([]) }
|
||||
|
||||
before do
|
||||
ENV["JAVA_HOME"] = nil
|
||||
end
|
||||
|
||||
describe "#initialize" do
|
||||
it "parses '1.8' tag correctly" do
|
||||
req = described_class.new(["1.8"])
|
||||
expect(req.display_s).to eq("Java = 1.8")
|
||||
end
|
||||
|
||||
it "parses '9' tag correctly" do
|
||||
req = described_class.new(["9"])
|
||||
expect(req.display_s).to eq("Java = 9")
|
||||
end
|
||||
|
||||
it "parses '9+' tag correctly" do
|
||||
req = described_class.new(["9+"])
|
||||
expect(req.display_s).to eq("Java >= 9")
|
||||
end
|
||||
|
||||
it "parses '11' tag correctly" do
|
||||
req = described_class.new(["11"])
|
||||
expect(req.display_s).to eq("Java = 11")
|
||||
end
|
||||
|
||||
it "parses bogus tag correctly" do
|
||||
req = described_class.new(["bogus1.8"])
|
||||
expect(req.display_s).to eq("Java")
|
||||
end
|
||||
end
|
||||
|
||||
describe "#message" do
|
||||
its(:message) { is_expected.to match(/Java is required for this software./) }
|
||||
end
|
||||
|
||||
describe "#inspect" do
|
||||
subject { described_class.new(%w[1.7+]) }
|
||||
|
||||
its(:inspect) { is_expected.to eq('#<JavaRequirement: version="1.7+" []>') }
|
||||
end
|
||||
|
||||
describe "#display_s" do
|
||||
context "without specific version" do
|
||||
its(:display_s) { is_expected.to eq("Java") }
|
||||
end
|
||||
|
||||
context "with version 1.8" do
|
||||
subject { described_class.new(%w[1.8]) }
|
||||
|
||||
its(:display_s) { is_expected.to eq("Java = 1.8") }
|
||||
end
|
||||
|
||||
context "with version 1.8+" do
|
||||
subject { described_class.new(%w[1.8+]) }
|
||||
|
||||
its(:display_s) { is_expected.to eq("Java >= 1.8") }
|
||||
end
|
||||
end
|
||||
|
||||
describe "#satisfied?" do
|
||||
subject(:requirement) { described_class.new(%w[1.8]) }
|
||||
|
||||
if !OS.mac? || MacOS.version < :big_sur
|
||||
it "returns false if no `java` executable can be found" do
|
||||
allow(File).to receive(:executable?).and_return(false)
|
||||
expect(requirement).not_to be_satisfied
|
||||
end
|
||||
end
|
||||
|
||||
it "returns true if #preferred_java returns a path" do
|
||||
allow(requirement).to receive(:preferred_java).and_return(Pathname.new("/usr/bin/java"))
|
||||
expect(requirement).to be_satisfied
|
||||
end
|
||||
|
||||
context "when #possible_javas contains paths" do
|
||||
let(:path) { mktmpdir }
|
||||
let(:java) { path/"java" }
|
||||
|
||||
def setup_java_with_version(version)
|
||||
IO.write java, <<~SH
|
||||
#!/bin/sh
|
||||
echo 'java version "#{version}"' 1>&2
|
||||
SH
|
||||
FileUtils.chmod "+x", java
|
||||
end
|
||||
|
||||
before do
|
||||
allow(requirement).to receive(:possible_javas).and_return([java])
|
||||
end
|
||||
|
||||
context "and 1.7 is required" do
|
||||
subject(:requirement) { described_class.new(%w[1.7]) }
|
||||
|
||||
it "returns false if all are lower" do
|
||||
setup_java_with_version "1.6.0_5"
|
||||
expect(requirement).not_to be_satisfied
|
||||
end
|
||||
|
||||
it "returns true if one is equal" do
|
||||
setup_java_with_version "1.7.0_5"
|
||||
expect(requirement).to be_satisfied
|
||||
end
|
||||
|
||||
it "returns false if all are higher" do
|
||||
setup_java_with_version "1.8.0_5"
|
||||
expect(requirement).not_to be_satisfied
|
||||
end
|
||||
end
|
||||
|
||||
context "and 1.7+ is required" do
|
||||
subject(:requirement) { described_class.new(%w[1.7+]) }
|
||||
|
||||
it "returns false if all are lower" do
|
||||
setup_java_with_version "1.6.0_5"
|
||||
expect(requirement).not_to be_satisfied
|
||||
end
|
||||
|
||||
it "returns true if one is equal" do
|
||||
setup_java_with_version "1.7.0_5"
|
||||
expect(requirement).to be_satisfied
|
||||
end
|
||||
|
||||
it "returns true if one is higher" do
|
||||
setup_java_with_version "1.8.0_5"
|
||||
expect(requirement).to be_satisfied
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "#suggestion" do
|
||||
context "without specific version" do
|
||||
its(:suggestion) { is_expected.to match(/brew cask install adoptopenjdk/) }
|
||||
its(:cask) { is_expected.to eq("adoptopenjdk") }
|
||||
end
|
||||
|
||||
context "with version 1.8" do
|
||||
subject { described_class.new(%w[1.8]) }
|
||||
|
||||
its(:suggestion) { is_expected.to match(%r{brew cask install homebrew/cask-versions/adoptopenjdk8}) }
|
||||
its(:cask) { is_expected.to eq("homebrew/cask-versions/adoptopenjdk8") }
|
||||
end
|
||||
|
||||
context "with version 1.8+" do
|
||||
subject { described_class.new(%w[1.8+]) }
|
||||
|
||||
its(:suggestion) { is_expected.to match(/brew cask install adoptopenjdk/) }
|
||||
its(:cask) { is_expected.to eq("adoptopenjdk") }
|
||||
end
|
||||
end
|
||||
end
|
@ -250,61 +250,6 @@ describe RuboCop::Cop::FormulaAudit::Text do
|
||||
RUBY
|
||||
end
|
||||
|
||||
it "When using JAVA_HOME without a java dependency" do
|
||||
expect_offense(<<~RUBY)
|
||||
class Foo < Formula
|
||||
def install
|
||||
ohai "JAVA_HOME"
|
||||
^^^^^^^^^^^ Use `depends_on :java` to set JAVA_HOME
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
it "When using JAVA_HOME with an openjdk dependency" do
|
||||
expect_no_offenses(<<~RUBY)
|
||||
class Foo < Formula
|
||||
depends_on "openjdk"
|
||||
def install
|
||||
ohai "JAVA_HOME"
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
it "When using JAVA_HOME with an openjdk build dependency" do
|
||||
expect_no_offenses(<<~RUBY)
|
||||
class Foo < Formula
|
||||
depends_on "openjdk" => :build
|
||||
def install
|
||||
ohai "JAVA_HOME"
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
it "When using JAVA_HOME with a java dependency" do
|
||||
expect_no_offenses(<<~RUBY)
|
||||
class Foo < Formula
|
||||
depends_on :java
|
||||
def install
|
||||
ohai "JAVA_HOME"
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
it "When using JAVA_HOME with a java build dependency" do
|
||||
expect_no_offenses(<<~RUBY)
|
||||
class Foo < Formula
|
||||
depends_on :java => :build
|
||||
def install
|
||||
ohai "JAVA_HOME"
|
||||
end
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
it "When using `prefix + \"bin\"` instead of `bin`" do
|
||||
expect_offense(<<~RUBY)
|
||||
class Foo < Formula
|
||||
|
@ -96,9 +96,7 @@ module GitHub
|
||||
return unless Homebrew::EnvConfig.github_api_username
|
||||
return unless Homebrew::EnvConfig.github_api_password
|
||||
|
||||
odeprecated "the GitHub API with HOMEBREW_GITHUB_API_PASSWORD", "HOMEBREW_GITHUB_API_TOKEN"
|
||||
|
||||
[Homebrew::EnvConfig.github_api_password, Homebrew::EnvConfig.github_api_username]
|
||||
odisabled "the GitHub API with HOMEBREW_GITHUB_API_PASSWORD", "HOMEBREW_GITHUB_API_TOKEN"
|
||||
end
|
||||
|
||||
def keychain_username_password
|
||||
|
@ -68,7 +68,6 @@ pr-publish
|
||||
pr-pull
|
||||
pr-upload
|
||||
prof
|
||||
pull
|
||||
readall
|
||||
reinstall
|
||||
release-notes
|
||||
|
@ -1004,17 +1004,6 @@ Build bottles for these formulae with GitHub Actions.
|
||||
* `--upload`:
|
||||
Upload built bottles to Bintray.
|
||||
|
||||
### `diy` [*`options`*]
|
||||
|
||||
Automatically determine the installation prefix for non-Homebrew software.
|
||||
Using the output from this command, you can install your own software into
|
||||
the Cellar and then link it into Homebrew's prefix with `brew link`.
|
||||
|
||||
* `--name`:
|
||||
Explicitly set the *`name`* of the package being installed.
|
||||
* `--version`:
|
||||
Explicitly set the *`version`* of the package being installed.
|
||||
|
||||
### `edit` [*`formula`*|*`cask`*]
|
||||
|
||||
Open a *`formula`* or *`cask`* in the editor set by `EDITOR` or `HOMEBREW_EDITOR`,
|
||||
@ -1098,6 +1087,17 @@ Generate Homebrew's manpages.
|
||||
* `--link`:
|
||||
This is now done automatically by `brew update`.
|
||||
|
||||
### `mirror` *`formula`*
|
||||
|
||||
Reupload the stable URL of a formula to Bintray for use as a mirror.
|
||||
|
||||
* `--bintray-org`:
|
||||
Upload to the specified Bintray organisation (default: `homebrew`).
|
||||
* `--bintray-repo`:
|
||||
Upload to the specified Bintray repository (default: `mirror`).
|
||||
* `--no-publish`:
|
||||
Upload to Bintray, but don't publish.
|
||||
|
||||
### `pr-automerge` [*`options`*]
|
||||
|
||||
Find pull requests that can be automatically merged using `brew pr-publish`.
|
||||
|
@ -1413,17 +1413,6 @@ Dispatch specified workflow (default: \fBdispatch\-build\-bottle\.yml\fR)\.
|
||||
\fB\-\-upload\fR
|
||||
Upload built bottles to Bintray\.
|
||||
.
|
||||
.SS "\fBdiy\fR [\fIoptions\fR]"
|
||||
Automatically determine the installation prefix for non\-Homebrew software\. Using the output from this command, you can install your own software into the Cellar and then link it into Homebrew\'s prefix with \fBbrew link\fR\.
|
||||
.
|
||||
.TP
|
||||
\fB\-\-name\fR
|
||||
Explicitly set the \fIname\fR of the package being installed\.
|
||||
.
|
||||
.TP
|
||||
\fB\-\-version\fR
|
||||
Explicitly set the \fIversion\fR of the package being installed\.
|
||||
.
|
||||
.SS "\fBedit\fR [\fIformula\fR|\fIcask\fR]"
|
||||
Open a \fIformula\fR or \fIcask\fR in the editor set by \fBEDITOR\fR or \fBHOMEBREW_EDITOR\fR, or open the Homebrew repository for editing if no formula is provided\.
|
||||
.
|
||||
@ -1523,6 +1512,21 @@ Return a failing status code if changes are detected in the manpage outputs\. Th
|
||||
\fB\-\-link\fR
|
||||
This is now done automatically by \fBbrew update\fR\.
|
||||
.
|
||||
.SS "\fBmirror\fR \fIformula\fR"
|
||||
Reupload the stable URL of a formula to Bintray for use as a mirror\.
|
||||
.
|
||||
.TP
|
||||
\fB\-\-bintray\-org\fR
|
||||
Upload to the specified Bintray organisation (default: \fBhomebrew\fR)\.
|
||||
.
|
||||
.TP
|
||||
\fB\-\-bintray\-repo\fR
|
||||
Upload to the specified Bintray repository (default: \fBmirror\fR)\.
|
||||
.
|
||||
.TP
|
||||
\fB\-\-no\-publish\fR
|
||||
Upload to Bintray, but don\'t publish\.
|
||||
.
|
||||
.SS "\fBpr\-automerge\fR [\fIoptions\fR]"
|
||||
Find pull requests that can be automatically merged using \fBbrew pr\-publish\fR\.
|
||||
.
|
||||
|
Loading…
x
Reference in New Issue
Block a user