Merge pull request #16306 from Bo98/4.2.0-deprecations
Deprecate, disable & delete code for Homebrew 4.2.0
This commit is contained in:
commit
5ee6e967da
@ -23,10 +23,11 @@ module Cask
|
|||||||
|
|
||||||
attr_predicate :loaded_from_api?
|
attr_predicate :loaded_from_api?
|
||||||
|
|
||||||
|
# @api private
|
||||||
def self.all
|
def self.all
|
||||||
# TODO: ideally avoid using ARGV by moving to e.g. CLI::Parser
|
# TODO: replace this ARGV and ENV logic with an argument, like how we do with formulae
|
||||||
if ARGV.exclude?("--eval-all") && !Homebrew::EnvConfig.eval_all?
|
if ARGV.exclude?("--eval-all") && !Homebrew::EnvConfig.eval_all?
|
||||||
odisabled "Cask::Cask#all without --eval-all or HOMEBREW_EVAL_ALL"
|
raise ArgumentError, "Cask::Cask#all cannot be used without --eval-all or HOMEBREW_EVAL_ALL"
|
||||||
end
|
end
|
||||||
|
|
||||||
Tap.flat_map(&:cask_files).map do |f|
|
Tap.flat_map(&:cask_files).map do |f|
|
||||||
|
@ -49,7 +49,7 @@ module Cask
|
|||||||
.returns(Pathname)
|
.returns(Pathname)
|
||||||
}
|
}
|
||||||
def fetch(quiet: nil, verify_download_integrity: true, timeout: nil)
|
def fetch(quiet: nil, verify_download_integrity: true, timeout: nil)
|
||||||
downloader.shutup! if quiet
|
downloader.quiet! if quiet
|
||||||
|
|
||||||
begin
|
begin
|
||||||
super(verify_download_integrity: false, timeout: timeout)
|
super(verify_download_integrity: false, timeout: timeout)
|
||||||
|
@ -211,7 +211,7 @@ module Cask
|
|||||||
# @api public
|
# @api public
|
||||||
def appcast(*args, **kwargs)
|
def appcast(*args, **kwargs)
|
||||||
set_unique_stanza(:appcast, args.empty? && kwargs.empty?) do
|
set_unique_stanza(:appcast, args.empty? && kwargs.empty?) do
|
||||||
odeprecated "the `appcast` stanza", "the `livecheck` stanza"
|
odisabled "the `appcast` stanza", "the `livecheck` stanza"
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -12,7 +12,7 @@ module Cask
|
|||||||
include Staged
|
include Staged
|
||||||
|
|
||||||
def suppress_move_to_applications(_options = {})
|
def suppress_move_to_applications(_options = {})
|
||||||
odeprecated "Cask::DSL#suppress_move_to_applications"
|
odisabled "Cask::DSL#suppress_move_to_applications"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -159,26 +159,18 @@ class Caveats
|
|||||||
|
|
||||||
s = []
|
s = []
|
||||||
|
|
||||||
command = if formula.service.command?
|
|
||||||
formula.service.manual_command
|
|
||||||
else
|
|
||||||
formula.plist_manual
|
|
||||||
end
|
|
||||||
|
|
||||||
return <<~EOS if !Utils::Service.launchctl? && formula.plist
|
return <<~EOS if !Utils::Service.launchctl? && formula.plist
|
||||||
#{Formatter.warning("Warning:")} #{formula.name} provides a launchd plist which can only be used on macOS!
|
#{Formatter.warning("Warning:")} #{formula.name} provides a launchd plist which can only be used on macOS!
|
||||||
You can manually execute the service instead with:
|
|
||||||
#{command}
|
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
# Brew services only works with these two tools
|
# Brew services only works with these two tools
|
||||||
return <<~EOS if !Utils::Service.systemctl? && !Utils::Service.launchctl? && formula.service.command?
|
return <<~EOS if !Utils::Service.systemctl? && !Utils::Service.launchctl? && formula.service.command?
|
||||||
#{Formatter.warning("Warning:")} #{formula.name} provides a service which can only be used on macOS or systemd!
|
#{Formatter.warning("Warning:")} #{formula.name} provides a service which can only be used on macOS or systemd!
|
||||||
You can manually execute the service instead with:
|
You can manually execute the service instead with:
|
||||||
#{command}
|
#{formula.service.manual_command}
|
||||||
EOS
|
EOS
|
||||||
|
|
||||||
startup = formula.service.requires_root? || formula.plist_startup
|
startup = formula.service.requires_root?
|
||||||
if Utils::Service.running?(formula)
|
if Utils::Service.running?(formula)
|
||||||
s << "To restart #{formula.full_name} after an upgrade:"
|
s << "To restart #{formula.full_name} after an upgrade:"
|
||||||
s << " #{startup ? "sudo " : ""}brew services restart #{formula.full_name}"
|
s << " #{startup ? "sudo " : ""}brew services restart #{formula.full_name}"
|
||||||
@ -190,9 +182,9 @@ class Caveats
|
|||||||
s << " brew services start #{formula.full_name}"
|
s << " brew services start #{formula.full_name}"
|
||||||
end
|
end
|
||||||
|
|
||||||
if formula.plist_manual || formula.service.command?
|
if formula.service.command?
|
||||||
s << "Or, if you don't want/need a background service you can just run:"
|
s << "Or, if you don't want/need a background service you can just run:"
|
||||||
s << " #{command}"
|
s << " #{formula.service.manual_command}"
|
||||||
end
|
end
|
||||||
|
|
||||||
# pbpaste is the system clipboard tool on macOS and fails with `tmux` by default
|
# pbpaste is the system clipboard tool on macOS and fails with `tmux` by default
|
||||||
|
@ -24,8 +24,8 @@ module Homebrew
|
|||||||
def postgresql_upgrade_database
|
def postgresql_upgrade_database
|
||||||
postgresql_upgrade_database_args.parse
|
postgresql_upgrade_database_args.parse
|
||||||
|
|
||||||
odeprecated "brew postgresql_upgrade_database",
|
odisabled "brew postgresql_upgrade_database",
|
||||||
"using new, versioned e.g. `var/postgres@14` datadir and `pg_upgrade`"
|
"using new, versioned e.g. `var/postgres@14` datadir and `pg_upgrade`"
|
||||||
|
|
||||||
name = "postgresql"
|
name = "postgresql"
|
||||||
pg = Formula[name]
|
pg = Formula[name]
|
||||||
|
@ -49,17 +49,15 @@ module Homebrew
|
|||||||
"for Homebrew. This should be used when creating new formulae or casks and implies " \
|
"for Homebrew. This should be used when creating new formulae or casks and implies " \
|
||||||
"`--strict` and `--online`."
|
"`--strict` and `--online`."
|
||||||
switch "--new-formula",
|
switch "--new-formula",
|
||||||
# odeprecated: uncomment `replacement` to enable the `odeprecated` handling in `CLI::Parser`
|
replacement: "--new",
|
||||||
# replacement: "--new",
|
# odeprecated: change this to true on disable and remove `args.new_formula?` calls
|
||||||
# odeprecated: remove `args.new_formula?` calls once this is `true`
|
disable: false,
|
||||||
disable: false,
|
hidden: true
|
||||||
hidden: true
|
|
||||||
switch "--new-cask",
|
switch "--new-cask",
|
||||||
# odeprecated: uncomment `replacement` to enable the `odeprecated` handling in `CLI::Parser`
|
replacement: "--new",
|
||||||
# replacement: "--new",
|
# odeprecated: change this to true on disable and remove `args.new_formula?` calls
|
||||||
# odeprecated: remove `args.new_cask?` calls once this is `true`
|
disable: false,
|
||||||
disable: false,
|
hidden: true
|
||||||
hidden: true
|
|
||||||
switch "--[no-]signing",
|
switch "--[no-]signing",
|
||||||
description: "Audit for signed apps, which are required on ARM"
|
description: "Audit for signed apps, which are required on ARM"
|
||||||
switch "--token-conflicts",
|
switch "--token-conflicts",
|
||||||
@ -74,9 +72,6 @@ module Homebrew
|
|||||||
switch "--display-filename",
|
switch "--display-filename",
|
||||||
description: "Prefix every line of output with the file or formula name being audited, to " \
|
description: "Prefix every line of output with the file or formula name being audited, to " \
|
||||||
"make output easy to grep."
|
"make output easy to grep."
|
||||||
switch "--display-failures-only",
|
|
||||||
description: "Only display casks that fail the audit. This is the default for formulae and casks.",
|
|
||||||
hidden: true
|
|
||||||
switch "--skip-style",
|
switch "--skip-style",
|
||||||
description: "Skip running non-RuboCop style checks. Useful if you plan on running " \
|
description: "Skip running non-RuboCop style checks. Useful if you plan on running " \
|
||||||
"`brew style` separately. Enabled by default unless a formula is specified by name."
|
"`brew style` separately. Enabled by default unless a formula is specified by name."
|
||||||
@ -153,6 +148,8 @@ module Homebrew
|
|||||||
[Formula.all(eval_all: args.eval_all?), Cask::Cask.all]
|
[Formula.all(eval_all: args.eval_all?), Cask::Cask.all]
|
||||||
else
|
else
|
||||||
if args.named.any? { |named_arg| named_arg.end_with?(".rb") }
|
if args.named.any? { |named_arg| named_arg.end_with?(".rb") }
|
||||||
|
# This odisabled should probably stick around indefinitely,
|
||||||
|
# until at least we have a way to exclude error on these in the CLI parser.
|
||||||
odisabled "brew audit [path ...]",
|
odisabled "brew audit [path ...]",
|
||||||
"brew audit [name ...]"
|
"brew audit [name ...]"
|
||||||
end
|
end
|
||||||
@ -247,13 +244,7 @@ module Homebrew
|
|||||||
problems[[f.full_name, path]] = errors if errors.any?
|
problems[[f.full_name, path]] = errors if errors.any?
|
||||||
end
|
end
|
||||||
|
|
||||||
if audit_casks.any?
|
require "cask/auditor" if audit_casks.any?
|
||||||
require "cask/auditor"
|
|
||||||
|
|
||||||
if args.display_failures_only?
|
|
||||||
odisabled "`brew audit <cask> --display-failures-only`", "`brew audit <cask>` without the argument"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
cask_problems = audit_casks.each_with_object({}) do |cask, problems|
|
cask_problems = audit_casks.each_with_object({}) do |cask, problems|
|
||||||
path = cask.sourcefile_path
|
path = cask.sourcefile_path
|
||||||
|
@ -67,7 +67,8 @@ module Homebrew
|
|||||||
def bump_cask_pr
|
def bump_cask_pr
|
||||||
args = bump_cask_pr_args.parse
|
args = bump_cask_pr_args.parse
|
||||||
|
|
||||||
# odeprecated "brew bump-cask-pr --online" if args.online?
|
odeprecated "brew bump-cask-pr --online" if args.online?
|
||||||
|
|
||||||
# This will be run by `brew audit` or `brew style` later so run it first to
|
# This will be run by `brew audit` or `brew style` later so run it first to
|
||||||
# not start spamming during normal output.
|
# not start spamming during normal output.
|
||||||
gem_groups = []
|
gem_groups = []
|
||||||
|
@ -54,7 +54,7 @@ module Homebrew
|
|||||||
unless File.exist?(watchlist)
|
unless File.exist?(watchlist)
|
||||||
previous_default_watchlist = File.expand_path("~/.brew_livecheck_watchlist")
|
previous_default_watchlist = File.expand_path("~/.brew_livecheck_watchlist")
|
||||||
if File.exist?(previous_default_watchlist)
|
if File.exist?(previous_default_watchlist)
|
||||||
odeprecated "~/.brew_livecheck_watchlist", "~/.homebrew/livecheck_watchlist.txt"
|
odisabled "~/.brew_livecheck_watchlist", "~/.homebrew/livecheck_watchlist.txt"
|
||||||
watchlist = previous_default_watchlist
|
watchlist = previous_default_watchlist
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -32,7 +32,9 @@ module Homebrew
|
|||||||
"in the pull request to the preferred format."
|
"in the pull request to the preferred format."
|
||||||
switch "--no-autosquash",
|
switch "--no-autosquash",
|
||||||
description: "Instruct `brew pr-publish` to skip automatically reformatting and rewording commits " \
|
description: "Instruct `brew pr-publish` to skip automatically reformatting and rewording commits " \
|
||||||
"in the pull request to the preferred format."
|
"in the pull request to the preferred format.",
|
||||||
|
disable: true, # odisabled: remove this switch with 4.3.0
|
||||||
|
hidden: true
|
||||||
switch "--ignore-failures",
|
switch "--ignore-failures",
|
||||||
description: "Include pull requests that have failing status checks."
|
description: "Include pull requests that have failing status checks."
|
||||||
|
|
||||||
@ -43,8 +45,6 @@ module Homebrew
|
|||||||
def pr_automerge
|
def pr_automerge
|
||||||
args = pr_automerge_args.parse
|
args = pr_automerge_args.parse
|
||||||
|
|
||||||
odeprecated "`brew pr-publish --no-autosquash`" if args.no_autosquash?
|
|
||||||
|
|
||||||
without_labels = args.without_labels || [
|
without_labels = args.without_labels || [
|
||||||
"do not merge",
|
"do not merge",
|
||||||
"new formula",
|
"new formula",
|
||||||
|
@ -17,9 +17,6 @@ module Homebrew
|
|||||||
switch "--autosquash",
|
switch "--autosquash",
|
||||||
description: "If supported on the target tap, automatically reformat and reword commits " \
|
description: "If supported on the target tap, automatically reformat and reword commits " \
|
||||||
"to our preferred format."
|
"to our preferred format."
|
||||||
switch "--no-autosquash",
|
|
||||||
description: "Skip automatically reformatting and rewording commits in the pull request " \
|
|
||||||
"to the preferred format, even if supported on the target tap."
|
|
||||||
switch "--large-runner",
|
switch "--large-runner",
|
||||||
description: "Run the upload job on a large runner."
|
description: "Run the upload job on a large runner."
|
||||||
flag "--branch=",
|
flag "--branch=",
|
||||||
@ -39,8 +36,6 @@ module Homebrew
|
|||||||
def pr_publish
|
def pr_publish
|
||||||
args = pr_publish_args.parse
|
args = pr_publish_args.parse
|
||||||
|
|
||||||
odisabled "`brew pr-publish --no-autosquash`" if args.no_autosquash?
|
|
||||||
|
|
||||||
tap = Tap.fetch(args.tap || CoreTap.instance.name)
|
tap = Tap.fetch(args.tap || CoreTap.instance.name)
|
||||||
workflow = args.workflow || "publish-commit-bottles.yml"
|
workflow = args.workflow || "publish-commit-bottles.yml"
|
||||||
ref = args.branch || "master"
|
ref = args.branch || "master"
|
||||||
|
@ -34,7 +34,9 @@ module Homebrew
|
|||||||
"preferred format."
|
"preferred format."
|
||||||
switch "--no-autosquash",
|
switch "--no-autosquash",
|
||||||
description: "Skip automatically reformatting and rewording commits in the pull request to our " \
|
description: "Skip automatically reformatting and rewording commits in the pull request to our " \
|
||||||
"preferred format."
|
"preferred format.",
|
||||||
|
disable: true, # odisabled: remove this switch with 4.3.0
|
||||||
|
hidden: true
|
||||||
switch "--branch-okay",
|
switch "--branch-okay",
|
||||||
description: "Do not warn if pulling to a branch besides the repository default (useful for testing)."
|
description: "Do not warn if pulling to a branch besides the repository default (useful for testing)."
|
||||||
switch "--resolve",
|
switch "--resolve",
|
||||||
@ -406,8 +408,6 @@ module Homebrew
|
|||||||
def self.pr_pull
|
def self.pr_pull
|
||||||
args = pr_pull_args.parse
|
args = pr_pull_args.parse
|
||||||
|
|
||||||
odeprecated "`brew pr-pull --no-autosquash`" if args.no_autosquash?
|
|
||||||
|
|
||||||
# Needed when extracting the CI artifact.
|
# Needed when extracting the CI artifact.
|
||||||
ensure_executable!("unzip", reason: "extracting CI artifacts")
|
ensure_executable!("unzip", reason: "extracting CI artifacts")
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ class AbstractDownloadStrategy
|
|||||||
# @api private
|
# @api private
|
||||||
sig { void }
|
sig { void }
|
||||||
def shutup!
|
def shutup!
|
||||||
# odeprecated "AbstractDownloadStrategy#shutup!", "AbstractDownloadStrategy#quiet!"
|
odeprecated "AbstractDownloadStrategy#shutup!", "AbstractDownloadStrategy#quiet!"
|
||||||
quiet!
|
quiet!
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -317,12 +317,6 @@ module Kernel
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# GZips the given paths, and returns the gzipped paths.
|
|
||||||
def gzip(*paths)
|
|
||||||
odisabled "Utils.gzip", "Utils::Gzip.compress"
|
|
||||||
Utils::Gzip.compress(*paths)
|
|
||||||
end
|
|
||||||
|
|
||||||
def ignore_interrupts(_opt = nil)
|
def ignore_interrupts(_opt = nil)
|
||||||
# rubocop:disable Style/GlobalVars
|
# rubocop:disable Style/GlobalVars
|
||||||
$ignore_interrupts_nesting_level = 0 unless defined?($ignore_interrupts_nesting_level)
|
$ignore_interrupts_nesting_level = 0 unless defined?($ignore_interrupts_nesting_level)
|
||||||
@ -502,18 +496,6 @@ module Kernel
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
sig { returns(String) }
|
|
||||||
def preferred_shell
|
|
||||||
odisabled "preferred_shell"
|
|
||||||
Utils::Shell.preferred_path(default: "/bin/sh")
|
|
||||||
end
|
|
||||||
|
|
||||||
sig { returns(String) }
|
|
||||||
def shell_profile
|
|
||||||
odisabled "shell_profile"
|
|
||||||
Utils::Shell.profile
|
|
||||||
end
|
|
||||||
|
|
||||||
def tap_and_name_comparison
|
def tap_and_name_comparison
|
||||||
proc do |a, b|
|
proc do |a, b|
|
||||||
if a.include?("/") && b.exclude?("/")
|
if a.include?("/") && b.exclude?("/")
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
class Tap
|
class Tap
|
||||||
def self.install_default_cask_tap_if_necessary(force: false)
|
def self.install_default_cask_tap_if_necessary(force: false)
|
||||||
odeprecated "Tap.install_default_cask_tap_if_necessary", "CoreCaskTap.ensure_installed!"
|
odisabled "Tap.install_default_cask_tap_if_necessary", "CoreCaskTap.ensure_installed!"
|
||||||
|
|
||||||
cask_tap = CoreCaskTap.instance
|
cask_tap = CoreCaskTap.instance
|
||||||
return false if cask_tap.installed?
|
return false if cask_tap.installed?
|
||||||
|
@ -530,7 +530,7 @@ class Formula
|
|||||||
# @deprecated Use {#oldnames} instead.
|
# @deprecated Use {#oldnames} instead.
|
||||||
sig { returns(T.nilable(String)) }
|
sig { returns(T.nilable(String)) }
|
||||||
def oldname
|
def oldname
|
||||||
odeprecated "Formula#oldname", "Formula#oldnames"
|
odisabled "Formula#oldname", "Formula#oldnames"
|
||||||
@oldname ||= oldnames.first
|
@oldname ||= oldnames.first
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -567,9 +567,11 @@ class Formula
|
|||||||
delegate declared_deps: :active_spec
|
delegate declared_deps: :active_spec
|
||||||
|
|
||||||
# Dependencies provided by macOS for the currently active {SoftwareSpec}.
|
# Dependencies provided by macOS for the currently active {SoftwareSpec}.
|
||||||
|
# @deprecated
|
||||||
delegate uses_from_macos_elements: :active_spec
|
delegate uses_from_macos_elements: :active_spec
|
||||||
|
|
||||||
# Dependency names provided by macOS for the currently active {SoftwareSpec}.
|
# Dependency names provided by macOS for the currently active {SoftwareSpec}.
|
||||||
|
# @deprecated
|
||||||
delegate uses_from_macos_names: :active_spec
|
delegate uses_from_macos_names: :active_spec
|
||||||
|
|
||||||
# The {Requirement}s for the currently active {SoftwareSpec}.
|
# The {Requirement}s for the currently active {SoftwareSpec}.
|
||||||
@ -1084,6 +1086,7 @@ class Formula
|
|||||||
#
|
#
|
||||||
# @deprecated Please use {Homebrew::Service} instead.
|
# @deprecated Please use {Homebrew::Service} instead.
|
||||||
def plist
|
def plist
|
||||||
|
# odeprecated: consider removing entirely in 4.3.0
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1099,13 +1102,6 @@ class Formula
|
|||||||
service.service_name
|
service.service_name
|
||||||
end
|
end
|
||||||
|
|
||||||
# The generated launchd {.plist} file path.
|
|
||||||
sig { returns(Pathname) }
|
|
||||||
def plist_path
|
|
||||||
odisabled "formula.plist_path", "formula.launchd_service_path"
|
|
||||||
launchd_service_path
|
|
||||||
end
|
|
||||||
|
|
||||||
# The generated launchd {.service} file path.
|
# The generated launchd {.service} file path.
|
||||||
sig { returns(Pathname) }
|
sig { returns(Pathname) }
|
||||||
def launchd_service_path
|
def launchd_service_path
|
||||||
@ -1129,12 +1125,6 @@ class Formula
|
|||||||
@service ||= Homebrew::Service.new(self, &self.class.service)
|
@service ||= Homebrew::Service.new(self, &self.class.service)
|
||||||
end
|
end
|
||||||
|
|
||||||
# @private
|
|
||||||
delegate plist_manual: :"self.class"
|
|
||||||
|
|
||||||
# @private
|
|
||||||
delegate plist_startup: :"self.class"
|
|
||||||
|
|
||||||
# A stable path for this formula, when installed. Contains the formula name
|
# A stable path for this formula, when installed. Contains the formula name
|
||||||
# but no version number. Only the active version will be linked here if
|
# but no version number. Only the active version will be linked here if
|
||||||
# multiple versions are installed.
|
# multiple versions are installed.
|
||||||
@ -1933,7 +1923,9 @@ class Formula
|
|||||||
# this should only be used when users specify `--all` to a command
|
# this should only be used when users specify `--all` to a command
|
||||||
# @private
|
# @private
|
||||||
def self.all(eval_all: false)
|
def self.all(eval_all: false)
|
||||||
odisabled "Formula#all without --eval-all or HOMEBREW_EVAL_ALL" if !eval_all && !Homebrew::EnvConfig.eval_all?
|
if !eval_all && !Homebrew::EnvConfig.eval_all?
|
||||||
|
raise ArgumentError, "Formula#all without --eval-all or HOMEBREW_EVAL_ALL"
|
||||||
|
end
|
||||||
|
|
||||||
(core_names + tap_files).map do |name_or_file|
|
(core_names + tap_files).map do |name_or_file|
|
||||||
Formulary.factory(name_or_file)
|
Formulary.factory(name_or_file)
|
||||||
@ -2928,7 +2920,6 @@ class Formula
|
|||||||
@conflicts = []
|
@conflicts = []
|
||||||
@skip_clean_paths = Set.new
|
@skip_clean_paths = Set.new
|
||||||
@link_overwrite_paths = Set.new
|
@link_overwrite_paths = Set.new
|
||||||
@allowed_missing_libraries = Set.new
|
|
||||||
@loaded_from_api = false
|
@loaded_from_api = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -2950,7 +2941,6 @@ class Formula
|
|||||||
@conflicts.freeze
|
@conflicts.freeze
|
||||||
@skip_clean_paths.freeze
|
@skip_clean_paths.freeze
|
||||||
@link_overwrite_paths.freeze
|
@link_overwrite_paths.freeze
|
||||||
@allowed_missing_libraries.freeze
|
|
||||||
super
|
super
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -3032,14 +3022,6 @@ class Formula
|
|||||||
@service_block.present?
|
@service_block.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
# The `:startup` attribute set by {.plist_options}.
|
|
||||||
# @private
|
|
||||||
attr_reader :plist_startup
|
|
||||||
|
|
||||||
# The `:manual` attribute set by {.plist_options}.
|
|
||||||
# @private
|
|
||||||
attr_reader :plist_manual
|
|
||||||
|
|
||||||
# @private
|
# @private
|
||||||
attr_reader :conflicts
|
attr_reader :conflicts
|
||||||
|
|
||||||
@ -3049,9 +3031,6 @@ class Formula
|
|||||||
# @private
|
# @private
|
||||||
attr_reader :link_overwrite_paths
|
attr_reader :link_overwrite_paths
|
||||||
|
|
||||||
# @private
|
|
||||||
attr_reader :allowed_missing_libraries
|
|
||||||
|
|
||||||
# If `pour_bottle?` returns `false` the user-visible reason to display for
|
# If `pour_bottle?` returns `false` the user-visible reason to display for
|
||||||
# why they cannot use the bottle.
|
# why they cannot use the bottle.
|
||||||
# @private
|
# @private
|
||||||
@ -3360,24 +3339,6 @@ class Formula
|
|||||||
specs.each { |spec| spec.patch(strip, src, &block) }
|
specs.each { |spec| spec.patch(strip, src, &block) }
|
||||||
end
|
end
|
||||||
|
|
||||||
# Defines launchd plist handling.
|
|
||||||
#
|
|
||||||
# Does your plist need to be loaded at startup?
|
|
||||||
# <pre>plist_options startup: true</pre>
|
|
||||||
#
|
|
||||||
# Or only when necessary or desired by the user?
|
|
||||||
# <pre>plist_options manual: "foo"</pre>
|
|
||||||
#
|
|
||||||
# Or perhaps you'd like to give the user a choice? Ooh fancy.
|
|
||||||
# <pre>plist_options startup: true, manual: "foo start"</pre>
|
|
||||||
#
|
|
||||||
# @deprecated Please use {Homebrew::Service.require_root} instead.
|
|
||||||
def plist_options(options)
|
|
||||||
odisabled "plist_options", "service.require_root"
|
|
||||||
@plist_startup = options[:startup]
|
|
||||||
@plist_manual = options[:manual]
|
|
||||||
end
|
|
||||||
|
|
||||||
# One or more formulae that conflict with this one and why.
|
# One or more formulae that conflict with this one and why.
|
||||||
# <pre>conflicts_with "imagemagick", because: "both install `convert` binaries"</pre>
|
# <pre>conflicts_with "imagemagick", because: "both install `convert` binaries"</pre>
|
||||||
def conflicts_with(*names)
|
def conflicts_with(*names)
|
||||||
@ -3661,21 +3622,6 @@ class Formula
|
|||||||
paths.flatten!
|
paths.flatten!
|
||||||
link_overwrite_paths.merge(paths)
|
link_overwrite_paths.merge(paths)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Permit links to certain libraries that don't exist. Available on Linux only.
|
|
||||||
def ignore_missing_libraries(*libs)
|
|
||||||
odisabled "ignore_missing_libraries"
|
|
||||||
unless Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
|
||||||
raise FormulaSpecificationError, "#{__method__} is available on Linux only"
|
|
||||||
end
|
|
||||||
|
|
||||||
libraries = libs.flatten
|
|
||||||
if libraries.any? { |x| !x.is_a?(String) && !x.is_a?(Regexp) }
|
|
||||||
raise FormulaSpecificationError, "#{__method__} can handle Strings and Regular Expressions only"
|
|
||||||
end
|
|
||||||
|
|
||||||
allowed_missing_libraries.merge(libraries)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -124,8 +124,8 @@ class GitHubPackages
|
|||||||
def self.image_version_rebuild(version_rebuild)
|
def self.image_version_rebuild(version_rebuild)
|
||||||
return version_rebuild if version_rebuild.match?(VALID_OCI_TAG_REGEX)
|
return version_rebuild if version_rebuild.match?(VALID_OCI_TAG_REGEX)
|
||||||
|
|
||||||
# odeprecated "GitHub Packages versions that do not match #{VALID_OCI_TAG_REGEX.source}",
|
odeprecated "GitHub Packages versions that do not match #{VALID_OCI_TAG_REGEX.source}",
|
||||||
# "declaring a new `version` without these characters"
|
"declaring a new `version` without these characters"
|
||||||
version_rebuild.gsub(INVALID_OCI_TAG_CHARS_REGEX, ".")
|
version_rebuild.gsub(INVALID_OCI_TAG_CHARS_REGEX, ".")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -143,7 +143,15 @@ module Language
|
|||||||
# @return [Virtualenv] a {Virtualenv} instance
|
# @return [Virtualenv] a {Virtualenv} instance
|
||||||
def virtualenv_create(venv_root, python = "python", formula = self, system_site_packages: true,
|
def virtualenv_create(venv_root, python = "python", formula = self, system_site_packages: true,
|
||||||
without_pip: true)
|
without_pip: true)
|
||||||
# odeprecated "Language::Python::Virtualenv.virtualenv_create's without_pip" unless without_pip
|
# Limit deprecation to 3.12+ for now (or if we can't determine the version).
|
||||||
|
# Some used this argument for setuptools, which we no longer bundle since 3.12.
|
||||||
|
unless without_pip
|
||||||
|
python_version = Language::Python.major_minor_version(python)
|
||||||
|
if python_version.nil? || python_version.null? || python_version >= "3.12"
|
||||||
|
raise ArgumentError, "virtualenv_create's without_pip is deprecated starting with Python 3.12"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
ENV.refurbish_args
|
ENV.refurbish_args
|
||||||
venv = Virtualenv.new formula, venv_root, python
|
venv = Virtualenv.new formula, venv_root, python
|
||||||
venv.create(system_site_packages: system_site_packages, without_pip: without_pip)
|
venv.create(system_site_packages: system_site_packages, without_pip: without_pip)
|
||||||
|
@ -19,8 +19,6 @@ class LinkageChecker
|
|||||||
|
|
||||||
@system_dylibs = Set.new
|
@system_dylibs = Set.new
|
||||||
@broken_dylibs = Set.new
|
@broken_dylibs = Set.new
|
||||||
@unexpected_broken_dylibs = nil
|
|
||||||
@unexpected_present_dylibs = nil
|
|
||||||
@variable_dylibs = Set.new
|
@variable_dylibs = Set.new
|
||||||
@brewed_dylibs = Hash.new { |h, k| h[k] = Set.new }
|
@brewed_dylibs = Hash.new { |h, k| h[k] = Set.new }
|
||||||
@reverse_links = Hash.new { |h, k| h[k] = Set.new }
|
@reverse_links = Hash.new { |h, k| h[k] = Set.new }
|
||||||
@ -65,8 +63,7 @@ class LinkageChecker
|
|||||||
end
|
end
|
||||||
|
|
||||||
def display_test_output(puts_output: true, strict: false)
|
def display_test_output(puts_output: true, strict: false)
|
||||||
display_items "Missing libraries", broken_dylibs_with_expectations, puts_output: puts_output
|
display_items "Missing libraries", @broken_dylibs, puts_output: puts_output
|
||||||
display_items "Unused missing linkage information", unexpected_present_dylibs, puts_output: puts_output
|
|
||||||
display_items "Broken dependencies", @broken_deps, puts_output: puts_output
|
display_items "Broken dependencies", @broken_deps, puts_output: puts_output
|
||||||
display_items "Unwanted system libraries", @unwanted_system_dylibs, puts_output: puts_output
|
display_items "Unwanted system libraries", @unwanted_system_dylibs, puts_output: puts_output
|
||||||
display_items "Conflicting libraries", @version_conflict_deps, puts_output: puts_output
|
display_items "Conflicting libraries", @version_conflict_deps, puts_output: puts_output
|
||||||
@ -81,54 +78,14 @@ class LinkageChecker
|
|||||||
def broken_library_linkage?(test: false, strict: false)
|
def broken_library_linkage?(test: false, strict: false)
|
||||||
raise ArgumentError, "Strict linkage checking requires test mode to be enabled." if strict && !test
|
raise ArgumentError, "Strict linkage checking requires test mode to be enabled." if strict && !test
|
||||||
|
|
||||||
issues = [@broken_deps, unexpected_broken_dylibs]
|
issues = [@broken_deps, @broken_dylibs]
|
||||||
if test
|
if test
|
||||||
issues += [@unwanted_system_dylibs, @version_conflict_deps, unexpected_present_dylibs]
|
issues += [@unwanted_system_dylibs, @version_conflict_deps]
|
||||||
issues += [@undeclared_deps, @files_missing_rpaths, @executable_path_dylibs] if strict
|
issues += [@undeclared_deps, @files_missing_rpaths, @executable_path_dylibs] if strict
|
||||||
end
|
end
|
||||||
issues.any?(&:present?)
|
issues.any?(&:present?)
|
||||||
end
|
end
|
||||||
|
|
||||||
def unexpected_broken_dylibs
|
|
||||||
return @unexpected_broken_dylibs if @unexpected_broken_dylibs
|
|
||||||
|
|
||||||
@unexpected_broken_dylibs = @broken_dylibs.reject do |broken_lib|
|
|
||||||
@formula.class.allowed_missing_libraries.any? do |allowed_missing_lib|
|
|
||||||
case allowed_missing_lib
|
|
||||||
when Regexp
|
|
||||||
allowed_missing_lib.match? broken_lib
|
|
||||||
when String
|
|
||||||
broken_lib.include? allowed_missing_lib
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def unexpected_present_dylibs
|
|
||||||
@unexpected_present_dylibs ||= @formula.class.allowed_missing_libraries.reject do |allowed_missing_lib|
|
|
||||||
@broken_dylibs.any? do |broken_lib|
|
|
||||||
case allowed_missing_lib
|
|
||||||
when Regexp
|
|
||||||
allowed_missing_lib.match? broken_lib
|
|
||||||
when String
|
|
||||||
broken_lib.include? allowed_missing_lib
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def broken_dylibs_with_expectations
|
|
||||||
output = {}
|
|
||||||
@broken_dylibs.each do |broken_lib|
|
|
||||||
output[broken_lib] = if unexpected_broken_dylibs.include? broken_lib
|
|
||||||
["unexpected"]
|
|
||||||
else
|
|
||||||
["expected"]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
output
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def dylib_to_dep(dylib)
|
def dylib_to_dep(dylib)
|
||||||
|
@ -255,7 +255,7 @@ module Homebrew
|
|||||||
next
|
next
|
||||||
end
|
end
|
||||||
|
|
||||||
formula&.head&.downloader&.shutup!
|
formula&.head&.downloader&.quiet!
|
||||||
|
|
||||||
# Use the `stable` version for comparison except for installed
|
# Use the `stable` version for comparison except for installed
|
||||||
# head-only formulae. A formula with `stable` and `head` that's
|
# head-only formulae. A formula with `stable` and `head` that's
|
||||||
|
@ -143,7 +143,7 @@ require "lazy_object"
|
|||||||
module MacOSVersionErrorCompat
|
module MacOSVersionErrorCompat
|
||||||
def const_missing(name)
|
def const_missing(name)
|
||||||
if name == :MacOSVersionError
|
if name == :MacOSVersionError
|
||||||
odeprecated "MacOSVersionError", "MacOSVersion::Error"
|
odisabled "MacOSVersionError", "MacOSVersion::Error"
|
||||||
return MacOSVersion::Error
|
return MacOSVersion::Error
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -160,7 +160,7 @@ end
|
|||||||
|
|
||||||
module MacOSVersions
|
module MacOSVersions
|
||||||
SYMBOLS = LazyObject.new do # rubocop:disable Style/MutableConstant
|
SYMBOLS = LazyObject.new do # rubocop:disable Style/MutableConstant
|
||||||
odeprecated "MacOSVersions::SYMBOLS", "MacOSVersion::SYMBOLS"
|
odisabled "MacOSVersions::SYMBOLS", "MacOSVersion::SYMBOLS"
|
||||||
MacOSVersion::SYMBOLS
|
MacOSVersion::SYMBOLS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -169,7 +169,7 @@ module OS
|
|||||||
module Mac
|
module Mac
|
||||||
# TODO: Replace `::Version` with `Version` when this is removed.
|
# TODO: Replace `::Version` with `Version` when this is removed.
|
||||||
Version = LazyObject.new do # rubocop:disable Style/MutableConstant
|
Version = LazyObject.new do # rubocop:disable Style/MutableConstant
|
||||||
odeprecated "OS::Mac::Version", "MacOSVersion"
|
odisabled "OS::Mac::Version", "MacOSVersion"
|
||||||
MacOSVersion
|
MacOSVersion
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -55,60 +55,60 @@ module OS
|
|||||||
raise "Loaded OS::Linux on generic OS!" if ENV["HOMEBREW_TEST_GENERIC_OS"]
|
raise "Loaded OS::Linux on generic OS!" if ENV["HOMEBREW_TEST_GENERIC_OS"]
|
||||||
|
|
||||||
def self.version
|
def self.version
|
||||||
# odeprecated "`MacOS.version` on Linux"
|
odeprecated "`MacOS.version` on Linux"
|
||||||
MacOSVersion::NULL
|
MacOSVersion::NULL
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.full_version
|
def self.full_version
|
||||||
# odeprecated "`MacOS.full_version` on Linux"
|
odeprecated "`MacOS.full_version` on Linux"
|
||||||
MacOSVersion::NULL
|
MacOSVersion::NULL
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.languages
|
def self.languages
|
||||||
# odeprecated "`MacOS.languages` on Linux"
|
odeprecated "`MacOS.languages` on Linux"
|
||||||
@languages ||= Array(ENV["LANG"]&.slice(/[a-z]+/)).uniq
|
@languages ||= Array(ENV["LANG"]&.slice(/[a-z]+/)).uniq
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.language
|
def self.language
|
||||||
# odeprecated "`MacOS.language` on Linux"
|
odeprecated "`MacOS.language` on Linux"
|
||||||
languages.first
|
languages.first
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.sdk_root_needed?
|
def self.sdk_root_needed?
|
||||||
# odeprecated "`MacOS.sdk_root_needed?` on Linux"
|
odeprecated "`MacOS.sdk_root_needed?` on Linux"
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.sdk_path_if_needed(_version = nil)
|
def self.sdk_path_if_needed(_version = nil)
|
||||||
# odeprecated "`MacOS.sdk_path_if_needed` on Linux"
|
odeprecated "`MacOS.sdk_path_if_needed` on Linux"
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.sdk_path(_version = nil)
|
def self.sdk_path(_version = nil)
|
||||||
# odeprecated "`MacOS.sdk_path` on Linux"
|
odeprecated "`MacOS.sdk_path` on Linux"
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
module Xcode
|
module Xcode
|
||||||
def self.version
|
def self.version
|
||||||
# odeprecated "`MacOS::Xcode.version` on Linux"
|
odeprecated "`MacOS::Xcode.version` on Linux"
|
||||||
::Version::NULL
|
::Version::NULL
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.installed?
|
def self.installed?
|
||||||
# odeprecated "`MacOS::Xcode.installed?` on Linux"
|
odeprecated "`MacOS::Xcode.installed?` on Linux"
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
module CLT
|
module CLT
|
||||||
def self.version
|
def self.version
|
||||||
# odeprecated "`MacOS::CLT.version` on Linux"
|
odeprecated "`MacOS::CLT.version` on Linux"
|
||||||
::Version::NULL
|
::Version::NULL
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.installed?
|
def self.installed?
|
||||||
# odeprecated "`MacOS::CLT.installed?` on Linux"
|
odeprecated "`MacOS::CLT.installed?` on Linux"
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -24,7 +24,7 @@ module OS
|
|||||||
# using the standard Ruby Comparable methods.
|
# using the standard Ruby Comparable methods.
|
||||||
sig { returns(MacOSVersion) }
|
sig { returns(MacOSVersion) }
|
||||||
def self.version
|
def self.version
|
||||||
# odeprecated "`MacOS.version` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
odeprecated "`MacOS.version` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
||||||
@version ||= full_version.strip_patch
|
@version ||= full_version.strip_patch
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ module OS
|
|||||||
# using the standard Ruby Comparable methods.
|
# using the standard Ruby Comparable methods.
|
||||||
sig { returns(MacOSVersion) }
|
sig { returns(MacOSVersion) }
|
||||||
def self.full_version
|
def self.full_version
|
||||||
# odeprecated "`MacOS.full_version` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
odeprecated "`MacOS.full_version` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
||||||
@full_version ||= if ENV["HOMEBREW_FAKE_EL_CAPITAN"] # for Portable Ruby building
|
@full_version ||= if ENV["HOMEBREW_FAKE_EL_CAPITAN"] # for Portable Ruby building
|
||||||
MacOSVersion.new("10.11.6")
|
MacOSVersion.new("10.11.6")
|
||||||
else
|
else
|
||||||
@ -65,7 +65,7 @@ module OS
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.languages
|
def self.languages
|
||||||
# odeprecated "`MacOS.languages` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
odeprecated "`MacOS.languages` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
||||||
return @languages if @languages
|
return @languages if @languages
|
||||||
|
|
||||||
os_langs = Utils.popen_read("defaults", "read", "-g", "AppleLanguages")
|
os_langs = Utils.popen_read("defaults", "read", "-g", "AppleLanguages")
|
||||||
@ -79,7 +79,7 @@ module OS
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.language
|
def self.language
|
||||||
# odeprecated "`MacOS.language` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
odeprecated "`MacOS.language` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
||||||
languages.first
|
languages.first
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ module OS
|
|||||||
|
|
||||||
sig { returns(T::Boolean) }
|
sig { returns(T::Boolean) }
|
||||||
def self.sdk_root_needed?
|
def self.sdk_root_needed?
|
||||||
# odeprecated "`MacOS.sdk_root_needed?` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
odeprecated "`MacOS.sdk_root_needed?` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
||||||
if MacOS::CLT.installed?
|
if MacOS::CLT.installed?
|
||||||
# If there's no CLT SDK, return false
|
# If there's no CLT SDK, return false
|
||||||
return false unless MacOS::CLT.provides_sdk?
|
return false unless MacOS::CLT.provides_sdk?
|
||||||
@ -139,13 +139,13 @@ module OS
|
|||||||
|
|
||||||
# Returns the path to an SDK or nil, following the rules set by {sdk}.
|
# Returns the path to an SDK or nil, following the rules set by {sdk}.
|
||||||
def self.sdk_path(version = nil)
|
def self.sdk_path(version = nil)
|
||||||
# odeprecated "`MacOS.sdk_path` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
odeprecated "`MacOS.sdk_path` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
||||||
s = sdk(version)
|
s = sdk(version)
|
||||||
s&.path
|
s&.path
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.sdk_path_if_needed(version = nil)
|
def self.sdk_path_if_needed(version = nil)
|
||||||
# odeprecated "`MacOS.sdk_path_if_needed` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
odeprecated "`MacOS.sdk_path_if_needed` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
||||||
# Prefer CLT SDK when both Xcode and the CLT are installed.
|
# Prefer CLT SDK when both Xcode and the CLT are installed.
|
||||||
# Expected results:
|
# Expected results:
|
||||||
# 1. On Xcode-only systems, return the Xcode SDK.
|
# 1. On Xcode-only systems, return the Xcode SDK.
|
||||||
|
@ -126,7 +126,7 @@ module OS
|
|||||||
|
|
||||||
sig { returns(T::Boolean) }
|
sig { returns(T::Boolean) }
|
||||||
def self.installed?
|
def self.installed?
|
||||||
# odeprecated "`MacOS::Xcode.installed?` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
odeprecated "`MacOS::Xcode.installed?` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
||||||
!prefix.nil?
|
!prefix.nil?
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -175,7 +175,7 @@ module OS
|
|||||||
|
|
||||||
sig { returns(::Version) }
|
sig { returns(::Version) }
|
||||||
def self.version
|
def self.version
|
||||||
# odeprecated "`MacOS::Xcode.version` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
odeprecated "`MacOS::Xcode.version` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
||||||
# may return a version string
|
# may return a version string
|
||||||
# that is guessed based on the compiler, so do not
|
# that is guessed based on the compiler, so do not
|
||||||
# use it in order to check if Xcode is installed.
|
# use it in order to check if Xcode is installed.
|
||||||
@ -266,7 +266,7 @@ module OS
|
|||||||
# Returns true even if outdated tools are installed.
|
# Returns true even if outdated tools are installed.
|
||||||
sig { returns(T::Boolean) }
|
sig { returns(T::Boolean) }
|
||||||
def self.installed?
|
def self.installed?
|
||||||
# odeprecated "`MacOS::CLT.installed?` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
odeprecated "`MacOS::CLT.installed?` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
||||||
!version.null?
|
!version.null?
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -400,7 +400,7 @@ module OS
|
|||||||
# version numbers.
|
# version numbers.
|
||||||
sig { returns(::Version) }
|
sig { returns(::Version) }
|
||||||
def self.version
|
def self.version
|
||||||
# odeprecated "`MacOS::CLT.version` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
odeprecated "`MacOS::CLT.version` on Linux" if Homebrew::SimulateSystem.simulating_or_running_on_linux?
|
||||||
if @version ||= detect_version
|
if @version ||= detect_version
|
||||||
::Version.new @version
|
::Version.new @version
|
||||||
else
|
else
|
||||||
|
@ -24,12 +24,11 @@ module RuboCop
|
|||||||
|
|
||||||
return if body_node.nil?
|
return if body_node.nil?
|
||||||
|
|
||||||
if !find_node_method_by_name(body_node, :plist_options) &&
|
if find_method_def(body_node, :plist)
|
||||||
find_method_def(body_node, :plist)
|
problem "`def plist` is deprecated. Please use services instead: https://docs.brew.sh/Formula-Cookbook#service-files"
|
||||||
problem "Please set plist_options when using a formula-defined plist."
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if (depends_on?("openssl") || depends_on?("openssl@1.1")) && depends_on?("libressl")
|
if (depends_on?("openssl") || depends_on?("openssl@3")) && depends_on?("libressl")
|
||||||
problem "Formulae should not depend on both OpenSSL and LibreSSL (even optionally)."
|
problem "Formulae should not depend on both OpenSSL and LibreSSL (even optionally)."
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -204,14 +204,16 @@ class SoftwareSpec
|
|||||||
|
|
||||||
# @deprecated
|
# @deprecated
|
||||||
def uses_from_macos_elements
|
def uses_from_macos_elements
|
||||||
# TODO: remove all @uses_from_macos_elements when disabling or removing this method
|
# TODO: remove all @uses_from_macos_elements when removing this method
|
||||||
odeprecated "#uses_from_macos_elements", "#declared_deps"
|
# Also remember to remove the delegate from formula.rb
|
||||||
|
odisabled "#uses_from_macos_elements", "#declared_deps"
|
||||||
@uses_from_macos_elements
|
@uses_from_macos_elements
|
||||||
end
|
end
|
||||||
|
|
||||||
# @deprecated
|
# @deprecated
|
||||||
def uses_from_macos_names
|
def uses_from_macos_names
|
||||||
odeprecated "#uses_from_macos_names", "#declared_deps"
|
# TODO: Remember to remove the delegate from formula.rb
|
||||||
|
odisabled "#uses_from_macos_names", "#declared_deps"
|
||||||
uses_from_macos_elements.flat_map { |e| e.is_a?(Hash) ? e.keys : e }
|
uses_from_macos_elements.flat_map { |e| e.is_a?(Hash) ? e.keys : e }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -67,14 +67,14 @@ class Tap
|
|||||||
|
|
||||||
sig { returns(CoreCaskTap) }
|
sig { returns(CoreCaskTap) }
|
||||||
def self.default_cask_tap
|
def self.default_cask_tap
|
||||||
odeprecated "Tap.default_cask_tap", "CoreCaskTap.instance"
|
odisabled "Tap.default_cask_tap", "CoreCaskTap.instance"
|
||||||
|
|
||||||
CoreCaskTap.instance
|
CoreCaskTap.instance
|
||||||
end
|
end
|
||||||
|
|
||||||
sig { params(force: T::Boolean).returns(T::Boolean) }
|
sig { params(force: T::Boolean).returns(T::Boolean) }
|
||||||
def self.install_default_cask_tap_if_necessary(force: false)
|
def self.install_default_cask_tap_if_necessary(force: false)
|
||||||
odeprecated "Tap.install_default_cask_tap_if_necessary", "CoreCaskTap.ensure_installed!"
|
odisabled "Tap.install_default_cask_tap_if_necessary", "CoreCaskTap.ensure_installed!"
|
||||||
|
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
@ -319,8 +319,7 @@ class Tap
|
|||||||
path.cd { safe_system "git", *args }
|
path.cd { safe_system "git", *args }
|
||||||
return
|
return
|
||||||
elsif (core_tap? || core_cask_tap?) && !Homebrew::EnvConfig.no_install_from_api? && !force
|
elsif (core_tap? || core_cask_tap?) && !Homebrew::EnvConfig.no_install_from_api? && !force
|
||||||
# odeprecated: move to odie in the next minor release. This may break some CI so we should give notice.
|
odie "Tapping #{name} is no longer typically necessary.\n" \
|
||||||
opoo "Tapping #{name} is no longer typically necessary.\n" \
|
|
||||||
"Add #{Formatter.option("--force")} if you are sure you need it done."
|
"Add #{Formatter.option("--force")} if you are sure you need it done."
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ describe RuboCop::Cop::FormulaAudit::Text do
|
|||||||
RUBY
|
RUBY
|
||||||
end
|
end
|
||||||
|
|
||||||
it "reports an offense if `plist_options` are not defined when using a formula-defined `plist`", :ruby23 do
|
it "reports an offense if `def plist` is used" do
|
||||||
expect_offense(<<~RUBY)
|
expect_offense(<<~RUBY)
|
||||||
class Foo < Formula
|
class Foo < Formula
|
||||||
url "https://brew.sh/foo-1.0.tgz"
|
url "https://brew.sh/foo-1.0.tgz"
|
||||||
@ -121,7 +121,7 @@ describe RuboCop::Cop::FormulaAudit::Text do
|
|||||||
end
|
end
|
||||||
|
|
||||||
def plist
|
def plist
|
||||||
^^^^^^^^^ FormulaAudit/Text: Please set plist_options when using a formula-defined plist.
|
^^^^^^^^^ FormulaAudit/Text: `def plist` is deprecated. Please use services instead: https://docs.brew.sh/Formula-Cookbook#service-files
|
||||||
<<~XML
|
<<~XML
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
@ -341,7 +341,7 @@ class Version
|
|||||||
|
|
||||||
sig { params(val: String).returns(Version) }
|
sig { params(val: String).returns(Version) }
|
||||||
def self.create(val)
|
def self.create(val)
|
||||||
odeprecated "Version.create", "Version.new"
|
odisabled "Version.create", "Version.new"
|
||||||
new(val)
|
new(val)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1714,7 +1714,6 @@ _brew_pr_automerge() {
|
|||||||
--debug
|
--debug
|
||||||
--help
|
--help
|
||||||
--ignore-failures
|
--ignore-failures
|
||||||
--no-autosquash
|
|
||||||
--publish
|
--publish
|
||||||
--quiet
|
--quiet
|
||||||
--tap
|
--tap
|
||||||
@ -1741,7 +1740,6 @@ _brew_pr_publish() {
|
|||||||
--help
|
--help
|
||||||
--large-runner
|
--large-runner
|
||||||
--message
|
--message
|
||||||
--no-autosquash
|
|
||||||
--quiet
|
--quiet
|
||||||
--tap
|
--tap
|
||||||
--verbose
|
--verbose
|
||||||
@ -1769,7 +1767,6 @@ _brew_pr_pull() {
|
|||||||
--ignore-missing-artifacts
|
--ignore-missing-artifacts
|
||||||
--keep-old
|
--keep-old
|
||||||
--message
|
--message
|
||||||
--no-autosquash
|
|
||||||
--no-cherry-pick
|
--no-cherry-pick
|
||||||
--no-commit
|
--no-commit
|
||||||
--no-upload
|
--no-upload
|
||||||
|
@ -1166,7 +1166,6 @@ __fish_brew_complete_arg 'pr-automerge' -l autosquash -d 'Instruct `brew pr-publ
|
|||||||
__fish_brew_complete_arg 'pr-automerge' -l debug -d 'Display any debugging information'
|
__fish_brew_complete_arg 'pr-automerge' -l debug -d 'Display any debugging information'
|
||||||
__fish_brew_complete_arg 'pr-automerge' -l help -d 'Show this message'
|
__fish_brew_complete_arg 'pr-automerge' -l help -d 'Show this message'
|
||||||
__fish_brew_complete_arg 'pr-automerge' -l ignore-failures -d 'Include pull requests that have failing status checks'
|
__fish_brew_complete_arg 'pr-automerge' -l ignore-failures -d 'Include pull requests that have failing status checks'
|
||||||
__fish_brew_complete_arg 'pr-automerge' -l no-autosquash -d 'Instruct `brew pr-publish` to skip automatically reformatting and rewording commits in the pull request to the preferred format'
|
|
||||||
__fish_brew_complete_arg 'pr-automerge' -l publish -d 'Run `brew pr-publish` on matching pull requests'
|
__fish_brew_complete_arg 'pr-automerge' -l publish -d 'Run `brew pr-publish` on matching pull requests'
|
||||||
__fish_brew_complete_arg 'pr-automerge' -l quiet -d 'Make some output more quiet'
|
__fish_brew_complete_arg 'pr-automerge' -l quiet -d 'Make some output more quiet'
|
||||||
__fish_brew_complete_arg 'pr-automerge' -l tap -d 'Target tap repository (default: `homebrew/core`)'
|
__fish_brew_complete_arg 'pr-automerge' -l tap -d 'Target tap repository (default: `homebrew/core`)'
|
||||||
@ -1184,7 +1183,6 @@ __fish_brew_complete_arg 'pr-publish' -l debug -d 'Display any debugging informa
|
|||||||
__fish_brew_complete_arg 'pr-publish' -l help -d 'Show this message'
|
__fish_brew_complete_arg 'pr-publish' -l help -d 'Show this message'
|
||||||
__fish_brew_complete_arg 'pr-publish' -l large-runner -d 'Run the upload job on a large runner'
|
__fish_brew_complete_arg 'pr-publish' -l large-runner -d 'Run the upload job on a large runner'
|
||||||
__fish_brew_complete_arg 'pr-publish' -l message -d 'Message to include when autosquashing revision bumps, deletions, and rebuilds'
|
__fish_brew_complete_arg 'pr-publish' -l message -d 'Message to include when autosquashing revision bumps, deletions, and rebuilds'
|
||||||
__fish_brew_complete_arg 'pr-publish' -l no-autosquash -d 'Skip automatically reformatting and rewording commits in the pull request to the preferred format, even if supported on the target tap'
|
|
||||||
__fish_brew_complete_arg 'pr-publish' -l quiet -d 'Make some output more quiet'
|
__fish_brew_complete_arg 'pr-publish' -l quiet -d 'Make some output more quiet'
|
||||||
__fish_brew_complete_arg 'pr-publish' -l tap -d 'Target tap repository (default: `homebrew/core`)'
|
__fish_brew_complete_arg 'pr-publish' -l tap -d 'Target tap repository (default: `homebrew/core`)'
|
||||||
__fish_brew_complete_arg 'pr-publish' -l verbose -d 'Make some output more verbose'
|
__fish_brew_complete_arg 'pr-publish' -l verbose -d 'Make some output more verbose'
|
||||||
@ -1203,7 +1201,6 @@ __fish_brew_complete_arg 'pr-pull' -l help -d 'Show this message'
|
|||||||
__fish_brew_complete_arg 'pr-pull' -l ignore-missing-artifacts -d 'Comma-separated list of workflows which can be ignored if they have not been run'
|
__fish_brew_complete_arg 'pr-pull' -l ignore-missing-artifacts -d 'Comma-separated list of workflows which can be ignored if they have not been run'
|
||||||
__fish_brew_complete_arg 'pr-pull' -l keep-old -d 'If the formula specifies a rebuild version, attempt to preserve its value in the generated DSL'
|
__fish_brew_complete_arg 'pr-pull' -l keep-old -d 'If the formula specifies a rebuild version, attempt to preserve its value in the generated DSL'
|
||||||
__fish_brew_complete_arg 'pr-pull' -l message -d 'Message to include when autosquashing revision bumps, deletions, and rebuilds'
|
__fish_brew_complete_arg 'pr-pull' -l message -d 'Message to include when autosquashing revision bumps, deletions, and rebuilds'
|
||||||
__fish_brew_complete_arg 'pr-pull' -l no-autosquash -d 'Skip automatically reformatting and rewording commits in the pull request to our preferred format'
|
|
||||||
__fish_brew_complete_arg 'pr-pull' -l no-cherry-pick -d 'Do not cherry-pick commits from the pull request branch'
|
__fish_brew_complete_arg 'pr-pull' -l no-cherry-pick -d 'Do not cherry-pick commits from the pull request branch'
|
||||||
__fish_brew_complete_arg 'pr-pull' -l no-commit -d 'Do not generate a new commit before uploading'
|
__fish_brew_complete_arg 'pr-pull' -l no-commit -d 'Do not generate a new commit before uploading'
|
||||||
__fish_brew_complete_arg 'pr-pull' -l no-upload -d 'Download the bottles but don\'t upload them'
|
__fish_brew_complete_arg 'pr-pull' -l no-upload -d 'Download the bottles but don\'t upload them'
|
||||||
|
@ -1449,7 +1449,6 @@ _brew_pr_automerge() {
|
|||||||
'--debug[Display any debugging information]' \
|
'--debug[Display any debugging information]' \
|
||||||
'--help[Show this message]' \
|
'--help[Show this message]' \
|
||||||
'--ignore-failures[Include pull requests that have failing status checks]' \
|
'--ignore-failures[Include pull requests that have failing status checks]' \
|
||||||
'--no-autosquash[Instruct `brew pr-publish` to skip automatically reformatting and rewording commits in the pull request to the preferred format]' \
|
|
||||||
'--publish[Run `brew pr-publish` on matching pull requests]' \
|
'--publish[Run `brew pr-publish` on matching pull requests]' \
|
||||||
'--quiet[Make some output more quiet]' \
|
'--quiet[Make some output more quiet]' \
|
||||||
'--tap[Target tap repository (default: `homebrew/core`)]' \
|
'--tap[Target tap repository (default: `homebrew/core`)]' \
|
||||||
@ -1469,7 +1468,6 @@ _brew_pr_publish() {
|
|||||||
'--help[Show this message]' \
|
'--help[Show this message]' \
|
||||||
'--large-runner[Run the upload job on a large runner]' \
|
'--large-runner[Run the upload job on a large runner]' \
|
||||||
'--message[Message to include when autosquashing revision bumps, deletions, and rebuilds]' \
|
'--message[Message to include when autosquashing revision bumps, deletions, and rebuilds]' \
|
||||||
'--no-autosquash[Skip automatically reformatting and rewording commits in the pull request to the preferred format, even if supported on the target tap]' \
|
|
||||||
'--quiet[Make some output more quiet]' \
|
'--quiet[Make some output more quiet]' \
|
||||||
'--tap[Target tap repository (default: `homebrew/core`)]' \
|
'--tap[Target tap repository (default: `homebrew/core`)]' \
|
||||||
'--verbose[Make some output more verbose]' \
|
'--verbose[Make some output more verbose]' \
|
||||||
@ -1490,7 +1488,6 @@ _brew_pr_pull() {
|
|||||||
'--ignore-missing-artifacts[Comma-separated list of workflows which can be ignored if they have not been run]' \
|
'--ignore-missing-artifacts[Comma-separated list of workflows which can be ignored if they have not been run]' \
|
||||||
'--keep-old[If the formula specifies a rebuild version, attempt to preserve its value in the generated DSL]' \
|
'--keep-old[If the formula specifies a rebuild version, attempt to preserve its value in the generated DSL]' \
|
||||||
'--message[Message to include when autosquashing revision bumps, deletions, and rebuilds]' \
|
'--message[Message to include when autosquashing revision bumps, deletions, and rebuilds]' \
|
||||||
'--no-autosquash[Skip automatically reformatting and rewording commits in the pull request to our preferred format]' \
|
|
||||||
'--no-cherry-pick[Do not cherry-pick commits from the pull request branch]' \
|
'--no-cherry-pick[Do not cherry-pick commits from the pull request branch]' \
|
||||||
'--no-commit[Do not generate a new commit before uploading]' \
|
'--no-commit[Do not generate a new commit before uploading]' \
|
||||||
'--no-upload[Download the bottles but don'\''t upload them]' \
|
'--no-upload[Download the bottles but don'\''t upload them]' \
|
||||||
|
@ -1384,8 +1384,6 @@ Find pull requests that can be automatically merged using `brew pr-publish`.
|
|||||||
Run `brew pr-publish` on matching pull requests.
|
Run `brew pr-publish` on matching pull requests.
|
||||||
* `--autosquash`:
|
* `--autosquash`:
|
||||||
Instruct `brew pr-publish` to automatically reformat and reword commits in the pull request to the preferred format.
|
Instruct `brew pr-publish` to automatically reformat and reword commits in the pull request to the preferred format.
|
||||||
* `--no-autosquash`:
|
|
||||||
Instruct `brew pr-publish` to skip automatically reformatting and rewording commits in the pull request to the preferred format.
|
|
||||||
* `--ignore-failures`:
|
* `--ignore-failures`:
|
||||||
Include pull requests that have failing status checks.
|
Include pull requests that have failing status checks.
|
||||||
|
|
||||||
@ -1396,8 +1394,6 @@ Requires write access to the repository.
|
|||||||
|
|
||||||
* `--autosquash`:
|
* `--autosquash`:
|
||||||
If supported on the target tap, automatically reformat and reword commits to our preferred format.
|
If supported on the target tap, automatically reformat and reword commits to our preferred format.
|
||||||
* `--no-autosquash`:
|
|
||||||
Skip automatically reformatting and rewording commits in the pull request to the preferred format, even if supported on the target tap.
|
|
||||||
* `--large-runner`:
|
* `--large-runner`:
|
||||||
Run the upload job on a large runner.
|
Run the upload job on a large runner.
|
||||||
* `--branch`:
|
* `--branch`:
|
||||||
@ -1429,8 +1425,6 @@ Requires write access to the repository.
|
|||||||
If the formula specifies a rebuild version, attempt to preserve its value in the generated DSL.
|
If the formula specifies a rebuild version, attempt to preserve its value in the generated DSL.
|
||||||
* `--autosquash`:
|
* `--autosquash`:
|
||||||
Automatically reformat and reword commits in the pull request to our preferred format.
|
Automatically reformat and reword commits in the pull request to our preferred format.
|
||||||
* `--no-autosquash`:
|
|
||||||
Skip automatically reformatting and rewording commits in the pull request to our preferred format.
|
|
||||||
* `--branch-okay`:
|
* `--branch-okay`:
|
||||||
Do not warn if pulling to a branch besides the repository default (useful for testing).
|
Do not warn if pulling to a branch besides the repository default (useful for testing).
|
||||||
* `--resolve`:
|
* `--resolve`:
|
||||||
|
@ -1981,10 +1981,6 @@ Run \fBbrew pr\-publish\fR on matching pull requests\.
|
|||||||
Instruct \fBbrew pr\-publish\fR to automatically reformat and reword commits in the pull request to the preferred format\.
|
Instruct \fBbrew pr\-publish\fR to automatically reformat and reword commits in the pull request to the preferred format\.
|
||||||
.
|
.
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-no\-autosquash\fR
|
|
||||||
Instruct \fBbrew pr\-publish\fR to skip automatically reformatting and rewording commits in the pull request to the preferred format\.
|
|
||||||
.
|
|
||||||
.TP
|
|
||||||
\fB\-\-ignore\-failures\fR
|
\fB\-\-ignore\-failures\fR
|
||||||
Include pull requests that have failing status checks\.
|
Include pull requests that have failing status checks\.
|
||||||
.
|
.
|
||||||
@ -1996,10 +1992,6 @@ Publish bottles for a pull request with GitHub Actions\. Requires write access t
|
|||||||
If supported on the target tap, automatically reformat and reword commits to our preferred format\.
|
If supported on the target tap, automatically reformat and reword commits to our preferred format\.
|
||||||
.
|
.
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-no\-autosquash\fR
|
|
||||||
Skip automatically reformatting and rewording commits in the pull request to the preferred format, even if supported on the target tap\.
|
|
||||||
.
|
|
||||||
.TP
|
|
||||||
\fB\-\-large\-runner\fR
|
\fB\-\-large\-runner\fR
|
||||||
Run the upload job on a large runner\.
|
Run the upload job on a large runner\.
|
||||||
.
|
.
|
||||||
@ -2051,10 +2043,6 @@ If the formula specifies a rebuild version, attempt to preserve its value in the
|
|||||||
Automatically reformat and reword commits in the pull request to our preferred format\.
|
Automatically reformat and reword commits in the pull request to our preferred format\.
|
||||||
.
|
.
|
||||||
.TP
|
.TP
|
||||||
\fB\-\-no\-autosquash\fR
|
|
||||||
Skip automatically reformatting and rewording commits in the pull request to our preferred format\.
|
|
||||||
.
|
|
||||||
.TP
|
|
||||||
\fB\-\-branch\-okay\fR
|
\fB\-\-branch\-okay\fR
|
||||||
Do not warn if pulling to a branch besides the repository default (useful for testing)\.
|
Do not warn if pulling to a branch besides the repository default (useful for testing)\.
|
||||||
.
|
.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user