Skip to content
Snippets Groups Projects
Unverified Commit 373650d0 authored by Mike McQuaid's avatar Mike McQuaid
Browse files

KegOnlyReason: add reason helpers, rename valid.

parent c8867e53
No related branches found
No related tags found
No related merge requests found
......@@ -396,8 +396,8 @@ module Homebrew
end
if @new_formula &&
dep_f.keg_only_reason&.reason == :provided_by_macos &&
dep_f.keg_only_reason.valid? &&
dep_f.keg_only_reason.provided_by_macos? &&
dep_f.keg_only_reason.applicable? &&
!%w[apr apr-util openblas openssl openssl@1.1].include?(dep.name)
new_formula_problem(
"Dependency '#{dep.name}' is provided by macOS; " \
......@@ -507,13 +507,14 @@ module Homebrew
return unless @core_tap
if formula.keg_only?
return if formula.keg_only_reason.reason == :versioned_formula
return if formula.keg_only_reason.versioned_formula?
if formula.name.start_with?("openssl", "libressl") &&
formula.keg_only_reason.reason == :provided_by_macos
formula.keg_only_reason.provided_by_macos?
return
end
end
# TODO: verify formulae still exist
keg_only_whitelist = %w[
autoconf@2.13
bash-completion@2
......
# frozen_string_literal: true
class KegOnlyReason
def valid?
def applicable?
true
end
end
......@@ -1045,7 +1045,7 @@ class Formula
def keg_only?
return false unless keg_only_reason
keg_only_reason.valid?
keg_only_reason.applicable?
end
# @private
......
......@@ -13,24 +13,41 @@ class KegOnlyReason
@explanation = explanation
end
def valid?
![:provided_by_macos, :provided_by_osx, :shadowed_by_macos].include?(@reason)
def versioned_formula?
@reason == :versioned_formula
end
def provided_by_macos?
@reason == :provided_by_macos
end
def shadowed_by_macos?
@reason == :shadowed_by_macos
end
def by_macos?
provided_by_macos? || shadowed_by_macos?
end
def applicable?
# macOS reasons aren't applicable on other OSs
# (see extend/os/mac/formula_support for override on macOS)
!by_macos?
end
def to_s
return @explanation unless @explanation.empty?
case @reason
when :versioned_formula
if versioned_formula?
<<~EOS
this is an alternate version of another formula
EOS
when :provided_by_macos
elsif provided_by_macos?
<<~EOS
macOS already provides this software and installing another version in
parallel can cause all kinds of trouble
EOS
when :shadowed_by_macos
elsif shadowed_by_macos?
<<~EOS
macOS provides similar software and installing this software in
parallel can cause all kinds of trouble
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment