script/licenses/lib/third_party.rb (79 lines of code) (raw):

# # Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one # or more contributor license agreements. Licensed under the Elastic License 2.0; # you may not use this file except in compliance with the Elastic License 2.0. # # frozen_string_literal: true require 'logger' module ThirdParty LOGGER = Logger.new($stdout, level: Logger::DEBUG) LICENSE_FILE_NAME_OPTIONS = %w[ LICENSE LICENSE.md LICENSE.txt License.txt LICENCE LICENSE-MIT Licence.md Licence.rdoc MIT_LICENSE MIT-LICENSE MIT-LICENSE.txt BSDL COPYING COPYING.txt ].freeze UNKNOWN_LICENSE = 'UNKNOWN' module SPDX class << self def normalize_license(license) return license if SUPPORTED_IDENTIFIERS.include?(license) || license.match?(/\s+OR|AND|WITH\s+/) ALIASES.fetch(license, nil) end end SUPPORTED_IDENTIFIERS = %w[ 0BSD Apache-2.0 AFL-2.1 BSD-2-Clause BSD-3-Clause CC0-1.0 CC-BY-3.0 CC-BY-4.0 Elastic-2.0 EPL-1.0 ISC GPL-2.0 LGPL-2.1 MIT MPL-2.0 Ruby Unlicense ].freeze IDENTIFIER_TO_ALIASES = { 'AFL-2.1' => [ 'AFLv2.1' ], 'BSD-2-Clause' => [ 'BSD 2-Clause', 'BSD', 'BSD*', '2-clause BSDL' ], 'Apache-2.0' => [ 'Apache License Version 2.0', 'Apache License (2.0)' ], 'Ruby' => [ 'ruby' ], 'Python-2.0' => [ 'PSFL' ], 'MIT' => [ 'MIT*' ] }.freeze ALIASES = IDENTIFIER_TO_ALIASES.each_with_object({}) do |(spdx_identifier, aliases), out| aliases.each do |a| out[a] = spdx_identifier end end end end require_relative 'third_party/misc_dependencies' require_relative 'third_party/rubygems_dependencies'