formula_auditor: generalize relicensed formula audit

Signed-off-by: Patrick Linnane <patrick@linnane.io>
This commit is contained in:
Patrick Linnane 2024-03-20 20:48:51 -07:00
parent 216c79cebd
commit df84883f12
No known key found for this signature in database

View File

@ -484,53 +484,32 @@ module Homebrew
"which allows them to use our Linux bottles, which were compiled against system glibc on CI."
end
ELASTICSEARCH_KIBANA_RELICENSED_VERSION = "7.11"
def audit_elasticsearch_kibana
return if formula.name != "elasticsearch" && formula.name != "kibana"
return unless @core_tap
return if formula.version < Version.new(ELASTICSEARCH_KIBANA_RELICENSED_VERSION)
problem "Elasticsearch and Kibana were relicensed to a non-open-source license from version 7.11. " \
"They must not be upgraded to version 7.11 or newer."
end
# https://www.hashicorp.com/license-faq#products-covered-by-bsl
HASHICORP_RELICENSED_FORMULAE_VERSIONS = {
"terraform" => "1.6",
"packer" => "1.10",
"vault" => "1.15",
RELICENSED_FORMULAE_VERSIONS = {
"boundary" => "0.14",
"consul" => "1.17",
"elasticsearch" => "7.11",
"kibana" => "7.11",
"nomad" => "1.7",
"waypoint" => "0.12",
"packer" => "1.10",
"redis" => "7.4",
"terraform" => "1.6",
"vagrant" => "2.4",
"vagrant-compleion" => "2.4",
"vagrant-completion" => "2.4",
"vault" => "1.15",
"waypoint" => "0.12",
}.freeze
def audit_hashicorp_formulae
return unless HASHICORP_RELICENSED_FORMULAE_VERSIONS.key? formula.name
def audit_relicensed_formulae
return unless RELICENSED_FORMULAE_VERSIONS.key? formula.name
return unless @core_tap
relicensed_version = Version.new(HASHICORP_RELICENSED_FORMULAE_VERSIONS[formula.name])
relicensed_version = Version.new(RELICENSED_FORMULAE_VERSIONS[formula.name])
return if formula.version < relicensed_version
problem "#{formula.name} was relicensed to a non-open-source license from version #{relicensed_version}. " \
"It must not be upgraded to version #{relicensed_version} or newer."
end
# https://redis.com/blog/redis-adopts-dual-source-available-licensing
REDIS_RELICENSED_VERSION = "7.4"
def audit_redis
return if formula.name != "redis"
return unless @core_tap
return if formula.version < Version.new(REDIS_RELICENSED_VERSION)
problem "Redis was relicensed to a non-open-source license from version 7.4. " \
"It must not be upgraded to version 7.4 or newer."
end
def audit_keg_only_reason
return unless @core_tap
return unless formula.keg_only?