Fix installed_on_request for dependencies.
Dependencies were using `Tab.for_formula(df)` to get a `Tab` which meant that they were always ending up with the (default) value of `true` for `installed_on_request`. Fix this by: - setting `installed_on_request` to `false` by default in empty `Tab`s; we always override it on installation so we'd rather have it default to `false` - only read and use a `Tab` for the existing dependency formula if there's an existing `Keg`
This commit is contained in:
parent
787e6cb75f
commit
2b1f460289
@ -707,10 +707,10 @@ class FormulaInstaller
|
|||||||
sig { params(dep: Dependency, inherited_options: Options).void }
|
sig { params(dep: Dependency, inherited_options: Options).void }
|
||||||
def install_dependency(dep, inherited_options)
|
def install_dependency(dep, inherited_options)
|
||||||
df = dep.to_formula
|
df = dep.to_formula
|
||||||
tab = Tab.for_formula(df)
|
|
||||||
|
|
||||||
if df.linked_keg.directory?
|
if df.linked_keg.directory?
|
||||||
linked_keg = Keg.new(df.linked_keg.resolved_path)
|
linked_keg = Keg.new(df.linked_keg.resolved_path)
|
||||||
|
tab = Tab.for_keg(linked_keg)
|
||||||
keg_had_linked_keg = true
|
keg_had_linked_keg = true
|
||||||
keg_was_linked = linked_keg.linked?
|
keg_was_linked = linked_keg.linked?
|
||||||
linked_keg.unlink
|
linked_keg.unlink
|
||||||
@ -718,12 +718,13 @@ class FormulaInstaller
|
|||||||
|
|
||||||
if df.latest_version_installed?
|
if df.latest_version_installed?
|
||||||
installed_keg = Keg.new(df.prefix)
|
installed_keg = Keg.new(df.prefix)
|
||||||
|
tab ||= Tab.for_keg(linked_keg)
|
||||||
tmp_keg = Pathname.new("#{installed_keg}.tmp")
|
tmp_keg = Pathname.new("#{installed_keg}.tmp")
|
||||||
installed_keg.rename(tmp_keg)
|
installed_keg.rename(tmp_keg)
|
||||||
end
|
end
|
||||||
|
|
||||||
tab_tap = tab.source["tap"]
|
if df.tap.present? && tab.present? && (tab_tap = tab.source["tap"].presence) &&
|
||||||
if tab_tap.present? && df.tap.present? && df.tap.to_s != tab_tap.to_s
|
df.tap.to_s != tab_tap.to_s
|
||||||
odie <<~EOS
|
odie <<~EOS
|
||||||
#{df} is already installed from #{tab_tap}!
|
#{df} is already installed from #{tab_tap}!
|
||||||
Please `brew uninstall #{df}` first."
|
Please `brew uninstall #{df}` first."
|
||||||
@ -731,7 +732,7 @@ class FormulaInstaller
|
|||||||
end
|
end
|
||||||
|
|
||||||
options = Options.new
|
options = Options.new
|
||||||
options |= tab.used_options
|
options |= tab.used_options if tab.present?
|
||||||
options |= Tab.remap_deprecated_options(df.deprecated_options, dep.options)
|
options |= Tab.remap_deprecated_options(df.deprecated_options, dep.options)
|
||||||
options |= inherited_options
|
options |= inherited_options
|
||||||
options &= df.options
|
options &= df.options
|
||||||
@ -742,7 +743,7 @@ class FormulaInstaller
|
|||||||
options: options,
|
options: options,
|
||||||
link_keg: keg_had_linked_keg ? keg_was_linked : nil,
|
link_keg: keg_had_linked_keg ? keg_was_linked : nil,
|
||||||
installed_as_dependency: true,
|
installed_as_dependency: true,
|
||||||
installed_on_request: df.any_version_installed? && tab.installed_on_request,
|
installed_on_request: df.any_version_installed? && tab.present? && tab.installed_on_request,
|
||||||
force_bottle: false,
|
force_bottle: false,
|
||||||
include_test_formulae: @include_test_formulae,
|
include_test_formulae: @include_test_formulae,
|
||||||
build_from_source_formulae: @build_from_source_formulae,
|
build_from_source_formulae: @build_from_source_formulae,
|
||||||
|
|||||||
@ -29,7 +29,7 @@ class Tab < OpenStruct
|
|||||||
"tabfile" => formula.prefix/FILENAME,
|
"tabfile" => formula.prefix/FILENAME,
|
||||||
"built_as_bottle" => build.bottle?,
|
"built_as_bottle" => build.bottle?,
|
||||||
"installed_as_dependency" => false,
|
"installed_as_dependency" => false,
|
||||||
"installed_on_request" => true,
|
"installed_on_request" => false,
|
||||||
"poured_from_bottle" => false,
|
"poured_from_bottle" => false,
|
||||||
"time" => Time.now.to_i,
|
"time" => Time.now.to_i,
|
||||||
"source_modified_time" => formula.source_modified_time.to_i,
|
"source_modified_time" => formula.source_modified_time.to_i,
|
||||||
@ -184,7 +184,7 @@ class Tab < OpenStruct
|
|||||||
"unused_options" => [],
|
"unused_options" => [],
|
||||||
"built_as_bottle" => false,
|
"built_as_bottle" => false,
|
||||||
"installed_as_dependency" => false,
|
"installed_as_dependency" => false,
|
||||||
"installed_on_request" => true,
|
"installed_on_request" => false,
|
||||||
"poured_from_bottle" => false,
|
"poured_from_bottle" => false,
|
||||||
"time" => nil,
|
"time" => nil,
|
||||||
"source_modified_time" => 0,
|
"source_modified_time" => 0,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user