mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Set uses_from_macos_elements in all cases
This commit is contained in:
parent
4a64d59141
commit
8dd11e4e4c
@ -7,19 +7,21 @@ class SoftwareSpec
|
|||||||
undef uses_from_macos
|
undef uses_from_macos
|
||||||
|
|
||||||
def uses_from_macos(deps, bounds = {})
|
def uses_from_macos(deps, bounds = {})
|
||||||
@uses_from_macos_elements ||= []
|
|
||||||
|
|
||||||
if deps.is_a?(Hash)
|
if deps.is_a?(Hash)
|
||||||
bounds = deps.dup
|
bounds = deps.dup
|
||||||
deps = bounds.shift
|
deps = [bounds.shift].to_h
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@uses_from_macos_elements << deps
|
||||||
|
|
||||||
bounds = bounds.transform_values { |v| MacOS::Version.from_symbol(v) }
|
bounds = bounds.transform_values { |v| MacOS::Version.from_symbol(v) }
|
||||||
if MacOS.version >= bounds[:since] ||
|
|
||||||
(Homebrew::EnvConfig.simulate_macos_on_linux? && !bounds.key?(:since))
|
# Linux simulating macOS. Assume oldest macOS version.
|
||||||
@uses_from_macos_elements << deps
|
return if Homebrew::EnvConfig.simulate_macos_on_linux? && !bounds.key?(:since)
|
||||||
else
|
|
||||||
depends_on deps
|
# macOS new enough for dependency to not be required.
|
||||||
end
|
return if MacOS.version >= bounds[:since]
|
||||||
|
|
||||||
|
depends_on deps
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1903,7 +1903,6 @@ class Formula
|
|||||||
# @private
|
# @private
|
||||||
def to_hash
|
def to_hash
|
||||||
dependencies = deps
|
dependencies = deps
|
||||||
uses_from_macos = uses_from_macos_elements || []
|
|
||||||
|
|
||||||
hsh = {
|
hsh = {
|
||||||
"name" => name,
|
"name" => name,
|
||||||
@ -1941,7 +1940,7 @@ class Formula
|
|||||||
"optional_dependencies" => dependencies.select(&:optional?)
|
"optional_dependencies" => dependencies.select(&:optional?)
|
||||||
.map(&:name)
|
.map(&:name)
|
||||||
.uniq,
|
.uniq,
|
||||||
"uses_from_macos" => uses_from_macos.uniq,
|
"uses_from_macos" => uses_from_macos_elements.uniq,
|
||||||
"requirements" => [],
|
"requirements" => [],
|
||||||
"conflicts_with" => conflicts.map(&:name),
|
"conflicts_with" => conflicts.map(&:name),
|
||||||
"caveats" => caveats&.gsub(HOMEBREW_PREFIX, "$(brew --prefix)"),
|
"caveats" => caveats&.gsub(HOMEBREW_PREFIX, "$(brew --prefix)"),
|
||||||
|
@ -264,8 +264,7 @@ module Homebrew
|
|||||||
next unless @core_tap
|
next unless @core_tap
|
||||||
|
|
||||||
# we want to allow uses_from_macos for aliases but not bare dependencies
|
# we want to allow uses_from_macos for aliases but not bare dependencies
|
||||||
if self.class.aliases.include?(dep.name) &&
|
if self.class.aliases.include?(dep.name) && spec.uses_from_macos_elements.exclude?(dep.name)
|
||||||
(spec.uses_from_macos_elements.blank? || spec.uses_from_macos_elements.exclude?(dep.name))
|
|
||||||
problem "Dependency '#{dep.name}' is an alias; use the canonical name '#{dep.to_formula.full_name}'."
|
problem "Dependency '#{dep.name}' is an alias; use the canonical name '#{dep.to_formula.full_name}'."
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -11,10 +11,10 @@ module Language
|
|||||||
module_function
|
module_function
|
||||||
|
|
||||||
def detected_perl_shebang(formula = self)
|
def detected_perl_shebang(formula = self)
|
||||||
perl_path = if formula.uses_from_macos_elements&.include? "perl"
|
perl_path = if formula.deps.map(&:name).include? "perl"
|
||||||
"/usr/bin/perl#{MacOS.preferred_perl_version}"
|
|
||||||
elsif formula.deps.map(&:name).include? "perl"
|
|
||||||
Formula["perl"].opt_bin/"perl"
|
Formula["perl"].opt_bin/"perl"
|
||||||
|
elsif formula.uses_from_macos_elements.include? "perl"
|
||||||
|
"/usr/bin/perl#{MacOS.preferred_perl_version}"
|
||||||
else
|
else
|
||||||
raise ShebangDetectionError.new("Perl", "formula does not depend on Perl")
|
raise ShebangDetectionError.new("Perl", "formula does not depend on Perl")
|
||||||
end
|
end
|
||||||
|
@ -47,6 +47,7 @@ class SoftwareSpec
|
|||||||
@deprecated_options = []
|
@deprecated_options = []
|
||||||
@build = BuildOptions.new(Options.create(@flags), options)
|
@build = BuildOptions.new(Options.create(@flags), options)
|
||||||
@compiler_failures = []
|
@compiler_failures = []
|
||||||
|
@uses_from_macos_elements = []
|
||||||
@bottle_disable_reason = nil
|
@bottle_disable_reason = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -178,7 +179,10 @@ class SoftwareSpec
|
|||||||
end
|
end
|
||||||
|
|
||||||
def uses_from_macos(spec, _bounds = {})
|
def uses_from_macos(spec, _bounds = {})
|
||||||
spec = spec.dup.shift if spec.is_a?(Hash)
|
spec = [spec.dup.shift].to_h if spec.is_a?(Hash)
|
||||||
|
|
||||||
|
@uses_from_macos_elements << spec
|
||||||
|
|
||||||
depends_on(spec)
|
depends_on(spec)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user