diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f0e537d2d7f..f55686c19f6 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -30,7 +30,7 @@ Important API changes: return "package_data" package information at the manifest file-level rather than "packages". This has all the data attributes of a "package_data" field plus others: "package_uuid", "package_data_files" and "files". - + - There is a a new top-level "packages" attribute that contains package instances that can be aggregating data from multiple manifests. @@ -47,6 +47,14 @@ Important API changes: - The data structure for CSV output has been changed to rename the Resource column to "path". The "copyright_holder" has been ranmed to "holder" +- The license clarity scoring plugin has been overhauled to show new license + clarity criteria. More details of the new criteria are provided below. + +- The functionality of the summary plugin has been changed to provide declared + origin information for the codebase being scanned. The previous summary plugin + functionality has been preserved in the new ``tallies`` plugin. More details + are provided below. + Copyright detection: ~~~~~~~~~~~~~~~~~~~~ @@ -142,7 +150,7 @@ Package detection: as these are really package data that are being detected, and can be manifests, lockfiles or other package data. This has all the data attributes of a `package_data` field plus others: `package_uuid`, `package_data_files` and `files`. - + - A new top-level attribute `packages` has been added which contains package instances created from `package_data` detected in the codebase. @@ -156,7 +164,7 @@ Package detection: - There is a new resource-level attribute `for_packages` which refers to packages through package_uuids (pURL + uuid string). - + - The package_data attribute `dependencies` (which is a list of DependentPackages), now has a new attribute `resolved_package` having a package data mapping. Also the `requirement` attribute here is renamed to `extracted_requirement`. @@ -222,64 +230,20 @@ License Clarity Scoring Update - Scoring Weight = -20 -License Clarity Scoring Update -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - - We are moving away from the license clarity scoring defined by ClearlyDefined - in the license clarity score plugin. The previous license clarity scoring - logic produced a score that was misleading, where it would return a low score - when scanning packages due to the stringent scoring criteria. We are now - using more general criteria to get a sense of what provenance information has - been provided and whether or not there is a conflict in licensing between - what licenses were declared at the top-level key files and what licenses have - been detected in the files under the top-level. - - - The license clarity score is a value from 0-100 calculated by combining the - weighted values determined for each of the scoring elements: - - - Declared license: - - - When true, indicates that the software package licensing is documented at - top-level or well-known locations in the software project, typically in a - package manifest, NOTICE, LICENSE, COPYING or README file. - - Scoring Weight = 40 - - - Identification precision: - - - Indicates how well the license statement(s) of the software identify known - licenses that can be designated by precise keys (identifiers) as provided in - a publicly available license list, such as the ScanCode LicenseDB, the SPDX - license list, the OSI license list, or a URL pointing to a specific license - text in a project or organization website. - - Scoring Weight = 40 - - - License texts: - - - License texts are provided to support the declared license expression in - files such as a package manifest, NOTICE, LICENSE, COPYING or README. - - Scoring Weight = 10 - - - Declared copyright: - - - When true, indicates that the software package copyright is documented at - top-level or well-known locations in the software project, typically in a - package manifest, NOTICE, LICENSE, COPYING or README file. - - Scoring Weight = 10 - - - Ambiguous compound licensing: - - - When true, indicates that the software has a license declaration that - makes it difficult to construct a reliable license expression, such as in - the case of multiple licenses where the conjunctive versus disjunctive - relationship is not well defined. - - Scoring Weight = -10 - - - Conflicting license categories: +Summary Plugin Update +~~~~~~~~~~~~~~~~~~~~~ +The summary plugin's behavior has been changed. Previously, it provided a count +of the detected license expressions, copyrights, holders, authors, and +programming languages from a scan. We have preserved this functionality by +creating a new plugin called ``tallies``. All functionality of the previous +summary plugin have been preserved in the tallies plugin. - - When true, indicates the declared license expression of the software is in - the permissive category, but that other potentially conflicting categories, - such as copyleft and proprietary, have been detected in lower level code. - - Scoring Weight = -20 +The plugin now attempts to determine a declared license expression, holder, and +primary programming language from a scan. The license clarity score is provided +context on what origin information is provided from key files. It also returns +lists of tallies of the other detected license expressions, holders, and +programming languages. All information is provided in the codebase level +attribute named ``summary``. Outputs: @@ -288,6 +252,9 @@ Outputs: - Add new outputs for the CycloneDx format. The CLI now exposes options to produce CycloneDx BOMs in either JSON or XML format + - A new field ``warnings`` has been added to the headers of ScanCode toolkit output + that contains any warning messages that occur during a scan. + Output version -------------- diff --git a/setup.cfg b/setup.cfg index 53f6128aa08..b5e06c761e0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -177,10 +177,10 @@ scancode_scan = # module for details and doc. scancode_post_scan = summary = summarycode.summarizer:ScanSummary - summary2 = summarycode.summarizer2:ScanSummary - summary-keeping-details = summarycode.summarizer:ScanSummaryWithDetails - summary-key-files = summarycode.summarizer:ScanKeyFilesSummary - summary-by-facet = summarycode.summarizer:ScanByFacetSummary + tallies = summarycode.tallies:Tallies + tallies-with-details = summarycode.tallies:TalliesWithDetails + tallies-key-files = summarycode.tallies:KeyFilesTallies + tallies-by-facet = summarycode.tallies:FacetTallies license-clarity-score = summarycode.score:LicenseClarityScore license-policy = licensedcode.plugin_license_policy:LicensePolicy mark-source = scancode.plugin_mark_source:MarkSource diff --git a/src/licensedcode/data/licenses/4suite-1.1.yml b/src/licensedcode/data/licenses/4suite-1.1.yml index 734c41be00f..78216edd4d1 100644 --- a/src/licensedcode/data/licenses/4suite-1.1.yml +++ b/src/licensedcode/data/licenses/4suite-1.1.yml @@ -7,11 +7,11 @@ spdx_license_key: LicenseRef-scancode-4suite-1.1 ignorable_copyrights: - Copyright (c) 2000 Fourthought, Inc. - Copyright (c) 2000 The Apache Software Foundation -ignorable_authors: - - Fourthought, Inc. (http://www.fourthought.com) ignorable_holders: - Fourthought, Inc. - The Apache Software Foundation +ignorable_authors: + - Fourthought, Inc. (http://www.fourthought.com) ignorable_urls: - http://www.fourthought.com/ ignorable_emails: diff --git a/src/licensedcode/data/licenses/accellera-systemc.yml b/src/licensedcode/data/licenses/accellera-systemc.yml index 1a57f1a6535..a94826915e7 100644 --- a/src/licensedcode/data/licenses/accellera-systemc.yml +++ b/src/licensedcode/data/licenses/accellera-systemc.yml @@ -10,11 +10,11 @@ ignorable_copyrights: - (c) 1996- current year here - (c) 1996- current year here by all Contributors - Copyright (c) 1996- current year here by all Contributors -ignorable_authors: - - through the Accellera working group process ignorable_holders: - here - here by all Contributors +ignorable_authors: + - through the Accellera working group process ignorable_urls: - http://www.accellera.org/ ignorable_emails: diff --git a/src/licensedcode/data/licenses/ace-tao.yml b/src/licensedcode/data/licenses/ace-tao.yml index 1972dbb709b..dc4e478f6f5 100644 --- a/src/licensedcode/data/licenses/ace-tao.yml +++ b/src/licensedcode/data/licenses/ace-tao.yml @@ -13,8 +13,8 @@ minimum_coverage: 30 ignorable_copyrights: - copyrighted by Douglas C. Schmidt and his research group at Washington University, University of California, Irvine, and Vanderbilt University, Copyright (c) 1993-2009 -ignorable_authors: - - the DOC Group at the Institute for Software Integrated Systems (ISIS) and the Center ignorable_holders: - Douglas C. Schmidt and his research group at Washington University, University of California, Irvine, and Vanderbilt University +ignorable_authors: + - the DOC Group at the Institute for Software Integrated Systems (ISIS) and the Center diff --git a/src/licensedcode/data/licenses/acroname-bdk.yml b/src/licensedcode/data/licenses/acroname-bdk.yml index 027b9da1fe7..7c39b422ed0 100644 --- a/src/licensedcode/data/licenses/acroname-bdk.yml +++ b/src/licensedcode/data/licenses/acroname-bdk.yml @@ -12,4 +12,4 @@ ignorable_holders: ignorable_urls: - https://libusb.info/ ignorable_emails: - - support@acroname.com \ No newline at end of file + - support@acroname.com diff --git a/src/licensedcode/data/licenses/adapt-1.0.yml b/src/licensedcode/data/licenses/adapt-1.0.yml index d229ed6ceda..f3e2ef2197f 100644 --- a/src/licensedcode/data/licenses/adapt-1.0.yml +++ b/src/licensedcode/data/licenses/adapt-1.0.yml @@ -6,10 +6,10 @@ owner: OSI - Open Source Initiative homepage_url: http://www.opensource.org/licenses/apl1.0.php notes: Per SPDX.org, this license is OSI certified. spdx_license_key: APL-1.0 +osi_license_key: APL-1.0 text_urls: - http://www.opensource.org/licenses/apl1.0.php osi_url: http://www.opensource.org/licenses/apl1.0.php other_urls: - http://www.opensource.org/licenses/APL-1.0 - https://opensource.org/licenses/APL-1.0 -osi_license_key: APL-1.0 diff --git a/src/summarycode/copyright_summary.py b/src/summarycode/copyright_tallies.py similarity index 89% rename from src/summarycode/copyright_summary.py rename to src/summarycode/copyright_tallies.py index c1b8ff8e00c..cd01b910464 100644 --- a/src/summarycode/copyright_summary.py +++ b/src/summarycode/copyright_tallies.py @@ -17,8 +17,8 @@ from cluecode.copyrights import CopyrightDetector from commoncode.text import toascii from summarycode.utils import sorted_counter -from summarycode.utils import get_resource_summary -from summarycode.utils import set_resource_summary +from summarycode.utils import get_resource_tallies +from summarycode.utils import set_resource_tallies # Tracing flags TRACE = False @@ -46,49 +46,49 @@ def logger_debug(*args): # TODO: keep the original order of statements as much as possible -def copyright_summarizer(resource, children, keep_details=False): - return build_summary( +def copyright_tallies(resource, children, keep_details=False): + return build_tallies( resource=resource, children=children, attributes_list='copyrights', attribute_value='copyright', - summarizer=summarize_copyrights, + tallier=tally_copyrights, keep_details=keep_details ) -def holder_summarizer(resource, children, keep_details=False): - return build_summary( +def holder_tallies(resource, children, keep_details=False): + return build_tallies( resource=resource, children=children, attributes_list='holders', attribute_value='holder', - summarizer=summarize_persons, + tallier=tally_persons, keep_details=keep_details ) -def author_summarizer(resource, children, keep_details=False): - return build_summary( +def author_tallies(resource, children, keep_details=False): + return build_tallies( resource=resource, children=children, attributes_list='authors', attribute_value='author', - summarizer=summarize_persons, + tallier=tally_persons, keep_details=keep_details ) -def build_summary( +def build_tallies( resource, children, attributes_list, attribute_value, - summarizer, + tallier, keep_details=False, ): """ - Update the ``resource`` Resource with a summary of itself and its + Update the ``resource`` Resource with a tally of scan fields from itself and its ``children``. Resources and this for the `attributes_list` values list key (such as @@ -100,8 +100,8 @@ def build_summary( - `attribute_value` is the name of the attribute value key in this list ('copyright', 'holder' etc.) - - `summarizer` is a function that takes a list of texts and returns - summarized texts with counts + - `tallier` is a function that takes a list of texts and returns + texts with counts """ # Collect current data values = getattr(resource, attributes_list, []) @@ -118,7 +118,7 @@ def build_summary( # Collect direct children existing summaries for child in children: - child_summaries = get_resource_summary( + child_summaries = get_resource_tallies( child, key=attributes_list, as_attribute=keep_details @@ -133,23 +133,23 @@ def build_summary( no_detection_counter += count # summarize proper using the provided function - summarized = summarizer(candidate_texts) + tallied = tallier(candidate_texts) # add back the counter of things without detection if no_detection_counter: - summarized.update({None: no_detection_counter}) + tallied.update({None: no_detection_counter}) - summarized = sorted_counter(summarized) + tallied = sorted_counter(tallied) if TRACE: - logger_debug('COPYRIGHT summarized:', summarized) + logger_debug('COPYRIGHT tallied:', tallied) - set_resource_summary( + set_resource_tallies( resource, key=attributes_list, - value=summarized, + value=tallied, as_attribute=keep_details, ) - return summarized + return tallied # keep track of an original text value and the corresponding clustering "key" @@ -187,12 +187,12 @@ def fingerprint(self): self.key = fp -def summarize_copyrights(texts, _detector=CopyrightDetector()): +def tally_copyrights(texts, _detector=CopyrightDetector()): """ - Return a summarized list of mapping of {value:string, count:int} given a + Return a list of mapping of {value:string, count:int} given a list of copyright strings or Text() objects. """ - summary_texts = [] + texts_to_tally = [] no_detection_counter = 0 for text in texts: if not text: @@ -200,7 +200,7 @@ def summarize_copyrights(texts, _detector=CopyrightDetector()): continue # Keep Text objects as-is if isinstance(text, Text): - summary_texts.append(text) + texts_to_tally.append(text) else: # FIXME: redetect to strip year should not be needed!! statements_without_years = _detector.detect( @@ -213,21 +213,21 @@ def summarize_copyrights(texts, _detector=CopyrightDetector()): for detection in statements_without_years: copyr = detection.copyright - summary_texts.append(Text(copyr, copyr)) + texts_to_tally.append(Text(copyr, copyr)) - counter = summarize(summary_texts) + counter = tally(texts_to_tally) if no_detection_counter: counter[None] = no_detection_counter return counter -def summarize_persons(texts): +def tally_persons(texts): """ - Return a summarized list of mapping of {value:string, count:int} given a + Return a list of mapping of {value:string, count:int} given a list of holders strings or Text() objects. """ - summary_texts = [] + texts_to_tally = [] no_detection_counter = 0 for text in texts: if not text: @@ -235,12 +235,12 @@ def summarize_persons(texts): continue # Keep Text objects as-is if isinstance(text, Text): - summary_texts.append(text) + texts_to_tally.append(text) else: cano = canonical_holder(text) - summary_texts.append(Text(cano, cano)) + texts_to_tally.append(Text(cano, cano)) - counter = summarize(summary_texts) + counter = tally(texts_to_tally) if no_detection_counter: counter[None] = no_detection_counter @@ -248,7 +248,7 @@ def summarize_persons(texts): return counter -def summarize(summary_texts): +def tally(summary_texts): """ Return a mapping of {value: count} given a list of Text objects (representing either copyrights, holders or authors). @@ -544,8 +544,10 @@ def filter_junk(texts): 'borland': 'Borland Corp.', - 'microsoft': 'Microsoft Corp.', - 'microsoftcorp': 'Microsoft Corp.', + 'microsoft': 'Microsoft', + 'microsoftcorp': 'Microsoft', + 'microsoftinc': 'Microsoft', + 'microsoftcorporation': 'Microsoft', 'google': 'Google Inc.', 'googlellc': 'Google Inc.', diff --git a/src/summarycode/plugin_consolidate.py b/src/summarycode/plugin_consolidate.py index da301a8a4b6..f22fe8a015f 100644 --- a/src/summarycode/plugin_consolidate.py +++ b/src/summarycode/plugin_consolidate.py @@ -7,6 +7,7 @@ # See https://aboutcode.org for more information about nexB OSS projects. # +import warnings from collections import Counter import attr @@ -21,7 +22,7 @@ from packagedcode.utils import combine_expressions from plugincode.post_scan import PostScanPlugin from plugincode.post_scan import post_scan_impl -from summarycode import copyright_summary +from summarycode import copyright_tallies # Tracing flags TRACE = False @@ -109,6 +110,10 @@ def to_dict(self, **kwargs): return package +class ConsolidatorPluginDeprecationWarning(DeprecationWarning): + pass + + @post_scan_impl class Consolidator(PostScanPlugin): """ @@ -152,6 +157,16 @@ def is_enabled(self, consolidate, **kwargs): return consolidate def process_codebase(self, codebase, **kwargs): + deprecation_message = "The --consolidate option will be deprecated in a future version of scancode-toolkit." + warnings.simplefilter('always', ConsolidatorPluginDeprecationWarning) + warnings.warn( + deprecation_message, + ConsolidatorPluginDeprecationWarning, + stacklevel=2, + ) + codebase_header = codebase.get_or_create_current_header() + codebase_header.warnings.append(deprecation_message) + # Collect ConsolidatedPackages and ConsolidatedComponents # TODO: Have a "catch-all" Component for the things that we haven't grouped consolidations = [] @@ -274,10 +289,10 @@ def get_consolidated_packages(codebase): c = Consolidation( core_license_expression=package_license_expression, # Sort holders by holder key - core_holders=[h for h, _ in sorted(copyright_summary.cluster(package_holders), key=lambda t: t[0].key)], + core_holders=[h for h, _ in sorted(copyright_tallies.cluster(package_holders), key=lambda t: t[0].key)], other_license_expression=simplified_discovered_license_expression, # Sort holders by holder key - other_holders=[h for h, _ in sorted(copyright_summary.cluster(discovered_holders), key=lambda t: t[0].key)], + other_holders=[h for h, _ in sorted(copyright_tallies.cluster(discovered_holders), key=lambda t: t[0].key)], files_count=len([package_resource for package_resource in package_resources if package_resource.is_file]), resources=package_resources, ) @@ -295,12 +310,12 @@ def get_consolidated_packages(codebase): def process_holders(holders): - holders = [copyright_summary.Text(key=holder, original=holder) for holder in holders] + holders = [copyright_tallies.Text(key=holder, original=holder) for holder in holders] for holder in holders: holder.normalize() - holders = list(copyright_summary.filter_junk(holders)) + holders = list(copyright_tallies.filter_junk(holders)) for holder in holders: holder.normalize() diff --git a/src/summarycode/score.py b/src/summarycode/score.py index 443b3d85ffd..be0875c0e91 100644 --- a/src/summarycode/score.py +++ b/src/summarycode/score.py @@ -9,7 +9,7 @@ import attr -from commoncode.datautils import Mapping +from packagedcode.utils import combine_expressions from plugincode.post_scan import PostScanPlugin from plugincode.post_scan import post_scan_impl from commoncode.cliutils import PluggableCommandLineOption @@ -70,7 +70,10 @@ def is_enabled(self, license_clarity_score, **kwargs): def process_codebase(self, codebase, license_clarity_score, **kwargs): if TRACE: logger_debug('LicenseClarityScore:process_codebase') - compute_license_score(codebase) + scoring_elements, declared_license_expression = compute_license_score(codebase) + codebase.attributes.summary['declared_license_expression'] = declared_license_expression + codebase.attributes.summary['license_clarity_score'] = scoring_elements.to_dict() + def compute_license_score(codebase): @@ -153,18 +156,18 @@ def compute_license_score(codebase): ): scoring_elements.score -= 20 - primary_license = get_primary_license(declared_license_expressions) - if ( - not primary_license - and scoring_elements.score > 0 - ): - scoring_elements.ambigous_compound_licensing = True - scoring_elements.score -= 10 + declared_license_expression = get_primary_license(unique_declared_license_expressions) - codebase.attributes.summary['primary_license_expression'] = primary_license - codebase.attributes.summary['declared_license_expressions'] = unique_declared_license_expressions - codebase.attributes.summary['license_clarity_score'] = scoring_elements.to_dict() + if not declared_license_expression: + # If we cannot get a single primary license, then we combine and simplify the license expressions from key files + combined_declared_license_expression = combine_expressions(unique_declared_license_expressions) + if combined_declared_license_expression: + declared_license_expression = str(Licensing().parse(combined_declared_license_expression).simplify()) + scoring_elements.ambigous_compound_licensing = True + if scoring_elements.score > 0: + scoring_elements.score -= 10 + return scoring_elements, declared_license_expression or '' def unique(objects): @@ -179,6 +182,7 @@ def unique(objects): seen.add(obj) return uniques + @attr.s() class ScoringElements: score = attr.ib(default=0) @@ -392,17 +396,20 @@ def group_license_expressions(unique_license_expressions): unique_joined_expressions = [] seen_joined_expression = [] len_joined_expressions = len(joined_expressions) - for i, j in enumerate(joined_expressions, start=1): - if i > len_joined_expressions: - break - for j1 in joined_expressions[i:]: - if licensing.is_equivalent(j, j1): - if ( - j not in unique_joined_expressions - and j not in seen_joined_expression - ): - unique_joined_expressions.append(j) - seen_joined_expression.append(j1) + if len_joined_expressions > 1: + for i, j in enumerate(joined_expressions, start=1): + if i > len_joined_expressions: + break + for j1 in joined_expressions[i:]: + if licensing.is_equivalent(j, j1): + if ( + j not in unique_joined_expressions + and j not in seen_joined_expression + ): + unique_joined_expressions.append(j) + seen_joined_expression.append(j1) + else: + unique_joined_expressions = joined_expressions return unique_joined_expressions, single_expressions diff --git a/src/summarycode/summarizer.py b/src/summarycode/summarizer.py index 4c2988d4548..b88cb80e49c 100644 --- a/src/summarycode/summarizer.py +++ b/src/summarycode/summarizer.py @@ -7,20 +7,24 @@ # See https://aboutcode.org for more information about nexB OSS projects. # -from collections import Counter +from collections import defaultdict import attr +import fingerprints +from commoncode.cliutils import POST_SCAN_GROUP, PluggableCommandLineOption +from license_expression import Licensing +from plugincode.post_scan import PostScanPlugin, post_scan_impl + +from cluecode.copyrights import CopyrightDetector +from packagedcode.utils import combine_expressions +from summarycode.score import (compute_license_score, + get_field_values_from_codebase_resources, + unique) +from summarycode.tallies import compute_codebase_tallies -from plugincode.post_scan import PostScanPlugin -from plugincode.post_scan import post_scan_impl -from commoncode.cliutils import PluggableCommandLineOption -from commoncode.cliutils import POST_SCAN_GROUP -from summarycode.utils import sorted_counter -from summarycode.utils import get_resource_summary -from summarycode.utils import set_resource_summary # Tracing flags -TRACE = False +TRACE = True TRACE_LIGHT = False @@ -55,9 +59,14 @@ class ScanSummary(PostScanPlugin): options = [ PluggableCommandLineOption(('--summary',), - is_flag=True, default=False, - help='Summarize license, copyright and other scans at the codebase level.', - help_group=POST_SCAN_GROUP) + is_flag=True, + default=False, + help='Summarize scans by providing declared origin ' + 'information and other detected origin info at the ' + 'codebase attribute level.', + help_group=POST_SCAN_GROUP, + required_options=['classify'] + ) ] def is_enabled(self, summary, **kwargs): @@ -65,396 +74,216 @@ def is_enabled(self, summary, **kwargs): def process_codebase(self, codebase, summary, **kwargs): if TRACE_LIGHT: logger_debug('ScanSummary:process_codebase') - summarize_codebase(codebase, keep_details=False, **kwargs) - -@post_scan_impl -class ScanSummaryWithDetails(PostScanPlugin): + # Get tallies + tallies = compute_codebase_tallies(codebase, keep_details=False, **kwargs) + license_expressions_tallies = tallies.get('license_expressions') or [] + holders_tallies = tallies.get('holders') or [] + programming_language_tallies = tallies.get('programming_language') or [] + + # Get Package data from key files + key_files_package_data = get_field_values_from_codebase_resources( + codebase, + 'package_data', + key_files_only=True + ) + # Remove any package that has no name + key_file_package_data = [ + package_data + for package_data in key_files_package_data + if package_data.get('name') + ] + + # Determine declared license expression, declared holder, and primary language from Package data + declared_license_expression, declared_holders, primary_language = get_origin_info_from_package_data(key_file_package_data) + + if declared_license_expression: + scoring_elements, _ = compute_license_score(codebase) + else: + # If we did not get a declared license expression from detected + # package data, then we use the results from `compute_license_score` + scoring_elements, declared_license_expression = compute_license_score(codebase) + other_license_expressions = remove_from_tallies(declared_license_expression, license_expressions_tallies) + + if not declared_holders: + declared_holders = get_declared_holders(codebase, holders_tallies) + other_holders = remove_from_tallies(declared_holders, holders_tallies) + declared_holder = ', '.join(declared_holders) + + if not primary_language: + primary_language = get_primary_language(programming_language_tallies) + other_languages = remove_from_tallies(primary_language, programming_language_tallies) + + # Save summary info to codebase + codebase.attributes.summary['declared_license_expression'] = declared_license_expression + codebase.attributes.summary['license_clarity_score'] = scoring_elements.to_dict() + codebase.attributes.summary['declared_holder'] = declared_holder + codebase.attributes.summary['primary_language'] = primary_language + codebase.attributes.summary['other_license_expressions'] = other_license_expressions + codebase.attributes.summary['other_holders'] = other_holders + codebase.attributes.summary['other_languages'] = other_languages + + +def remove_from_tallies(entry, tallies): """ - Summarize a scan at the codebase level and keep file and directory details. + Return an list containing the elements of `tallies`, without `entry` """ - # mapping of summary data at the codebase level for the whole codebase - codebase_attributes = dict(summary=attr.ib(default=attr.Factory(dict))) - # store summaries at the file and directory level in this attribute when - # keep details is True - resource_attributes = dict(summary=attr.ib(default=attr.Factory(dict))) - sort_order = 100 - - options = [ - PluggableCommandLineOption(('--summary-with-details',), - is_flag=True, default=False, - help='Summarize license, copyright and other scans at the codebase level, ' - 'keeping intermediate details at the file and directory level.', - help_group=POST_SCAN_GROUP) - ] - - def is_enabled(self, summary_with_details, **kwargs): - return summary_with_details - - def process_codebase(self, codebase, summary_with_details, **kwargs): - summarize_codebase(codebase, keep_details=True, **kwargs) - + pruned_tallies = [] + for t in tallies: + if ( + isinstance(entry, dict) and t == entry + or isinstance(entry, (list, tuple)) and t in entry + or isinstance(entry, (list, tuple)) and t.get('value') in entry + or t.get('value') == entry + ): + continue + pruned_tallies.append(t) + return pruned_tallies -def summarize_codebase(codebase, keep_details, **kwargs): - """ - Summarize a scan at the codebase level for available scans. - If `keep_details` is True, also keep file and directory details in the - `summary` file attribute for every file and directory. +def get_declared_holders(codebase, holders_tallies): """ - from summarycode.copyright_summary import author_summarizer - from summarycode.copyright_summary import copyright_summarizer - from summarycode.copyright_summary import holder_summarizer - - attrib_summarizers = [ - ('license_expressions', license_summarizer), - ('copyrights', copyright_summarizer), - ('holders', holder_summarizer), - ('authors', author_summarizer), - ('programming_language', language_summarizer), - ('packages', package_summarizer), - ] - - # find which attributes are available for summarization by checking the root - # resource - root = codebase.root - summarizers = [s for a, s in attrib_summarizers if hasattr(root, a)] - if TRACE: logger_debug('summarize_codebase with summarizers:', summarizers) - - # collect and set resource-level summaries - for resource in codebase.walk(topdown=False): - children = resource.children(codebase) - - for summarizer in summarizers: - _summary_data = summarizer(resource, children, keep_details=keep_details) - if TRACE: logger_debug('summary for:', resource.path, 'after summarizer:', summarizer, 'is:', _summary_data) - - codebase.save_resource(resource) - - # set the summary from the root resource at the codebase level - if keep_details: - summary = root.summary - else: - summary = root.extra_data.get('summary', {}) - codebase.attributes.summary.update(summary) - - if TRACE: logger_debug('codebase summary:', summary) + Return a list of declared holders from a codebase using the holders + detected from key files. - -def license_summarizer(resource, children, keep_details=False): - """ - Populate a license_expressions list of mappings such as - {value: "expression", count: "count of occurences"} - sorted by decreasing count. + A declared holder is a copyright holder present in the key files who has the + highest amount of refrences throughout the codebase. """ - LIC_EXP = 'license_expressions' - license_expressions = [] - - # Collect current data - lic_expressions = getattr(resource, LIC_EXP , []) - if not lic_expressions and resource.is_file: - # also count files with no detection - license_expressions.append(None) - else: - license_expressions.extend(lic_expressions) - - # Collect direct children expression summary - for child in children: - child_summaries = get_resource_summary(child, key=LIC_EXP, as_attribute=keep_details) or [] - for child_summary in child_summaries: - # TODO: review this: this feels rather weird - child_sum_val = child_summary.get('value') - if child_sum_val: - values = [child_sum_val] * child_summary['count'] - license_expressions.extend(values) - - # summarize proper - licenses_counter = summarize_licenses(license_expressions) - summarized = sorted_counter(licenses_counter) - set_resource_summary(resource, key=LIC_EXP, value=summarized, as_attribute=keep_details) - return summarized - - -def summarize_licenses(license_expressions): + entry_by_holders = { + fingerprints.generate(entry['value']): entry + for entry in holders_tallies if entry['value'] + } + key_file_holders = get_field_values_from_codebase_resources(codebase, 'holders', key_files_only=True) + entry_by_key_file_holders = { + fingerprints.generate(entry['holder']): entry + for entry in key_file_holders if entry['holder'] + } + unique_key_file_holders = unique(entry_by_key_file_holders.keys()) + unique_key_file_holders_entries = [entry_by_holders[holder] for holder in unique_key_file_holders] + + holder_by_counts = defaultdict(list) + for holder_entry in unique_key_file_holders_entries: + count = holder_entry.get('count') + if count: + holder = holder_entry.get('value') + holder_by_counts[count].append(holder) + + declared_holders = [] + if holder_by_counts: + highest_count = max(holder_by_counts) + declared_holders = holder_by_counts[highest_count] + + # If we could not determine a holder, then we return a list of all the + # unique key file holders + if not declared_holders: + declared_holders = [entry['value'] for entry in unique_key_file_holders_entries] + + return declared_holders + + +def get_primary_language(programming_language_tallies): """ - Given a list of license expressions, return a mapping of {expression: count - of occurences} + Return the most common detected programming language as the primary language. """ - # TODO: we could normalize and/or sort each license_expression before - # summarization and consider other equivalence or containment checks - return Counter(license_expressions) - - -def language_summarizer(resource, children, keep_details=False): + programming_languages_by_count = { + entry['count']: entry['value'] + for entry in programming_language_tallies + } + primary_language = '' + if programming_languages_by_count: + highest_count = max(programming_languages_by_count) + primary_language = programming_languages_by_count[highest_count] or '' + return primary_language + + +def get_origin_info_from_package_data(key_file_package_data): """ - Populate a programming_language summary list of mappings such as - {value: "programming_language", count: "count of occurences"} - sorted by decreasing count. + Return a 3-tuple containing the strings of declared license expression, + copyright holder, and primary programming language from a list of detected + package data. """ - PROG_LANG = 'programming_language' - languages = [] - prog_lang = getattr(resource, PROG_LANG , []) - if not prog_lang: - if resource.is_file: - # also count files with no detection - languages.append(None) + if not key_file_package_data: + return '', '', '' + + if len(key_file_package_data) > 1: + license_expressions = [] + programming_languages = [] + copyrights = [] + parties = [] + for package_data in key_file_package_data: + license_expression = package_data.get('license_expression') or '' + programming_language = package_data.get('primary_language') or '' + copyright_statement = package_data.get('copyright') or '' + package_parties = package_data.get('parties', []) + license_expressions.append(license_expression) + programming_languages.append(programming_language) + copyrights.append(copyright_statement) + parties.extend(package_parties) + + # Combine license expressions + unique_license_expressions = unique(license_expressions) + combined_declared_license_expression = combine_expressions(unique_license_expressions) + declared_license_expression = '' + if combined_declared_license_expression: + declared_license_expression = str(Licensing().parse(combined_declared_license_expression).simplify()) + + # Get holders + holders = list(get_holders_from_copyright(copyrights)) + declared_holders = [] + if holders: + declared_holders = holders + elif parties: + declared_holders = [party['name'] for party in parties] + + # Programming language + unique_programming_languages = unique(programming_languages) + primary_language = '' + if len(unique_programming_languages) == 1: + primary_language = unique_programming_languages[0] + + return declared_license_expression, declared_holders, primary_language + + package = key_file_package_data[0] + declared_license_expression = package.get('license_expression') or '' + package_primary_language = package.get('primary_language') or '' + + # Determine holders from Package copyright statement + package_copyright = package.get('copyright', '') + package_holders = [] + if package_copyright: + package_holders = list(get_holders_from_copyright(package_copyright)) + + if package_holders: + declared_holder = package_holders else: - languages.append(prog_lang) - - # Collect direct children expression summaries - for child in children: - child_summaries = get_resource_summary(child, key=PROG_LANG, as_attribute=keep_details) or [] - for child_summary in child_summaries: - child_sum_val = child_summary.get('value') - if child_sum_val: - values = [child_sum_val] * child_summary['count'] - languages.extend(values) - - # summarize proper - languages_counter = summarize_languages(languages) - summarized = sorted_counter(languages_counter) - set_resource_summary(resource, key=PROG_LANG, value=summarized, as_attribute=keep_details) - return summarized - - -def summarize_languages(languages): - """ - Given a list of languages, return a mapping of {language: count - of occurences} - """ - # TODO: consider aggregating related langauges (C/C++, etc) - return Counter(languages) - + # If there is no copyright statement on the package, collect the + # detected party members and return them as a holder + declared_holder = [party['name'] for party in package.get('parties', [])] -SUMMARIZABLE_ATTRS = set([ - 'license_expressions', - 'copyrights', - 'holders', - 'authors', - 'programming_language', - # 'packages', -]) + return declared_license_expression, declared_holder, package_primary_language -def summarize_values(values, attribute): +def get_holders_from_copyright(copyright): """ - Given a list of `values` for a given `attribute`, return a mapping of - {value: count of occurences} using a summarization specific to the attribute. + Yield holders detected from a `copyright` string or list. """ - if attribute not in SUMMARIZABLE_ATTRS: - return {} - from summarycode.copyright_summary import summarize_persons - from summarycode.copyright_summary import summarize_copyrights - - value_summarizers_by_attr = dict( - license_expressions=summarize_licenses, - copyrights=summarize_copyrights, - holders=summarize_persons, - authors=summarize_persons, - programming_language=summarize_languages, - ) - return value_summarizers_by_attr[attribute](values) - - -@post_scan_impl -class ScanKeyFilesSummary(PostScanPlugin): - """ - Summarize a scan at the codebase level for only key files. - """ - sort_order = 150 - - # mapping of summary data at the codebase level for key files - codebase_attributes = dict(summary_of_key_files=attr.ib(default=attr.Factory(dict))) - - options = [ - PluggableCommandLineOption(('--summary-key-files',), - is_flag=True, default=False, - help='Summarize license, copyright and other scans for key, ' - 'top-level files. Key files are top-level codebase files such ' - 'as COPYING, README and package manifests as reported by the ' - '--classify option "is_legal", "is_readme", "is_manifest" ' - 'and "is_top_level" flags.', - help_group=POST_SCAN_GROUP, - required_options=['classify', 'summary'] - ) - ] - - def is_enabled(self, summary_key_files, **kwargs): - return summary_key_files - - def process_codebase(self, codebase, summary_key_files, **kwargs): - summarize_codebase_key_files(codebase, **kwargs) - - -def summarize_codebase_key_files(codebase, **kwargs): - """ - Summarize codebase key files. - """ - summarizables = codebase.attributes.summary.keys() - if TRACE: logger_debug('summarizables:', summarizables) - - # TODO: we cannot summarize packages with "key files" for now - summarizables = [k for k in summarizables if k in SUMMARIZABLE_ATTRS] - - # create one counter for each summarized attribute - summarizable_values_by_key = dict([(key, []) for key in summarizables]) - - # filter to get only key files - key_files = (res for res in codebase.walk(topdown=True) - if (res.is_file and res.is_top_level - and (res.is_readme or res.is_legal or res.is_manifest))) - - for resource in key_files: - for key, values in summarizable_values_by_key.items(): - # note we assume things are stored as extra-data, not as direct - # Resource attributes - res_summaries = get_resource_summary(resource, key=key, as_attribute=False) or [] - for summary in res_summaries: - # each summary is a mapping with value/count: we transform back to values - sum_value = summary.get('value') - if sum_value: - values.extend([sum_value] * summary['count']) - - summary_counters = [] - for key, values in summarizable_values_by_key.items(): - if key not in SUMMARIZABLE_ATTRS: - continue - summarized = summarize_values(values, key) - summary_counters.append((key, summarized)) - - sorted_summaries = dict( - [(key, sorted_counter(counter)) for key, counter in summary_counters]) - - codebase.attributes.summary_of_key_files = sorted_summaries - - if TRACE: logger_debug('codebase summary_of_key_files:', sorted_summaries) - - -@post_scan_impl -class ScanByFacetSummary(PostScanPlugin): - """ - Summarize a scan at the codebase level groupping by facets. - """ - sort_order = 200 - codebase_attributes = dict(summary_by_facet=attr.ib(default=attr.Factory(list))) - - options = [ - PluggableCommandLineOption(('--summary-by-facet',), - is_flag=True, default=False, - help='Summarize license, copyright and other scans and group the ' - 'results by facet.', - help_group=POST_SCAN_GROUP, - required_options=['facet', 'summary'] - ) - ] - - def is_enabled(self, summary_by_facet, **kwargs): - return summary_by_facet - - def process_codebase(self, codebase, summary_by_facet, **kwargs): - if TRACE_LIGHT: logger_debug('ScanByFacetSummary:process_codebase') - summarize_codebase_by_facet(codebase, **kwargs) - - -def summarize_codebase_by_facet(codebase, **kwargs): - """ - Summarize codebase by facte. - """ - from summarycode import facet as facet_module - - summarizable = codebase.attributes.summary.keys() - if TRACE: - logger_debug('summarize_codebase_by_facet for attributes:', summarizable) - - # create one group of by-facet values lists for each summarized attribute - summarizable_values_by_key_by_facet = dict([ - (facet, dict([(key, []) for key in summarizable])) - for facet in facet_module.FACETS - ]) - - for resource in codebase.walk(topdown=True): - if not resource.is_file: - continue - - for facet in resource.facets: - # note: this will fail loudly if the facet is not a known one - values_by_attribute = summarizable_values_by_key_by_facet[facet] - for key, values in values_by_attribute.items(): - # note we assume things are stored as extra-data, not as direct - # Resource attributes - res_summaries = get_resource_summary(resource, key=key, as_attribute=False) or [] - for summary in res_summaries: - # each summary is a mapping with value/count: we transform back to discrete values - sum_value = summary.get('value') - if sum_value: - values.extend([sum_value] * summary['count']) - - final_summaries = [] - for facet, summarizable_values_by_key in summarizable_values_by_key_by_facet.items(): - summary_counters = ( - (key, summarize_values(values, key)) - for key, values in summarizable_values_by_key.items() + numbered_lines = [] + if isinstance(copyright, list): + for i, c in enumerate(copyright): + numbered_lines.append( + (i, c) + ) + else: + numbered_lines.append( + (0, copyright) ) - sorted_summaries = dict( - [(key, sorted_counter(counter)) for key, counter in summary_counters]) - - facet_summary = dict(facet=facet) - facet_summary['summary'] = sorted_summaries - final_summaries.append(facet_summary) - - codebase.attributes.summary_by_facet.extend(final_summaries) - - if TRACE: logger_debug('codebase summary_by_facet:', final_summaries) - - -def add_files(packages, resource): - """ - Update in-place every package mapping in the `packages` list by updating or - creating the the "files" attribute from the `resource`. Yield back the - packages. - """ - for package in packages: - files = package['files'] = package.get('files') or [] - fil = resource.to_dict(skinny=True) - if fil not in files: - files.append(fil) - yield package - - -def package_summarizer(resource, children, keep_details=False): - """ - Populate a packages summary list of packages mappings. + holder_detections = CopyrightDetector().detect( + numbered_lines, + include_copyrights=False, + include_holders=True, + include_authors=False, + ) - Note: `keep_details` is never used, as we are not keeping details of - packages as this has no value. - """ - packages = [] - - # Collect current data - current_packages = getattr(resource, 'packages') or [] - - if TRACE_LIGHT and current_packages: - from packagedcode.models import Package - packs = [Package.create(**p) for p in current_packages] - logger_debug('package_summarizer: for:', resource, - 'current_packages are:', packs) - - current_packages = add_files(current_packages, resource) - packages.extend(current_packages) - - if TRACE_LIGHT and packages: - logger_debug() - from packagedcode.models import Package # NOQA - packs = [Package.create(**p) for p in packages] - logger_debug('package_summarizer: for:', resource, - 'packages are:', packs) - - # Collect direct children packages summary - for child in children: - child_summaries = get_resource_summary(child, key='packages', as_attribute=False) or [] - packages.extend(child_summaries) - - # summarize proper - set_resource_summary(resource, key='packages', value=packages, as_attribute=False) - return packages + for holder_detection in holder_detections: + yield holder_detection.holder diff --git a/src/summarycode/summarizer2.py b/src/summarycode/summarizer2.py deleted file mode 100644 index 1f411c7e014..00000000000 --- a/src/summarycode/summarizer2.py +++ /dev/null @@ -1,159 +0,0 @@ -# -# Copyright (c) nexB Inc. and others. All rights reserved. -# ScanCode is a trademark of nexB Inc. -# SPDX-License-Identifier: Apache-2.0 -# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/scancode-toolkit for support or download. -# See https://aboutcode.org for more information about nexB OSS projects. -# - -from collections import Counter - -import attr - -from plugincode.post_scan import PostScanPlugin -from plugincode.post_scan import post_scan_impl -from commoncode.cliutils import PluggableCommandLineOption -from commoncode.cliutils import POST_SCAN_GROUP -from summarycode.utils import sorted_counter -from summarycode.utils import get_resource_summary -from summarycode.utils import set_resource_summary - -# Tracing flags -TRACE = False -TRACE_LIGHT = False - - -def logger_debug(*args): - pass - - -if TRACE or TRACE_LIGHT: - import logging - import sys - - logger = logging.getLogger(__name__) - logging.basicConfig(stream=sys.stdout) - logger.setLevel(logging.DEBUG) - - def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) - -""" -Create summarized scan data. -""" - - -@post_scan_impl -class ScanSummary(PostScanPlugin): - """ - Summarize a scan at the codebase level. - """ - sort_order = 10 - - codebase_attributes = dict(summary=attr.ib(default=attr.Factory(dict))) - - options = [ - PluggableCommandLineOption(('--summary2',), - is_flag=True, default=False, - help='Summarize license, copyright and other scans at the codebase level.', - help_group=POST_SCAN_GROUP, - required_options=['classify', 'license_clarity_score'] - ) - ] - - def is_enabled(self, summary2, **kwargs): - return summary2 - - def process_codebase(self, codebase, summary2, **kwargs): - if TRACE_LIGHT: logger_debug('ScanSummary:process_codebase') - summarize_codebase(codebase, keep_details=False, **kwargs) - - -def summarize_codebase(codebase, keep_details, **kwargs): - """ - Summarize a scan at the codebase level for available scans. - - If `keep_details` is True, also keep file and directory details in the - `summary` file attribute for every file and directory. - """ - from summarycode.copyright_summary import holder_summarizer - - attrib_summarizers = [ - ('license_expressions', license_summarizer), - ('holders', holder_summarizer), - ] - - # find which attributes are available for summarization by checking the root - # resource - root = codebase.root - summarizers = [s for a, s in attrib_summarizers if hasattr(root, a)] - if TRACE: logger_debug('summarize_codebase with summarizers:', summarizers) - - # collect and set resource-level summaries - for resource in codebase.walk(topdown=False): - children = resource.children(codebase) - - for summarizer in summarizers: - _summary_data = summarizer(resource, children, keep_details=keep_details) - if TRACE: - logger_debug( - 'summary for:', resource.path, 'after summarizer:', - summarizer, 'is:', _summary_data, - ) - - codebase.save_resource(resource) - - # set the summary from the root resource at the codebase level - if keep_details: - summary = root.summary - else: - summary = root.extra_data.get('summary', {}) - - codebase.attributes.summary.update(summary) - - if TRACE: logger_debug('codebase summary:', summary) - - -def license_summarizer(resource, children, keep_details=False): - """ - Populate a license_expressions list of mappings such as - {value: "expression", count: "count of occurences"} - sorted by decreasing count. - """ - LIC_EXP = 'license_expressions' - license_expressions = [] - - # Collect current data - lic_expressions = getattr(resource, LIC_EXP, []) - if not lic_expressions and resource.is_file: - # also count files with no detection - license_expressions.append(None) - else: - license_expressions.extend(lic_expressions) - - # Collect direct children expression summary - for child in children: - child_summaries = get_resource_summary(child, key=LIC_EXP, as_attribute=keep_details) or [] - for child_summary in child_summaries: - # TODO: review this: this feels rather weird - child_sum_val = child_summary.get('value') - if child_sum_val: - values = [child_sum_val] * child_summary['count'] - license_expressions.extend(values) - - # summarize proper - licenses_counter = summarize_licenses(license_expressions) - summarized = sorted_counter(licenses_counter) - set_resource_summary(resource, key=LIC_EXP, value=summarized, as_attribute=keep_details) - return summarized - - -def summarize_licenses(license_expressions): - """ - Given a list of license expressions, return a mapping of {expression: count - of occurences} - """ - # TODO: we could normalize and/or sort each license_expression before - # summarization and consider other equivalence or containment checks - return Counter(license_expressions) diff --git a/src/summarycode/tallies.py b/src/summarycode/tallies.py new file mode 100644 index 00000000000..11733871a81 --- /dev/null +++ b/src/summarycode/tallies.py @@ -0,0 +1,468 @@ +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# + +from collections import Counter + +import attr +from commoncode.cliutils import POST_SCAN_GROUP, PluggableCommandLineOption +from plugincode.post_scan import PostScanPlugin, post_scan_impl + +from summarycode.utils import (get_resource_tallies, set_resource_tallies, + sorted_counter) + +# Tracing flags +TRACE = False +TRACE_LIGHT = False + + +def logger_debug(*args): + pass + + +if TRACE or TRACE_LIGHT: + import logging + import sys + + logger = logging.getLogger(__name__) + logging.basicConfig(stream=sys.stdout) + logger.setLevel(logging.DEBUG) + + def logger_debug(*args): + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) + + +""" +Create summarized scan data. +""" + + +@post_scan_impl +class Tallies(PostScanPlugin): + """ + Compute tallies for license, copyright and other scans at the codebase level + """ + sort_order = 10 + + codebase_attributes = dict(tallies=attr.ib(default=attr.Factory(dict))) + + options = [ + PluggableCommandLineOption(('--tallies',), + is_flag=True, default=False, + help='Compute tallies for license, copyright and other scans at the codebase level.', + help_group=POST_SCAN_GROUP) + ] + + def is_enabled(self, tallies, **kwargs): + return tallies + + def process_codebase(self, codebase, tallies, **kwargs): + if TRACE_LIGHT: logger_debug('Tallies:process_codebase') + tallies = compute_codebase_tallies(codebase, keep_details=False, **kwargs) + codebase.attributes.tallies.update(tallies) + + +@post_scan_impl +class TalliesWithDetails(PostScanPlugin): + """ + Compute tallies of different scan attributes of a scan at the codebase level and + keep file and directory details. + + The scan attributes that are tallied are: + - license_expressions + - copyrights + - holders + - authors + - programming_language + - packages + """ + # mapping of tally data at the codebase level for the whole codebase + codebase_attributes = dict(tallies=attr.ib(default=attr.Factory(dict))) + # store tallies at the file and directory level in this attribute when + # keep details is True + resource_attributes = dict(tallies=attr.ib(default=attr.Factory(dict))) + sort_order = 100 + + options = [ + PluggableCommandLineOption(('--tallies-with-details',), + is_flag=True, default=False, + help='Compute tallies of license, copyright and other scans at the codebase level, ' + 'keeping intermediate details at the file and directory level.', + help_group=POST_SCAN_GROUP) + ] + + def is_enabled(self, tallies_with_details, **kwargs): + return tallies_with_details + + def process_codebase(self, codebase, tallies_with_details, **kwargs): + tallies = compute_codebase_tallies(codebase, keep_details=True, **kwargs) + codebase.attributes.tallies.update(tallies) + + +def compute_codebase_tallies(codebase, keep_details, **kwargs): + """ + Compute tallies of a scan at the codebase level for available scans. + + If `keep_details` is True, also keep file and directory details in the + `tallies` file attribute for every file and directory. + """ + from summarycode.copyright_tallies import (author_tallies, + copyright_tallies, + holder_tallies) + + attrib_summarizers = [ + ('license_expressions', license_tallies), + ('copyrights', copyright_tallies), + ('holders', holder_tallies), + ('authors', author_tallies), + ('programming_language', language_tallies), + ('packages', package_tallies), + ] + + # find which attributes are available for summarization by checking the root + # resource + root = codebase.root + summarizers = [s for a, s in attrib_summarizers if hasattr(root, a)] + if TRACE: logger_debug('compute_codebase_tallies with:', summarizers) + + # collect and set resource-level summaries + for resource in codebase.walk(topdown=False): + children = resource.children(codebase) + + for summarizer in summarizers: + _summary_data = summarizer(resource, children, keep_details=keep_details) + if TRACE: logger_debug('tallies for:', resource.path, 'after tallies:', summarizer, 'is:', _summary_data) + + codebase.save_resource(resource) + + # set the tallies from the root resource at the codebase level + if keep_details: + tallies = root.tallies + else: + tallies = root.extra_data.get('tallies', {}) + + if TRACE: logger_debug('codebase tallies:', tallies) + return tallies + + +def license_tallies(resource, children, keep_details=False): + """ + Populate a license_expressions list of mappings such as + {value: "expression", count: "count of occurences"} + sorted by decreasing count. + """ + LIC_EXP = 'license_expressions' + license_expressions = [] + + # Collect current data + lic_expressions = getattr(resource, LIC_EXP , []) + if not lic_expressions and resource.is_file: + # also count files with no detection + license_expressions.append(None) + else: + license_expressions.extend(lic_expressions) + + # Collect direct children expression tallies + for child in children: + child_tallies = get_resource_tallies(child, key=LIC_EXP, as_attribute=keep_details) or [] + for child_tally in child_tallies: + # TODO: review this: this feels rather weird + child_sum_val = child_tally.get('value') + if child_sum_val: + values = [child_sum_val] * child_tally['count'] + license_expressions.extend(values) + + # summarize proper + licenses_counter = tally_licenses(license_expressions) + tallied = sorted_counter(licenses_counter) + set_resource_tallies(resource, key=LIC_EXP, value=tallied, as_attribute=keep_details) + return tallied + + +def tally_licenses(license_expressions): + """ + Given a list of license expressions, return a mapping of {expression: count + of occurences} + """ + # TODO: we could normalize and/or sort each license_expression before + # summarization and consider other equivalence or containment checks + return Counter(license_expressions) + + +def language_tallies(resource, children, keep_details=False): + """ + Populate a programming_language tallies list of mappings such as + {value: "programming_language", count: "count of occurences"} + sorted by decreasing count. + """ + PROG_LANG = 'programming_language' + languages = [] + prog_lang = getattr(resource, PROG_LANG , []) + if not prog_lang: + if resource.is_file: + # also count files with no detection + languages.append(None) + else: + languages.append(prog_lang) + + # Collect direct children expression summaries + for child in children: + child_tallies = get_resource_tallies(child, key=PROG_LANG, as_attribute=keep_details) or [] + for child_tally in child_tallies: + child_sum_val = child_tally.get('value') + if child_sum_val: + values = [child_sum_val] * child_tally['count'] + languages.extend(values) + + # summarize proper + languages_counter = tally_languages(languages) + tallied = sorted_counter(languages_counter) + set_resource_tallies(resource, key=PROG_LANG, value=tallied, as_attribute=keep_details) + return tallied + + +def tally_languages(languages): + """ + Given a list of languages, return a mapping of {language: count + of occurences} + """ + # TODO: consider aggregating related langauges (C/C++, etc) + return Counter(languages) + + +TALLYABLE_ATTRS = set([ + 'license_expressions', + 'copyrights', + 'holders', + 'authors', + 'programming_language', + # 'packages', +]) + + +def tally_values(values, attribute): + """ + Given a list of `values` for a given `attribute`, return a mapping of + {value: count of occurences} using a tallier specific to the attribute. + """ + if attribute not in TALLYABLE_ATTRS: + return {} + from summarycode.copyright_tallies import tally_copyrights, tally_persons + + value_talliers_by_attr = dict( + license_expressions=tally_licenses, + copyrights=tally_copyrights, + holders=tally_persons, + authors=tally_persons, + programming_language=tally_languages, + ) + return value_talliers_by_attr[attribute](values) + + +@post_scan_impl +class KeyFilesTallies(PostScanPlugin): + """ + Compute tallies of a scan at the codebase level for only key files. + """ + sort_order = 150 + + # mapping of tally data at the codebase level for key files + codebase_attributes = dict(tallies_of_key_files=attr.ib(default=attr.Factory(dict))) + + options = [ + PluggableCommandLineOption(('--tallies-key-files',), + is_flag=True, default=False, + help='Compute tallies for license, copyright and other scans for key, ' + 'top-level files. Key files are top-level codebase files such ' + 'as COPYING, README and package manifests as reported by the ' + '--classify option "is_legal", "is_readme", "is_manifest" ' + 'and "is_top_level" flags.', + help_group=POST_SCAN_GROUP, + required_options=['classify', 'tallies'] + ) + ] + + def is_enabled(self, tallies_key_files, **kwargs): + return tallies_key_files + + def process_codebase(self, codebase, tallies_key_files, **kwargs): + tally_codebase_key_files(codebase, **kwargs) + + +def tally_codebase_key_files(codebase, field='tallies', **kwargs): + """ + Summarize codebase key files. + """ + talliables = codebase.attributes.tallies.keys() + if TRACE: logger_debug('tallieables:', talliables) + + # TODO: we cannot summarize packages with "key files" for now + talliables = [k for k in talliables if k in TALLYABLE_ATTRS] + + # create one counter for each summarized attribute + talliable_values_by_key = dict([(key, []) for key in talliables]) + + # filter to get only key files + key_files = (res for res in codebase.walk(topdown=True) + if (res.is_file and res.is_top_level + and (res.is_readme or res.is_legal or res.is_manifest))) + + for resource in key_files: + for key, values in talliable_values_by_key.items(): + # note we assume things are stored as extra-data, not as direct + # Resource attributes + res_tallies = get_resource_tallies(resource, key=key, as_attribute=False) or [] + for tally in res_tallies: + # each tally is a mapping with value/count: we transform back to values + tally_value = tally.get('value') + if tally_value: + values.extend([tally_value] * tally['count']) + + tally_counters = [] + for key, values in talliable_values_by_key.items(): + if key not in TALLYABLE_ATTRS: + continue + tallied = tally_values(values, key) + tally_counters.append((key, tallied)) + + sorted_tallies = dict( + [(key, sorted_counter(counter)) for key, counter in tally_counters]) + + codebase.attributes.tallies_of_key_files = sorted_tallies + + if TRACE: logger_debug('codebase tallies_of_key_files:', sorted_tallies) + + +@post_scan_impl +class FacetTallies(PostScanPlugin): + """ + Compute tallies for a scan at the codebase level, grouping by facets. + """ + sort_order = 200 + codebase_attributes = dict(tallies_by_facet=attr.ib(default=attr.Factory(list))) + + options = [ + PluggableCommandLineOption(('--tallies-by-facet',), + is_flag=True, default=False, + help='Compute tallies for license, copyright and other scans and group the ' + 'results by facet.', + help_group=POST_SCAN_GROUP, + required_options=['facet', 'tallies'] + ) + ] + + def is_enabled(self, tallies_by_facet, **kwargs): + return tallies_by_facet + + def process_codebase(self, codebase, tallies_by_facet, **kwargs): + if TRACE_LIGHT: logger_debug('FacetTallies:process_codebase') + tally_codebase_by_facet(codebase, **kwargs) + + +def tally_codebase_by_facet(codebase, **kwargs): + """ + Summarize codebase by facte. + """ + from summarycode import facet as facet_module + + talliable = codebase.attributes.tallies.keys() + if TRACE: + logger_debug('tally_codebase_by_facet for attributes:', talliable) + + # create one group of by-facet values lists for each summarized attribute + talliable_values_by_key_by_facet = dict([ + (facet, dict([(key, []) for key in talliable])) + for facet in facet_module.FACETS + ]) + + for resource in codebase.walk(topdown=True): + if not resource.is_file: + continue + + for facet in resource.facets: + # note: this will fail loudly if the facet is not a known one + values_by_attribute = talliable_values_by_key_by_facet[facet] + for key, values in values_by_attribute.items(): + # note we assume things are stored as extra-data, not as direct + # Resource attributes + res_tallies = get_resource_tallies(resource, key=key, as_attribute=False) or [] + for tally in res_tallies: + # each tally is a mapping with value/count: we transform back to discrete values + tally_value = tally.get('value') + if tally_value: + values.extend([tally_value] * tally['count']) + + final_tallies = [] + for facet, talliable_values_by_key in talliable_values_by_key_by_facet.items(): + tally_counters = ( + (key, tally_values(values, key)) + for key, values in talliable_values_by_key.items() + ) + + sorted_tallies = dict( + [(key, sorted_counter(counter)) for key, counter in tally_counters]) + + facet_tally = dict(facet=facet) + facet_tally['tallies'] = sorted_tallies + final_tallies.append(facet_tally) + + codebase.attributes.tallies_by_facet.extend(final_tallies) + + if TRACE: logger_debug('codebase tallies_by_facet:', final_tallies) + + +def add_files(packages, resource): + """ + Update in-place every package mapping in the `packages` list by updating or + creating the the "files" attribute from the `resource`. Yield back the + packages. + """ + for package in packages: + files = package['files'] = package.get('files') or [] + fil = resource.to_dict(skinny=True) + if fil not in files: + files.append(fil) + yield package + + +def package_tallies(resource, children, keep_details=False): + """ + Populate a packages tally list of packages mappings. + + Note: `keep_details` is never used, as we are not keeping details of + packages as this has no value. + """ + packages = [] + + # Collect current data + current_packages = getattr(resource, 'packages') or [] + + if TRACE_LIGHT and current_packages: + from packagedcode.models import Package + packs = [Package.create(**p) for p in current_packages] + logger_debug('package_tallier: for:', resource, + 'current_packages are:', packs) + + current_packages = add_files(current_packages, resource) + packages.extend(current_packages) + + if TRACE_LIGHT and packages: + logger_debug() + from packagedcode.models import Package # NOQA + packs = [Package.create(**p) for p in packages] + logger_debug('package_tallier: for:', resource, + 'packages are:', packs) + + # Collect direct children packages tallies + for child in children: + child_tallies = get_resource_tallies(child, key='packages', as_attribute=False) or [] + packages.extend(child_tallies) + + # summarize proper + set_resource_tallies(resource, key='packages', value=packages, as_attribute=False) + return packages diff --git a/src/summarycode/utils.py b/src/summarycode/utils.py index 7cbf01ab22d..def888e8952 100644 --- a/src/summarycode/utils.py +++ b/src/summarycode/utils.py @@ -58,3 +58,37 @@ def by_count_value(value_count): dict([('value', value), ('count', count)]) for value, count in sorted(counter.items(), key=by_count_value)] return summarized + + +def get_resource_tallies(resource, key, as_attribute=False): + """ + Return the "tallies" value as mapping for the `key` tallies attribute of a + resource. + + This is collected either from a direct Resource.tallies attribute if + `as_attribute` is True or as a Resource.extra_data tallies item otherwise. + """ + if as_attribute: + tallies = resource.tallies + else: + tallies = resource.extra_data.get('tallies', {}) + tallies = tallies or {} + return tallies.get(key) or None + + +def set_resource_tallies(resource, key, value, as_attribute=False): + """ + Set `value` as the "tallies" value for the `key` tallies attribute of a + resource + + This is set either in a direct Resource.tallies attribute if `as_attribute` + is True or as a Resource.extra_data tallies item otherwise. + """ + if as_attribute: + resource.tallies[key] = value + else: + tallies = resource.extra_data.get('tallies') + if not tallies: + tallies = dict([(key, value)]) + resource.extra_data['tallies'] = tallies + tallies[key] = value diff --git a/tests/cluecode/cluecode_test_utils.py b/tests/cluecode/cluecode_test_utils.py index 70777b263ee..31795ec46e7 100644 --- a/tests/cluecode/cluecode_test_utils.py +++ b/tests/cluecode/cluecode_test_utils.py @@ -175,8 +175,8 @@ def make_copyright_test_functions( name. Create only a single function for multiple tests (e.g. copyrights and holders together). """ - from summarycode.copyright_summary import summarize_copyrights - from summarycode.copyright_summary import summarize_persons + from summarycode.copyright_tallies import tally_copyrights + from summarycode.copyright_tallies import tally_persons def closure_test_function(*args, **kwargs): detections = detect_copyrights(test_file) @@ -184,15 +184,15 @@ def closure_test_function(*args, **kwargs): holders_summary = [] if 'holders_summary' in test.what: - holders_summary = as_sorted_mapping(summarize_persons(holders)) + holders_summary = as_sorted_mapping(tally_persons(holders)) copyrights_summary = [] if 'copyrights_summary' in test.what: - copyrights_summary = as_sorted_mapping(summarize_copyrights(copyrights)) + copyrights_summary = as_sorted_mapping(tally_copyrights(copyrights)) authors_summary = [] if 'authors_summary' in test.what: - authors_summary = as_sorted_mapping(summarize_persons(authors)) + authors_summary = as_sorted_mapping(tally_persons(authors)) results = dict( copyrights=copyrights, diff --git a/tests/cluecode/data/authors/plain-name-author.txt.yml b/tests/cluecode/data/authors/plain-name-author.txt.yml index abfcf565064..a80c0f83d1e 100644 --- a/tests/cluecode/data/authors/plain-name-author.txt.yml +++ b/tests/cluecode/data/authors/plain-name-author.txt.yml @@ -1,10 +1,3 @@ what: - authors - authors_summary -# we should find that -#authors: -# - john -# - John -#authors_summary: -# - value: john -# count: 2 diff --git a/tests/cluecode/data/copyrights/03e16f6c_0-e_f_c.0.yml b/tests/cluecode/data/copyrights/03e16f6c_0-e_f_c.0.yml index f54230c3c20..b73d7b2beb5 100644 --- a/tests/cluecode/data/copyrights/03e16f6c_0-e_f_c.0.yml +++ b/tests/cluecode/data/copyrights/03e16f6c_0-e_f_c.0.yml @@ -11,5 +11,5 @@ holders: - Microsoft Corp. - Microsoft holders_summary: - - value: Microsoft Corp. + - value: Microsoft count: 3 diff --git a/tests/cluecode/data/copyrights/AssemblyInfoCommon.cs.yml b/tests/cluecode/data/copyrights/AssemblyInfoCommon.cs.yml index 5766b46e9aa..5ed016a09e3 100644 --- a/tests/cluecode/data/copyrights/AssemblyInfoCommon.cs.yml +++ b/tests/cluecode/data/copyrights/AssemblyInfoCommon.cs.yml @@ -9,5 +9,5 @@ holders: - Microsoft Corporation - Microsoft Corporation holders_summary: - - value: Microsoft Corporation + - value: Microsoft count: 2 diff --git a/tests/cluecode/data/copyrights/cern-copyrights_4.txt.yml b/tests/cluecode/data/copyrights/cern-copyrights_4.txt.yml index 0de63dff631..b773facc62e 100644 --- a/tests/cluecode/data/copyrights/cern-copyrights_4.txt.yml +++ b/tests/cluecode/data/copyrights/cern-copyrights_4.txt.yml @@ -8,4 +8,3 @@ copyrights: holders: - CERN - CERN - diff --git a/tests/cluecode/data/copyrights/complex-punctuation.txt.yml b/tests/cluecode/data/copyrights/complex-punctuation.txt.yml index f4079004297..fd9accb2e3d 100644 --- a/tests/cluecode/data/copyrights/complex-punctuation.txt.yml +++ b/tests/cluecode/data/copyrights/complex-punctuation.txt.yml @@ -2,5 +2,3 @@ what: - copyrights copyrights: - Copyright 2018-2019 paritytech/substrate-light-ui authors & contributors - - diff --git a/tests/cluecode/data/copyrights/contributors.txt.yml b/tests/cluecode/data/copyrights/contributors.txt.yml index 6f2b90915b7..c341c2fcf78 100644 --- a/tests/cluecode/data/copyrights/contributors.txt.yml +++ b/tests/cluecode/data/copyrights/contributors.txt.yml @@ -2,5 +2,3 @@ what: - copyrights copyrights: - Copyright (c) 2015, Contributors - - diff --git a/tests/cluecode/data/copyrights/copyright-discussion-false-positive.txt.yml b/tests/cluecode/data/copyrights/copyright-discussion-false-positive.txt.yml index c1cd6f06203..53bd66e12a0 100644 --- a/tests/cluecode/data/copyrights/copyright-discussion-false-positive.txt.yml +++ b/tests/cluecode/data/copyrights/copyright-discussion-false-positive.txt.yml @@ -7,4 +7,3 @@ copyrights: - Copyright (c) 1990-2005, 2007-2009 Free Software Foundation, Inc. - A. (c) B. (c) - C. copyright D. (c) - diff --git a/tests/cluecode/data/copyrights/debian_lib_1-libmono_cairo_cil.label.yml b/tests/cluecode/data/copyrights/debian_lib_1-libmono_cairo_cil.label.yml index fe36b11e90c..a0316e30be8 100644 --- a/tests/cluecode/data/copyrights/debian_lib_1-libmono_cairo_cil.label.yml +++ b/tests/cluecode/data/copyrights/debian_lib_1-libmono_cairo_cil.label.yml @@ -52,7 +52,7 @@ holders_summary: count: 1 - value: LShift Ltd. count: 1 - - value: Microsoft Corporation + - value: Microsoft count: 1 - value: Novell count: 1 diff --git a/tests/cluecode/data/copyrights/debian_lib_2-libmono_cairo_cil.copyright.yml b/tests/cluecode/data/copyrights/debian_lib_2-libmono_cairo_cil.copyright.yml index 583cb60faad..da4ca679b7b 100644 --- a/tests/cluecode/data/copyrights/debian_lib_2-libmono_cairo_cil.copyright.yml +++ b/tests/cluecode/data/copyrights/debian_lib_2-libmono_cairo_cil.copyright.yml @@ -52,7 +52,7 @@ holders_summary: count: 1 - value: LShift Ltd. count: 1 - - value: Microsoft Corporation + - value: Microsoft count: 1 - value: Novell count: 1 diff --git a/tests/cluecode/data/copyrights/debian_lib_3-libmono_security_cil.copyright.yml b/tests/cluecode/data/copyrights/debian_lib_3-libmono_security_cil.copyright.yml index 9a620a3b4da..9eaabd275b5 100644 --- a/tests/cluecode/data/copyrights/debian_lib_3-libmono_security_cil.copyright.yml +++ b/tests/cluecode/data/copyrights/debian_lib_3-libmono_security_cil.copyright.yml @@ -52,7 +52,7 @@ holders_summary: count: 1 - value: LShift Ltd. count: 1 - - value: Microsoft Corporation + - value: Microsoft count: 1 - value: Novell count: 1 diff --git a/tests/cluecode/data/copyrights/line-set.txt.yml b/tests/cluecode/data/copyrights/line-set.txt.yml index 1a0b9426fd5..2d25dafc144 100644 --- a/tests/cluecode/data/copyrights/line-set.txt.yml +++ b/tests/cluecode/data/copyrights/line-set.txt.yml @@ -1,4 +1,5 @@ what: - copyrights copyrights: - - Copyright (c) 2007-2010 Sharon Rosner, Wayne E. Seguin, Aman Gupta, Adrian Madrid, Jeremy Evans + - Copyright (c) 2007-2010 Sharon Rosner, Wayne E. Seguin, Aman Gupta, Adrian Madrid, Jeremy + Evans diff --git a/tests/cluecode/data/copyrights/misco/german-1.txt.yml b/tests/cluecode/data/copyrights/misco/german-1.txt.yml index 76bcd531d66..348ec2c9967 100644 --- a/tests/cluecode/data/copyrights/misco/german-1.txt.yml +++ b/tests/cluecode/data/copyrights/misco/german-1.txt.yml @@ -5,4 +5,3 @@ copyrights: - Copyright (x) 1998-2021 ActiveVB. holders: - ActiveVB - \ No newline at end of file diff --git a/tests/cluecode/data/copyrights/no-copyright-in-gibberish.txt.yml b/tests/cluecode/data/copyrights/no-copyright-in-gibberish.txt.yml index 58645ecb5c4..6c205e2c09c 100644 --- a/tests/cluecode/data/copyrights/no-copyright-in-gibberish.txt.yml +++ b/tests/cluecode/data/copyrights/no-copyright-in-gibberish.txt.yml @@ -2,4 +2,3 @@ what: - copyrights copyrights: - copyright (c) Microsoft - diff --git a/tests/cluecode/data/copyrights/no_holder_java-java.java.yml b/tests/cluecode/data/copyrights/no_holder_java-java.java.yml index f06c0e50ee7..fb7ef2e11a0 100644 --- a/tests/cluecode/data/copyrights/no_holder_java-java.java.yml +++ b/tests/cluecode/data/copyrights/no_holder_java-java.java.yml @@ -9,4 +9,3 @@ holders: holders_summary: - value: Company count: 1 - diff --git a/tests/cluecode/data/copyrights/not-an-email-start.txt.yml b/tests/cluecode/data/copyrights/not-an-email-start.txt.yml index bc83e542838..488506227f6 100644 --- a/tests/cluecode/data/copyrights/not-an-email-start.txt.yml +++ b/tests/cluecode/data/copyrights/not-an-email-start.txt.yml @@ -1,4 +1,3 @@ what: - copyrights -copyrights: notes: nothing to find here diff --git a/tests/cluecode/data/copyrights/sarl.txt.yml b/tests/cluecode/data/copyrights/sarl.txt.yml index 3bc014e63b9..e7d723ae3dd 100644 --- a/tests/cluecode/data/copyrights/sarl.txt.yml +++ b/tests/cluecode/data/copyrights/sarl.txt.yml @@ -2,9 +2,8 @@ what: - copyrights - holders copyrights: - - Copyright (c) 2010-2020 Oryx Embedded SARL. - - Copyright (c) 2010-2013 S.A.R.L Ether Creation (http://www.ethercreation.com) + - Copyright (c) 2010-2020 Oryx Embedded SARL. + - Copyright (c) 2010-2013 S.A.R.L Ether Creation (http://www.ethercreation.com) holders: - - Oryx Embedded SARL. - - S.A.R.L Ether Creation - \ No newline at end of file + - Oryx Embedded SARL. + - S.A.R.L Ether Creation diff --git a/tests/cluecode/data/copyrights/spdx-copy-contrib.txt.yml b/tests/cluecode/data/copyrights/spdx-copy-contrib.txt.yml index bc309903f09..b822a1fdef0 100644 --- a/tests/cluecode/data/copyrights/spdx-copy-contrib.txt.yml +++ b/tests/cluecode/data/copyrights/spdx-copy-contrib.txt.yml @@ -2,13 +2,11 @@ what: - copyrights - holders - authors - copyrights: - - Copyright 2008 Red Hat Inc. + - Copyright 2008 Red Hat Inc. holders: - - Red Hat Inc. + - Red Hat Inc. authors: - - Adam Jackson - - Bill Nottingham - - Ray Strode - + - Adam Jackson + - Bill Nottingham + - Ray Strode diff --git a/tests/cluecode/data/copyrights/trailing-there.txt.yml b/tests/cluecode/data/copyrights/trailing-there.txt.yml index 834844d60a3..7c583ec2dd5 100644 --- a/tests/cluecode/data/copyrights/trailing-there.txt.yml +++ b/tests/cluecode/data/copyrights/trailing-there.txt.yml @@ -3,5 +3,3 @@ what: copyrights: - Copyright (c) 2007-2018 Free Software Foundation, Inc. - Copyright 2011 Free Software Foundation, Inc. - - diff --git a/tests/cluecode/data/copyrights/w3c.txt.yml b/tests/cluecode/data/copyrights/w3c.txt.yml index 1729ca43716..082670b956a 100644 --- a/tests/cluecode/data/copyrights/w3c.txt.yml +++ b/tests/cluecode/data/copyrights/w3c.txt.yml @@ -5,4 +5,3 @@ copyrights: - Copyright (c) World Wide Web Consortium holders: - World Wide Web Consortium - \ No newline at end of file diff --git a/tests/cluecode/data/copyrights/w3c2.txt.yml b/tests/cluecode/data/copyrights/w3c2.txt.yml index ebd535aa230..6810395d835 100644 --- a/tests/cluecode/data/copyrights/w3c2.txt.yml +++ b/tests/cluecode/data/copyrights/w3c2.txt.yml @@ -5,4 +5,3 @@ copyrights: - Copyright (c) World Wide holders: - World Wide - diff --git a/tests/cluecode/data/generated/copyright_43.txt.yml b/tests/cluecode/data/generated/copyright_43.txt.yml index f1b836e6a6e..176f625df82 100644 --- a/tests/cluecode/data/generated/copyright_43.txt.yml +++ b/tests/cluecode/data/generated/copyright_43.txt.yml @@ -3,8 +3,6 @@ what: - copyrights - authors copyrights: -# - Copyright (c) 2002-2010, Industrial Light & Magic, a division of Lucas // Digital Ltd. LLC - Copyright (c) 2002-2010, Industrial Light & Magic holders: -# - Industrial Light & Magic, a division of Lucas // Digital Ltd. LLC - Industrial Light & Magic diff --git a/tests/cluecode/data/generated/copyright_49.txt.yml b/tests/cluecode/data/generated/copyright_49.txt.yml index 59abf93e587..c4a5b74c50a 100644 --- a/tests/cluecode/data/generated/copyright_49.txt.yml +++ b/tests/cluecode/data/generated/copyright_49.txt.yml @@ -3,10 +3,8 @@ what: - copyrights - authors copyrights: -# - Copyright (c) 2006, Industrial Light & Magic, a division of Lucasfilm Entertainment Company Ltd. - Copyright (c) 2006, Industrial Light & Magic - copyright held by others as indicated holders: -# - Industrial Light & Magic, a division of Lucasfilm Entertainment Company Ltd. - Industrial Light & Magic - others as indicated diff --git a/tests/cluecode/data/holders/holder_young_c-c.c.yml b/tests/cluecode/data/holders/holder_young_c-c.c.yml index 8c4a0284064..d7dd8fef68c 100644 --- a/tests/cluecode/data/holders/holder_young_c-c.c.yml +++ b/tests/cluecode/data/holders/holder_young_c-c.c.yml @@ -9,4 +9,3 @@ holders_summary: count: 1 - value: Tim Hudson count: 1 - diff --git a/tests/cluecode/data/ics/iptables-extensions/libxt_TEE.c.yml b/tests/cluecode/data/ics/iptables-extensions/libxt_TEE.c.yml index 0f05b509e03..bda05805746 100644 --- a/tests/cluecode/data/ics/iptables-extensions/libxt_TEE.c.yml +++ b/tests/cluecode/data/ics/iptables-extensions/libxt_TEE.c.yml @@ -16,4 +16,3 @@ expected_failures: - copyrights - holders - holders_summary - \ No newline at end of file diff --git a/tests/cluecode/data/ics/libvpx-examples-includes-PHP-SmartyPants-1.5.1e/smartypants.php.yml b/tests/cluecode/data/ics/libvpx-examples-includes-PHP-SmartyPants-1.5.1e/smartypants.php.yml index 8b927411507..11ac9206af4 100644 --- a/tests/cluecode/data/ics/libvpx-examples-includes-PHP-SmartyPants-1.5.1e/smartypants.php.yml +++ b/tests/cluecode/data/ics/libvpx-examples-includes-PHP-SmartyPants-1.5.1e/smartypants.php.yml @@ -19,4 +19,3 @@ holders_summary: count: 2 expected_failures: - copyrights - \ No newline at end of file diff --git a/tests/cluecode/data/ics/openssl-crypto-rand/rand_win.c.yml b/tests/cluecode/data/ics/openssl-crypto-rand/rand_win.c.yml index c5ba591e286..aaf469a0bd8 100644 --- a/tests/cluecode/data/ics/openssl-crypto-rand/rand_win.c.yml +++ b/tests/cluecode/data/ics/openssl-crypto-rand/rand_win.c.yml @@ -15,7 +15,7 @@ holders: holders_summary: - value: Eric Young count: 1 - - value: Microsoft Corp. + - value: Microsoft count: 1 - value: The OpenSSL Project count: 1 diff --git a/tests/cluecode/data/ics/quake-quake-src-QW-client/qwcl.plg.yml b/tests/cluecode/data/ics/quake-quake-src-QW-client/qwcl.plg.yml index d49e6426c33..4a0b0c38d14 100644 --- a/tests/cluecode/data/ics/quake-quake-src-QW-client/qwcl.plg.yml +++ b/tests/cluecode/data/ics/quake-quake-src-QW-client/qwcl.plg.yml @@ -73,5 +73,5 @@ holders: - Microsoft Corp - Microsoft Corp holders_summary: - - value: Microsoft Corp. + - value: Microsoft count: 34 diff --git a/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/d3d.h.yml b/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/d3d.h.yml index 20e27d5eec4..03f1bd498d4 100644 --- a/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/d3d.h.yml +++ b/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/d3d.h.yml @@ -7,5 +7,5 @@ copyrights: holders: - Microsoft Corporation holders_summary: - - value: Microsoft Corporation + - value: Microsoft count: 1 diff --git a/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/ddraw.h.yml b/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/ddraw.h.yml index 6174be7b342..d9e2917115a 100644 --- a/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/ddraw.h.yml +++ b/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/ddraw.h.yml @@ -7,5 +7,5 @@ copyrights: holders: - Microsoft Corporation holders_summary: - - value: Microsoft Corporation + - value: Microsoft count: 1 diff --git a/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/dinput.h.yml b/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/dinput.h.yml index 3f3ae79d246..44fd7847337 100644 --- a/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/dinput.h.yml +++ b/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/dinput.h.yml @@ -7,5 +7,5 @@ copyrights: holders: - Microsoft Corporation holders_summary: - - value: Microsoft Corporation + - value: Microsoft count: 1 diff --git a/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/dplay.h.yml b/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/dplay.h.yml index c1003d4ed58..4af00dce408 100644 --- a/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/dplay.h.yml +++ b/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/dplay.h.yml @@ -7,5 +7,5 @@ copyrights: holders: - Microsoft Corporation holders_summary: - - value: Microsoft Corporation + - value: Microsoft count: 1 diff --git a/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/dsound.h.yml b/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/dsound.h.yml index a41669390bc..442fea1e051 100644 --- a/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/dsound.h.yml +++ b/tests/cluecode/data/ics/quake-quake-src-QW-dxsdk-sdk-inc/dsound.h.yml @@ -7,5 +7,5 @@ copyrights: holders: - Microsoft Corporation holders_summary: - - value: Microsoft Corporation + - value: Microsoft count: 1 diff --git a/tests/cluecode/data/ics/quake-quake-src-WinQuake/WinQuake.plg.yml b/tests/cluecode/data/ics/quake-quake-src-WinQuake/WinQuake.plg.yml index e2f8b4de748..91e2bdb875b 100644 --- a/tests/cluecode/data/ics/quake-quake-src-WinQuake/WinQuake.plg.yml +++ b/tests/cluecode/data/ics/quake-quake-src-WinQuake/WinQuake.plg.yml @@ -77,5 +77,5 @@ holders: - Microsoft Corp - Microsoft Corp holders_summary: - - value: Microsoft Corp. + - value: Microsoft count: 36 diff --git a/tests/cluecode/data/ics/quake-quake-src-WinQuake/mpdosock.h.yml b/tests/cluecode/data/ics/quake-quake-src-WinQuake/mpdosock.h.yml index 606e7932aa8..187e3df369c 100644 --- a/tests/cluecode/data/ics/quake-quake-src-WinQuake/mpdosock.h.yml +++ b/tests/cluecode/data/ics/quake-quake-src-WinQuake/mpdosock.h.yml @@ -9,7 +9,7 @@ holders: - Microsoft Corp. - Regents of the University of California holders_summary: - - value: Microsoft Corp. + - value: Microsoft count: 1 - value: The Regents of the University of California count: 1 diff --git a/tests/cluecode/data/plugin_email_url/emails-threshold.expected.json b/tests/cluecode/data/plugin_email_url/emails-threshold.expected.json index 77558237225..ab4513c0014 100644 --- a/tests/cluecode/data/plugin_email_url/emails-threshold.expected.json +++ b/tests/cluecode/data/plugin_email_url/emails-threshold.expected.json @@ -10,10 +10,12 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 2 } } diff --git a/tests/cluecode/data/plugin_email_url/emails.expected.json b/tests/cluecode/data/plugin_email_url/emails.expected.json index ba793f46f12..946f18600ae 100644 --- a/tests/cluecode/data/plugin_email_url/emails.expected.json +++ b/tests/cluecode/data/plugin_email_url/emails.expected.json @@ -9,10 +9,12 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 2 } } diff --git a/tests/cluecode/data/plugin_email_url/urls-threshold.expected.json b/tests/cluecode/data/plugin_email_url/urls-threshold.expected.json index edb2226a3e3..c6df8d48544 100644 --- a/tests/cluecode/data/plugin_email_url/urls-threshold.expected.json +++ b/tests/cluecode/data/plugin_email_url/urls-threshold.expected.json @@ -10,10 +10,12 @@ "--url": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 2 } } diff --git a/tests/cluecode/data/plugin_email_url/urls.expected.json b/tests/cluecode/data/plugin_email_url/urls.expected.json index b738da1bd71..070893e191a 100644 --- a/tests/cluecode/data/plugin_email_url/urls.expected.json +++ b/tests/cluecode/data/plugin_email_url/urls.expected.json @@ -9,10 +9,12 @@ "--url": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 2 } } diff --git a/tests/cluecode/data/plugin_filter_clues/filtered-expected.json b/tests/cluecode/data/plugin_filter_clues/filtered-expected.json index 9ab7b23acb5..6dc61322f26 100644 --- a/tests/cluecode/data/plugin_filter_clues/filtered-expected.json +++ b/tests/cluecode/data/plugin_filter_clues/filtered-expected.json @@ -16,8 +16,9 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 1 } } diff --git a/tests/cluecode/data/plugin_filter_clues/filtered-expected2.json b/tests/cluecode/data/plugin_filter_clues/filtered-expected2.json index 1fc766a93dc..01dcb868317 100644 --- a/tests/cluecode/data/plugin_filter_clues/filtered-expected2.json +++ b/tests/cluecode/data/plugin_filter_clues/filtered-expected2.json @@ -16,8 +16,9 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 1 } } diff --git a/tests/cluecode/data/plugin_filter_clues/filtered-expected3.json b/tests/cluecode/data/plugin_filter_clues/filtered-expected3.json index 5920dac9f40..c6142dc058e 100644 --- a/tests/cluecode/data/plugin_filter_clues/filtered-expected3.json +++ b/tests/cluecode/data/plugin_filter_clues/filtered-expected3.json @@ -13,9 +13,12 @@ "--url": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { + "spdx_license_list_version": "3.16", "files_count": 1 } } @@ -33,12 +36,12 @@ "sha256": "408dfe8f9a70ea7bc9feaa9f77fb731ada0c26dc39008fdc5ead52d0442c656f", "mime_type": "text/plain", "file_type": "ASCII text", - "programming_language": null, + "programming_language": "verilog", "is_binary": false, "is_text": true, "is_archive": false, "is_media": false, - "is_source": false, + "is_source": true, "is_script": false, "licenses": [ { diff --git a/tests/cluecode/data/plugin_ignore_copyrights/authors.expected.json b/tests/cluecode/data/plugin_ignore_copyrights/authors.expected.json index 906be2d91e9..926e5f72f1a 100644 --- a/tests/cluecode/data/plugin_ignore_copyrights/authors.expected.json +++ b/tests/cluecode/data/plugin_ignore_copyrights/authors.expected.json @@ -14,8 +14,9 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 5 } } diff --git a/tests/cluecode/data/plugin_ignore_copyrights/holders.expected.json b/tests/cluecode/data/plugin_ignore_copyrights/holders.expected.json index 2a2216b19c3..09ea262cff8 100644 --- a/tests/cluecode/data/plugin_ignore_copyrights/holders.expected.json +++ b/tests/cluecode/data/plugin_ignore_copyrights/holders.expected.json @@ -14,8 +14,9 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 5 } } diff --git a/tests/formattedcode/data/csv/expressions/expected.csv b/tests/formattedcode/data/csv/expressions/expected.csv index 1d0b9dd50e5..bd0ea219254 100644 --- a/tests/formattedcode/data/csv/expressions/expected.csv +++ b/tests/formattedcode/data/csv/expressions/expected.csv @@ -1,4 +1,4 @@ -path,type,scan_errors,license_expression -apache-2.0.LICENSE,file,, -apache-2.0.LICENSE,,,apache-2.0 -apache-2.0.LICENSE,,,mit +path,type,scan_errors,license_expression +apache-2.0.LICENSE,file,, +apache-2.0.LICENSE,,,apache-2.0 +apache-2.0.LICENSE,,,mit diff --git a/tests/formattedcode/data/csv/flatten_scan/key_order.expected.json b/tests/formattedcode/data/csv/flatten_scan/key_order.expected.json index 0a2c84df182..10e4b234ad6 100644 --- a/tests/formattedcode/data/csv/flatten_scan/key_order.expected.json +++ b/tests/formattedcode/data/csv/flatten_scan/key_order.expected.json @@ -95,4 +95,4 @@ "size_count": 0, "scan_errors": "" } -] +] \ No newline at end of file diff --git a/tests/formattedcode/data/csv/flatten_scan/path_with_and_without_leading_slash.json-expected b/tests/formattedcode/data/csv/flatten_scan/path_with_and_without_leading_slash.json-expected index d2bf6cf2db5..229eac39c6e 100644 --- a/tests/formattedcode/data/csv/flatten_scan/path_with_and_without_leading_slash.json-expected +++ b/tests/formattedcode/data/csv/flatten_scan/path_with_and_without_leading_slash.json-expected @@ -47,4 +47,4 @@ "size_count": 28103, "scan_errors": "" } -] +] \ No newline at end of file diff --git a/tests/formattedcode/data/csv/livescan/expected.csv b/tests/formattedcode/data/csv/livescan/expected.csv index e75a37565d6..f01f4ca32a2 100644 --- a/tests/formattedcode/data/csv/livescan/expected.csv +++ b/tests/formattedcode/data/csv/livescan/expected.csv @@ -1,5 +1,5 @@ path,type,name,base_name,extension,size,date,sha1,md5,sha256,mime_type,file_type,programming_language,is_binary,is_text,is_archive,is_media,is_source,is_script,percentage_of_license_text,files_count,dirs_count,size_count,scan_errors,license_expression,license__key,license__score,license__name,license__short_name,license__category,license__is_exception,license__is_unknown,license__owner,license__homepage_url,license__text_url,license__reference_url,license__scancode_text_url,license__scancode_data_url,license__spdx_license_key,license__spdx_url,start_line,end_line,matched_rule__identifier,matched_rule__license_expression,matched_rule__licenses,matched_rule__referenced_filenames,matched_rule__is_license_text,matched_rule__is_license_notice,matched_rule__is_license_reference,matched_rule__is_license_tag,matched_rule__is_license_intro,matched_rule__has_unknown,matched_rule__matcher,matched_rule__rule_length,matched_rule__matched_length,matched_rule__match_coverage,matched_rule__rule_relevance,copyright,holder,email,url,package__type,package__namespace,package__name,package__version,package__qualifiers,package__subpath,package__primary_language,package__description,package__release_date,package__homepage_url,package__download_url,package__size,package__sha1,package__md5,package__sha256,package__sha512,package__bug_tracking_url,package__code_view_url,package__vcs_url,package__copyright,package__license_expression,package__declared_license,package__notice_text,package__contains_source_code,package__extra_data,package__purl -json2csv.rb,file,json2csv.rb,json2csv,.rb,912,2021-10-26,1236469a06a2bacbdd8e172ad718482af5b0a936,1307c281e0b153202e291b217eab85d5,12ba215313981dbe810d9ed696b7cc753d97adfcc26eba1e13f941dc7506aa4e,text/x-script.python,"Python script, ASCII text executable",Ruby,False,True,False,False,True,True,62.04,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +json2csv.rb,file,json2csv.rb,json2csv,.rb,912,2022-02-15,1236469a06a2bacbdd8e172ad718482af5b0a936,1307c281e0b153202e291b217eab85d5,12ba215313981dbe810d9ed696b7cc753d97adfcc26eba1e13f941dc7506aa4e,text/x-script.python,"Python script, ASCII text executable",Ruby,False,True,False,False,True,True,62.04,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,apache-2.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,apache-2.0,100.00,Apache License 2.0,Apache 2.0,Permissive,False,False,Apache Software Foundation,http://www.apache.org/licenses/,http://www.apache.org/licenses/LICENSE-2.0,https://scancode-licensedb.aboutcode.org/apache-2.0,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml,Apache-2.0,https://spdx.org/licenses/Apache-2.0,5,13,apache-2.0_7.RULE,apache-2.0,apache-2.0,,,True,,,,,2-aho,85,85,100.00,100.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,3,,,,,,,,,,,,,,,,Copyright (c) 2017 nexB Inc. and others,,,,,,,,,,,,,,,,,,,,,,,,,,,,, @@ -7,10 +7,10 @@ json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,3,,,,,,,,,,,,,,,,,nexB Inc. json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,4,,,,,,,,,,,,,,,,,,,http://nexb.com/,,,,,,,,,,,,,,,,,,,,,,,,,, json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,4,,,,,,,,,,,,,,,,,,,https://github.com/nexB/scancode-toolkit/,,,,,,,,,,,,,,,,,,,,,,,,,, json2csv.rb,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8,8,,,,,,,,,,,,,,,,,,,http://www.apache.org/licenses/LICENSE-2.0,,,,,,,,,,,,,,,,,,,,,,,,,, -license,file,license,license,,679,2021-10-26,75c5490a718ddd45e40e0cc7ce0c756abc373123,b965a762efb9421cf1bf4405f336e278,a34098a43e5677495f59dff825a3f9bc0f2b0261d75feb2356919f4c3ce049ab,text/plain,ASCII text,,False,True,False,False,False,False,100.0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +license,file,license,license,,679,2022-02-15,75c5490a718ddd45e40e0cc7ce0c756abc373123,b965a762efb9421cf1bf4405f336e278,a34098a43e5677495f59dff825a3f9bc0f2b0261d75feb2356919f4c3ce049ab,text/plain,ASCII text,,False,True,False,False,False,False,100.0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, license,,,,,,,,,,,,,,,,,,,,,,,,gpl-2.0-plus,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, license,,,,,,,,,,,,,,,,,,,,,,,,,gpl-2.0-plus,100.00,GNU General Public License 2.0 or later,GPL 2.0 or later,Copyleft,False,False,Free Software Foundation (FSF),http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html,http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html,https://scancode-licensedb.aboutcode.org/gpl-2.0-plus,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.LICENSE,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.yml,GPL-2.0-or-later,https://spdx.org/licenses/GPL-2.0-or-later,1,12,gpl-2.0-plus_420.RULE,gpl-2.0-plus,gpl-2.0-plus,,,True,,,,,1-hash,113,113,100.00,100.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -package.json,file,package.json,package,.json,2200,2021-10-26,918376afce796ef90eeda1d6695f2289c90491ac,1f66239a9b850c5e60a9382dbe2162d2,29f6068a1b6c7d06f115a5edc4ed8558edde42c6bbf0145ed77cf1108a0dd529,application/json,JSON data,,False,True,False,False,False,False,58.1,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +package.json,file,package.json,package,.json,2200,2022-02-15,918376afce796ef90eeda1d6695f2289c90491ac,1f66239a9b850c5e60a9382dbe2162d2,29f6068a1b6c7d06f115a5edc4ed8558edde42c6bbf0145ed77cf1108a0dd529,application/json,JSON data,,False,True,False,False,False,False,58.1,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, package.json,,,,,,,,,,,,,,,,,,,,,,,,mit,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, package.json,,,,,,,,,,,,,,,,,,,,,,,,mit,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, package.json,,,,,,,,,,,,,,,,,,,,,,,,,mit,100.00,MIT License,MIT License,Permissive,False,False,MIT,http://opensource.org/licenses/mit-license.php,http://opensource.org/licenses/mit-license.php,https://scancode-licensedb.aboutcode.org/mit,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE,https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml,MIT,https://spdx.org/licenses/MIT,24,24,mit_649.RULE,mit,mit,,,True,,,,,2-aho,4,4,100.00,100.00,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/tests/formattedcode/data/csv/non-standard/identified.csv b/tests/formattedcode/data/csv/non-standard/identified.csv index 1e72f756981..143b08d8824 100644 --- a/tests/formattedcode/data/csv/non-standard/identified.csv +++ b/tests/formattedcode/data/csv/non-standard/identified.csv @@ -1,7 +1,7 @@ -path,type,name,base_name,extension,size,date,sha1,md5,mime_type,file_type,programming_language,is_binary,is_text,is_archive,is_media,is_source,is_script,files_count,dirs_count,size_count,scan_errors,package__download_url,package__sha1,package__md5,package__size,package__release_date,package__primary_language,package__description,package__copyright,package__license_expression,package__reference_notes,package__homepage_url,package__notice_text,package__components__name,package__components__version,package__components__owner_name,package__components__copyright,package__components__license_expression,package__components__reference_notes,package__components__release_date,package__components__description,package__components__homepage_url,package__components__vcs_url,package__components__code_view_url,package__components__bug_tracking_url,package__components__primary_language,package__components__notice_text,package__components__notice_filename,package__components__notice_url,package__type,package__namespace,package__name,package__version,package__qualifiers,package__subpath -apache-log4j-extras-1.1.jar,file,apache-log4j-extras-1.1.jar,apache-log4j-extras-1.1,.jar,346729,2010-12-02,1e4b290f5c9ce5ea3a1a7352496c9c9d2a894800,acd91d528e26aa771198d930cf08e953,application/java-archive,Java archive data (JAR),,True,False,True,False,False,False,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -apache-log4j-extras-1.1.jar,,,,,,,,,,,,,,,,,,,,,,http://central.maven.org/maven2/log4j/apache-log4j-extras/1.1/apache-log4j-extras-1.1.jar,1e4b290f5c9ce5ea3a1a7352496c9c9d2a894800,acd91d528e26aa771198d930cf08e953,346729,,,,,,,,,Apache Log4j Extras,1.1,Apache Software Foundation,Copyright 2007 The Apache Software Foundation,apache-2.0,,,Apache Extras for Apache log4j is a jar file full of additional functionality for log4j 1.2.x.,http://logging.apache.org/log4j/extras/,,,,Java,"Apache Extras Companion for log4j 1.2. -Copyright 2007 The Apache Software Foundation - -This product includes software developed at -The Apache Software Foundation (http://www.apache.org/).",NOTICE,,maven,log4j,apache-log4j-extras,v 1.1,, +path,type,name,base_name,extension,size,date,sha1,md5,mime_type,file_type,programming_language,is_binary,is_text,is_archive,is_media,is_source,is_script,files_count,dirs_count,size_count,scan_errors,package__download_url,package__sha1,package__md5,package__size,package__release_date,package__primary_language,package__description,package__copyright,package__license_expression,package__reference_notes,package__homepage_url,package__notice_text,package__components__name,package__components__version,package__components__owner_name,package__components__copyright,package__components__license_expression,package__components__reference_notes,package__components__release_date,package__components__description,package__components__homepage_url,package__components__vcs_url,package__components__code_view_url,package__components__bug_tracking_url,package__components__primary_language,package__components__notice_text,package__components__notice_filename,package__components__notice_url,package__type,package__namespace,package__name,package__version,package__qualifiers,package__subpath +apache-log4j-extras-1.1.jar,file,apache-log4j-extras-1.1.jar,apache-log4j-extras-1.1,.jar,346729,2010-12-02,1e4b290f5c9ce5ea3a1a7352496c9c9d2a894800,acd91d528e26aa771198d930cf08e953,application/java-archive,Java archive data (JAR),,True,False,True,False,False,False,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +apache-log4j-extras-1.1.jar,,,,,,,,,,,,,,,,,,,,,,http://central.maven.org/maven2/log4j/apache-log4j-extras/1.1/apache-log4j-extras-1.1.jar,1e4b290f5c9ce5ea3a1a7352496c9c9d2a894800,acd91d528e26aa771198d930cf08e953,346729,,,,,,,,,Apache Log4j Extras,1.1,Apache Software Foundation,Copyright 2007 The Apache Software Foundation,apache-2.0,,,Apache Extras for Apache log4j is a jar file full of additional functionality for log4j 1.2.x.,http://logging.apache.org/log4j/extras/,,,,Java,"Apache Extras Companion for log4j 1.2. +Copyright 2007 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/).",NOTICE,,maven,log4j,apache-log4j-extras,v 1.1,, diff --git a/tests/formattedcode/data/csv/tree/expected.csv b/tests/formattedcode/data/csv/tree/expected.csv index 1a8cedac64d..5ed83ee228e 100644 --- a/tests/formattedcode/data/csv/tree/expected.csv +++ b/tests/formattedcode/data/csv/tree/expected.csv @@ -1,24 +1,24 @@ -path,type,scan_errors,copyright,start_line,end_line,holder -scan/,directory,,,,, -scan/copy1.c,file,,,,, -scan/copy1.c,,,"Copyright (c) 2000 ACME, Inc.",1,1, -scan/copy1.c,,,,1,1,"ACME, Inc." -scan/copy2.c,file,,,,, -scan/copy2.c,,,"Copyright (c) 2000 ACME, Inc.",1,1, -scan/copy2.c,,,,1,1,"ACME, Inc." -scan/copy3.c,file,,,,, -scan/copy3.c,,,"Copyright (c) 2000 ACME, Inc.",1,1, -scan/copy3.c,,,,1,1,"ACME, Inc." -scan/subdir/,directory,,,,, -scan/subdir/copy1.c,file,,,,, -scan/subdir/copy1.c,,,"Copyright (c) 2000 ACME, Inc.",1,1, -scan/subdir/copy1.c,,,,1,1,"ACME, Inc." -scan/subdir/copy2.c,file,,,,, -scan/subdir/copy2.c,,,"Copyright (c) 2000 ACME, Inc.",1,1, -scan/subdir/copy2.c,,,,1,1,"ACME, Inc." -scan/subdir/copy3.c,file,,,,, -scan/subdir/copy3.c,,,"Copyright (c) 2000 ACME, Inc.",1,1, -scan/subdir/copy3.c,,,,1,1,"ACME, Inc." -scan/subdir/copy4.c,file,,,,, -scan/subdir/copy4.c,,,"Copyright (c) 2000 ACME, Inc.",1,1, -scan/subdir/copy4.c,,,,1,1,"ACME, Inc." +path,type,scan_errors,copyright,start_line,end_line,holder +scan/,directory,,,,, +scan/copy1.c,file,,,,, +scan/copy1.c,,,"Copyright (c) 2000 ACME, Inc.",1,1, +scan/copy1.c,,,,1,1,"ACME, Inc." +scan/copy2.c,file,,,,, +scan/copy2.c,,,"Copyright (c) 2000 ACME, Inc.",1,1, +scan/copy2.c,,,,1,1,"ACME, Inc." +scan/copy3.c,file,,,,, +scan/copy3.c,,,"Copyright (c) 2000 ACME, Inc.",1,1, +scan/copy3.c,,,,1,1,"ACME, Inc." +scan/subdir/,directory,,,,, +scan/subdir/copy1.c,file,,,,, +scan/subdir/copy1.c,,,"Copyright (c) 2000 ACME, Inc.",1,1, +scan/subdir/copy1.c,,,,1,1,"ACME, Inc." +scan/subdir/copy2.c,file,,,,, +scan/subdir/copy2.c,,,"Copyright (c) 2000 ACME, Inc.",1,1, +scan/subdir/copy2.c,,,,1,1,"ACME, Inc." +scan/subdir/copy3.c,file,,,,, +scan/subdir/copy3.c,,,"Copyright (c) 2000 ACME, Inc.",1,1, +scan/subdir/copy3.c,,,,1,1,"ACME, Inc." +scan/subdir/copy4.c,file,,,,, +scan/subdir/copy4.c,,,"Copyright (c) 2000 ACME, Inc.",1,1, +scan/subdir/copy4.c,,,,1,1,"ACME, Inc." diff --git a/tests/formattedcode/data/cyclonedx/expected.json b/tests/formattedcode/data/cyclonedx/expected.json index 59869664251..69fa465e0c5 100644 --- a/tests/formattedcode/data/cyclonedx/expected.json +++ b/tests/formattedcode/data/cyclonedx/expected.json @@ -1,7 +1,6 @@ { "bomFormat": "CycloneDX", "specVersion": "1.3", - "serialNumber": "urn:uuid:c5834e0b-ffd2-4d2b-b698-d4c524e89bcc", "version": 1, "components": [ { diff --git a/tests/formattedcode/data/cyclonedx/expected.xml b/tests/formattedcode/data/cyclonedx/expected.xml index 3b442700c9d..3700c8127cd 100644 --- a/tests/formattedcode/data/cyclonedx/expected.xml +++ b/tests/formattedcode/data/cyclonedx/expected.xml @@ -1,11 +1,12 @@ - + + - 2021-12-25T20:52:52Z + 2022-04-20T17:16:54Z AboutCode.org scancode-toolkit - 30.1.0 + 31.0.0b1 diff --git a/tests/formattedcode/data/json/simple-expected.json b/tests/formattedcode/data/json/simple-expected.json index e4326b58bda..dab8e332f85 100644 --- a/tests/formattedcode/data/json/simple-expected.json +++ b/tests/formattedcode/data/json/simple-expected.json @@ -14,8 +14,9 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 1 } } diff --git a/tests/formattedcode/data/json/simple-expected.jsonlines b/tests/formattedcode/data/json/simple-expected.jsonlines index d0c1ce58478..8ab31041b21 100644 --- a/tests/formattedcode/data/json/simple-expected.jsonlines +++ b/tests/formattedcode/data/json/simple-expected.jsonlines @@ -9,10 +9,12 @@ "--json-lines": "" }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 1 } } diff --git a/tests/formattedcode/data/json/simple-expected.jsonpp b/tests/formattedcode/data/json/simple-expected.jsonpp index de7c0ea8619..5a27308eb8c 100644 --- a/tests/formattedcode/data/json/simple-expected.jsonpp +++ b/tests/formattedcode/data/json/simple-expected.jsonpp @@ -14,8 +14,9 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 1 } } diff --git a/tests/formattedcode/data/json/tree/expected.json b/tests/formattedcode/data/json/tree/expected.json index 6d3d2934b9c..cf025627dd1 100644 --- a/tests/formattedcode/data/json/tree/expected.json +++ b/tests/formattedcode/data/json/tree/expected.json @@ -15,8 +15,9 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 7 } } diff --git a/tests/formattedcode/data/yaml/simple-expected.yaml b/tests/formattedcode/data/yaml/simple-expected.yaml index 52cc14f7c58..00788c69e86 100644 --- a/tests/formattedcode/data/yaml/simple-expected.yaml +++ b/tests/formattedcode/data/yaml/simple-expected.yaml @@ -17,8 +17,9 @@ headers: output_format_version: 2.0.0 message: errors: [] + warnings: [] extra_data: - spdx_license_list_version: '3.15' + spdx_license_list_version: '3.16' files_count: 1 dependencies: [] packages: [] diff --git a/tests/formattedcode/data/yaml/tree/expected.yaml b/tests/formattedcode/data/yaml/tree/expected.yaml index 2ad740e94df..55bb5c179c6 100644 --- a/tests/formattedcode/data/yaml/tree/expected.yaml +++ b/tests/formattedcode/data/yaml/tree/expected.yaml @@ -18,8 +18,9 @@ headers: output_format_version: 2.0.0 message: errors: [] + warnings: [] extra_data: - spdx_license_list_version: '3.14' + spdx_license_list_version: '3.16' files_count: 7 dependencies: [] packages: [] diff --git a/tests/formattedcode/test_output_cyclonedx.py b/tests/formattedcode/test_output_cyclonedx.py index 0f52e49655a..cefac2538ca 100644 --- a/tests/formattedcode/test_output_cyclonedx.py +++ b/tests/formattedcode/test_output_cyclonedx.py @@ -64,14 +64,13 @@ def check_cyclone_xml_output(expected_file, result_file, regen=REGEN_TEST_FIXTUR Check that expected and result_file are equal. Ignore headers. If `regen` is True the expected_file is overwritten with `results_file`. """ - result = load_and_clean_xml(result_file) if regen: - expected = result - with open(expected_file, 'w') as o: - o.write(result) - else: - expected = load_and_clean_xml(expected_file) + with open(result_file) as rf, open(expected_file, 'w') as ef: + expected = rf.read() + ef.write(expected) + result = load_and_clean_xml(result_file) + expected = load_and_clean_xml(expected_file) assert result == expected diff --git a/tests/licensedcode/data/datadriven/external/OS-Licenses-master/bsd-2c.txt.yml b/tests/licensedcode/data/datadriven/external/OS-Licenses-master/bsd-2c.txt.yml index c97d5eabea0..ba6f811487d 100644 --- a/tests/licensedcode/data/datadriven/external/OS-Licenses-master/bsd-2c.txt.yml +++ b/tests/licensedcode/data/datadriven/external/OS-Licenses-master/bsd-2c.txt.yml @@ -1,4 +1,3 @@ license_expressions: - bsd-2-clause-views - bsd-2-clause-views - diff --git a/tests/licensedcode/data/datadriven/external/OS-Licenses-master/bsd-4c.txt.yml b/tests/licensedcode/data/datadriven/external/OS-Licenses-master/bsd-4c.txt.yml index 13b442d40d8..6cc1d862be3 100644 --- a/tests/licensedcode/data/datadriven/external/OS-Licenses-master/bsd-4c.txt.yml +++ b/tests/licensedcode/data/datadriven/external/OS-Licenses-master/bsd-4c.txt.yml @@ -1,4 +1,3 @@ license_expressions: - bsd-original - bsd-original - diff --git a/tests/licensedcode/data/datadriven/external/atarashi/CPAL-1.0.php.yml b/tests/licensedcode/data/datadriven/external/atarashi/CPAL-1.0.php.yml index e7bfd327afb..18cbb242f8b 100644 --- a/tests/licensedcode/data/datadriven/external/atarashi/CPAL-1.0.php.yml +++ b/tests/licensedcode/data/datadriven/external/atarashi/CPAL-1.0.php.yml @@ -1,4 +1,3 @@ license_expressions: - cpal-1.0 - cpal-1.0 - diff --git a/tests/licensedcode/data/datadriven/external/atarashi/NOT-public-domain.OSS.yml b/tests/licensedcode/data/datadriven/external/atarashi/NOT-public-domain.OSS.yml index 7e75e3612ab..ad0ffa594e9 100644 --- a/tests/licensedcode/data/datadriven/external/atarashi/NOT-public-domain.OSS.yml +++ b/tests/licensedcode/data/datadriven/external/atarashi/NOT-public-domain.OSS.yml @@ -1,2 +1 @@ -notes: nothing should be detected here in - this file from https://github.com/Embedfire/ebf_6ull_linux/blob/master/Documentation/sound/oss/README.OSS +notes: nothing should be detected here in this file from https://github.com/Embedfire/ebf_6ull_linux/blob/master/Documentation/sound/oss/README.OSS diff --git a/tests/licensedcode/data/datadriven/external/fossology-licenses/mx4j-1.0.txt.yml b/tests/licensedcode/data/datadriven/external/fossology-licenses/mx4j-1.0.txt.yml index b62a576706f..06ba14b3c1a 100644 --- a/tests/licensedcode/data/datadriven/external/fossology-licenses/mx4j-1.0.txt.yml +++ b/tests/licensedcode/data/datadriven/external/fossology-licenses/mx4j-1.0.txt.yml @@ -2,4 +2,3 @@ license_expressions: - mx4j notes: this is a license from fossology license reference MX4J-1.0 (The MX4J License, Version 1.0) http://mx4j.sourceforge.net/docs/ch01s06.html - diff --git a/tests/licensedcode/data/datadriven/external/fossology-tests/BSD/BSD-2-Clause_AND_Imlib2.txt.yml b/tests/licensedcode/data/datadriven/external/fossology-tests/BSD/BSD-2-Clause_AND_Imlib2.txt.yml index 56ce7141255..930a9eaf643 100644 --- a/tests/licensedcode/data/datadriven/external/fossology-tests/BSD/BSD-2-Clause_AND_Imlib2.txt.yml +++ b/tests/licensedcode/data/datadriven/external/fossology-tests/BSD/BSD-2-Clause_AND_Imlib2.txt.yml @@ -1,4 +1,3 @@ license_expressions: - bsd-simplified AND imlib2 - bsd-simplified AND imlib2 - diff --git a/tests/licensedcode/data/datadriven/external/fossology-tests/BSD/BSD-3-Clause_7.txt.yml b/tests/licensedcode/data/datadriven/external/fossology-tests/BSD/BSD-3-Clause_7.txt.yml index 9376576c4b0..87c26d8238b 100644 --- a/tests/licensedcode/data/datadriven/external/fossology-tests/BSD/BSD-3-Clause_7.txt.yml +++ b/tests/licensedcode/data/datadriven/external/fossology-tests/BSD/BSD-3-Clause_7.txt.yml @@ -1,3 +1,2 @@ license_expressions: - sun-bsd-no-nuclear - diff --git a/tests/licensedcode/data/datadriven/external/fossology-tests/Dual-license/Oracle+Sun_oracle_index.html.yml b/tests/licensedcode/data/datadriven/external/fossology-tests/Dual-license/Oracle+Sun_oracle_index.html.yml index 0bc9e97f18f..cd17ad2b2b8 100644 --- a/tests/licensedcode/data/datadriven/external/fossology-tests/Dual-license/Oracle+Sun_oracle_index.html.yml +++ b/tests/licensedcode/data/datadriven/external/fossology-tests/Dual-license/Oracle+Sun_oracle_index.html.yml @@ -2,4 +2,3 @@ license_expressions: - sleepycat - generic-trademark - generic-trademark - diff --git a/tests/licensedcode/data/datadriven/external/fossology-tests/LGPL/valaprojectgenerator.c.yml b/tests/licensedcode/data/datadriven/external/fossology-tests/LGPL/valaprojectgenerator.c.yml index d464b42779c..ebb19408cb0 100644 --- a/tests/licensedcode/data/datadriven/external/fossology-tests/LGPL/valaprojectgenerator.c.yml +++ b/tests/licensedcode/data/datadriven/external/fossology-tests/LGPL/valaprojectgenerator.c.yml @@ -5,4 +5,3 @@ license_expressions: - gpl-3.0-plus - lgpl-2.1-plus - lgpl-3.0-plus - diff --git a/tests/licensedcode/data/datadriven/external/fossology-tests/WXwindows/wxWindows-3.1+_ref.txt.yml b/tests/licensedcode/data/datadriven/external/fossology-tests/WXwindows/wxWindows-3.1+_ref.txt.yml index d712f505296..58a5741bce1 100644 --- a/tests/licensedcode/data/datadriven/external/fossology-tests/WXwindows/wxWindows-3.1+_ref.txt.yml +++ b/tests/licensedcode/data/datadriven/external/fossology-tests/WXwindows/wxWindows-3.1+_ref.txt.yml @@ -1,3 +1,2 @@ license_expressions: - lgpl-2.0-plus WITH wxwindows-exception-3.1 - diff --git a/tests/licensedcode/data/datadriven/external/glc/MIT.t24.yml b/tests/licensedcode/data/datadriven/external/glc/MIT.t24.yml index 439cbc07386..3e022c2f1d5 100644 --- a/tests/licensedcode/data/datadriven/external/glc/MIT.t24.yml +++ b/tests/licensedcode/data/datadriven/external/glc/MIT.t24.yml @@ -1,11 +1,6 @@ license_expressions: - mit - mit -notes: | - License test derived from a file of the BSD-licensed repository at: - https://raw.githubusercontent.com/google/licensecheck/v0.3.1/testdata/MIT.t24 - originally expected to be detected as None - with coverage of 0.0 - Truncated - Example: https://github.com/apache/drill - truncated MIT. See PR to fix this at https://github.com/apache/drill/pull/2111 \ No newline at end of file +notes: "License test derived from a file of the BSD-licensed repository at:\nhttps://raw.githubusercontent.com/google/licensecheck/v0.3.1/testdata/MIT.t24\n\ + originally expected to be detected as None\nwith coverage of 0.0\nTruncated\nExample: https://github.com/apache/drill\n\ + truncated MIT. See PR to fix this at https://github.com/apache/drill/pull/2111 " diff --git a/tests/licensedcode/data/datadriven/lic1/COPYING_complex2.html.yml b/tests/licensedcode/data/datadriven/lic1/COPYING_complex2.html.yml index 5d315927a1c..1f7b7757f8b 100644 --- a/tests/licensedcode/data/datadriven/lic1/COPYING_complex2.html.yml +++ b/tests/licensedcode/data/datadriven/lic1/COPYING_complex2.html.yml @@ -4,8 +4,6 @@ license_expressions: - lgpl-2.1-plus - cc-by-sa-4.0 - bsd-new - notes: this is based on the HTML page of https://github.com/ClusterLabs/pacemaker/blob/main/COPYING - and is by design somtheing atypical - It should return gpl-2.0-plus AND lgpl-2.1-plus AND cc-by-sa-4.0 AND bsd-new - + and is by design somtheing atypical It should return gpl-2.0-plus AND lgpl-2.1-plus AND cc-by-sa-4.0 + AND bsd-new diff --git a/tests/licensedcode/data/datadriven/lic1/boto-boto3-cw-example-creating-alarm.txt.yml b/tests/licensedcode/data/datadriven/lic1/boto-boto3-cw-example-creating-alarm.txt.yml index ae1e88edf4e..bca3279998f 100644 --- a/tests/licensedcode/data/datadriven/lic1/boto-boto3-cw-example-creating-alarm.txt.yml +++ b/tests/licensedcode/data/datadriven/lic1/boto-boto3-cw-example-creating-alarm.txt.yml @@ -1,2 +1,2 @@ license_expressions: - - cc-by-nc-sa-4.0 \ No newline at end of file + - cc-by-nc-sa-4.0 diff --git a/tests/licensedcode/data/datadriven/lic1/d-zlib_and_gfdl-1.2_and_gpl_and_gpl_and_other.txt.yml b/tests/licensedcode/data/datadriven/lic1/d-zlib_and_gfdl-1.2_and_gpl_and_gpl_and_other.txt.yml index 2f3d60a8340..9a67f82a621 100644 --- a/tests/licensedcode/data/datadriven/lic1/d-zlib_and_gfdl-1.2_and_gpl_and_gpl_and_other.txt.yml +++ b/tests/licensedcode/data/datadriven/lic1/d-zlib_and_gfdl-1.2_and_gpl_and_gpl_and_other.txt.yml @@ -1,20 +1,19 @@ license_expressions: - - gpl-2.0-plus AND gpl-3.0-plus - - gpl-1.0-plus WITH mif-exception - - gpl-1.0-plus WITH ada-linking-exception - - gpl-1.0-plus - - gpl-1.0-plus - - gpl-1.0-plus WITH gcc-compiler-exception-2.0 - - gpl-1.0-plus WITH classpath-exception-2.0 - - gpl-1.0-plus WITH gcc-linking-exception-2.0 - - linking-exception-2.0-plus - - gpl-1.0-plus WITH gcc-linking-exception-2.0 - - gpl-1.0-plus WITH linking-exception-2.0-plus - - gpl-2.0-plus - - unknown-license-reference - - d-zlib - - lgpl-2.0-plus WITH linking-exception-2.0-plus - - unknown-license-reference - - mit - - gfdl-1.2 - + - gpl-2.0-plus AND gpl-3.0-plus + - gpl-1.0-plus WITH mif-exception + - gpl-1.0-plus WITH ada-linking-exception + - gpl-1.0-plus + - gpl-1.0-plus + - gpl-1.0-plus WITH gcc-compiler-exception-2.0 + - gpl-1.0-plus WITH classpath-exception-2.0 + - gpl-1.0-plus WITH gcc-linking-exception-2.0 + - linking-exception-2.0-plus + - gpl-1.0-plus WITH gcc-linking-exception-2.0 + - gpl-1.0-plus WITH linking-exception-2.0-plus + - gpl-2.0-plus + - unknown-license-reference + - d-zlib + - lgpl-2.0-plus WITH linking-exception-2.0-plus + - unknown-license-reference + - mit + - gfdl-1.2 diff --git a/tests/licensedcode/data/datadriven/lic1/french_gfdl.docbook.yml b/tests/licensedcode/data/datadriven/lic1/french_gfdl.docbook.yml index 8bfa33fcd95..bce56331e34 100644 --- a/tests/licensedcode/data/datadriven/lic1/french_gfdl.docbook.yml +++ b/tests/licensedcode/data/datadriven/lic1/french_gfdl.docbook.yml @@ -1,7 +1,7 @@ -language: fr license_expressions: - gfdl-1.1 - gfdl-1.1 - gfdl-1.1 - gfdl-1.1 - gpl-1.0-plus +language: fr diff --git a/tests/licensedcode/data/datadriven/lic1/uwiger-parse_trans.txt.yml b/tests/licensedcode/data/datadriven/lic1/uwiger-parse_trans.txt.yml index 2011cf30b7b..fc058bbd3de 100644 --- a/tests/licensedcode/data/datadriven/lic1/uwiger-parse_trans.txt.yml +++ b/tests/licensedcode/data/datadriven/lic1/uwiger-parse_trans.txt.yml @@ -1,3 +1,3 @@ license_expressions: - erlangpl-1.1 - - erlangpl-1.1 \ No newline at end of file + - erlangpl-1.1 diff --git a/tests/licensedcode/data/datadriven/lic2/afl-2.1_and_apache_and_bsd-new_and_gpl_and_other.txt.yml b/tests/licensedcode/data/datadriven/lic2/afl-2.1_and_apache_and_bsd-new_and_gpl_and_other.txt.yml index 32c192c6cd2..4b72f22f888 100644 --- a/tests/licensedcode/data/datadriven/lic2/afl-2.1_and_apache_and_bsd-new_and_gpl_and_other.txt.yml +++ b/tests/licensedcode/data/datadriven/lic2/afl-2.1_and_apache_and_bsd-new_and_gpl_and_other.txt.yml @@ -1,6 +1,7 @@ license_expressions: - bsd-new OR afl-2.1 - - (mpl-1.0 OR lgpl-2.0-plus OR gpl-1.0-plus) AND apache-2.0 AND apache-2.0 AND apache-2.0 AND apache-2.0 AND (bsd-new OR afl-2.1) + - (mpl-1.0 OR lgpl-2.0-plus OR gpl-1.0-plus) AND apache-2.0 AND apache-2.0 AND apache-2.0 + AND apache-2.0 AND (bsd-new OR afl-2.1) - afl-2.1 OR bsd-new - bsd-new - bsd-new diff --git a/tests/licensedcode/data/datadriven/lic2/python-cpython-classes.txt.yml b/tests/licensedcode/data/datadriven/lic2/python-cpython-classes.txt.yml index 33de434c831..f4d42e6f274 100644 --- a/tests/licensedcode/data/datadriven/lic2/python-cpython-classes.txt.yml +++ b/tests/licensedcode/data/datadriven/lic2/python-cpython-classes.txt.yml @@ -1,5 +1,4 @@ -license_expressions: notes: | It does not contain any license declarations, but matched with `bsd-simplified_and_gpl-2.0_1.RULE` because of "unless explicitly stated - otherwise". \ No newline at end of file + otherwise". diff --git a/tests/licensedcode/data/datadriven/lic3/man-pages-3.35-4.fc17.noarch.rpm.POSIX-COPYRIGHT.txt.yml b/tests/licensedcode/data/datadriven/lic3/man-pages-3.35-4.fc17.noarch.rpm.POSIX-COPYRIGHT.txt.yml index 3ae72119e47..baebe2db367 100644 --- a/tests/licensedcode/data/datadriven/lic3/man-pages-3.35-4.fc17.noarch.rpm.POSIX-COPYRIGHT.txt.yml +++ b/tests/licensedcode/data/datadriven/lic3/man-pages-3.35-4.fc17.noarch.rpm.POSIX-COPYRIGHT.txt.yml @@ -1,4 +1,3 @@ license_expressions: - other-permissive - other-permissive - diff --git a/tests/licensedcode/data/datadriven/lic3/nysl-0.9982.txt.yml b/tests/licensedcode/data/datadriven/lic3/nysl-0.9982.txt.yml index 2979c0cbd9d..3f3ede780ca 100644 --- a/tests/licensedcode/data/datadriven/lic3/nysl-0.9982.txt.yml +++ b/tests/licensedcode/data/datadriven/lic3/nysl-0.9982.txt.yml @@ -1,4 +1,4 @@ -language: jp license_expressions: - nysl-0.9982-jp - nysl-0.9982 +language: jp diff --git a/tests/licensedcode/data/datadriven/lic3/nysl-0.9982_jp.txt.yml b/tests/licensedcode/data/datadriven/lic3/nysl-0.9982_jp.txt.yml index b6a7c1e3d8c..a3bd83a0904 100644 --- a/tests/licensedcode/data/datadriven/lic3/nysl-0.9982_jp.txt.yml +++ b/tests/licensedcode/data/datadriven/lic3/nysl-0.9982_jp.txt.yml @@ -1,3 +1,3 @@ -language: jp license_expressions: - nysl-0.9982-jp +language: jp diff --git a/tests/licensedcode/data/datadriven/lic3/python-mypy-manifest.txt.yml b/tests/licensedcode/data/datadriven/lic3/python-mypy-manifest.txt.yml index 4da1ec42f00..eb512f78509 100644 --- a/tests/licensedcode/data/datadriven/lic3/python-mypy-manifest.txt.yml +++ b/tests/licensedcode/data/datadriven/lic3/python-mypy-manifest.txt.yml @@ -1,4 +1,3 @@ -license_expressions: notes: | This file does not contain any license declarations. It should not match with - `apache-2.0_and_cc-by-sa-4.0_2.RULE` at all. \ No newline at end of file + `apache-2.0_and_cc-by-sa-4.0_2.RULE` at all. diff --git a/tests/licensedcode/data/datadriven/lic4/2675-sqlite.cpp.yml b/tests/licensedcode/data/datadriven/lic4/2675-sqlite.cpp.yml index aed96714146..c9c5e2f5b54 100644 --- a/tests/licensedcode/data/datadriven/lic4/2675-sqlite.cpp.yml +++ b/tests/licensedcode/data/datadriven/lic4/2675-sqlite.cpp.yml @@ -1,3 +1,2 @@ license_expressions: - - mit - + - mit diff --git a/tests/licensedcode/data/datadriven/lic4/BalloonIcon.cs.yml b/tests/licensedcode/data/datadriven/lic4/BalloonIcon.cs.yml index 4f69bdde43b..7a3e75d1fae 100644 --- a/tests/licensedcode/data/datadriven/lic4/BalloonIcon.cs.yml +++ b/tests/licensedcode/data/datadriven/lic4/BalloonIcon.cs.yml @@ -1,2 +1,2 @@ license_expressions: - - cpol-1.0 + - cpol-1.0 diff --git a/tests/licensedcode/data/datadriven/lic4/D-FSL-1.0.yml b/tests/licensedcode/data/datadriven/lic4/D-FSL-1.0.yml index 51c007a027f..6e6b4ba1ccd 100644 --- a/tests/licensedcode/data/datadriven/lic4/D-FSL-1.0.yml +++ b/tests/licensedcode/data/datadriven/lic4/D-FSL-1.0.yml @@ -1,3 +1,3 @@ -language: de license_expressions: - d-fsl-1.0-de +language: de diff --git a/tests/licensedcode/data/datadriven/lic4/DDOSLogger.m.yml b/tests/licensedcode/data/datadriven/lic4/DDOSLogger.m.yml index 0240513aa3f..13cb9732a2e 100644 --- a/tests/licensedcode/data/datadriven/lic4/DDOSLogger.m.yml +++ b/tests/licensedcode/data/datadriven/lic4/DDOSLogger.m.yml @@ -1,2 +1,2 @@ license_expressions: - - bsd-source-code + - bsd-source-code diff --git a/tests/licensedcode/data/datadriven/lic4/JsonReader.cs.yml b/tests/licensedcode/data/datadriven/lic4/JsonReader.cs.yml index 2d58befd288..eedfaa085e5 100644 --- a/tests/licensedcode/data/datadriven/lic4/JsonReader.cs.yml +++ b/tests/licensedcode/data/datadriven/lic4/JsonReader.cs.yml @@ -1,4 +1,3 @@ license_expressions: - - mit - - mit - + - mit + - mit diff --git a/tests/licensedcode/data/datadriven/lic4/README_not_pd.md.yml b/tests/licensedcode/data/datadriven/lic4/README_not_pd.md.yml index a5077765c91..84aefae322a 100644 --- a/tests/licensedcode/data/datadriven/lic4/README_not_pd.md.yml +++ b/tests/licensedcode/data/datadriven/lic4/README_not_pd.md.yml @@ -1,3 +1,3 @@ -notes: some mentions of public domain, not a license, but some license references too license_expressions: - unknown-license-reference +notes: some mentions of public domain, not a license, but some license references too diff --git a/tests/licensedcode/data/datadriven/lic4/StandardValueGraph.java.yml b/tests/licensedcode/data/datadriven/lic4/StandardValueGraph.java.yml index 66b61b5acda..58d71feb590 100644 --- a/tests/licensedcode/data/datadriven/lic4/StandardValueGraph.java.yml +++ b/tests/licensedcode/data/datadriven/lic4/StandardValueGraph.java.yml @@ -1,4 +1,3 @@ license_expressions: - - apache-2.0 + - apache-2.0 notes: there was some false positive detected before this - diff --git a/tests/licensedcode/data/datadriven/lic4/crown-copyright-canada.txt.yml b/tests/licensedcode/data/datadriven/lic4/crown-copyright-canada.txt.yml index 00f377472dd..fedc8e6b457 100644 --- a/tests/licensedcode/data/datadriven/lic4/crown-copyright-canada.txt.yml +++ b/tests/licensedcode/data/datadriven/lic4/crown-copyright-canada.txt.yml @@ -1,4 +1,3 @@ license_expressions: - - proprietary-license - - proprietary-license - + - proprietary-license + - proprietary-license diff --git a/tests/licensedcode/data/datadriven/lic4/disable_warnings.h.yml b/tests/licensedcode/data/datadriven/lic4/disable_warnings.h.yml index a8f2d0478d0..d860272999f 100644 --- a/tests/licensedcode/data/datadriven/lic4/disable_warnings.h.yml +++ b/tests/licensedcode/data/datadriven/lic4/disable_warnings.h.yml @@ -1,6 +1,5 @@ license_expressions: - - bsd-new OR gpl-2.0 - - gpl-2.0 - - bsd-new - - bsd-new - + - bsd-new OR gpl-2.0 + - gpl-2.0 + - bsd-new + - bsd-new diff --git a/tests/licensedcode/data/datadriven/lic4/elv2-2577.txt.yml b/tests/licensedcode/data/datadriven/lic4/elv2-2577.txt.yml index eafc2fe00a1..c9c5e2f5b54 100644 --- a/tests/licensedcode/data/datadriven/lic4/elv2-2577.txt.yml +++ b/tests/licensedcode/data/datadriven/lic4/elv2-2577.txt.yml @@ -1,2 +1,2 @@ license_expressions: - - mit + - mit diff --git a/tests/licensedcode/data/datadriven/lic4/mediatek.txt.yml b/tests/licensedcode/data/datadriven/lic4/mediatek.txt.yml index 3cdc68c8106..9a6dd0b0fbc 100644 --- a/tests/licensedcode/data/datadriven/lic4/mediatek.txt.yml +++ b/tests/licensedcode/data/datadriven/lic4/mediatek.txt.yml @@ -1,2 +1,2 @@ license_expressions: - - proprietary-license \ No newline at end of file + - proprietary-license diff --git a/tests/licensedcode/data/datadriven/lic4/no-license-with-stop-words.txt.yml b/tests/licensedcode/data/datadriven/lic4/no-license-with-stop-words.txt.yml index 1a7cb6bb77f..5d51de38701 100644 --- a/tests/licensedcode/data/datadriven/lic4/no-license-with-stop-words.txt.yml +++ b/tests/licensedcode/data/datadriven/lic4/no-license-with-stop-words.txt.yml @@ -1,3 +1,2 @@ -notes: nothing should be detected here - as "License a Private" should NOT match "license Private" - as there is a stopword inside and this is a short rule. +notes: nothing should be detected here as "License a Private" should NOT match "license Private" + as there is a stopword inside and this is a short rule. diff --git a/tests/licensedcode/data/datadriven/lic4/ocb.java.yml b/tests/licensedcode/data/datadriven/lic4/ocb.java.yml index 0dd9b708abe..5ae31adede3 100644 --- a/tests/licensedcode/data/datadriven/lic4/ocb.java.yml +++ b/tests/licensedcode/data/datadriven/lic4/ocb.java.yml @@ -1,3 +1,2 @@ license_expressions: - ocb-open-source-2013 - diff --git a/tests/licensedcode/data/datadriven/lic4/parser.h.yml b/tests/licensedcode/data/datadriven/lic4/parser.h.yml index 5ae83aa7e30..830b0c374c9 100644 --- a/tests/licensedcode/data/datadriven/lic4/parser.h.yml +++ b/tests/licensedcode/data/datadriven/lic4/parser.h.yml @@ -1,3 +1,2 @@ license_expressions: - - lgpl-2.1 - + - lgpl-2.1 diff --git a/tests/licensedcode/data/datadriven/lic4/qt_conftest.py.txt.yml b/tests/licensedcode/data/datadriven/lic4/qt_conftest.py.txt.yml index 2455e353bcb..f852ab6b84c 100644 --- a/tests/licensedcode/data/datadriven/lic4/qt_conftest.py.txt.yml +++ b/tests/licensedcode/data/datadriven/lic4/qt_conftest.py.txt.yml @@ -1,3 +1,2 @@ license_expressions: - - gpl-3.0-plus - + - gpl-3.0-plus diff --git a/tests/licensedcode/data/datadriven/lic4/quickfix.LICENSE.txt.yml b/tests/licensedcode/data/datadriven/lic4/quickfix.LICENSE.txt.yml index fa53e2e64c0..ce0a6ea1748 100644 --- a/tests/licensedcode/data/datadriven/lic4/quickfix.LICENSE.txt.yml +++ b/tests/licensedcode/data/datadriven/lic4/quickfix.LICENSE.txt.yml @@ -1,3 +1,2 @@ -license_expressions: +license_expressions: - quickfix-1.0 - diff --git a/tests/licensedcode/data/datadriven/lic4/saxon-he-pom.txt.yml b/tests/licensedcode/data/datadriven/lic4/saxon-he-pom.txt.yml index d5a26661fa2..afdd345305e 100644 --- a/tests/licensedcode/data/datadriven/lic4/saxon-he-pom.txt.yml +++ b/tests/licensedcode/data/datadriven/lic4/saxon-he-pom.txt.yml @@ -1,2 +1,2 @@ license_expressions: - - mpl-2.0 \ No newline at end of file + - mpl-2.0 diff --git a/tests/licensedcode/data/datadriven/unknown/scea.txt.yml b/tests/licensedcode/data/datadriven/unknown/scea.txt.yml index d8c5b03fac5..fdceb219682 100644 --- a/tests/licensedcode/data/datadriven/unknown/scea.txt.yml +++ b/tests/licensedcode/data/datadriven/unknown/scea.txt.yml @@ -5,5 +5,5 @@ license_expressions: - unknown - unknown notes: this is a license from fossology license reference SCEA (SCEA Shared Source License) - http://research.scea.com/scea_shared_source_license.html - This is a rather moot tests where the text was truncated and modified + http://research.scea.com/scea_shared_source_license.html This is a rather moot tests where + the text was truncated and modified diff --git a/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json b/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json index 121f5d34df8..eca9c560459 100644 --- a/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json +++ b/tests/licensedcode/data/plugin_license/license-expression/scan.expected.json @@ -12,6 +12,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 2 diff --git a/tests/licensedcode/data/plugin_license/license_reference/license-ref-see-copying.expected.json b/tests/licensedcode/data/plugin_license/license_reference/license-ref-see-copying.expected.json index 8aaf1cbbb9c..ca2b86f3967 100644 --- a/tests/licensedcode/data/plugin_license/license_reference/license-ref-see-copying.expected.json +++ b/tests/licensedcode/data/plugin_license/license_reference/license-ref-see-copying.expected.json @@ -15,6 +15,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 2 diff --git a/tests/licensedcode/data/plugin_license/license_reference/scan-ref.expected.json b/tests/licensedcode/data/plugin_license/license_reference/scan-ref.expected.json index 1ca8b25b1d1..f424bc0a36e 100644 --- a/tests/licensedcode/data/plugin_license/license_reference/scan-ref.expected.json +++ b/tests/licensedcode/data/plugin_license/license_reference/scan-ref.expected.json @@ -15,6 +15,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 2 diff --git a/tests/licensedcode/data/plugin_license/license_reference/scan-wref.expected.json b/tests/licensedcode/data/plugin_license/license_reference/scan-wref.expected.json index 83cbb7d24f8..01c0a953d76 100644 --- a/tests/licensedcode/data/plugin_license/license_reference/scan-wref.expected.json +++ b/tests/licensedcode/data/plugin_license/license_reference/scan-wref.expected.json @@ -15,6 +15,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/licensedcode/data/plugin_license/license_url.expected.json b/tests/licensedcode/data/plugin_license/license_url.expected.json index 111a4656e46..22c4c2dd2c9 100644 --- a/tests/licensedcode/data/plugin_license/license_url.expected.json +++ b/tests/licensedcode/data/plugin_license/license_url.expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/licensedcode/data/plugin_license/package/package.expected.json b/tests/licensedcode/data/plugin_license/package/package.expected.json index 08bbd2ed1ae..fbf6cf9a779 100644 --- a/tests/licensedcode/data/plugin_license/package/package.expected.json +++ b/tests/licensedcode/data/plugin_license/package/package.expected.json @@ -9,9 +9,10 @@ "--package": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/licensedcode/data/plugin_license/sqlite/sqlite.expected.json b/tests/licensedcode/data/plugin_license/sqlite/sqlite.expected.json index be1475f5ff5..95ecb9b4d98 100644 --- a/tests/licensedcode/data/plugin_license/sqlite/sqlite.expected.json +++ b/tests/licensedcode/data/plugin_license/sqlite/sqlite.expected.json @@ -12,6 +12,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/licensedcode/data/plugin_license/text/scan-diag.expected.json b/tests/licensedcode/data/plugin_license/text/scan-diag.expected.json index 46313eddbc7..da1c6d10462 100644 --- a/tests/licensedcode/data/plugin_license/text/scan-diag.expected.json +++ b/tests/licensedcode/data/plugin_license/text/scan-diag.expected.json @@ -14,6 +14,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 2 diff --git a/tests/licensedcode/data/plugin_license/text/scan.expected.json b/tests/licensedcode/data/plugin_license/text/scan.expected.json index 151cae2f97f..14d28ebddc6 100644 --- a/tests/licensedcode/data/plugin_license/text/scan.expected.json +++ b/tests/licensedcode/data/plugin_license/text/scan.expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 2 diff --git a/tests/licensedcode/data/plugin_license/text_long_lines/scan-diag.expected.json b/tests/licensedcode/data/plugin_license/text_long_lines/scan-diag.expected.json index f75cd60f2dd..8e6df202b93 100644 --- a/tests/licensedcode/data/plugin_license/text_long_lines/scan-diag.expected.json +++ b/tests/licensedcode/data/plugin_license/text_long_lines/scan-diag.expected.json @@ -14,6 +14,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 2 diff --git a/tests/licensedcode/data/plugin_license/text_long_lines/scan.expected.json b/tests/licensedcode/data/plugin_license/text_long_lines/scan.expected.json index 2ddcce84387..8d80daba10b 100644 --- a/tests/licensedcode/data/plugin_license/text_long_lines/scan.expected.json +++ b/tests/licensedcode/data/plugin_license/text_long_lines/scan.expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 2 diff --git a/tests/licensedcode/data/plugin_license_text/scan.expected.json b/tests/licensedcode/data/plugin_license_text/scan.expected.json index 34ec28e64d8..bfde6224c41 100644 --- a/tests/licensedcode/data/plugin_license_text/scan.expected.json +++ b/tests/licensedcode/data/plugin_license_text/scan.expected.json @@ -11,10 +11,12 @@ "--license-text": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 5 } } diff --git a/tests/licensedcode/data/plugin_licenses_reference/scan.expected.json b/tests/licensedcode/data/plugin_licenses_reference/scan.expected.json index 21e69bca170..e0b8af62eac 100644 --- a/tests/licensedcode/data/plugin_licenses_reference/scan.expected.json +++ b/tests/licensedcode/data/plugin_licenses_reference/scan.expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 2 diff --git a/tests/packagedcode/data/build/bazel/end2end-expected.json b/tests/packagedcode/data/build/bazel/end2end-expected.json index dde72dfdad8..b58e9b5c7ba 100644 --- a/tests/packagedcode/data/build/bazel/end2end-expected.json +++ b/tests/packagedcode/data/build/bazel/end2end-expected.json @@ -11,6 +11,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 6 diff --git a/tests/packagedcode/data/build/buck/end2end-expected.json b/tests/packagedcode/data/build/buck/end2end-expected.json index 63639f18a9f..4e258672ce2 100644 --- a/tests/packagedcode/data/build/buck/end2end-expected.json +++ b/tests/packagedcode/data/build/buck/end2end-expected.json @@ -11,6 +11,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 7 diff --git a/tests/packagedcode/data/build_gradle/end2end-expected.json b/tests/packagedcode/data/build_gradle/end2end-expected.json index 045fd1c546d..81659476073 100644 --- a/tests/packagedcode/data/build_gradle/end2end-expected.json +++ b/tests/packagedcode/data/build_gradle/end2end-expected.json @@ -8,9 +8,10 @@ "--package": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/instance/python-package-instance-expected-with-test-manifests.json b/tests/packagedcode/data/instance/python-package-instance-expected-with-test-manifests.json index 7beb728b313..8cb87a4b256 100644 --- a/tests/packagedcode/data/instance/python-package-instance-expected-with-test-manifests.json +++ b/tests/packagedcode/data/instance/python-package-instance-expected-with-test-manifests.json @@ -10,9 +10,10 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 9 diff --git a/tests/packagedcode/data/instance/python-package-instance-expected-with-uuid.json b/tests/packagedcode/data/instance/python-package-instance-expected-with-uuid.json index 6f7675f3645..420c3be953e 100644 --- a/tests/packagedcode/data/instance/python-package-instance-expected-with-uuid.json +++ b/tests/packagedcode/data/instance/python-package-instance-expected-with-uuid.json @@ -10,9 +10,10 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 7 @@ -28,8 +29,8 @@ "is_optional": false, "is_resolved": false, "resolved_package": {}, - "dependency_uuid": "pkg:pypi/colorama?uuid=7424c04d-8d58-4573-b6cf-7a3cc08f8348", - "for_package": "pkg:pypi/click@8.0.1?uuid=3ab772cf-2208-437c-9dd0-2d39352db69a", + "dependency_uuid": "pkg:pypi/colorama?uuid=732998ac-1c28-448e-be0c-bbbbea2b2f9e", + "for_package": "pkg:pypi/click@8.0.1?uuid=21bf14d1-a101-4324-a0d7-9c79bbdb872c", "lockfile": "METADATA" }, { @@ -40,8 +41,8 @@ "is_optional": false, "is_resolved": false, "resolved_package": {}, - "dependency_uuid": "pkg:pypi/importlib-metadata?uuid=0910d9ea-5b43-4bd8-bff4-3c9297e6d12e", - "for_package": "pkg:pypi/click@8.0.1?uuid=3ab772cf-2208-437c-9dd0-2d39352db69a", + "dependency_uuid": "pkg:pypi/importlib-metadata?uuid=757cc640-7c92-4c4b-9ae7-1b63615c26d4", + "for_package": "pkg:pypi/click@8.0.1?uuid=21bf14d1-a101-4324-a0d7-9c79bbdb872c", "lockfile": "METADATA" }, { @@ -52,8 +53,8 @@ "is_optional": false, "is_resolved": false, "resolved_package": {}, - "dependency_uuid": "pkg:pypi/colorama?uuid=953ceae5-6f73-42e3-962f-42553646086a", - "for_package": "pkg:pypi/click@8.0.1?uuid=3ab772cf-2208-437c-9dd0-2d39352db69a", + "dependency_uuid": "pkg:pypi/colorama?uuid=52178881-3370-4169-9b15-cda8dd71984f", + "for_package": "pkg:pypi/click@8.0.1?uuid=21bf14d1-a101-4324-a0d7-9c79bbdb872c", "lockfile": "setup.py" }, { @@ -64,8 +65,8 @@ "is_optional": false, "is_resolved": false, "resolved_package": {}, - "dependency_uuid": "pkg:pypi/importlib-metadata?uuid=679d8571-4893-45af-b629-5d2be3e52788", - "for_package": "pkg:pypi/click@8.0.1?uuid=3ab772cf-2208-437c-9dd0-2d39352db69a", + "dependency_uuid": "pkg:pypi/importlib-metadata?uuid=428f8422-742b-4031-adf9-26ab295281cf", + "for_package": "pkg:pypi/click@8.0.1?uuid=21bf14d1-a101-4324-a0d7-9c79bbdb872c", "lockfile": "setup.py" }, { @@ -76,8 +77,8 @@ "is_optional": false, "is_resolved": false, "resolved_package": {}, - "dependency_uuid": "pkg:pypi/pre-commit?uuid=88de6ab9-d253-4fcf-ac9a-2f7d9cf8e04f", - "for_package": "pkg:pypi/click@8.0.1?uuid=3ab772cf-2208-437c-9dd0-2d39352db69a", + "dependency_uuid": "pkg:pypi/pre-commit?uuid=93498734-5b50-4aa2-a3e3-f40cc5e03b57", + "for_package": "pkg:pypi/click@8.0.1?uuid=21bf14d1-a101-4324-a0d7-9c79bbdb872c", "lockfile": "tox.ini" } ], @@ -136,7 +137,7 @@ "contains_source_code": null, "source_packages": [], "extra_data": {}, - "package_uuid": "pkg:pypi/click@8.0.1?uuid=3ab772cf-2208-437c-9dd0-2d39352db69a", + "package_uuid": "pkg:pypi/click@8.0.1?uuid=21bf14d1-a101-4324-a0d7-9c79bbdb872c", "package_data_files": [ "METADATA", "setup.cfg", @@ -164,7 +165,7 @@ "type": "file", "package_data": [], "for_packages": [ - "pkg:pypi/click@8.0.1?uuid=3ab772cf-2208-437c-9dd0-2d39352db69a" + "pkg:pypi/click@8.0.1?uuid=21bf14d1-a101-4324-a0d7-9c79bbdb872c" ], "scan_errors": [] }, @@ -173,7 +174,7 @@ "type": "file", "package_data": [], "for_packages": [ - "pkg:pypi/click@8.0.1?uuid=3ab772cf-2208-437c-9dd0-2d39352db69a" + "pkg:pypi/click@8.0.1?uuid=21bf14d1-a101-4324-a0d7-9c79bbdb872c" ], "scan_errors": [] }, @@ -262,7 +263,7 @@ } ], "for_packages": [ - "pkg:pypi/click@8.0.1?uuid=3ab772cf-2208-437c-9dd0-2d39352db69a" + "pkg:pypi/click@8.0.1?uuid=21bf14d1-a101-4324-a0d7-9c79bbdb872c" ], "scan_errors": [] }, @@ -271,7 +272,7 @@ "type": "file", "package_data": [], "for_packages": [ - "pkg:pypi/click@8.0.1?uuid=3ab772cf-2208-437c-9dd0-2d39352db69a" + "pkg:pypi/click@8.0.1?uuid=21bf14d1-a101-4324-a0d7-9c79bbdb872c" ], "scan_errors": [] }, @@ -316,7 +317,7 @@ } ], "for_packages": [ - "pkg:pypi/click@8.0.1?uuid=3ab772cf-2208-437c-9dd0-2d39352db69a" + "pkg:pypi/click@8.0.1?uuid=21bf14d1-a101-4324-a0d7-9c79bbdb872c" ], "scan_errors": [] }, @@ -380,7 +381,7 @@ } ], "for_packages": [ - "pkg:pypi/click@8.0.1?uuid=3ab772cf-2208-437c-9dd0-2d39352db69a" + "pkg:pypi/click@8.0.1?uuid=21bf14d1-a101-4324-a0d7-9c79bbdb872c" ], "scan_errors": [] }, @@ -435,7 +436,7 @@ } ], "for_packages": [ - "pkg:pypi/click@8.0.1?uuid=3ab772cf-2208-437c-9dd0-2d39352db69a" + "pkg:pypi/click@8.0.1?uuid=21bf14d1-a101-4324-a0d7-9c79bbdb872c" ], "scan_errors": [] } diff --git a/tests/packagedcode/data/instance/python-package-instance-expected.json b/tests/packagedcode/data/instance/python-package-instance-expected.json index 2d9e5355de8..21282300ed9 100644 --- a/tests/packagedcode/data/instance/python-package-instance-expected.json +++ b/tests/packagedcode/data/instance/python-package-instance-expected.json @@ -10,9 +10,10 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 7 diff --git a/tests/packagedcode/data/plugin/about-package-expected.json b/tests/packagedcode/data/plugin/about-package-expected.json index e9d0d6512cd..1bcedee5103 100644 --- a/tests/packagedcode/data/plugin/about-package-expected.json +++ b/tests/packagedcode/data/plugin/about-package-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 2 diff --git a/tests/packagedcode/data/plugin/bower-package-expected.json b/tests/packagedcode/data/plugin/bower-package-expected.json index 4e192f76fcd..bece5f96116 100644 --- a/tests/packagedcode/data/plugin/bower-package-expected.json +++ b/tests/packagedcode/data/plugin/bower-package-expected.json @@ -10,9 +10,10 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/cargo-package-expected.json b/tests/packagedcode/data/plugin/cargo-package-expected.json index f7b42481b26..b85bdcc32f2 100644 --- a/tests/packagedcode/data/plugin/cargo-package-expected.json +++ b/tests/packagedcode/data/plugin/cargo-package-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/chef-package-expected.json b/tests/packagedcode/data/plugin/chef-package-expected.json index 9eca2bb9b89..47e9eb651a2 100644 --- a/tests/packagedcode/data/plugin/chef-package-expected.json +++ b/tests/packagedcode/data/plugin/chef-package-expected.json @@ -10,9 +10,10 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 2 diff --git a/tests/packagedcode/data/plugin/com-package-expected.json b/tests/packagedcode/data/plugin/com-package-expected.json index e610a72567e..a2f51d3ffbd 100644 --- a/tests/packagedcode/data/plugin/com-package-expected.json +++ b/tests/packagedcode/data/plugin/com-package-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/conda-package-expected.json b/tests/packagedcode/data/plugin/conda-package-expected.json index 59126161068..8f0d82ca1e6 100644 --- a/tests/packagedcode/data/plugin/conda-package-expected.json +++ b/tests/packagedcode/data/plugin/conda-package-expected.json @@ -10,9 +10,10 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/cran-package-expected.json b/tests/packagedcode/data/plugin/cran-package-expected.json index 8ec115ad075..32b2e118d32 100644 --- a/tests/packagedcode/data/plugin/cran-package-expected.json +++ b/tests/packagedcode/data/plugin/cran-package-expected.json @@ -10,9 +10,10 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/freebsd-package-expected.json b/tests/packagedcode/data/plugin/freebsd-package-expected.json index bacc9a91749..08281f1df70 100644 --- a/tests/packagedcode/data/plugin/freebsd-package-expected.json +++ b/tests/packagedcode/data/plugin/freebsd-package-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/haxe-package-expected.json b/tests/packagedcode/data/plugin/haxe-package-expected.json index f1f0954cf5f..6500729d5ef 100644 --- a/tests/packagedcode/data/plugin/haxe-package-expected.json +++ b/tests/packagedcode/data/plugin/haxe-package-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/maven-package-expected.json b/tests/packagedcode/data/plugin/maven-package-expected.json index 2b7d07703ab..d94573911ba 100644 --- a/tests/packagedcode/data/plugin/maven-package-expected.json +++ b/tests/packagedcode/data/plugin/maven-package-expected.json @@ -10,9 +10,10 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 102 diff --git a/tests/packagedcode/data/plugin/mui-package-expected.json b/tests/packagedcode/data/plugin/mui-package-expected.json index 6abe82bf364..de19896d197 100644 --- a/tests/packagedcode/data/plugin/mui-package-expected.json +++ b/tests/packagedcode/data/plugin/mui-package-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/mum-package-expected.json b/tests/packagedcode/data/plugin/mum-package-expected.json index fd3a811849d..2a444e2329a 100644 --- a/tests/packagedcode/data/plugin/mum-package-expected.json +++ b/tests/packagedcode/data/plugin/mum-package-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/mun-package-expected.json b/tests/packagedcode/data/plugin/mun-package-expected.json index 672ae6d85d9..9227a3da03c 100644 --- a/tests/packagedcode/data/plugin/mun-package-expected.json +++ b/tests/packagedcode/data/plugin/mun-package-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/npm-package-expected.json b/tests/packagedcode/data/plugin/npm-package-expected.json index ecf9abf6140..dafa8429aa2 100644 --- a/tests/packagedcode/data/plugin/npm-package-expected.json +++ b/tests/packagedcode/data/plugin/npm-package-expected.json @@ -10,9 +10,10 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/nuget-package-expected.json b/tests/packagedcode/data/plugin/nuget-package-expected.json index 44f1b0b9295..c65f7383929 100644 --- a/tests/packagedcode/data/plugin/nuget-package-expected.json +++ b/tests/packagedcode/data/plugin/nuget-package-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/opam-package-expected.json b/tests/packagedcode/data/plugin/opam-package-expected.json index c090cbec3e7..3da4d9bc905 100644 --- a/tests/packagedcode/data/plugin/opam-package-expected.json +++ b/tests/packagedcode/data/plugin/opam-package-expected.json @@ -10,9 +10,10 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/phpcomposer-package-expected.json b/tests/packagedcode/data/plugin/phpcomposer-package-expected.json index 3405d947d02..e36d12b76b2 100644 --- a/tests/packagedcode/data/plugin/phpcomposer-package-expected.json +++ b/tests/packagedcode/data/plugin/phpcomposer-package-expected.json @@ -10,9 +10,10 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/pubspec-expected.json b/tests/packagedcode/data/plugin/pubspec-expected.json index 0714a56b190..4ff4f130f8f 100644 --- a/tests/packagedcode/data/plugin/pubspec-expected.json +++ b/tests/packagedcode/data/plugin/pubspec-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/pubspec-lock-expected.json b/tests/packagedcode/data/plugin/pubspec-lock-expected.json index bb5236d9279..77e7665cc05 100644 --- a/tests/packagedcode/data/plugin/pubspec-lock-expected.json +++ b/tests/packagedcode/data/plugin/pubspec-lock-expected.json @@ -10,9 +10,10 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/python-package-expected.json b/tests/packagedcode/data/plugin/python-package-expected.json index 02dacb9e809..6c21ad06e36 100644 --- a/tests/packagedcode/data/plugin/python-package-expected.json +++ b/tests/packagedcode/data/plugin/python-package-expected.json @@ -10,9 +10,10 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 8 diff --git a/tests/packagedcode/data/plugin/rpm-package-expected.json b/tests/packagedcode/data/plugin/rpm-package-expected.json index c683021db89..4d241385fc6 100644 --- a/tests/packagedcode/data/plugin/rpm-package-expected.json +++ b/tests/packagedcode/data/plugin/rpm-package-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/rubygems-package-expected.json b/tests/packagedcode/data/plugin/rubygems-package-expected.json index 8d1e6034176..10e0b4f39d4 100644 --- a/tests/packagedcode/data/plugin/rubygems-package-expected.json +++ b/tests/packagedcode/data/plugin/rubygems-package-expected.json @@ -10,9 +10,10 @@ "--strip-root": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 2 diff --git a/tests/packagedcode/data/plugin/sys-package-expected.json b/tests/packagedcode/data/plugin/sys-package-expected.json index af9880591d2..4b280754c16 100644 --- a/tests/packagedcode/data/plugin/sys-package-expected.json +++ b/tests/packagedcode/data/plugin/sys-package-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/tlb-package-expected.json b/tests/packagedcode/data/plugin/tlb-package-expected.json index d9cffed4718..d513d466c24 100644 --- a/tests/packagedcode/data/plugin/tlb-package-expected.json +++ b/tests/packagedcode/data/plugin/tlb-package-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/win_pe-package-expected.json b/tests/packagedcode/data/plugin/win_pe-package-expected.json index edc03c6b52a..037f86327fd 100644 --- a/tests/packagedcode/data/plugin/win_pe-package-expected.json +++ b/tests/packagedcode/data/plugin/win_pe-package-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/packagedcode/data/plugin/winmd-package-expected.json b/tests/packagedcode/data/plugin/winmd-package-expected.json index c905883cae6..fee3c58d84f 100644 --- a/tests/packagedcode/data/plugin/winmd-package-expected.json +++ b/tests/packagedcode/data/plugin/winmd-package-expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/scancode/data/altpath/copyright.expected.json b/tests/scancode/data/altpath/copyright.expected.json index 2c4fee8189d..c01d2fb22f0 100644 --- a/tests/scancode/data/altpath/copyright.expected.json +++ b/tests/scancode/data/altpath/copyright.expected.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/scancode/data/composer/composer.expected.json b/tests/scancode/data/composer/composer.expected.json index 481cad2d57e..10bd08f69d7 100644 --- a/tests/scancode/data/composer/composer.expected.json +++ b/tests/scancode/data/composer/composer.expected.json @@ -8,9 +8,10 @@ "--package": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/scancode/data/failing/patchelf.expected.json b/tests/scancode/data/failing/patchelf.expected.json index 8daaed6b661..c82ff8f12b2 100644 --- a/tests/scancode/data/failing/patchelf.expected.json +++ b/tests/scancode/data/failing/patchelf.expected.json @@ -12,6 +12,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/scancode/data/help/help.txt b/tests/scancode/data/help/help.txt index 3300d575ef3..bec706ddd48 100644 --- a/tests/scancode/data/help/help.txt +++ b/tests/scancode/data/help/help.txt @@ -112,20 +112,22 @@ Options: contain over 90% of source files as children and descendants. Count the number of source files in a directory as a new source_file_counts attribute - --summary Summarize license, copyright and other scans at the - codebase level. - --summary-by-facet Summarize license, copyright and other scans and - group the results by facet. - --summary-key-files Summarize license, copyright and other scans for key, - top-level files. Key files are top-level codebase - files such as COPYING, README and package manifests - as reported by the --classify option "is_legal", - "is_readme", "is_manifest" and "is_top_level" flags. - --summary-with-details Summarize license, copyright and other scans at the - codebase level, keeping intermediate details at the - file and directory level. - --summary2 Summarize license, copyright and other scans at the - codebase level. + --summary Summarize scans by providing declared origin + information and other detected origin info at the + codebase attribute level. + --tallies Compute tallies for license, copyright and other + scans at the codebase level. + --tallies-by-facet Compute tallies for license, copyright and other + scans and group the results by facet. + --tallies-key-files Compute tallies for license, copyright and other + scans for key, top-level files. Key files are top- + level codebase files such as COPYING, README and + package manifests as reported by the --classify + option "is_legal", "is_readme", "is_manifest" and + "is_top_level" flags. + --tallies-with-details Compute tallies of license, copyright and other scans + at the codebase level, keeping intermediate details + at the file and directory level. core: --timeout Stop an unfinished file scan after a timeout in diff --git a/tests/scancode/data/info/all.expected.json b/tests/scancode/data/info/all.expected.json index 218ae8aacf6..28505d2b1ef 100644 --- a/tests/scancode/data/info/all.expected.json +++ b/tests/scancode/data/info/all.expected.json @@ -14,6 +14,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 6 diff --git a/tests/scancode/data/info/all.rooted.expected.json b/tests/scancode/data/info/all.rooted.expected.json index 4cdffd2158d..1167751ce74 100644 --- a/tests/scancode/data/info/all.rooted.expected.json +++ b/tests/scancode/data/info/all.rooted.expected.json @@ -14,6 +14,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 6 diff --git a/tests/scancode/data/info/basic.expected.json b/tests/scancode/data/info/basic.expected.json index 8666bae861a..37aa80c72f9 100644 --- a/tests/scancode/data/info/basic.expected.json +++ b/tests/scancode/data/info/basic.expected.json @@ -12,6 +12,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 6 diff --git a/tests/scancode/data/info/basic.rooted.expected.json b/tests/scancode/data/info/basic.rooted.expected.json index c78b3286bf3..875f6d68d4e 100644 --- a/tests/scancode/data/info/basic.rooted.expected.json +++ b/tests/scancode/data/info/basic.rooted.expected.json @@ -11,6 +11,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 6 diff --git a/tests/scancode/data/info/email_url_info.expected.json b/tests/scancode/data/info/email_url_info.expected.json index ad17eec1f31..3fad38a1554 100644 --- a/tests/scancode/data/info/email_url_info.expected.json +++ b/tests/scancode/data/info/email_url_info.expected.json @@ -14,6 +14,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 6 diff --git a/tests/scancode/data/license_text/test.expected b/tests/scancode/data/license_text/test.expected index ccf874247c0..da59f1b33a9 100644 --- a/tests/scancode/data/license_text/test.expected +++ b/tests/scancode/data/license_text/test.expected @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/scancode/data/non_utf8/expected-linux.json b/tests/scancode/data/non_utf8/expected-linux.json index aaa6e2a347e..0a7a48e9690 100644 --- a/tests/scancode/data/non_utf8/expected-linux.json +++ b/tests/scancode/data/non_utf8/expected-linux.json @@ -12,6 +12,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 18 diff --git a/tests/scancode/data/plugin_mark_source/with_info.expected.json b/tests/scancode/data/plugin_mark_source/with_info.expected.json index 7e1d043518e..4cfb18bdcf7 100644 --- a/tests/scancode/data/plugin_mark_source/with_info.expected.json +++ b/tests/scancode/data/plugin_mark_source/with_info.expected.json @@ -9,10 +9,12 @@ "--mark-source": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 12 } } diff --git a/tests/scancode/data/plugin_only_findings/basic.expected.json b/tests/scancode/data/plugin_only_findings/basic.expected.json index 08813406637..09627bd1cfd 100644 --- a/tests/scancode/data/plugin_only_findings/basic.expected.json +++ b/tests/scancode/data/plugin_only_findings/basic.expected.json @@ -15,8 +15,9 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 2 } } diff --git a/tests/scancode/data/plugin_only_findings/errors.expected.json b/tests/scancode/data/plugin_only_findings/errors.expected.json index 195f5324404..331cf7e0f99 100644 --- a/tests/scancode/data/plugin_only_findings/errors.expected.json +++ b/tests/scancode/data/plugin_only_findings/errors.expected.json @@ -12,10 +12,12 @@ "--timeout": "0.01" }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": null, "message": null, "errors": [ "Path: errors/many_copyrights.c" ], + "warnings": [], "extra_data": { "files_count": 1 } @@ -29,12 +31,14 @@ "--only-findings": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", "message": null, "errors": [ "Path: errors/many_copyrights.c" ], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 1 } } diff --git a/tests/scancode/data/plugin_only_findings/info.expected.json b/tests/scancode/data/plugin_only_findings/info.expected.json index 0c9ede6c487..e7d6e95c3a1 100644 --- a/tests/scancode/data/plugin_only_findings/info.expected.json +++ b/tests/scancode/data/plugin_only_findings/info.expected.json @@ -9,10 +9,12 @@ "--only-findings": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 0 } } diff --git a/tests/scancode/data/rpm/fping-2.4-0.b2.rhfc1.dag.i386.rpm.expected.json b/tests/scancode/data/rpm/fping-2.4-0.b2.rhfc1.dag.i386.rpm.expected.json index 52f97da4082..01aad44ea9a 100644 --- a/tests/scancode/data/rpm/fping-2.4-0.b2.rhfc1.dag.i386.rpm.expected.json +++ b/tests/scancode/data/rpm/fping-2.4-0.b2.rhfc1.dag.i386.rpm.expected.json @@ -11,6 +11,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/scancode/data/single/iproute.expected.json b/tests/scancode/data/single/iproute.expected.json index 8001c03e115..9280f14190c 100644 --- a/tests/scancode/data/single/iproute.expected.json +++ b/tests/scancode/data/single/iproute.expected.json @@ -12,6 +12,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/scancode/data/unicodepath/unicodepath.expected-linux.json b/tests/scancode/data/unicodepath/unicodepath.expected-linux.json index fe39696d17e..9eddcbad5ba 100644 --- a/tests/scancode/data/unicodepath/unicodepath.expected-linux.json +++ b/tests/scancode/data/unicodepath/unicodepath.expected-linux.json @@ -17,6 +17,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 3 diff --git a/tests/scancode/data/unicodepath/unicodepath.expected-linux.json--quiet b/tests/scancode/data/unicodepath/unicodepath.expected-linux.json--quiet index 10fd306fd40..96b8369adf8 100644 --- a/tests/scancode/data/unicodepath/unicodepath.expected-linux.json--quiet +++ b/tests/scancode/data/unicodepath/unicodepath.expected-linux.json--quiet @@ -18,6 +18,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 3 diff --git a/tests/scancode/data/unicodepath/unicodepath.expected-linux.json--verbose b/tests/scancode/data/unicodepath/unicodepath.expected-linux.json--verbose index fe39696d17e..9eddcbad5ba 100644 --- a/tests/scancode/data/unicodepath/unicodepath.expected-linux.json--verbose +++ b/tests/scancode/data/unicodepath/unicodepath.expected-linux.json--verbose @@ -17,6 +17,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 3 diff --git a/tests/scancode/data/weird_file_name/expected-posix.json b/tests/scancode/data/weird_file_name/expected-posix.json index 290dd007649..3213c13fb41 100644 --- a/tests/scancode/data/weird_file_name/expected-posix.json +++ b/tests/scancode/data/weird_file_name/expected-posix.json @@ -13,6 +13,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 5 diff --git a/tests/summarycode/data/classify/cli.expected.json b/tests/summarycode/data/classify/cli.expected.json index d8dfd9ecb02..5193e5f41cb 100644 --- a/tests/summarycode/data/classify/cli.expected.json +++ b/tests/summarycode/data/classify/cli.expected.json @@ -9,11 +9,12 @@ "--json-pp": "" }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "1.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 8 } } diff --git a/tests/summarycode/data/facet/cli.expected.json b/tests/summarycode/data/facet/cli.expected.json index 84e29d4b13a..ea30612095a 100644 --- a/tests/summarycode/data/facet/cli.expected.json +++ b/tests/summarycode/data/facet/cli.expected.json @@ -13,11 +13,12 @@ "--json-pp": "" }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "1.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 56 } } diff --git a/tests/summarycode/data/generated/cli.expected.json b/tests/summarycode/data/generated/cli.expected.json index 306c64d08bb..f066b595541 100644 --- a/tests/summarycode/data/generated/cli.expected.json +++ b/tests/summarycode/data/generated/cli.expected.json @@ -8,11 +8,12 @@ "--json-pp": "" }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "1.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 7 } } diff --git a/tests/summarycode/data/plugin_consolidate/component-package-build-expected.json b/tests/summarycode/data/plugin_consolidate/component-package-build-expected.json index d5f10cf0f31..dfe25ab5b08 100644 --- a/tests/summarycode/data/plugin_consolidate/component-package-build-expected.json +++ b/tests/summarycode/data/plugin_consolidate/component-package-build-expected.json @@ -15,6 +15,9 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [ + "The --consolidate option will be deprecated in a future version of scancode-toolkit." + ], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 8 diff --git a/tests/summarycode/data/plugin_consolidate/component-package-expected.json b/tests/summarycode/data/plugin_consolidate/component-package-expected.json index aba522e6b49..3c1e797c200 100644 --- a/tests/summarycode/data/plugin_consolidate/component-package-expected.json +++ b/tests/summarycode/data/plugin_consolidate/component-package-expected.json @@ -4,7 +4,6 @@ "tool_name": "scancode-toolkit", "options": { "input": "", - "--consolidate": true, "--copyright": true, "--info": true, "--json": "", @@ -15,6 +14,47 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], + "extra_data": { + "spdx_license_list_version": "3.16", + "files_count": 7 + } + }, + { + "tool_name": "scancode-toolkit", + "options": { + "input": "", + "--consolidate": true, + "--from-json": true, + "--json": "" + }, + "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", + "message": null, + "errors": [], + "warnings": [ + "The --consolidate option will be deprecated in a future version of scancode-toolkit." + ], + "extra_data": { + "spdx_license_list_version": "3.16", + "files_count": 7 + } + }, + { + "tool_name": "scancode-toolkit", + "options": { + "input": "", + "--consolidate": true, + "--from-json": true, + "--json": "" + }, + "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", + "message": null, + "errors": [], + "warnings": [ + "The --consolidate option will be deprecated in a future version of scancode-toolkit." + ], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 7 diff --git a/tests/summarycode/data/plugin_consolidate/e2fsprogs-expected.json b/tests/summarycode/data/plugin_consolidate/e2fsprogs-expected.json index 0c15d928d9e..362b89fa479 100644 --- a/tests/summarycode/data/plugin_consolidate/e2fsprogs-expected.json +++ b/tests/summarycode/data/plugin_consolidate/e2fsprogs-expected.json @@ -20,6 +20,7 @@ "output_format_version": null, "message": null, "errors": [], + "warnings": [], "extra_data": { "files_count": 2183 } @@ -36,8 +37,11 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [ + "The --consolidate option will be deprecated in a future version of scancode-toolkit." + ], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 2183 } } diff --git a/tests/summarycode/data/plugin_consolidate/license-holder-rollup-expected.json b/tests/summarycode/data/plugin_consolidate/license-holder-rollup-expected.json index 74b301a97a5..f46fc3e439f 100644 --- a/tests/summarycode/data/plugin_consolidate/license-holder-rollup-expected.json +++ b/tests/summarycode/data/plugin_consolidate/license-holder-rollup-expected.json @@ -15,8 +15,11 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [ + "The --consolidate option will be deprecated in a future version of scancode-toolkit." + ], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 3 } } diff --git a/tests/summarycode/data/plugin_consolidate/multiple-same-holder-and-license-expected.json b/tests/summarycode/data/plugin_consolidate/multiple-same-holder-and-license-expected.json index d8986cf16dc..effff94f829 100644 --- a/tests/summarycode/data/plugin_consolidate/multiple-same-holder-and-license-expected.json +++ b/tests/summarycode/data/plugin_consolidate/multiple-same-holder-and-license-expected.json @@ -15,8 +15,11 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [ + "The --consolidate option will be deprecated in a future version of scancode-toolkit." + ], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 2 } } diff --git a/tests/summarycode/data/plugin_consolidate/package-files-not-counted-in-license-holders-expected.json b/tests/summarycode/data/plugin_consolidate/package-files-not-counted-in-license-holders-expected.json index 3988b44faab..addc77dbc9e 100644 --- a/tests/summarycode/data/plugin_consolidate/package-files-not-counted-in-license-holders-expected.json +++ b/tests/summarycode/data/plugin_consolidate/package-files-not-counted-in-license-holders-expected.json @@ -15,6 +15,9 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [ + "The --consolidate option will be deprecated in a future version of scancode-toolkit." + ], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 6 diff --git a/tests/summarycode/data/plugin_consolidate/package-fileset-expected.json b/tests/summarycode/data/plugin_consolidate/package-fileset-expected.json index cea0f470a8b..310dbafb243 100644 --- a/tests/summarycode/data/plugin_consolidate/package-fileset-expected.json +++ b/tests/summarycode/data/plugin_consolidate/package-fileset-expected.json @@ -15,6 +15,9 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [ + "The --consolidate option will be deprecated in a future version of scancode-toolkit." + ], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 4 diff --git a/tests/summarycode/data/plugin_consolidate/package-manifest-expected.json b/tests/summarycode/data/plugin_consolidate/package-manifest-expected.json index b8e1b40d7fa..3fbeddd4b0b 100644 --- a/tests/summarycode/data/plugin_consolidate/package-manifest-expected.json +++ b/tests/summarycode/data/plugin_consolidate/package-manifest-expected.json @@ -15,6 +15,9 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [ + "The --consolidate option will be deprecated in a future version of scancode-toolkit." + ], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 diff --git a/tests/summarycode/data/plugin_consolidate/report-subdirectory-with-minority-origin-expected.json b/tests/summarycode/data/plugin_consolidate/report-subdirectory-with-minority-origin-expected.json index 17a449913e8..046c87e841b 100644 --- a/tests/summarycode/data/plugin_consolidate/report-subdirectory-with-minority-origin-expected.json +++ b/tests/summarycode/data/plugin_consolidate/report-subdirectory-with-minority-origin-expected.json @@ -15,8 +15,11 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [ + "The --consolidate option will be deprecated in a future version of scancode-toolkit." + ], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 4 } } diff --git a/tests/summarycode/data/plugin_consolidate/return-nested-local-majority-expected.json b/tests/summarycode/data/plugin_consolidate/return-nested-local-majority-expected.json index 95e4dc65625..28caba15939 100644 --- a/tests/summarycode/data/plugin_consolidate/return-nested-local-majority-expected.json +++ b/tests/summarycode/data/plugin_consolidate/return-nested-local-majority-expected.json @@ -15,8 +15,11 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [ + "The --consolidate option will be deprecated in a future version of scancode-toolkit." + ], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 4 } } diff --git a/tests/summarycode/data/plugin_consolidate/zlib-expected.json b/tests/summarycode/data/plugin_consolidate/zlib-expected.json index 4e492ec4010..00d9661d79b 100644 --- a/tests/summarycode/data/plugin_consolidate/zlib-expected.json +++ b/tests/summarycode/data/plugin_consolidate/zlib-expected.json @@ -20,6 +20,7 @@ "output_format_version": null, "message": null, "errors": [], + "warnings": [], "extra_data": { "files_count": 253 } @@ -36,8 +37,11 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [ + "The --consolidate option will be deprecated in a future version of scancode-toolkit." + ], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 253 } } diff --git a/tests/summarycode/data/score/basic-expected.json b/tests/summarycode/data/score/basic-expected.json index 0bed1d82b62..148478d8ec0 100644 --- a/tests/summarycode/data/score/basic-expected.json +++ b/tests/summarycode/data/score/basic-expected.json @@ -15,6 +15,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 3 @@ -22,10 +23,7 @@ } ], "summary": { - "primary_license_expression": "mit", - "declared_license_expressions": [ - "mit" - ], + "declared_license_expression": "mit", "license_clarity_score": { "score": 100, "declared_license": true, diff --git a/tests/summarycode/data/score/inconsistent_licenses_copyleft-expected.json b/tests/summarycode/data/score/inconsistent_licenses_copyleft-expected.json index 48e4f162e0e..c8f357ff333 100644 --- a/tests/summarycode/data/score/inconsistent_licenses_copyleft-expected.json +++ b/tests/summarycode/data/score/inconsistent_licenses_copyleft-expected.json @@ -15,6 +15,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 4 @@ -22,10 +23,7 @@ } ], "summary": { - "primary_license_expression": "mit", - "declared_license_expressions": [ - "mit" - ], + "declared_license_expression": "mit", "license_clarity_score": { "score": 80, "declared_license": true, diff --git a/tests/summarycode/data/score/no_license_ambiguity-expected.json b/tests/summarycode/data/score/no_license_ambiguity-expected.json index 2e5b5fddf94..4f117c5e09b 100644 --- a/tests/summarycode/data/score/no_license_ambiguity-expected.json +++ b/tests/summarycode/data/score/no_license_ambiguity-expected.json @@ -15,6 +15,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 8 @@ -22,13 +23,7 @@ } ], "summary": { - "primary_license_expression": "mit OR apache-2.0", - "declared_license_expressions": [ - "mit OR apache-2.0", - "apache-2.0", - "apache-2.0 OR mit", - "mit" - ], + "declared_license_expression": "mit OR apache-2.0", "license_clarity_score": { "score": 100, "declared_license": true, diff --git a/tests/summarycode/data/score/no_license_or_copyright-expected.json b/tests/summarycode/data/score/no_license_or_copyright-expected.json index 09eb9283f66..57338166ba4 100644 --- a/tests/summarycode/data/score/no_license_or_copyright-expected.json +++ b/tests/summarycode/data/score/no_license_or_copyright-expected.json @@ -15,6 +15,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 3 @@ -22,8 +23,7 @@ } ], "summary": { - "primary_license_expression": "", - "declared_license_expressions": [], + "declared_license_expression": "", "license_clarity_score": { "score": 0, "declared_license": false, @@ -31,7 +31,7 @@ "has_license_text": false, "declared_copyrights": false, "conflicting_license_categories": false, - "ambigous_compound_licensing": false + "ambigous_compound_licensing": true } }, "files": [ diff --git a/tests/summarycode/data/score/no_license_text-expected.json b/tests/summarycode/data/score/no_license_text-expected.json index 27d2a44785a..c9f3a78d0ed 100644 --- a/tests/summarycode/data/score/no_license_text-expected.json +++ b/tests/summarycode/data/score/no_license_text-expected.json @@ -15,6 +15,7 @@ "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 3 @@ -22,10 +23,7 @@ } ], "summary": { - "primary_license_expression": "mit", - "declared_license_expressions": [ - "mit" - ], + "declared_license_expression": "mit", "license_clarity_score": { "score": 90, "declared_license": true, diff --git a/tests/summarycode/data/summary/conflicting_license_categories/codebase/README.txt b/tests/summarycode/data/summary/conflicting_license_categories/codebase/README.txt new file mode 100644 index 00000000000..28127bdf83c --- /dev/null +++ b/tests/summarycode/data/summary/conflicting_license_categories/codebase/README.txt @@ -0,0 +1,3 @@ +Sample code + +Copyright Example Corp. \ No newline at end of file diff --git a/tests/summarycode/data/summary/conflicting_license_categories/codebase/apache-2.0.LICENSE b/tests/summarycode/data/summary/conflicting_license_categories/codebase/apache-2.0.LICENSE new file mode 100644 index 00000000000..d9a10c0d8e8 --- /dev/null +++ b/tests/summarycode/data/summary/conflicting_license_categories/codebase/apache-2.0.LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/tests/summarycode/data/summary/conflicting_license_categories/codebase/mit.LICENSE b/tests/summarycode/data/summary/conflicting_license_categories/codebase/mit.LICENSE new file mode 100644 index 00000000000..2d4a989856a --- /dev/null +++ b/tests/summarycode/data/summary/conflicting_license_categories/codebase/mit.LICENSE @@ -0,0 +1,18 @@ +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tests/summarycode/data/summary/conflicting_license_categories/codebase/src/a.py b/tests/summarycode/data/summary/conflicting_license_categories/codebase/src/a.py new file mode 100644 index 00000000000..324e0a539d6 --- /dev/null +++ b/tests/summarycode/data/summary/conflicting_license_categories/codebase/src/a.py @@ -0,0 +1,6 @@ +# Copyright Example Corp +# Copyright Other Corp. +# This is licensed under Apache-2.0 or MIT + +def something(): + pass diff --git a/tests/summarycode/data/summary/conflicting_license_categories/codebase/tests/test_a.py b/tests/summarycode/data/summary/conflicting_license_categories/codebase/tests/test_a.py new file mode 100644 index 00000000000..b3693c6adb6 --- /dev/null +++ b/tests/summarycode/data/summary/conflicting_license_categories/codebase/tests/test_a.py @@ -0,0 +1,2 @@ +# Copyright Example Corp. +# This is licensed under GPL-2.0-or-later \ No newline at end of file diff --git a/tests/summarycode/data/summary/conflicting_license_categories/conflicting_license_categories.expected.json b/tests/summarycode/data/summary/conflicting_license_categories/conflicting_license_categories.expected.json new file mode 100644 index 00000000000..3ebb11f1b09 --- /dev/null +++ b/tests/summarycode/data/summary/conflicting_license_categories/conflicting_license_categories.expected.json @@ -0,0 +1,744 @@ +{ + "headers": [ + { + "tool_name": "scancode-toolkit", + "options": { + "input": "", + "--classify": true, + "--copyright": true, + "--info": true, + "--json-pp": "", + "--license": true, + "--package": true, + "--summary": true + }, + "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", + "message": null, + "errors": [], + "warnings": [], + "extra_data": { + "spdx_license_list_version": "3.16", + "files_count": 5 + } + } + ], + "dependencies": [], + "packages": [], + "summary": { + "declared_license_expression": "apache-2.0 AND mit", + "license_clarity_score": { + "score": 70, + "declared_license": true, + "precise_license_detection": true, + "has_license_text": true, + "declared_copyrights": true, + "conflicting_license_categories": true, + "ambigous_compound_licensing": true + }, + "declared_holder": "Example Corp.", + "primary_language": "Python", + "other_license_expressions": [ + { + "value": "apache-2.0", + "count": 2 + }, + { + "value": "apache-2.0 OR mit", + "count": 1 + }, + { + "value": "gpl-1.0-plus", + "count": 1 + }, + { + "value": "gpl-2.0", + "count": 1 + }, + { + "value": "gpl-2.0-plus", + "count": 1 + }, + { + "value": "mit", + "count": 1 + } + ], + "other_holders": [ + { + "value": null, + "count": 2 + }, + { + "value": "Other Corp.", + "count": 1 + } + ], + "other_languages": [] + }, + "files": [ + { + "path": "codebase", + "type": "directory", + "name": "codebase", + "base_name": "codebase", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "files_count": 5, + "dirs_count": 2, + "size_count": 11417, + "scan_errors": [] + }, + { + "path": "codebase/README.txt", + "type": "file", + "name": "README.txt", + "base_name": "README", + "extension": ".txt", + "size": 36, + "sha1": "2daf15d1a99a13f9a0aa55f82c26c501d195b1d4", + "md5": "1c417a6dead913d0a186f4551799cec6", + "sha256": "eb5e2ed1da7b1af141db3c3970d5485aaa985048be3250c89cb27889050c5bdd", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [ + { + "copyright": "Copyright Example Corp.", + "start_line": 3, + "end_line": 3 + } + ], + "holders": [ + { + "holder": "Example Corp.", + "start_line": 3, + "end_line": 3 + } + ], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": true, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "codebase/apache-2.0.LICENSE", + "type": "file", + "name": "apache-2.0.LICENSE", + "base_name": "apache-2.0", + "extension": ".LICENSE", + "size": 10173, + "sha1": "a6a5418b4d67d9f3a33cbf184b25ac7f9fa87d33", + "md5": "e23fadd6ceef8c618fc1c65191d846fa", + "sha256": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 1, + "end_line": 176, + "matched_rule": { + "identifier": "apache-2.0_93.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 1410, + "matched_length": 1410, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "codebase/mit.LICENSE", + "type": "file", + "name": "mit.LICENSE", + "base_name": "mit", + "extension": ".LICENSE", + "size": 1022, + "sha1": "d162bf6d725758cf35e4b4e49db3750e85bc98a0", + "md5": "8d18be6409468bae48b33b87db85824a", + "sha256": "17eeb111a052462b64de9a5a56983f8d732922d8666ecbf20ede8f776b4c4df4", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 1, + "end_line": 18, + "matched_rule": { + "identifier": "mit.LICENSE", + "license_expression": "mit", + "licenses": [ + "mit" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 161, + "matched_length": 161, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "mit" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "codebase/src", + "type": "directory", + "name": "src", + "base_name": "src", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "files_count": 1, + "dirs_count": 0, + "size_count": 119, + "scan_errors": [] + }, + { + "path": "codebase/src/a.py", + "type": "file", + "name": "a.py", + "base_name": "a", + "extension": ".py", + "size": 119, + "sha1": "55c475daa8f6c7bf1837a32834ba8d236d67b2e0", + "md5": "e2b1dd2987670abf43bc0d9e990b6b06", + "sha256": "339b9cacc68a4b73fcae5ac1b71a7229eadec02894934b690153a5fa0bb1eb72", + "mime_type": "text/x-script.python", + "file_type": "Python script, ASCII text executable", + "programming_language": "Python", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": true, + "licenses": [ + { + "key": "apache-2.0", + "score": 80.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_73.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 4, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 80 + } + }, + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0", + "apache-2.0 OR mit" + ], + "percentage_of_license_text": 44.44, + "copyrights": [ + { + "copyright": "Copyright Example Corp", + "start_line": 1, + "end_line": 1 + }, + { + "copyright": "Copyright Other Corp.", + "start_line": 2, + "end_line": 2 + } + ], + "holders": [ + { + "holder": "Example Corp", + "start_line": 1, + "end_line": 1 + }, + { + "holder": "Other Corp.", + "start_line": 2, + "end_line": 2 + } + ], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "codebase/tests", + "type": "directory", + "name": "tests", + "base_name": "tests", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "files_count": 1, + "dirs_count": 0, + "size_count": 67, + "scan_errors": [] + }, + { + "path": "codebase/tests/test_a.py", + "type": "file", + "name": "test_a.py", + "base_name": "test_a", + "extension": ".py", + "size": 67, + "sha1": "67b480fc1edd1078938152b4dbccd097a4fd2727", + "md5": "040651978c6d3b38c8b2536dea1b8ad7", + "sha256": "c98d765cfb4898eba46bc1b2ddf41e4481836de98fe7d3a2f50de25eb6367d8f", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Python", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "gpl-1.0-plus", + "score": 100.0, + "name": "GNU General Public License 1.0 or later", + "short_name": "GPL 1.0 or later", + "category": "Copyleft", + "is_exception": false, + "is_unknown": false, + "owner": "Free Software Foundation (FSF)", + "homepage_url": "http://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html", + "text_url": "http://www.gnu.org/licenses/old-licenses/gpl-1.0-standalone.html", + "reference_url": "https://scancode-licensedb.aboutcode.org/gpl-1.0-plus", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-1.0-plus.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-1.0-plus.yml", + "spdx_license_key": "GPL-1.0-or-later", + "spdx_url": "https://spdx.org/licenses/GPL-1.0-or-later", + "start_line": 2, + "end_line": 2, + "matched_rule": { + "identifier": "gpl_208.RULE", + "license_expression": "gpl-1.0-plus", + "licenses": [ + "gpl-1.0-plus" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 3, + "matched_length": 3, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "gpl-2.0", + "score": 100.0, + "name": "GNU General Public License 2.0", + "short_name": "GPL 2.0", + "category": "Copyleft", + "is_exception": false, + "is_unknown": false, + "owner": "Free Software Foundation (FSF)", + "homepage_url": "http://www.gnu.org/licenses/gpl-2.0.html", + "text_url": "http://www.gnu.org/licenses/gpl-2.0.txt", + "reference_url": "https://scancode-licensedb.aboutcode.org/gpl-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0.yml", + "spdx_license_key": "GPL-2.0-only", + "spdx_url": "https://spdx.org/licenses/GPL-2.0-only", + "start_line": 2, + "end_line": 2, + "matched_rule": { + "identifier": "gpl-2.0_840.RULE", + "license_expression": "gpl-2.0", + "licenses": [ + "gpl-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 3, + "matched_length": 3, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "gpl-2.0-plus", + "score": 50.0, + "name": "GNU General Public License 2.0 or later", + "short_name": "GPL 2.0 or later", + "category": "Copyleft", + "is_exception": false, + "is_unknown": false, + "owner": "Free Software Foundation (FSF)", + "homepage_url": "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", + "text_url": "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", + "reference_url": "https://scancode-licensedb.aboutcode.org/gpl-2.0-plus", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.yml", + "spdx_license_key": "GPL-2.0-or-later", + "spdx_url": "https://spdx.org/licenses/GPL-2.0-or-later", + "start_line": 2, + "end_line": 2, + "matched_rule": { + "identifier": "spdx_license_id_gpl-2.0-or-later_for_gpl-2.0-plus.RULE", + "license_expression": "gpl-2.0-plus", + "licenses": [ + "gpl-2.0-plus" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 50 + } + } + ], + "license_expressions": [ + "gpl-1.0-plus", + "gpl-2.0", + "gpl-2.0-plus" + ], + "percentage_of_license_text": 58.33, + "copyrights": [ + { + "copyright": "Copyright Example Corp.", + "start_line": 1, + "end_line": 1 + } + ], + "holders": [ + { + "holder": "Example Corp.", + "start_line": 1, + "end_line": 1 + } + ], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/summarycode/data/summary2/end-2-end/bug-1141.expected.json b/tests/summarycode/data/summary/end-2-end/bug-1141.expected.json similarity index 98% rename from tests/summarycode/data/summary2/end-2-end/bug-1141.expected.json rename to tests/summarycode/data/summary/end-2-end/bug-1141.expected.json index 1ccc7451f8f..c3e21a367fb 100644 --- a/tests/summarycode/data/summary2/end-2-end/bug-1141.expected.json +++ b/tests/summarycode/data/summary/end-2-end/bug-1141.expected.json @@ -9,25 +9,24 @@ "--info": true, "--json-pp": "", "--license": true, - "--license-clarity-score": true, "--package": true, - "--summary2": true + "--summary": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 4 } } ], + "dependencies": [], + "packages": [], "summary": { - "primary_license_expression": "gpl-3.0-plus", - "declared_license_expressions": [ - "gpl-3.0-plus" - ], + "declared_license_expression": "gpl-3.0-plus", "license_clarity_score": { "score": 90, "declared_license": true, @@ -37,17 +36,15 @@ "conflicting_license_categories": false, "ambigous_compound_licensing": false }, - "license_expressions": [ + "declared_holder": "", + "primary_language": "C", + "other_license_expressions": [ { "value": "gpl-2.0-plus", "count": 1 - }, - { - "value": "gpl-3.0-plus", - "count": 1 } ], - "holders": [ + "other_holders": [ { "value": null, "count": 2 @@ -56,10 +53,9 @@ "value": "Members of the Gmerlin project", "count": 2 } - ] + ], + "other_languages": [] }, - "dependencies": [], - "packages": [], "files": [ { "path": "bug-1141.tar.gz", diff --git a/tests/summarycode/data/end-2-end/bug-1141.tar.gz b/tests/summarycode/data/summary/end-2-end/bug-1141.tar.gz similarity index 100% rename from tests/summarycode/data/end-2-end/bug-1141.tar.gz rename to tests/summarycode/data/summary/end-2-end/bug-1141.tar.gz diff --git a/tests/summarycode/data/summary/holders/clear_holder.expected.json b/tests/summarycode/data/summary/holders/clear_holder.expected.json new file mode 100644 index 00000000000..cbed2c61f3f --- /dev/null +++ b/tests/summarycode/data/summary/holders/clear_holder.expected.json @@ -0,0 +1,849 @@ +{ + "headers": [ + { + "tool_name": "scancode-toolkit", + "options": { + "input": "", + "--classify": true, + "--copyright": true, + "--info": true, + "--json-pp": "", + "--license": true, + "--package": true, + "--summary": true + }, + "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", + "message": null, + "errors": [], + "warnings": [], + "extra_data": { + "spdx_license_list_version": "3.16", + "files_count": 5 + } + } + ], + "dependencies": [], + "packages": [], + "summary": { + "declared_license_expression": "apache-2.0 OR mit", + "license_clarity_score": { + "score": 100, + "declared_license": true, + "precise_license_detection": true, + "has_license_text": true, + "declared_copyrights": true, + "conflicting_license_categories": false, + "ambigous_compound_licensing": false + }, + "declared_holder": "Example Corp.", + "primary_language": "Python", + "other_license_expressions": [ + { + "value": "apache-2.0", + "count": 4 + }, + { + "value": "mit", + "count": 1 + } + ], + "other_holders": [ + { + "value": null, + "count": 2 + }, + { + "value": "Demo Corp.", + "count": 1 + } + ], + "other_languages": [] + }, + "files": [ + { + "path": "clear_holder", + "type": "directory", + "name": "clear_holder", + "base_name": "clear_holder", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "files_count": 5, + "dirs_count": 2, + "size_count": 11457, + "scan_errors": [] + }, + { + "path": "clear_holder/README.txt", + "type": "file", + "name": "README.txt", + "base_name": "README", + "extension": ".txt", + "size": 99, + "sha1": "d282def871ec7311944a84a8889e26730f0c400d", + "md5": "9644fbe6f26482b66036b19d871de381", + "sha256": "be675303033bbc1e103bafa3a11e90057048472a46094092941917fb1560d072", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 80.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_73.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 4, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 80 + } + }, + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0", + "apache-2.0 OR mit" + ], + "percentage_of_license_text": 47.06, + "copyrights": [ + { + "copyright": "Copyright Example Corp.", + "start_line": 5, + "end_line": 5 + }, + { + "copyright": "Copyright Demo Corp.", + "start_line": 6, + "end_line": 6 + } + ], + "holders": [ + { + "holder": "Example Corp.", + "start_line": 5, + "end_line": 5 + }, + { + "holder": "Demo Corp.", + "start_line": 6, + "end_line": 6 + } + ], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": true, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "clear_holder/apache-2.0.LICENSE", + "type": "file", + "name": "apache-2.0.LICENSE", + "base_name": "apache-2.0", + "extension": ".LICENSE", + "size": 10173, + "sha1": "a6a5418b4d67d9f3a33cbf184b25ac7f9fa87d33", + "md5": "e23fadd6ceef8c618fc1c65191d846fa", + "sha256": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 1, + "end_line": 176, + "matched_rule": { + "identifier": "apache-2.0_93.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 1410, + "matched_length": 1410, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "clear_holder/mit.LICENSE", + "type": "file", + "name": "mit.LICENSE", + "base_name": "mit", + "extension": ".LICENSE", + "size": 1022, + "sha1": "d162bf6d725758cf35e4b4e49db3750e85bc98a0", + "md5": "8d18be6409468bae48b33b87db85824a", + "sha256": "17eeb111a052462b64de9a5a56983f8d732922d8666ecbf20ede8f776b4c4df4", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 1, + "end_line": 18, + "matched_rule": { + "identifier": "mit.LICENSE", + "license_expression": "mit", + "licenses": [ + "mit" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 161, + "matched_length": 161, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "mit" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "clear_holder/src", + "type": "directory", + "name": "src", + "base_name": "src", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "files_count": 1, + "dirs_count": 0, + "size_count": 95, + "scan_errors": [] + }, + { + "path": "clear_holder/src/a.py", + "type": "file", + "name": "a.py", + "base_name": "a", + "extension": ".py", + "size": 95, + "sha1": "5ba2aec7a345cbc36a88a0c73357c84cbc69612c", + "md5": "3bc58b8ff4fe4b77d29b53e0d5428445", + "sha256": "00a592b998e73453e4d8230418c9636783ce59118d75beb1e7e5c163df11d23c", + "mime_type": "text/x-script.python", + "file_type": "Python script, ASCII text executable", + "programming_language": "Python", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": true, + "licenses": [ + { + "key": "apache-2.0", + "score": 80.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 2, + "end_line": 2, + "matched_rule": { + "identifier": "apache-2.0_73.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 4, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 80 + } + }, + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 2, + "end_line": 2, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 2, + "end_line": 2, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0", + "apache-2.0 OR mit" + ], + "percentage_of_license_text": 53.33, + "copyrights": [ + { + "copyright": "Copyright Example Corp", + "start_line": 1, + "end_line": 1 + } + ], + "holders": [ + { + "holder": "Example Corp", + "start_line": 1, + "end_line": 1 + } + ], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "clear_holder/tests", + "type": "directory", + "name": "tests", + "base_name": "tests", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "files_count": 1, + "dirs_count": 0, + "size_count": 68, + "scan_errors": [] + }, + { + "path": "clear_holder/tests/test_a.py", + "type": "file", + "name": "test_a.py", + "base_name": "test_a", + "extension": ".py", + "size": 68, + "sha1": "d9ff869f31722ca1b9a8b62a4aeb5e1686e7063c", + "md5": "d817c452b6f586d3766592e7012a50e6", + "sha256": "52619c284c68cf94a2c46e7da99a7f8ab033bd861a9b295171da9939832da83d", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Python", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 80.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 2, + "end_line": 2, + "matched_rule": { + "identifier": "apache-2.0_73.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 4, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 80 + } + }, + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 2, + "end_line": 2, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 2, + "end_line": 2, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0", + "apache-2.0 OR mit" + ], + "percentage_of_license_text": 66.67, + "copyrights": [ + { + "copyright": "Copyright Example Corp.", + "start_line": 1, + "end_line": 1 + } + ], + "holders": [ + { + "holder": "Example Corp.", + "start_line": 1, + "end_line": 1 + } + ], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/summarycode/data/summary/holders/clear_holder/README.txt b/tests/summarycode/data/summary/holders/clear_holder/README.txt new file mode 100644 index 00000000000..ea9a48fd6ba --- /dev/null +++ b/tests/summarycode/data/summary/holders/clear_holder/README.txt @@ -0,0 +1,6 @@ +Sample code + +This is licensed under Apache-2.0 or MIT + +Copyright Example Corp. +Copyright Demo Corp. \ No newline at end of file diff --git a/tests/summarycode/data/summary/holders/clear_holder/apache-2.0.LICENSE b/tests/summarycode/data/summary/holders/clear_holder/apache-2.0.LICENSE new file mode 100644 index 00000000000..d9a10c0d8e8 --- /dev/null +++ b/tests/summarycode/data/summary/holders/clear_holder/apache-2.0.LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/tests/summarycode/data/summary/holders/clear_holder/mit.LICENSE b/tests/summarycode/data/summary/holders/clear_holder/mit.LICENSE new file mode 100644 index 00000000000..2d4a989856a --- /dev/null +++ b/tests/summarycode/data/summary/holders/clear_holder/mit.LICENSE @@ -0,0 +1,18 @@ +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tests/summarycode/data/summary/holders/clear_holder/src/a.py b/tests/summarycode/data/summary/holders/clear_holder/src/a.py new file mode 100644 index 00000000000..3b13108ef5d --- /dev/null +++ b/tests/summarycode/data/summary/holders/clear_holder/src/a.py @@ -0,0 +1,5 @@ +# Copyright Example Corp +# This is licensed under Apache-2.0 or MIT + +def something(): + pass diff --git a/tests/summarycode/data/summary/holders/clear_holder/tests/test_a.py b/tests/summarycode/data/summary/holders/clear_holder/tests/test_a.py new file mode 100644 index 00000000000..08896e91ed3 --- /dev/null +++ b/tests/summarycode/data/summary/holders/clear_holder/tests/test_a.py @@ -0,0 +1,2 @@ +# Copyright Example Corp. +# This is licensed under Apache-2.0 OR MIT \ No newline at end of file diff --git a/tests/summarycode/data/summary/holders/combined_holders.expected.json b/tests/summarycode/data/summary/holders/combined_holders.expected.json new file mode 100644 index 00000000000..bdcbe263977 --- /dev/null +++ b/tests/summarycode/data/summary/holders/combined_holders.expected.json @@ -0,0 +1,821 @@ +{ + "headers": [ + { + "tool_name": "scancode-toolkit", + "options": { + "input": "", + "--classify": true, + "--copyright": true, + "--info": true, + "--json-pp": "", + "--license": true, + "--package": true, + "--summary": true + }, + "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", + "message": null, + "errors": [], + "warnings": [], + "extra_data": { + "spdx_license_list_version": "3.16", + "files_count": 5 + } + } + ], + "dependencies": [], + "packages": [], + "summary": { + "declared_license_expression": "apache-2.0 OR mit", + "license_clarity_score": { + "score": 100, + "declared_license": true, + "precise_license_detection": true, + "has_license_text": true, + "declared_copyrights": true, + "conflicting_license_categories": false, + "ambigous_compound_licensing": false + }, + "declared_holder": "Example Corp., Demo Corp.", + "primary_language": "Python", + "other_license_expressions": [ + { + "value": "apache-2.0", + "count": 4 + }, + { + "value": "mit", + "count": 1 + } + ], + "other_holders": [ + { + "value": null, + "count": 4 + } + ], + "other_languages": [] + }, + "files": [ + { + "path": "combined_holders", + "type": "directory", + "name": "combined_holders", + "base_name": "combined_holders", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "files_count": 5, + "dirs_count": 2, + "size_count": 11406, + "scan_errors": [] + }, + { + "path": "combined_holders/README.txt", + "type": "file", + "name": "README.txt", + "base_name": "README", + "extension": ".txt", + "size": 99, + "sha1": "d282def871ec7311944a84a8889e26730f0c400d", + "md5": "9644fbe6f26482b66036b19d871de381", + "sha256": "be675303033bbc1e103bafa3a11e90057048472a46094092941917fb1560d072", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 80.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_73.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 4, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 80 + } + }, + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0", + "apache-2.0 OR mit" + ], + "percentage_of_license_text": 47.06, + "copyrights": [ + { + "copyright": "Copyright Example Corp.", + "start_line": 5, + "end_line": 5 + }, + { + "copyright": "Copyright Demo Corp.", + "start_line": 6, + "end_line": 6 + } + ], + "holders": [ + { + "holder": "Example Corp.", + "start_line": 5, + "end_line": 5 + }, + { + "holder": "Demo Corp.", + "start_line": 6, + "end_line": 6 + } + ], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": true, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "combined_holders/apache-2.0.LICENSE", + "type": "file", + "name": "apache-2.0.LICENSE", + "base_name": "apache-2.0", + "extension": ".LICENSE", + "size": 10173, + "sha1": "a6a5418b4d67d9f3a33cbf184b25ac7f9fa87d33", + "md5": "e23fadd6ceef8c618fc1c65191d846fa", + "sha256": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 1, + "end_line": 176, + "matched_rule": { + "identifier": "apache-2.0_93.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 1410, + "matched_length": 1410, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "combined_holders/mit.LICENSE", + "type": "file", + "name": "mit.LICENSE", + "base_name": "mit", + "extension": ".LICENSE", + "size": 1022, + "sha1": "d162bf6d725758cf35e4b4e49db3750e85bc98a0", + "md5": "8d18be6409468bae48b33b87db85824a", + "sha256": "17eeb111a052462b64de9a5a56983f8d732922d8666ecbf20ede8f776b4c4df4", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 1, + "end_line": 18, + "matched_rule": { + "identifier": "mit.LICENSE", + "license_expression": "mit", + "licenses": [ + "mit" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 161, + "matched_length": 161, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "mit" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "combined_holders/src", + "type": "directory", + "name": "src", + "base_name": "src", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "files_count": 1, + "dirs_count": 0, + "size_count": 70, + "scan_errors": [] + }, + { + "path": "combined_holders/src/a.py", + "type": "file", + "name": "a.py", + "base_name": "a", + "extension": ".py", + "size": 70, + "sha1": "e2ea6df347f3ebe5c1d3a2dc02d62c21d605d0af", + "md5": "a16a5f703a6d86542bc7af743c69d521", + "sha256": "b20f754ecb025b1026e5a35b36ed48775544b177a4f7090ea1d0c93d6cb45446", + "mime_type": "text/x-script.python", + "file_type": "Python script, ASCII text executable", + "programming_language": "Python", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": true, + "licenses": [ + { + "key": "apache-2.0", + "score": 80.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 1, + "end_line": 1, + "matched_rule": { + "identifier": "apache-2.0_73.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 4, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 80 + } + }, + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 1, + "end_line": 1, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 1, + "end_line": 1, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0", + "apache-2.0 OR mit" + ], + "percentage_of_license_text": 66.67, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "combined_holders/tests", + "type": "directory", + "name": "tests", + "base_name": "tests", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "files_count": 1, + "dirs_count": 0, + "size_count": 42, + "scan_errors": [] + }, + { + "path": "combined_holders/tests/test_a.py", + "type": "file", + "name": "test_a.py", + "base_name": "test_a", + "extension": ".py", + "size": 42, + "sha1": "1a16761e68a0d2e3e6a38b697bc72198f6714798", + "md5": "5cd684d4fdd223c82a251c4923d5924f", + "sha256": "c94f7fd0378644b76b9fbff868b9445197c3fee864f351431202146e15ec6c9c", + "mime_type": "text/plain", + "file_type": "ASCII text, with no line terminators", + "programming_language": "Python", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 80.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 1, + "end_line": 1, + "matched_rule": { + "identifier": "apache-2.0_73.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 4, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 80 + } + }, + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 1, + "end_line": 1, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 1, + "end_line": 1, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0", + "apache-2.0 OR mit" + ], + "percentage_of_license_text": 88.89, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": false, + "is_key_file": false, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/summarycode/data/summary/holders/combined_holders/README.txt b/tests/summarycode/data/summary/holders/combined_holders/README.txt new file mode 100644 index 00000000000..ea9a48fd6ba --- /dev/null +++ b/tests/summarycode/data/summary/holders/combined_holders/README.txt @@ -0,0 +1,6 @@ +Sample code + +This is licensed under Apache-2.0 or MIT + +Copyright Example Corp. +Copyright Demo Corp. \ No newline at end of file diff --git a/tests/summarycode/data/summary/holders/combined_holders/apache-2.0.LICENSE b/tests/summarycode/data/summary/holders/combined_holders/apache-2.0.LICENSE new file mode 100644 index 00000000000..d9a10c0d8e8 --- /dev/null +++ b/tests/summarycode/data/summary/holders/combined_holders/apache-2.0.LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/tests/summarycode/data/summary/holders/combined_holders/mit.LICENSE b/tests/summarycode/data/summary/holders/combined_holders/mit.LICENSE new file mode 100644 index 00000000000..2d4a989856a --- /dev/null +++ b/tests/summarycode/data/summary/holders/combined_holders/mit.LICENSE @@ -0,0 +1,18 @@ +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tests/summarycode/data/summary/holders/combined_holders/src/a.py b/tests/summarycode/data/summary/holders/combined_holders/src/a.py new file mode 100644 index 00000000000..11df2cd8c3b --- /dev/null +++ b/tests/summarycode/data/summary/holders/combined_holders/src/a.py @@ -0,0 +1,4 @@ +# This is licensed under Apache-2.0 or MIT + +def something(): + pass diff --git a/tests/summarycode/data/summary/holders/combined_holders/tests/test_a.py b/tests/summarycode/data/summary/holders/combined_holders/tests/test_a.py new file mode 100644 index 00000000000..d722553cb92 --- /dev/null +++ b/tests/summarycode/data/summary/holders/combined_holders/tests/test_a.py @@ -0,0 +1 @@ +# This is licensed under Apache-2.0 OR MIT \ No newline at end of file diff --git a/tests/summarycode/data/summary/license_ambiguity/ambiguous.expected.json b/tests/summarycode/data/summary/license_ambiguity/ambiguous.expected.json new file mode 100644 index 00000000000..e36bea23be1 --- /dev/null +++ b/tests/summarycode/data/summary/license_ambiguity/ambiguous.expected.json @@ -0,0 +1,303 @@ +{ + "headers": [ + { + "tool_name": "scancode-toolkit", + "options": { + "input": "", + "--classify": true, + "--copyright": true, + "--info": true, + "--json-pp": "", + "--license": true, + "--package": true, + "--summary": true + }, + "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", + "message": null, + "errors": [], + "warnings": [], + "extra_data": { + "spdx_license_list_version": "3.16", + "files_count": 3 + } + } + ], + "dependencies": [], + "packages": [], + "summary": { + "declared_license_expression": "apache-2.0 AND mit", + "license_clarity_score": { + "score": 90, + "declared_license": true, + "precise_license_detection": true, + "has_license_text": true, + "declared_copyrights": true, + "conflicting_license_categories": false, + "ambigous_compound_licensing": true + }, + "declared_holder": "Example Corp.", + "primary_language": "", + "other_license_expressions": [ + { + "value": "apache-2.0", + "count": 1 + }, + { + "value": "mit", + "count": 1 + } + ], + "other_holders": [ + { + "value": null, + "count": 2 + } + ], + "other_languages": [] + }, + "files": [ + { + "path": "ambiguous", + "type": "directory", + "name": "ambiguous", + "base_name": "ambiguous", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "files_count": 3, + "dirs_count": 0, + "size_count": 11231, + "scan_errors": [] + }, + { + "path": "ambiguous/README.txt", + "type": "file", + "name": "README.txt", + "base_name": "README", + "extension": ".txt", + "size": 36, + "sha1": "2daf15d1a99a13f9a0aa55f82c26c501d195b1d4", + "md5": "1c417a6dead913d0a186f4551799cec6", + "sha256": "eb5e2ed1da7b1af141db3c3970d5485aaa985048be3250c89cb27889050c5bdd", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [ + { + "copyright": "Copyright Example Corp.", + "start_line": 3, + "end_line": 3 + } + ], + "holders": [ + { + "holder": "Example Corp.", + "start_line": 3, + "end_line": 3 + } + ], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": true, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "ambiguous/apache-2.0.LICENSE", + "type": "file", + "name": "apache-2.0.LICENSE", + "base_name": "apache-2.0", + "extension": ".LICENSE", + "size": 10173, + "sha1": "a6a5418b4d67d9f3a33cbf184b25ac7f9fa87d33", + "md5": "e23fadd6ceef8c618fc1c65191d846fa", + "sha256": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 1, + "end_line": 176, + "matched_rule": { + "identifier": "apache-2.0_93.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 1410, + "matched_length": 1410, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "ambiguous/mit.LICENSE", + "type": "file", + "name": "mit.LICENSE", + "base_name": "mit", + "extension": ".LICENSE", + "size": 1022, + "sha1": "d162bf6d725758cf35e4b4e49db3750e85bc98a0", + "md5": "8d18be6409468bae48b33b87db85824a", + "sha256": "17eeb111a052462b64de9a5a56983f8d732922d8666ecbf20ede8f776b4c4df4", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 1, + "end_line": 18, + "matched_rule": { + "identifier": "mit.LICENSE", + "license_expression": "mit", + "licenses": [ + "mit" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 161, + "matched_length": 161, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "mit" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/summarycode/data/summary/license_ambiguity/ambiguous/README.txt b/tests/summarycode/data/summary/license_ambiguity/ambiguous/README.txt new file mode 100644 index 00000000000..28127bdf83c --- /dev/null +++ b/tests/summarycode/data/summary/license_ambiguity/ambiguous/README.txt @@ -0,0 +1,3 @@ +Sample code + +Copyright Example Corp. \ No newline at end of file diff --git a/tests/summarycode/data/summary/license_ambiguity/ambiguous/apache-2.0.LICENSE b/tests/summarycode/data/summary/license_ambiguity/ambiguous/apache-2.0.LICENSE new file mode 100644 index 00000000000..d9a10c0d8e8 --- /dev/null +++ b/tests/summarycode/data/summary/license_ambiguity/ambiguous/apache-2.0.LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/tests/summarycode/data/summary/license_ambiguity/ambiguous/mit.LICENSE b/tests/summarycode/data/summary/license_ambiguity/ambiguous/mit.LICENSE new file mode 100644 index 00000000000..2d4a989856a --- /dev/null +++ b/tests/summarycode/data/summary/license_ambiguity/ambiguous/mit.LICENSE @@ -0,0 +1,18 @@ +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tests/summarycode/data/summary/license_ambiguity/unambiguous.expected.json b/tests/summarycode/data/summary/license_ambiguity/unambiguous.expected.json new file mode 100644 index 00000000000..cd093481ef4 --- /dev/null +++ b/tests/summarycode/data/summary/license_ambiguity/unambiguous.expected.json @@ -0,0 +1,423 @@ +{ + "headers": [ + { + "tool_name": "scancode-toolkit", + "options": { + "input": "", + "--classify": true, + "--copyright": true, + "--info": true, + "--json-pp": "", + "--license": true, + "--package": true, + "--summary": true + }, + "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", + "message": null, + "errors": [], + "warnings": [], + "extra_data": { + "spdx_license_list_version": "3.16", + "files_count": 3 + } + } + ], + "dependencies": [], + "packages": [], + "summary": { + "declared_license_expression": "apache-2.0 OR mit", + "license_clarity_score": { + "score": 100, + "declared_license": true, + "precise_license_detection": true, + "has_license_text": true, + "declared_copyrights": true, + "conflicting_license_categories": false, + "ambigous_compound_licensing": false + }, + "declared_holder": "Example Corp.", + "primary_language": "", + "other_license_expressions": [ + { + "value": "apache-2.0", + "count": 2 + }, + { + "value": "mit", + "count": 1 + } + ], + "other_holders": [ + { + "value": null, + "count": 2 + } + ], + "other_languages": [] + }, + "files": [ + { + "path": "unambiguous", + "type": "directory", + "name": "unambiguous", + "base_name": "unambiguous", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "files_count": 3, + "dirs_count": 0, + "size_count": 11273, + "scan_errors": [] + }, + { + "path": "unambiguous/README.txt", + "type": "file", + "name": "README.txt", + "base_name": "README", + "extension": ".txt", + "size": 78, + "sha1": "1df6d834f14cf559f8294602edc62cd1fd3a801a", + "md5": "4d6efca9ce0e3674ff53d5769e8e6d3b", + "sha256": "558bb811471ccfa7e3a17920decbea52596cdb3cbb40bcd3b55dba2a62814650", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 80.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_73.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 4, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 80 + } + }, + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0", + "apache-2.0 OR mit" + ], + "percentage_of_license_text": 57.14, + "copyrights": [ + { + "copyright": "Copyright Example Corp.", + "start_line": 5, + "end_line": 5 + } + ], + "holders": [ + { + "holder": "Example Corp.", + "start_line": 5, + "end_line": 5 + } + ], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": true, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "unambiguous/apache-2.0.LICENSE", + "type": "file", + "name": "apache-2.0.LICENSE", + "base_name": "apache-2.0", + "extension": ".LICENSE", + "size": 10173, + "sha1": "a6a5418b4d67d9f3a33cbf184b25ac7f9fa87d33", + "md5": "e23fadd6ceef8c618fc1c65191d846fa", + "sha256": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 1, + "end_line": 176, + "matched_rule": { + "identifier": "apache-2.0_93.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 1410, + "matched_length": 1410, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "unambiguous/mit.LICENSE", + "type": "file", + "name": "mit.LICENSE", + "base_name": "mit", + "extension": ".LICENSE", + "size": 1022, + "sha1": "d162bf6d725758cf35e4b4e49db3750e85bc98a0", + "md5": "8d18be6409468bae48b33b87db85824a", + "sha256": "17eeb111a052462b64de9a5a56983f8d732922d8666ecbf20ede8f776b4c4df4", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 1, + "end_line": 18, + "matched_rule": { + "identifier": "mit.LICENSE", + "license_expression": "mit", + "licenses": [ + "mit" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 161, + "matched_length": 161, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "mit" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/summarycode/data/summary/license_ambiguity/unambiguous/README.txt b/tests/summarycode/data/summary/license_ambiguity/unambiguous/README.txt new file mode 100644 index 00000000000..109b12c996b --- /dev/null +++ b/tests/summarycode/data/summary/license_ambiguity/unambiguous/README.txt @@ -0,0 +1,5 @@ +Sample code + +This is licensed under Apache-2.0 or MIT + +Copyright Example Corp. \ No newline at end of file diff --git a/tests/summarycode/data/summary/license_ambiguity/unambiguous/apache-2.0.LICENSE b/tests/summarycode/data/summary/license_ambiguity/unambiguous/apache-2.0.LICENSE new file mode 100644 index 00000000000..d9a10c0d8e8 --- /dev/null +++ b/tests/summarycode/data/summary/license_ambiguity/unambiguous/apache-2.0.LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/tests/summarycode/data/summary/license_ambiguity/unambiguous/mit.LICENSE b/tests/summarycode/data/summary/license_ambiguity/unambiguous/mit.LICENSE new file mode 100644 index 00000000000..2d4a989856a --- /dev/null +++ b/tests/summarycode/data/summary/license_ambiguity/unambiguous/mit.LICENSE @@ -0,0 +1,18 @@ +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tests/summarycode/data/summary/multiple_package_data/codebase/README.txt b/tests/summarycode/data/summary/multiple_package_data/codebase/README.txt new file mode 100644 index 00000000000..109b12c996b --- /dev/null +++ b/tests/summarycode/data/summary/multiple_package_data/codebase/README.txt @@ -0,0 +1,5 @@ +Sample code + +This is licensed under Apache-2.0 or MIT + +Copyright Example Corp. \ No newline at end of file diff --git a/tests/summarycode/data/summary/multiple_package_data/codebase/apache-2.0.LICENSE b/tests/summarycode/data/summary/multiple_package_data/codebase/apache-2.0.LICENSE new file mode 100644 index 00000000000..d9a10c0d8e8 --- /dev/null +++ b/tests/summarycode/data/summary/multiple_package_data/codebase/apache-2.0.LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/tests/summarycode/data/summary/multiple_package_data/codebase/cargo.toml b/tests/summarycode/data/summary/multiple_package_data/codebase/cargo.toml new file mode 100644 index 00000000000..fa67deffea3 --- /dev/null +++ b/tests/summarycode/data/summary/multiple_package_data/codebase/cargo.toml @@ -0,0 +1,4 @@ +[package] +name = "codebase" +authors = ["Demo Corporation"] +license = "MIT" diff --git a/tests/summarycode/data/summary/multiple_package_data/codebase/mit.LICENSE b/tests/summarycode/data/summary/multiple_package_data/codebase/mit.LICENSE new file mode 100644 index 00000000000..2d4a989856a --- /dev/null +++ b/tests/summarycode/data/summary/multiple_package_data/codebase/mit.LICENSE @@ -0,0 +1,18 @@ +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tests/summarycode/data/summary/multiple_package_data/codebase/setup.py b/tests/summarycode/data/summary/multiple_package_data/codebase/setup.py new file mode 100644 index 00000000000..d455402042e --- /dev/null +++ b/tests/summarycode/data/summary/multiple_package_data/codebase/setup.py @@ -0,0 +1,5 @@ +setup( + name="codebase", + license="apache-2.0", + author="Example Corp.", +) diff --git a/tests/summarycode/data/summary/multiple_package_data/multiple_package_data.expected.json b/tests/summarycode/data/summary/multiple_package_data/multiple_package_data.expected.json new file mode 100644 index 00000000000..5ef81eca892 --- /dev/null +++ b/tests/summarycode/data/summary/multiple_package_data/multiple_package_data.expected.json @@ -0,0 +1,803 @@ +{ + "headers": [ + { + "tool_name": "scancode-toolkit", + "options": { + "input": "", + "--classify": true, + "--copyright": true, + "--info": true, + "--json-pp": "", + "--license": true, + "--package": true, + "--summary": true + }, + "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", + "message": null, + "errors": [], + "warnings": [], + "extra_data": { + "spdx_license_list_version": "3.16", + "files_count": 5 + } + } + ], + "dependencies": [], + "packages": [ + { + "type": "cargo", + "namespace": null, + "name": "codebase", + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": null, + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Demo Corporation", + "email": null, + "url": null + } + ], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": "mit", + "declared_license": "MIT", + "notice_text": null, + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "package_uuid": "pkg:cargo/codebase", + "package_data_files": [ + "codebase/cargo.toml" + ], + "files": [ + "codebase/apache-2.0.LICENSE", + "codebase/cargo.toml", + "codebase/mit.LICENSE", + "codebase/README.txt", + "codebase/setup.py" + ], + "purl": "pkg:cargo/codebase", + "repository_homepage_url": "https://crates.io/crates/codebase", + "repository_download_url": null, + "api_data_url": "https://crates.io/api/v1/crates/codebase" + }, + { + "type": "pypi", + "namespace": null, + "name": "codebase", + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "description": null, + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Example Corp.", + "email": null, + "url": null + } + ], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": "apache-2.0", + "declared_license": { + "license": "apache-2.0" + }, + "notice_text": null, + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "package_uuid": "pkg:pypi/codebase", + "package_data_files": [ + "codebase/setup.py" + ], + "files": [ + "codebase/apache-2.0.LICENSE", + "codebase/cargo.toml", + "codebase/mit.LICENSE", + "codebase/README.txt", + "codebase/setup.py" + ], + "purl": "pkg:pypi/codebase", + "repository_homepage_url": "https://pypi.org/project/https://pypi.org", + "repository_download_url": null, + "api_data_url": "https://pypi.org/pypi/codebase/json" + } + ], + "summary": { + "declared_license_expression": "apache-2.0 AND mit", + "license_clarity_score": { + "score": 100, + "declared_license": true, + "precise_license_detection": true, + "has_license_text": true, + "declared_copyrights": true, + "conflicting_license_categories": false, + "ambigous_compound_licensing": false + }, + "declared_holder": "Demo Corporation, Example Corp.", + "primary_language": "Python", + "other_license_expressions": [ + { + "value": "apache-2.0", + "count": 3 + }, + { + "value": "mit", + "count": 2 + }, + { + "value": "apache-2.0 OR mit", + "count": 1 + } + ], + "other_holders": [ + { + "value": null, + "count": 4 + } + ], + "other_languages": [] + }, + "files": [ + { + "path": "codebase", + "type": "directory", + "name": "codebase", + "base_name": "codebase", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "files_count": 5, + "dirs_count": 0, + "size_count": 11432, + "scan_errors": [] + }, + { + "path": "codebase/README.txt", + "type": "file", + "name": "README.txt", + "base_name": "README", + "extension": ".txt", + "size": 78, + "sha1": "1df6d834f14cf559f8294602edc62cd1fd3a801a", + "md5": "4d6efca9ce0e3674ff53d5769e8e6d3b", + "sha256": "558bb811471ccfa7e3a17920decbea52596cdb3cbb40bcd3b55dba2a62814650", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 80.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_73.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 4, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 80 + } + }, + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0", + "apache-2.0 OR mit" + ], + "percentage_of_license_text": 57.14, + "copyrights": [ + { + "copyright": "Copyright Example Corp.", + "start_line": 5, + "end_line": 5 + } + ], + "holders": [ + { + "holder": "Example Corp.", + "start_line": 5, + "end_line": 5 + } + ], + "authors": [], + "package_data": [], + "for_packages": [ + "pkg:cargo/codebase", + "pkg:pypi/codebase" + ], + "is_legal": false, + "is_manifest": false, + "is_readme": true, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "codebase/apache-2.0.LICENSE", + "type": "file", + "name": "apache-2.0.LICENSE", + "base_name": "apache-2.0", + "extension": ".LICENSE", + "size": 10173, + "sha1": "a6a5418b4d67d9f3a33cbf184b25ac7f9fa87d33", + "md5": "e23fadd6ceef8c618fc1c65191d846fa", + "sha256": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 1, + "end_line": 176, + "matched_rule": { + "identifier": "apache-2.0_93.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 1410, + "matched_length": 1410, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [ + "pkg:cargo/codebase", + "pkg:pypi/codebase" + ], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "codebase/cargo.toml", + "type": "file", + "name": "cargo.toml", + "base_name": "cargo", + "extension": ".toml", + "size": 75, + "sha1": "97d0edda5c68c41ccb29397461b12af7ea216314", + "md5": "5f0e096c1e8b60e7d47d2386a77c55ba", + "sha256": "fa9742ed8f0a094978bbf7fc86e0d3c188f6a4544696c78cdce9b916fb465680", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 4, + "end_line": 4, + "matched_rule": { + "identifier": "mit_30.RULE", + "license_expression": "mit", + "licenses": [ + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": true, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 2, + "matched_length": 2, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "mit" + ], + "percentage_of_license_text": 25.0, + "copyrights": [], + "holders": [], + "authors": [ + { + "author": "Demo Corporation", + "start_line": 3, + "end_line": 3 + } + ], + "package_data": [ + { + "type": "cargo", + "namespace": null, + "name": "codebase", + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": null, + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Demo Corporation", + "email": null, + "url": null + } + ], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": "mit", + "declared_license": "MIT", + "notice_text": null, + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "dependencies": [], + "purl": "pkg:cargo/codebase", + "repository_homepage_url": "https://crates.io/crates/codebase", + "repository_download_url": null, + "api_data_url": "https://crates.io/api/v1/crates/codebase" + } + ], + "for_packages": [ + "pkg:cargo/codebase", + "pkg:pypi/codebase" + ], + "is_legal": false, + "is_manifest": true, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "codebase/mit.LICENSE", + "type": "file", + "name": "mit.LICENSE", + "base_name": "mit", + "extension": ".LICENSE", + "size": 1022, + "sha1": "d162bf6d725758cf35e4b4e49db3750e85bc98a0", + "md5": "8d18be6409468bae48b33b87db85824a", + "sha256": "17eeb111a052462b64de9a5a56983f8d732922d8666ecbf20ede8f776b4c4df4", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 1, + "end_line": 18, + "matched_rule": { + "identifier": "mit.LICENSE", + "license_expression": "mit", + "licenses": [ + "mit" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 161, + "matched_length": 161, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "mit" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [ + "pkg:cargo/codebase", + "pkg:pypi/codebase" + ], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "codebase/setup.py", + "type": "file", + "name": "setup.py", + "base_name": "setup", + "extension": ".py", + "size": 84, + "sha1": "10c7f4a6c2f60591dd08c9afeaeb7a05c76388a9", + "md5": "425b1701628572de3fd81f9de0be2d64", + "sha256": "e0e775cf6127edc482607cabcd652f3b10e6c69e03dc2e92c4b2174103831b3c", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Python", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_65.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": true, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 4, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 40.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [ + { + "type": "pypi", + "namespace": null, + "name": "codebase", + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "description": "", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Example Corp.", + "email": null, + "url": null + } + ], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": "apache-2.0", + "declared_license": { + "license": "apache-2.0" + }, + "notice_text": null, + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "dependencies": [], + "purl": "pkg:pypi/codebase", + "repository_homepage_url": "https://pypi.org/project/https://pypi.org", + "repository_download_url": null, + "api_data_url": "https://pypi.org/pypi/codebase/json" + } + ], + "for_packages": [ + "pkg:cargo/codebase", + "pkg:pypi/codebase" + ], + "is_legal": false, + "is_manifest": true, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/summarycode/data/copyright_summary/scan2/jetty.LICENSE b/tests/summarycode/data/summary/single_file/codebase/jetty.LICENSE similarity index 100% rename from tests/summarycode/data/copyright_summary/scan2/jetty.LICENSE rename to tests/summarycode/data/summary/single_file/codebase/jetty.LICENSE diff --git a/tests/summarycode/data/summary2/copyright/scan2.expected.json b/tests/summarycode/data/summary/single_file/single_file.expected.json similarity index 71% rename from tests/summarycode/data/summary2/copyright/scan2.expected.json rename to tests/summarycode/data/summary/single_file/single_file.expected.json index 31156ea2d71..9b720d72256 100644 --- a/tests/summarycode/data/summary2/copyright/scan2.expected.json +++ b/tests/summarycode/data/summary/single_file/single_file.expected.json @@ -6,26 +6,27 @@ "input": "", "--classify": true, "--copyright": true, + "--info": true, "--json-pp": "", "--license": true, - "--license-clarity-score": true, - "--summary2": true + "--package": true, + "--summary": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 1 } } ], + "dependencies": [], + "packages": [], "summary": { - "primary_license_expression": "jetty", - "declared_license_expressions": [ - "jetty" - ], + "declared_license_expression": "jetty", "license_clarity_score": { "score": 100, "declared_license": true, @@ -35,43 +36,69 @@ "conflicting_license_categories": false, "ambigous_compound_licensing": false }, - "license_expressions": [ - { - "value": "jetty", - "count": 1 - } - ], - "holders": [ - { - "value": "Mort Bay Consulting Pty. Ltd. (Australia) and others", - "count": 1 - }, - { - "value": "Sun Microsystems, Inc.", - "count": 1 - } - ] + "declared_holder": "Mort Bay Consulting Pty. Ltd. (Australia) and others, Sun Microsystems, Inc.", + "primary_language": "", + "other_license_expressions": [], + "other_holders": [], + "other_languages": [] }, "files": [ { - "path": "scan2", + "path": "codebase", "type": "directory", + "name": "codebase", + "base_name": "codebase", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, "licenses": [], "license_expressions": [], "percentage_of_license_text": 0, "copyrights": [], "holders": [], "authors": [], + "package_data": [], + "for_packages": [], "is_legal": false, "is_manifest": false, "is_readme": false, "is_top_level": true, "is_key_file": false, + "files_count": 1, + "dirs_count": 0, + "size_count": 6248, "scan_errors": [] }, { - "path": "scan2/jetty.LICENSE", + "path": "codebase/jetty.LICENSE", "type": "file", + "name": "jetty.LICENSE", + "base_name": "jetty", + "extension": ".LICENSE", + "size": 6248, + "sha1": "891981f3aa1db578bae49a0da478854cb9315b91", + "md5": "4a44a73fe2301ff4e0576f61ce23fdd2", + "sha256": "26de02b66db03a820047109043e337fe5fb9bd3a5132af7926b32cc0d5e614a2", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, "licenses": [ { "key": "jetty", @@ -141,11 +168,16 @@ } ], "authors": [], + "package_data": [], + "for_packages": [], "is_legal": true, "is_manifest": false, "is_readme": false, "is_top_level": true, "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, "scan_errors": [] } ] diff --git a/tests/summarycode/data/summary/with_package_data/codebase/README.txt b/tests/summarycode/data/summary/with_package_data/codebase/README.txt new file mode 100644 index 00000000000..109b12c996b --- /dev/null +++ b/tests/summarycode/data/summary/with_package_data/codebase/README.txt @@ -0,0 +1,5 @@ +Sample code + +This is licensed under Apache-2.0 or MIT + +Copyright Example Corp. \ No newline at end of file diff --git a/tests/summarycode/data/summary/with_package_data/codebase/apache-2.0.LICENSE b/tests/summarycode/data/summary/with_package_data/codebase/apache-2.0.LICENSE new file mode 100644 index 00000000000..d9a10c0d8e8 --- /dev/null +++ b/tests/summarycode/data/summary/with_package_data/codebase/apache-2.0.LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/tests/summarycode/data/summary/with_package_data/codebase/mit.LICENSE b/tests/summarycode/data/summary/with_package_data/codebase/mit.LICENSE new file mode 100644 index 00000000000..2d4a989856a --- /dev/null +++ b/tests/summarycode/data/summary/with_package_data/codebase/mit.LICENSE @@ -0,0 +1,18 @@ +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tests/summarycode/data/summary/with_package_data/codebase/setup.py b/tests/summarycode/data/summary/with_package_data/codebase/setup.py new file mode 100644 index 00000000000..d455402042e --- /dev/null +++ b/tests/summarycode/data/summary/with_package_data/codebase/setup.py @@ -0,0 +1,5 @@ +setup( + name="codebase", + license="apache-2.0", + author="Example Corp.", +) diff --git a/tests/summarycode/data/summary/with_package_data/with_package_data.expected.json b/tests/summarycode/data/summary/with_package_data/with_package_data.expected.json new file mode 100644 index 00000000000..dad5752d513 --- /dev/null +++ b/tests/summarycode/data/summary/with_package_data/with_package_data.expected.json @@ -0,0 +1,610 @@ +{ + "headers": [ + { + "tool_name": "scancode-toolkit", + "options": { + "input": "", + "--classify": true, + "--copyright": true, + "--info": true, + "--json-pp": "", + "--license": true, + "--package": true, + "--summary": true + }, + "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", + "message": null, + "errors": [], + "warnings": [], + "extra_data": { + "spdx_license_list_version": "3.16", + "files_count": 4 + } + } + ], + "dependencies": [], + "packages": [ + { + "type": "pypi", + "namespace": null, + "name": "codebase", + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "description": null, + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Example Corp.", + "email": null, + "url": null + } + ], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": "apache-2.0", + "declared_license": { + "license": "apache-2.0" + }, + "notice_text": null, + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "package_uuid": "pkg:pypi/codebase", + "package_data_files": [ + "codebase/setup.py" + ], + "files": [ + "codebase/apache-2.0.LICENSE", + "codebase/mit.LICENSE", + "codebase/README.txt", + "codebase/setup.py" + ], + "purl": "pkg:pypi/codebase", + "repository_homepage_url": "https://pypi.org/project/https://pypi.org", + "repository_download_url": null, + "api_data_url": "https://pypi.org/pypi/codebase/json" + } + ], + "summary": { + "declared_license_expression": "apache-2.0", + "license_clarity_score": { + "score": 100, + "declared_license": true, + "precise_license_detection": true, + "has_license_text": true, + "declared_copyrights": true, + "conflicting_license_categories": false, + "ambigous_compound_licensing": false + }, + "declared_holder": "Example Corp.", + "primary_language": "Python", + "other_license_expressions": [ + { + "value": "apache-2.0 OR mit", + "count": 1 + }, + { + "value": "mit", + "count": 1 + } + ], + "other_holders": [ + { + "value": null, + "count": 3 + } + ], + "other_languages": [] + }, + "files": [ + { + "path": "codebase", + "type": "directory", + "name": "codebase", + "base_name": "codebase", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "files_count": 4, + "dirs_count": 0, + "size_count": 11357, + "scan_errors": [] + }, + { + "path": "codebase/README.txt", + "type": "file", + "name": "README.txt", + "base_name": "README", + "extension": ".txt", + "size": 78, + "sha1": "1df6d834f14cf559f8294602edc62cd1fd3a801a", + "md5": "4d6efca9ce0e3674ff53d5769e8e6d3b", + "sha256": "558bb811471ccfa7e3a17920decbea52596cdb3cbb40bcd3b55dba2a62814650", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 80.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_73.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 4, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 80 + } + }, + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0", + "apache-2.0 OR mit" + ], + "percentage_of_license_text": 57.14, + "copyrights": [ + { + "copyright": "Copyright Example Corp.", + "start_line": 5, + "end_line": 5 + } + ], + "holders": [ + { + "holder": "Example Corp.", + "start_line": 5, + "end_line": 5 + } + ], + "authors": [], + "package_data": [], + "for_packages": [ + "pkg:pypi/codebase" + ], + "is_legal": false, + "is_manifest": false, + "is_readme": true, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "codebase/apache-2.0.LICENSE", + "type": "file", + "name": "apache-2.0.LICENSE", + "base_name": "apache-2.0", + "extension": ".LICENSE", + "size": 10173, + "sha1": "a6a5418b4d67d9f3a33cbf184b25ac7f9fa87d33", + "md5": "e23fadd6ceef8c618fc1c65191d846fa", + "sha256": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 1, + "end_line": 176, + "matched_rule": { + "identifier": "apache-2.0_93.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 1410, + "matched_length": 1410, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [ + "pkg:pypi/codebase" + ], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "codebase/mit.LICENSE", + "type": "file", + "name": "mit.LICENSE", + "base_name": "mit", + "extension": ".LICENSE", + "size": 1022, + "sha1": "d162bf6d725758cf35e4b4e49db3750e85bc98a0", + "md5": "8d18be6409468bae48b33b87db85824a", + "sha256": "17eeb111a052462b64de9a5a56983f8d732922d8666ecbf20ede8f776b4c4df4", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 1, + "end_line": 18, + "matched_rule": { + "identifier": "mit.LICENSE", + "license_expression": "mit", + "licenses": [ + "mit" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 161, + "matched_length": 161, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "mit" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [ + "pkg:pypi/codebase" + ], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "codebase/setup.py", + "type": "file", + "name": "setup.py", + "base_name": "setup", + "extension": ".py", + "size": 84, + "sha1": "10c7f4a6c2f60591dd08c9afeaeb7a05c76388a9", + "md5": "425b1701628572de3fd81f9de0be2d64", + "sha256": "e0e775cf6127edc482607cabcd652f3b10e6c69e03dc2e92c4b2174103831b3c", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": "Python", + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": true, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_65.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": true, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 4, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 40.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [ + { + "type": "pypi", + "namespace": null, + "name": "codebase", + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Python", + "description": "", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Example Corp.", + "email": null, + "url": null + } + ], + "keywords": [], + "homepage_url": null, + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "license_expression": "apache-2.0", + "declared_license": { + "license": "apache-2.0" + }, + "notice_text": null, + "contains_source_code": null, + "source_packages": [], + "extra_data": {}, + "dependencies": [], + "purl": "pkg:pypi/codebase", + "repository_homepage_url": "https://pypi.org/project/https://pypi.org", + "repository_download_url": null, + "api_data_url": "https://pypi.org/pypi/codebase/json" + } + ], + "for_packages": [ + "pkg:pypi/codebase" + ], + "is_legal": false, + "is_manifest": true, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/summarycode/data/summary/without_package_data/codebase/README.txt b/tests/summarycode/data/summary/without_package_data/codebase/README.txt new file mode 100644 index 00000000000..109b12c996b --- /dev/null +++ b/tests/summarycode/data/summary/without_package_data/codebase/README.txt @@ -0,0 +1,5 @@ +Sample code + +This is licensed under Apache-2.0 or MIT + +Copyright Example Corp. \ No newline at end of file diff --git a/tests/summarycode/data/summary/without_package_data/codebase/apache-2.0.LICENSE b/tests/summarycode/data/summary/without_package_data/codebase/apache-2.0.LICENSE new file mode 100644 index 00000000000..d9a10c0d8e8 --- /dev/null +++ b/tests/summarycode/data/summary/without_package_data/codebase/apache-2.0.LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/tests/summarycode/data/summary/without_package_data/codebase/mit.LICENSE b/tests/summarycode/data/summary/without_package_data/codebase/mit.LICENSE new file mode 100644 index 00000000000..2d4a989856a --- /dev/null +++ b/tests/summarycode/data/summary/without_package_data/codebase/mit.LICENSE @@ -0,0 +1,18 @@ +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/tests/summarycode/data/summary/without_package_data/without_package_data.expected.json b/tests/summarycode/data/summary/without_package_data/without_package_data.expected.json new file mode 100644 index 00000000000..f68cec60974 --- /dev/null +++ b/tests/summarycode/data/summary/without_package_data/without_package_data.expected.json @@ -0,0 +1,423 @@ +{ + "headers": [ + { + "tool_name": "scancode-toolkit", + "options": { + "input": "", + "--classify": true, + "--copyright": true, + "--info": true, + "--json-pp": "", + "--license": true, + "--package": true, + "--summary": true + }, + "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", + "output_format_version": "2.0.0", + "message": null, + "errors": [], + "warnings": [], + "extra_data": { + "spdx_license_list_version": "3.16", + "files_count": 3 + } + } + ], + "dependencies": [], + "packages": [], + "summary": { + "declared_license_expression": "apache-2.0 OR mit", + "license_clarity_score": { + "score": 100, + "declared_license": true, + "precise_license_detection": true, + "has_license_text": true, + "declared_copyrights": true, + "conflicting_license_categories": false, + "ambigous_compound_licensing": false + }, + "declared_holder": "Example Corp.", + "primary_language": "", + "other_license_expressions": [ + { + "value": "apache-2.0", + "count": 2 + }, + { + "value": "mit", + "count": 1 + } + ], + "other_holders": [ + { + "value": null, + "count": 2 + } + ], + "other_languages": [] + }, + "files": [ + { + "path": "codebase", + "type": "directory", + "name": "codebase", + "base_name": "codebase", + "extension": "", + "size": 0, + "sha1": null, + "md5": null, + "sha256": null, + "mime_type": null, + "file_type": null, + "programming_language": null, + "is_binary": false, + "is_text": false, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [], + "license_expressions": [], + "percentage_of_license_text": 0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": false, + "files_count": 3, + "dirs_count": 0, + "size_count": 11273, + "scan_errors": [] + }, + { + "path": "codebase/README.txt", + "type": "file", + "name": "README.txt", + "base_name": "README", + "extension": ".txt", + "size": 78, + "sha1": "1df6d834f14cf559f8294602edc62cd1fd3a801a", + "md5": "4d6efca9ce0e3674ff53d5769e8e6d3b", + "sha256": "558bb811471ccfa7e3a17920decbea52596cdb3cbb40bcd3b55dba2a62814650", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 80.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_73.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 4, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 80 + } + }, + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + }, + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 3, + "end_line": 3, + "matched_rule": { + "identifier": "apache-2.0_or_mit_36.RULE", + "license_expression": "apache-2.0 OR mit", + "licenses": [ + "apache-2.0", + "mit" + ], + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "2-aho", + "rule_length": 5, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0", + "apache-2.0 OR mit" + ], + "percentage_of_license_text": 57.14, + "copyrights": [ + { + "copyright": "Copyright Example Corp.", + "start_line": 5, + "end_line": 5 + } + ], + "holders": [ + { + "holder": "Example Corp.", + "start_line": 5, + "end_line": 5 + } + ], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": false, + "is_manifest": false, + "is_readme": true, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "codebase/apache-2.0.LICENSE", + "type": "file", + "name": "apache-2.0.LICENSE", + "base_name": "apache-2.0", + "extension": ".LICENSE", + "size": 10173, + "sha1": "a6a5418b4d67d9f3a33cbf184b25ac7f9fa87d33", + "md5": "e23fadd6ceef8c618fc1c65191d846fa", + "sha256": "a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "apache-2.0", + "score": 100.0, + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.yml", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0", + "start_line": 1, + "end_line": 176, + "matched_rule": { + "identifier": "apache-2.0_93.RULE", + "license_expression": "apache-2.0", + "licenses": [ + "apache-2.0" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 1410, + "matched_length": 1410, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "apache-2.0" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + }, + { + "path": "codebase/mit.LICENSE", + "type": "file", + "name": "mit.LICENSE", + "base_name": "mit", + "extension": ".LICENSE", + "size": 1022, + "sha1": "d162bf6d725758cf35e4b4e49db3750e85bc98a0", + "md5": "8d18be6409468bae48b33b87db85824a", + "sha256": "17eeb111a052462b64de9a5a56983f8d732922d8666ecbf20ede8f776b4c4df4", + "mime_type": "text/plain", + "file_type": "ASCII text", + "programming_language": null, + "is_binary": false, + "is_text": true, + "is_archive": false, + "is_media": false, + "is_source": false, + "is_script": false, + "licenses": [ + { + "key": "mit", + "score": 100.0, + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.yml", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT", + "start_line": 1, + "end_line": 18, + "matched_rule": { + "identifier": "mit.LICENSE", + "license_expression": "mit", + "licenses": [ + "mit" + ], + "referenced_filenames": [], + "is_license_text": true, + "is_license_notice": false, + "is_license_reference": false, + "is_license_tag": false, + "is_license_intro": false, + "has_unknown": false, + "matcher": "1-hash", + "rule_length": 161, + "matched_length": 161, + "match_coverage": 100.0, + "rule_relevance": 100 + } + } + ], + "license_expressions": [ + "mit" + ], + "percentage_of_license_text": 100.0, + "copyrights": [], + "holders": [], + "authors": [], + "package_data": [], + "for_packages": [], + "is_legal": true, + "is_manifest": false, + "is_readme": false, + "is_top_level": true, + "is_key_file": true, + "files_count": 0, + "dirs_count": 0, + "size_count": 0, + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/summarycode/data/summary2/copyright/scan.expected.json b/tests/summarycode/data/summary2/copyright/scan.expected.json deleted file mode 100644 index c3954c2d43c..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan.expected.json +++ /dev/null @@ -1,1768 +0,0 @@ -{ - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--classify": true, - "--copyright": true, - "--json-pp": "", - "--license": true, - "--license-clarity-score": true, - "--summary2": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "extra_data": { - "spdx_license_list_version": "3.16", - "files_count": 24 - } - } - ], - "summary": { - "primary_license_expression": "", - "declared_license_expressions": [], - "license_clarity_score": { - "score": 0, - "declared_license": false, - "precise_license_detection": false, - "has_license_text": false, - "declared_copyrights": false, - "conflicting_license_categories": true, - "ambigous_compound_licensing": false - }, - "license_expressions": [ - { - "value": "zlib", - "count": 12 - }, - { - "value": "lgpl-2.1-plus", - "count": 3 - }, - { - "value": "boost-1.0", - "count": 1 - }, - { - "value": "cc-by-2.5", - "count": 1 - }, - { - "value": "gpl-2.0-plus WITH ada-linking-exception", - "count": 1 - }, - { - "value": "mit-old-style", - "count": 1 - } - ], - "holders": [ - { - "value": null, - "count": 4 - }, - { - "value": "Jean-loup Gailly", - "count": 4 - }, - { - "value": "Mark Adler", - "count": 4 - }, - { - "value": "Jean-loup Gailly and Mark Adler", - "count": 3 - }, - { - "value": "Henrik Ravn", - "count": 2 - }, - { - "value": "Brian Goetz and Tim Peierls", - "count": 1 - }, - { - "value": "Christian Michelsen Research AS Advanced Computing", - "count": 1 - }, - { - "value": "Dmitriy Anisimkov", - "count": 1 - }, - { - "value": "JBoss Inc., and individual contributors", - "count": 1 - }, - { - "value": "Jean-loup Gailly, Brian Raiter and Gilles Vollant", - "count": 1 - }, - { - "value": "Red Hat Middleware LLC, and individual contributors", - "count": 1 - }, - { - "value": "Red Hat, Inc. and individual contributors", - "count": 1 - } - ] - }, - "files": [ - { - "path": "scan", - "type": "directory", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/JGroups", - "type": "directory", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src", - "type": "directory", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src/FixedMembershipToken.java", - "type": "file", - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "is_unknown": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.yml", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 125, - "matched_length": 125, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "percentage_of_license_text": 79.62, - "copyrights": [ - { - "copyright": "Copyright 2005, JBoss Inc., and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "holders": [ - { - "holder": "JBoss Inc., and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src/GuardedBy.java", - "type": "file", - "licenses": [ - { - "key": "cc-by-2.5", - "score": 100.0, - "name": "Creative Commons Attribution License 2.5", - "short_name": "CC-BY-2.5", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "Creative Commons", - "homepage_url": "http://creativecommons.org/licenses/by/2.5/", - "text_url": "http://creativecommons.org/licenses/by/2.5/legalcode", - "reference_url": "https://scancode-licensedb.aboutcode.org/cc-by-2.5", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/cc-by-2.5.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/cc-by-2.5.yml", - "spdx_license_key": "CC-BY-2.5", - "spdx_url": "https://spdx.org/licenses/CC-BY-2.5", - "start_line": 4, - "end_line": 5, - "matched_rule": { - "identifier": "cc-by-2.5_4.RULE", - "license_expression": "cc-by-2.5", - "licenses": [ - "cc-by-2.5" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 14, - "matched_length": 14, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "cc-by-2.5" - ], - "percentage_of_license_text": 19.72, - "copyrights": [ - { - "copyright": "Copyright (c) 2005 Brian Goetz and Tim Peierls", - "start_line": 3, - "end_line": 3 - } - ], - "holders": [ - { - "holder": "Brian Goetz and Tim Peierls", - "start_line": 3, - "end_line": 3 - } - ], - "authors": [ - { - "author": "Bela Ban", - "start_line": 10, - "end_line": 10 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src/ImmutableReference.java", - "type": "file", - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "is_unknown": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.yml", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 125, - "matched_length": 125, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "percentage_of_license_text": 78.62, - "copyrights": [ - { - "copyright": "Copyright 2010, Red Hat, Inc. and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "holders": [ - { - "holder": "Red Hat, Inc. and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src/RATE_LIMITER.java", - "type": "file", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [ - { - "author": "Bela Ban", - "start_line": 4, - "end_line": 4 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src/RouterStub.java", - "type": "file", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [ - { - "author": "Bela Ban", - "start_line": 3, - "end_line": 3 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src/RouterStubManager.java", - "type": "file", - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "is_unknown": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.yml", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 125, - "matched_length": 125, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "percentage_of_license_text": 78.12, - "copyrights": [ - { - "copyright": "Copyright 2009, Red Hat Middleware LLC, and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "holders": [ - { - "holder": "Red Hat Middleware LLC, and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src/S3_PING.java", - "type": "file", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [ - { - "author": "Bela Ban", - "start_line": 3, - "end_line": 3 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/README", - "type": "file", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": true, - "is_top_level": true, - "is_key_file": true, - "scan_errors": [] - }, - { - "path": "scan/arch", - "type": "directory", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/arch/adler32.c", - "type": "file", - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 42.86, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2011 Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/arch/zlib.h", - "type": "file", - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 6, - "end_line": 23, - "matched_rule": { - "identifier": "zlib_17.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 144, - "matched_length": 144, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 69.57, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/arch/zutil.h", - "type": "file", - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 20.34, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib", - "type": "directory", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/ada", - "type": "directory", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/ada/zlib.ads", - "type": "file", - "licenses": [ - { - "key": "gpl-2.0-plus", - "score": 100.0, - "name": "GNU General Public License 2.0 or later", - "short_name": "GPL 2.0 or later", - "category": "Copyleft", - "is_exception": false, - "is_unknown": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/gpl-2.0-plus", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.yml", - "spdx_license_key": "GPL-2.0-or-later", - "spdx_url": "https://spdx.org/licenses/GPL-2.0-or-later", - "start_line": 6, - "end_line": 25, - "matched_rule": { - "identifier": "gpl-2.0-plus_with_ada-linking-exception_1.RULE", - "license_expression": "gpl-2.0-plus WITH ada-linking-exception", - "licenses": [ - "gpl-2.0-plus", - "ada-linking-exception" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 176, - "matched_length": 176, - "match_coverage": 100.0, - "rule_relevance": 100 - } - }, - { - "key": "ada-linking-exception", - "score": 100.0, - "name": "Ada linking exception to GPL 2.0 or later", - "short_name": "Ada linking exception to GPL 2.0 or later", - "category": "Copyleft Limited", - "is_exception": true, - "is_unknown": false, - "owner": "Dmitriy Anisimkov", - "homepage_url": null, - "text_url": "", - "reference_url": "https://scancode-licensedb.aboutcode.org/ada-linking-exception", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ada-linking-exception.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ada-linking-exception.yml", - "spdx_license_key": "LicenseRef-scancode-ada-linking-exception", - "spdx_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ada-linking-exception.LICENSE", - "start_line": 6, - "end_line": 25, - "matched_rule": { - "identifier": "gpl-2.0-plus_with_ada-linking-exception_1.RULE", - "license_expression": "gpl-2.0-plus WITH ada-linking-exception", - "licenses": [ - "gpl-2.0-plus", - "ada-linking-exception" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 176, - "matched_length": 176, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "gpl-2.0-plus WITH ada-linking-exception" - ], - "percentage_of_license_text": 94.12, - "copyrights": [ - { - "copyright": "Copyright (c) 2002-2004 Dmitriy Anisimkov", - "start_line": 4, - "end_line": 4 - } - ], - "holders": [ - { - "holder": "Dmitriy Anisimkov", - "start_line": 4, - "end_line": 4 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/adler32.c", - "type": "file", - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 42.86, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2011 Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/deflate.c", - "type": "file", - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 40.0, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly and Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/deflate.h", - "type": "file", - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 50.0, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2012 Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/dotzlib", - "type": "directory", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/dotzlib/AssemblyInfo.cs", - "type": "file", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [ - { - "copyright": "Copyright (c) 2004 by Henrik Ravn", - "start_line": 14, - "end_line": 14 - } - ], - "holders": [ - { - "holder": "Henrik Ravn", - "start_line": 14, - "end_line": 14 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/dotzlib/ChecksumImpl.cs", - "type": "file", - "licenses": [ - { - "key": "boost-1.0", - "score": 100.0, - "name": "Boost Software License 1.0", - "short_name": "Boost 1.0", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "Boost", - "homepage_url": "http://www.boost.org/users/license.html", - "text_url": "http://www.boost.org/LICENSE_1_0.txt", - "reference_url": "https://scancode-licensedb.aboutcode.org/boost-1.0", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/boost-1.0.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/boost-1.0.yml", - "spdx_license_key": "BSL-1.0", - "spdx_url": "https://spdx.org/licenses/BSL-1.0", - "start_line": 4, - "end_line": 5, - "matched_rule": { - "identifier": "boost-1.0_21.RULE", - "license_expression": "boost-1.0", - "licenses": [ - "boost-1.0" - ], - "referenced_filenames": [ - "LICENSE_1_0.txt" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 32, - "matched_length": 32, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "boost-1.0" - ], - "percentage_of_license_text": 88.89, - "copyrights": [ - { - "copyright": "Copyright Henrik Ravn 2004", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Henrik Ravn", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/gcc_gvmat64", - "type": "directory", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/gcc_gvmat64/gvmat64.S", - "type": "file", - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 17, - "end_line": 31, - "matched_rule": { - "identifier": "zlib.LICENSE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 132, - "matched_length": 132, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 50.0, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2010 Jean-loup Gailly, Brian Raiter and Gilles Vollant", - "start_line": 10, - "end_line": 10 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly, Brian Raiter and Gilles Vollant", - "start_line": 10, - "end_line": 10 - } - ], - "authors": [ - { - "author": "Gilles Vollant", - "start_line": 12, - "end_line": 12 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/infback9", - "type": "directory", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/infback9/infback9.c", - "type": "file", - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 44.44, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2008 Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/infback9/infback9.h", - "type": "file", - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 50.0, - "copyrights": [ - { - "copyright": "Copyright (c) 2003 Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/iostream2", - "type": "directory", - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/iostream2/zstream.h", - "type": "file", - "licenses": [ - { - "key": "mit-old-style", - "score": 100.0, - "name": "MIT Old Style", - "short_name": "MIT Old Style", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "MIT", - "homepage_url": "http://fedoraproject.org/wiki/Licensing:MIT#Old_Style", - "text_url": "http://fedoraproject.org/wiki/Licensing:MIT#Old_Style", - "reference_url": "https://scancode-licensedb.aboutcode.org/mit-old-style", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit-old-style.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit-old-style.yml", - "spdx_license_key": "LicenseRef-scancode-mit-old-style", - "spdx_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit-old-style.LICENSE", - "start_line": 9, - "end_line": 15, - "matched_rule": { - "identifier": "mit-old-style_cmr-no_1.RULE", - "license_expression": "mit-old-style", - "licenses": [ - "mit-old-style" - ], - "referenced_filenames": [], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 71, - "matched_length": 71, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "mit-old-style" - ], - "percentage_of_license_text": 79.78, - "copyrights": [ - { - "copyright": "Copyright (c) 1997 Christian Michelsen Research AS Advanced Computing", - "start_line": 3, - "end_line": 5 - } - ], - "holders": [ - { - "holder": "Christian Michelsen Research AS Advanced Computing", - "start_line": 4, - "end_line": 5 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/zlib.h", - "type": "file", - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 6, - "end_line": 23, - "matched_rule": { - "identifier": "zlib_17.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 144, - "matched_length": 144, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 84.21, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/zutil.c", - "type": "file", - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 37.5, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2005, 2010, 2011, 2012 Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/zlib/zutil.h", - "type": "file", - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 20.34, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - } - ] -} \ No newline at end of file diff --git a/tests/summarycode/data/summary2/copyright/scan/JGroups/src/FixedMembershipToken.java b/tests/summarycode/data/summary2/copyright/scan/JGroups/src/FixedMembershipToken.java deleted file mode 100644 index b9f2abd0088..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/JGroups/src/FixedMembershipToken.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2005, JBoss Inc., and individual contributors as indicated - * by the @authors tag. See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. - */ - - \ No newline at end of file diff --git a/tests/summarycode/data/summary2/copyright/scan/JGroups/src/GuardedBy.java b/tests/summarycode/data/summary2/copyright/scan/JGroups/src/GuardedBy.java deleted file mode 100644 index 991606291da..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/JGroups/src/GuardedBy.java +++ /dev/null @@ -1,12 +0,0 @@ - -/** - * Copyright (c) 2005 Brian Goetz and Tim Peierls - * Released under the Creative Commons Attribution License - * (http://creativecommons.org/licenses/by/2.5) - * Official home: http://www.jcip.net - * - * Adopted from Java Concurrency in Practice. This annotation defines the monitor that protects the variable - * annotated by @GuardedBy, e.g. @GuardedBy("lock") or @GuardedBy("this") - * @author Bela Ban - * @version $Id: GuardedBy.java,v 1.3 2007/02/27 14:49:40 belaban Exp $ - */ diff --git a/tests/summarycode/data/summary2/copyright/scan/JGroups/src/ImmutableReference.java b/tests/summarycode/data/summary2/copyright/scan/JGroups/src/ImmutableReference.java deleted file mode 100644 index 9c3c08df13f..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/JGroups/src/ImmutableReference.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * Copyright 2010, Red Hat, Inc. and individual contributors - * as indicated by the @author tags. See the copyright.txt file in the - * distribution for a full listing of individual contributors. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. - */ - diff --git a/tests/summarycode/data/summary2/copyright/scan/JGroups/src/RATE_LIMITER.java b/tests/summarycode/data/summary2/copyright/scan/JGroups/src/RATE_LIMITER.java deleted file mode 100644 index b4071b2728a..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/JGroups/src/RATE_LIMITER.java +++ /dev/null @@ -1,6 +0,0 @@ -/** - * Protocol which sends at most max_bytes in time_period milliseconds. Can be used instead of a flow control protocol, - * e.g. FC or SFC (same position in the stack) - * @author Bela Ban - * @version $Id: RATE_LIMITER.java,v 1.3 2009/12/11 13:08:03 belaban Exp $ - */ diff --git a/tests/summarycode/data/summary2/copyright/scan/JGroups/src/RouterStub.java b/tests/summarycode/data/summary2/copyright/scan/JGroups/src/RouterStub.java deleted file mode 100644 index c1941b54e7b..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/JGroups/src/RouterStub.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Client stub that talks to a remote GossipRouter - * @author Bela Ban - * @version $Id: RouterStub.java,v 1.62 2010/06/09 14:22:00 belaban Exp $ - */ diff --git a/tests/summarycode/data/summary2/copyright/scan/JGroups/src/RouterStubManager.java b/tests/summarycode/data/summary2/copyright/scan/JGroups/src/RouterStubManager.java deleted file mode 100644 index 188435705b6..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/JGroups/src/RouterStubManager.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * Copyright 2009, Red Hat Middleware LLC, and individual contributors - * as indicated by the @author tags. See the copyright.txt file in the - * distribution for a full listing of individual contributors. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. - */ diff --git a/tests/summarycode/data/summary2/copyright/scan/JGroups/src/S3_PING.java b/tests/summarycode/data/summary2/copyright/scan/JGroups/src/S3_PING.java deleted file mode 100644 index b79361f193e..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/JGroups/src/S3_PING.java +++ /dev/null @@ -1,5 +0,0 @@ - * Discovery protocol using Amazon's S3 storage. The S3 access code reuses the example shipped by Amazon. - * This protocol is unsupported and experimental ! - * @author Bela Ban - * @version $Id: S3_PING.java,v 1.11 2010/06/18 04:39:08 belaban Exp $ - */ diff --git a/tests/summarycode/data/summary2/copyright/scan/README b/tests/summarycode/data/summary2/copyright/scan/README deleted file mode 100644 index 1d61df81ffb..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/README +++ /dev/null @@ -1,4 +0,0 @@ -This directory contains a few sample files extracted from these two archives: - -download_url: http://zlib.net/zlib-1.2.8.tar.gz -download_url: http://master.dl.sourceforge.net/project/javagroups/JGroups/2.10.0.GA/JGroups-2.10.0.GA.src.zip \ No newline at end of file diff --git a/tests/summarycode/data/summary2/copyright/scan/arch/adler32.c b/tests/summarycode/data/summary2/copyright/scan/arch/adler32.c deleted file mode 100644 index 99bd88552be..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/arch/adler32.c +++ /dev/null @@ -1,3 +0,0 @@ -/* adler32.c -- compute the Adler-32 checksum of a data stream - * Copyright (C) 1995-2011 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h diff --git a/tests/summarycode/data/summary2/copyright/scan/arch/zlib.h b/tests/summarycode/data/summary2/copyright/scan/arch/zlib.h deleted file mode 100644 index 36568396a1e..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/arch/zlib.h +++ /dev/null @@ -1,29 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.8, April 28th, 2013 - - Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 - (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). -*/ diff --git a/tests/summarycode/data/summary2/copyright/scan/arch/zutil.h b/tests/summarycode/data/summary2/copyright/scan/arch/zutil.h deleted file mode 100644 index d85c1f24ea8..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/arch/zutil.h +++ /dev/null @@ -1,9 +0,0 @@ -/* zutil.h -- internal interface and configuration of the compression library - * Copyright (C) 1995-2013 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ diff --git a/tests/summarycode/data/summary2/copyright/scan/zlib/ada/zlib.ads b/tests/summarycode/data/summary2/copyright/scan/zlib/ada/zlib.ads deleted file mode 100644 index c814a2df733..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/zlib/ada/zlib.ads +++ /dev/null @@ -1,26 +0,0 @@ ------------------------------------------------------------------------------- --- ZLib for Ada thick binding. -- --- -- --- Copyright (C) 2002-2004 Dmitriy Anisimkov -- --- -- --- This library is free software; you can redistribute it and/or modify -- --- it under the terms of the GNU General Public License as published by -- --- the Free Software Foundation; either version 2 of the License, or (at -- --- your option) any later version. -- --- -- --- This library is distributed in the hope that it will be useful, but -- --- WITHOUT ANY WARRANTY; without even the implied warranty of -- --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- --- General Public License for more details. -- --- -- --- You should have received a copy of the GNU General Public License -- --- along with this library; if not, write to the Free Software Foundation, -- --- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- --- -- --- As a special exception, if other files instantiate generics from this -- --- unit, or you link this unit with other files to produce an executable, -- --- this unit does not by itself cause the resulting executable to be -- --- covered by the GNU General Public License. This exception does not -- --- however invalidate any other reasons why the executable file might be -- --- covered by the GNU Public License. -- ------------------------------------------------------------------------------- diff --git a/tests/summarycode/data/summary2/copyright/scan/zlib/adler32.c b/tests/summarycode/data/summary2/copyright/scan/zlib/adler32.c deleted file mode 100644 index d28e9039336..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/zlib/adler32.c +++ /dev/null @@ -1,4 +0,0 @@ -/* adler32.c -- compute the Adler-32 checksum of a data stream - * Copyright (C) 1995-2011 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ diff --git a/tests/summarycode/data/summary2/copyright/scan/zlib/deflate.c b/tests/summarycode/data/summary2/copyright/scan/zlib/deflate.c deleted file mode 100644 index 4524875c9ff..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/zlib/deflate.c +++ /dev/null @@ -1,5 +0,0 @@ -/* deflate.c -- compress data using the deflation algorithm - * Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - diff --git a/tests/summarycode/data/summary2/copyright/scan/zlib/deflate.h b/tests/summarycode/data/summary2/copyright/scan/zlib/deflate.h deleted file mode 100644 index 0b360ce6c16..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/zlib/deflate.h +++ /dev/null @@ -1,4 +0,0 @@ -/* deflate.h -- internal compression state - * Copyright (C) 1995-2012 Jean-loup Gailly - * For conditions of distribution and use, see copyright notice in zlib.h - */ diff --git a/tests/summarycode/data/summary2/copyright/scan/zlib/dotzlib/AssemblyInfo.cs b/tests/summarycode/data/summary2/copyright/scan/zlib/dotzlib/AssemblyInfo.cs deleted file mode 100644 index 23da9b437db..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/zlib/dotzlib/AssemblyInfo.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("DotZLib")] -[assembly: AssemblyDescription(".Net bindings for ZLib compression dll 1.2.x")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Henrik Ravn")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("(c) 2004 by Henrik Ravn")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] diff --git a/tests/summarycode/data/summary2/copyright/scan/zlib/dotzlib/ChecksumImpl.cs b/tests/summarycode/data/summary2/copyright/scan/zlib/dotzlib/ChecksumImpl.cs deleted file mode 100644 index 65ea66cb943..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/zlib/dotzlib/ChecksumImpl.cs +++ /dev/null @@ -1,7 +0,0 @@ -// -// � Copyright Henrik Ravn 2004 -// -// Use, modification and distribution are subject to the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - diff --git a/tests/summarycode/data/summary2/copyright/scan/zlib/gcc_gvmat64/gvmat64.S b/tests/summarycode/data/summary2/copyright/scan/zlib/gcc_gvmat64/gvmat64.S deleted file mode 100644 index 3fc192371e4..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/zlib/gcc_gvmat64/gvmat64.S +++ /dev/null @@ -1,36 +0,0 @@ -/* -;uInt longest_match_x64( -; deflate_state *s, -; IPos cur_match); // current match - -; gvmat64.S -- Asm portion of the optimized longest_match for 32 bits x86_64 -; (AMD64 on Athlon 64, Opteron, Phenom -; and Intel EM64T on Pentium 4 with EM64T, Pentium D, Core 2 Duo, Core I5/I7) -; this file is translation from gvmat64.asm to GCC 4.x (for Linux, Mac XCode) -; Copyright (C) 1995-2010 Jean-loup Gailly, Brian Raiter and Gilles Vollant. -; -; File written by Gilles Vollant, by converting to assembly the longest_match -; from Jean-loup Gailly in deflate.c of zLib and infoZip zip. -; and by taking inspiration on asm686 with masm, optimised assembly code -; from Brian Raiter, written 1998 -; -; This software is provided 'as-is', without any express or implied -; warranty. In no event will the authors be held liable for any damages -; arising from the use of this software. -; -; Permission is granted to anyone to use this software for any purpose, -; including commercial applications, and to alter it and redistribute it -; freely, subject to the following restrictions: -; -; 1. The origin of this software must not be misrepresented; you must not -; claim that you wrote the original software. If you use this software -; in a product, an acknowledgment in the product documentation would be -; appreciated but is not required. -; 2. Altered source versions must be plainly marked as such, and must not be -; misrepresented as being the original software -; 3. This notice may not be removed or altered from any source distribution. -; -; http://www.zlib.net -; http://www.winimage.com/zLibDll -; http://www.muppetlabs.com/~breadbox/software/assembly.html -; diff --git a/tests/summarycode/data/summary2/copyright/scan/zlib/infback9/infback9.c b/tests/summarycode/data/summary2/copyright/scan/zlib/infback9/infback9.c deleted file mode 100644 index 3d9f3c93d7f..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/zlib/infback9/infback9.c +++ /dev/null @@ -1,5 +0,0 @@ -/* infback9.c -- inflate deflate64 data using a call-back interface - * Copyright (C) 1995-2008 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - diff --git a/tests/summarycode/data/summary2/copyright/scan/zlib/infback9/infback9.h b/tests/summarycode/data/summary2/copyright/scan/zlib/infback9/infback9.h deleted file mode 100644 index e7be4800317..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/zlib/infback9/infback9.h +++ /dev/null @@ -1,4 +0,0 @@ -/* infback9.h -- header for using inflateBack9 functions - * Copyright (C) 2003 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ diff --git a/tests/summarycode/data/summary2/copyright/scan/zlib/iostream2/zstream.h b/tests/summarycode/data/summary2/copyright/scan/zlib/iostream2/zstream.h deleted file mode 100644 index c62dc6d1f15..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/zlib/iostream2/zstream.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * - * Copyright (c) 1997 - * Christian Michelsen Research AS - * Advanced Computing - * Fantoftvegen 38, 5036 BERGEN, Norway - * http://www.cmr.no - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Christian Michelsen Research AS makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - */ diff --git a/tests/summarycode/data/summary2/copyright/scan/zlib/zlib.h b/tests/summarycode/data/summary2/copyright/scan/zlib/zlib.h deleted file mode 100644 index a5942194eea..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/zlib/zlib.h +++ /dev/null @@ -1,24 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.8, April 28th, 2013 - - Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - diff --git a/tests/summarycode/data/summary2/copyright/scan/zlib/zutil.c b/tests/summarycode/data/summary2/copyright/scan/zlib/zutil.c deleted file mode 100644 index 1aac612ec30..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/zlib/zutil.c +++ /dev/null @@ -1,4 +0,0 @@ -/* zutil.c -- target dependent utility functions for the compression library - * Copyright (C) 1995-2005, 2010, 2011, 2012 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ diff --git a/tests/summarycode/data/summary2/copyright/scan/zlib/zutil.h b/tests/summarycode/data/summary2/copyright/scan/zlib/zutil.h deleted file mode 100644 index d85c1f24ea8..00000000000 --- a/tests/summarycode/data/summary2/copyright/scan/zlib/zutil.h +++ /dev/null @@ -1,9 +0,0 @@ -/* zutil.h -- internal interface and configuration of the compression library - * Copyright (C) 1995-2013 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ diff --git a/tests/summarycode/data/summary2/full/scan.expected.json b/tests/summarycode/data/summary2/full/scan.expected.json deleted file mode 100644 index 0d45babb004..00000000000 --- a/tests/summarycode/data/summary2/full/scan.expected.json +++ /dev/null @@ -1,8803 +0,0 @@ -{ - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--classify": true, - "--copyright": true, - "--info": true, - "--json-pp": "", - "--license": true, - "--license-clarity-score": true, - "--package": true, - "--summary2": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "extra_data": { - "spdx_license_list_version": "3.16", - "files_count": 26 - } - } - ], - "summary": { - "primary_license_expression": "", - "declared_license_expressions": [ - "cc0-1.0", - "artistic-2.0" - ], - "license_clarity_score": { - "score": 60, - "declared_license": true, - "precise_license_detection": true, - "has_license_text": true, - "declared_copyrights": false, - "conflicting_license_categories": true, - "ambigous_compound_licensing": true - }, - "license_expressions": [ - { - "value": "zlib", - "count": 12 - }, - { - "value": "lgpl-2.1-plus", - "count": 3 - }, - { - "value": "artistic-2.0", - "count": 1 - }, - { - "value": "boost-1.0", - "count": 1 - }, - { - "value": "cc-by-2.5", - "count": 1 - }, - { - "value": "cc0-1.0", - "count": 1 - }, - { - "value": "gpl-2.0-plus WITH ada-linking-exception", - "count": 1 - }, - { - "value": "mit-old-style", - "count": 1 - } - ], - "holders": [ - { - "value": null, - "count": 6 - }, - { - "value": "Jean-loup Gailly", - "count": 4 - }, - { - "value": "Mark Adler", - "count": 4 - }, - { - "value": "Jean-loup Gailly and Mark Adler", - "count": 3 - }, - { - "value": "Henrik Ravn", - "count": 2 - }, - { - "value": "Brian Goetz and Tim Peierls", - "count": 1 - }, - { - "value": "Christian Michelsen Research AS Advanced Computing", - "count": 1 - }, - { - "value": "Dmitriy Anisimkov", - "count": 1 - }, - { - "value": "JBoss Inc., and individual contributors", - "count": 1 - }, - { - "value": "Jean-loup Gailly, Brian Raiter and Gilles Vollant", - "count": 1 - }, - { - "value": "Red Hat Middleware LLC, and individual contributors", - "count": 1 - }, - { - "value": "Red Hat, Inc. and individual contributors", - "count": 1 - } - ] - }, - "dependencies": [ - { - "purl": "pkg:npm/abbrev", - "extracted_requirement": "~1.0.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/abbrev", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/ansi", - "extracted_requirement": "~0.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/ansi", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/ansicolors", - "extracted_requirement": "~0.3.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/ansicolors", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/ansistyles", - "extracted_requirement": "~0.1.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/ansistyles", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/archy", - "extracted_requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/archy", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/async-some", - "extracted_requirement": "~1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/async-some", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/block-stream", - "extracted_requirement": "0.0.8", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/block-stream", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/char-spinner", - "extracted_requirement": "~1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/char-spinner", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/chmodr", - "extracted_requirement": "~1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/chmodr", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/chownr", - "extracted_requirement": "0.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/chownr", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/cmd-shim", - "extracted_requirement": "~2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/cmd-shim", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/columnify", - "extracted_requirement": "~1.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/columnify", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/config-chain", - "extracted_requirement": "~1.1.9", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/config-chain", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/dezalgo", - "extracted_requirement": "~1.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/dezalgo", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/editor", - "extracted_requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/editor", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/fs-vacuum", - "extracted_requirement": "~1.2.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/fs-vacuum", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/fs-write-stream-atomic", - "extracted_requirement": "~1.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/fs-write-stream-atomic", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/fstream", - "extracted_requirement": "~1.0.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/fstream", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/fstream-npm", - "extracted_requirement": "~1.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/fstream-npm", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/github-url-from-git", - "extracted_requirement": "~1.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/github-url-from-git", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/github-url-from-username-repo", - "extracted_requirement": "~1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/github-url-from-username-repo", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/glob", - "extracted_requirement": "~5.0.14", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/glob", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/graceful-fs", - "extracted_requirement": "~4.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/graceful-fs", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/hosted-git-info", - "extracted_requirement": "~2.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/hosted-git-info", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/inflight", - "extracted_requirement": "~1.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/inflight", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/inherits", - "extracted_requirement": "~2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/inherits", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/ini", - "extracted_requirement": "~1.3.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/ini", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/init-package-json", - "extracted_requirement": "~1.7.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/init-package-json", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/lockfile", - "extracted_requirement": "~1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/lockfile", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/lru-cache", - "extracted_requirement": "~2.6.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/lru-cache", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/minimatch", - "extracted_requirement": "~2.0.10", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/minimatch", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/mkdirp", - "extracted_requirement": "~0.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/mkdirp", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/node-gyp", - "extracted_requirement": "~2.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/node-gyp", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/nopt", - "extracted_requirement": "~3.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/nopt", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/normalize-git-url", - "extracted_requirement": "~3.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/normalize-git-url", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/normalize-package-data", - "extracted_requirement": "~2.3.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/normalize-package-data", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/npm-cache-filename", - "extracted_requirement": "~1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/npm-cache-filename", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/npm-install-checks", - "extracted_requirement": "~1.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/npm-install-checks", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/npm-package-arg", - "extracted_requirement": "~4.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/npm-package-arg", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/npm-registry-client", - "extracted_requirement": "~6.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/npm-registry-client", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/npm-user-validate", - "extracted_requirement": "~0.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/npm-user-validate", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/npmlog", - "extracted_requirement": "~1.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/npmlog", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/once", - "extracted_requirement": "~1.3.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/once", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/opener", - "extracted_requirement": "~1.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/opener", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/osenv", - "extracted_requirement": "~0.1.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/osenv", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/path-is-inside", - "extracted_requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/path-is-inside", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/read", - "extracted_requirement": "~1.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/read", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/read-installed", - "extracted_requirement": "~4.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/read-installed", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/read-package-json", - "extracted_requirement": "~2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/read-package-json", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/readable-stream", - "extracted_requirement": "~1.1.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/readable-stream", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/realize-package-specifier", - "extracted_requirement": "~3.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/realize-package-specifier", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/request", - "extracted_requirement": "~2.60.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/request", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/retry", - "extracted_requirement": "~0.6.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/retry", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/rimraf", - "extracted_requirement": "~2.4.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/rimraf", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/semver", - "extracted_requirement": "~5.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/semver", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/sha", - "extracted_requirement": "~1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/sha", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/slide", - "extracted_requirement": "~1.1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/slide", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/sorted-object", - "extracted_requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/sorted-object", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/spdx", - "extracted_requirement": "~0.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/spdx", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/tar", - "extracted_requirement": "~2.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/tar", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/text-table", - "extracted_requirement": "~0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/text-table", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/uid-number", - "extracted_requirement": "0.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/uid-number", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/umask", - "extracted_requirement": "~1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/umask", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/validate-npm-package-name", - "extracted_requirement": "~2.2.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/validate-npm-package-name", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/which", - "extracted_requirement": "~1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/which", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/wrappy", - "extracted_requirement": "~1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/wrappy", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/write-file-atomic", - "extracted_requirement": "~1.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/write-file-atomic", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/validate-npm-package-license", - "extracted_requirement": "*", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/validate-npm-package-license", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/deep-equal", - "extracted_requirement": "~1.0.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/deep-equal", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/marked", - "extracted_requirement": "~0.3.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/marked", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/marked-man", - "extracted_requirement": "~0.1.5", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/marked-man", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/nock", - "extracted_requirement": "~2.10.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/nock", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/npm-registry-couchapp", - "extracted_requirement": "~2.6.7", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/npm-registry-couchapp", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/npm-registry-mock", - "extracted_requirement": "~1.0.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/npm-registry-mock", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/require-inject", - "extracted_requirement": "~1.2.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/require-inject", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/sprintf-js", - "extracted_requirement": "~1.0.2", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/sprintf-js", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - }, - { - "purl": "pkg:npm/tap", - "extracted_requirement": "~1.3.1", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/tap", - "for_package": "pkg:npm/npm@2.13.5", - "lockfile": "scan/package.json" - } - ], - "packages": [ - { - "type": "npm", - "namespace": null, - "name": "npm", - "version": "2.13.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": "a package manager for JavaScript", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me" - }, - { - "type": "person", - "role": "contributor", - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Steve Steiner", - "email": "ssteinerX@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Aaron Blohowiak", - "email": "aaron.blohowiak@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Martyn Smith", - "email": "martyn@dollyfish.net.nz", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Charlie Robbins", - "email": "charlie.robbins@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Francisco Treacy", - "email": "francisco.treacy@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Cliffano Subagio", - "email": "cliffano@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Christian Eager", - "email": "christian.eager@nokia.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Dav Glass", - "email": "davglass@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alex K. Wolfe", - "email": "alexkwolfe@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "James Sanders", - "email": "jimmyjazz14@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Reid Burke", - "email": "me@reidburke.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Arlo Breault", - "email": "arlolra@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Timo Derstappen", - "email": "teemow@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Bart Teeuwisse", - "email": "bart.teeuwisse@thecodemill.biz", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ben Noordhuis", - "email": "info@bnoordhuis.nl", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tor Valamo", - "email": "tor.valamo@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Whyme.Lyu", - "email": "5longluna@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Olivier Melcher", - "email": "olivier.melcher@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Toma\u017e Muraus", - "email": "kami@k5-storitve.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Evan Meagher", - "email": "evan.meagher@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Orlando Vazquez", - "email": "ovazquez@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kai Chen", - "email": "kaichenxyz@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "George Miroshnykov", - "email": "gmiroshnykov@lohika.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Geoff Flarity", - "email": "geoff.flarity@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Max Goodman", - "email": "c@chromakode.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Pete Kruckenberg", - "email": "pete@kruckenberg.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Laurie Harper", - "email": "laurie@holoweb.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Chris Wong", - "email": "chris@chriswongstudio.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Scott Bronson", - "email": "brons_github@rinspin.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Federico Romero", - "email": "federomero@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Visnu Pitiyanuvath", - "email": "visnupx@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Irakli Gozalishvili", - "email": "rfobic@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mark Cahill", - "email": "mark@tiemonster.info", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tony", - "email": "zearin@gonk.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Iain Sproat", - "email": "iainsproat@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Trent Mick", - "email": "trentm@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Felix Geisendo\u0308rfer", - "email": "felix@debuggable.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jameson Little", - "email": "t.jameson.little@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Conny Brunnkvist", - "email": "conny@fuchsia.se", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Will Elwood", - "email": "w.elwood08@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Dean Landolt", - "email": "dean@deanlandolt.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Oleg Efimov", - "email": "efimovov@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Martin Cooper", - "email": "mfncooper@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jann Horn", - "email": "jannhorn@googlemail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrew Bradley", - "email": "cspotcode@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Maciej Ma\u0142ecki", - "email": "me@mmalecki.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Stephen Sugden", - "email": "glurgle@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Michael Budde", - "email": "mbudde@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jason Smith", - "email": "jhs@iriscouch.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Gautham Pai", - "email": "buzypi@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "David Trejo", - "email": "david.daniel.trejo@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Paul Vorbach", - "email": "paul@vorb.de", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "George Ornbo", - "email": "george@shapeshed.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tim Oxley", - "email": "secoif@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tyler Green", - "email": "tyler.green2@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Dave Pacheco", - "email": "dap@joyent.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Danila Gerasimov", - "email": "danila.gerasimov@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Rod Vagg", - "email": "rod@vagg.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Christian Howe", - "email": "coderarity@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrew Lunny", - "email": "alunny@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Henrik Hodne", - "email": "dvyjones@binaryhex.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Adam Blackburn", - "email": "regality@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kris Windham", - "email": "kriswindham@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jens Grunert", - "email": "jens.grunert@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Joost-Wim Boekesteijn", - "email": "joost-wim@boekesteijn.nl", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Dalmais Maxence", - "email": "root@ip-10-195-202-5.ec2.internal", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Marcus Ekwall", - "email": "marcus.ekwall@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Aaron Stacy", - "email": "aaron.r.stacy@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Phillip Howell", - "email": "phowell@cothm.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Domenic Denicola", - "email": "domenic@domenicdenicola.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "James Halliday", - "email": "mail@substack.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jeremy Cantrell", - "email": "jmcantrell@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ribettes", - "email": "patlogan29@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Don Park", - "email": "donpark@docuverse.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Einar Otto Stangvik", - "email": "einaros@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kei Son", - "email": "heyacct@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Nicolas Morel", - "email": "marsup@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mark Dube", - "email": "markisdee@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Maxim Bogushevich", - "email": "boga1@mail.ru", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Meaglin", - "email": "Meaglin.wasabi@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ben Evans", - "email": "ben@bensbit.co.uk", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Nathan Zadoks", - "email": "nathan@nathan7.eu", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Brian White", - "email": "mscdex@mscdex.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jed Schmidt", - "email": "tr@nslator.jp", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ian Livingstone", - "email": "ianl@cs.dal.ca", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Patrick Pfeiffer", - "email": "patrick@buzzle.at", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Paul Miller", - "email": "paul@paulmillr.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ryan Emery", - "email": "seebees@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Carl Lange", - "email": "carl@flax.ie", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jan Lehnardt", - "email": "jan@apache.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Stuart P. Bentley", - "email": "stuart@testtrack4.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Johan Sk\u00f6ld", - "email": "johan@skold.cc", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Stuart Knightley", - "email": "stuart@stuartk.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Niggler", - "email": "nirk.niggler@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Paolo Fragomeni", - "email": "paolo@async.ly", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jaakko Manninen", - "email": "jaakko@rocketpack.fi", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Luke Arduini", - "email": "luke.arduini@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Larz Conwell", - "email": "larz@larz-laptop.(none)", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Marcel Klehr", - "email": "mklehr@gmx.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Robert Kowalski", - "email": "rok@kowalski.gd", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Forbes Lindesay", - "email": "forbes@lindesay.co.uk", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Vaz Allen", - "email": "vaz@tryptid.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jake Verbaten", - "email": "raynos2@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Schabse Laks", - "email": "Dev@SLaks.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Florian Margaine", - "email": "florian@margaine.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Johan Nordberg", - "email": "its@johan-nordberg.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ian Babrou", - "email": "ibobrik@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Di Wu", - "email": "dwu@palantir.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mathias Bynens", - "email": "mathias@qiwi.be", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Matt McClure", - "email": "matt.mcclure@mapmyfitness.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Matt Lunn", - "email": "matt@mattlunn.me.uk", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alexey Kreschuk", - "email": "akrsch@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "elisee", - "email": "elisee@sparklin.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Robert Gieseke", - "email": "robert.gieseke@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Franc\u0327ois Frisch", - "email": "francoisfrisch@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Trevor Burnham", - "email": "tburnham@hubspot.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alan Shaw", - "email": "alan@freestyle-developments.co.uk", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Nicholas Kinsey", - "email": "pyro@feisty.io", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Paulo Cesar", - "email": "pauloc062@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Elan Shanker", - "email": "elan.shanker@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jon Spencer", - "email": "jon@jonspencer.ca", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jason Diamond", - "email": "jason@diamond.name", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Maximilian Antoni", - "email": "mail@maxantoni.de", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Thom Blake", - "email": "tblake@brightroll.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jess Martin", - "email": "jessmartin@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Spain Train", - "email": "michael.spainhower@opower.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alex Rodionov", - "email": "p0deje@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Matt Colyer", - "email": "matt@colyer.name", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "bitspill", - "email": "bitspill+github@bitspill.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Gabriel Falkenberg", - "email": "gabriel.falkenberg@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alexej Yaroshevich", - "email": "alex@qfox.ru", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Quim Calpe", - "email": "quim@kalpe.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Steve Mason", - "email": "stevem@brandwatch.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Wil Moore III", - "email": "wil.moore@wilmoore.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Sergey Belov", - "email": "peimei@ya.ru", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tom Huang", - "email": "hzlhu.dargon@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "CamilleM", - "email": "camille.moulin@alterway.fr", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "S\u00e9bastien Santoro", - "email": "dereckson@espace-win.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Evan Lucas", - "email": "evan@btc.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Quinn Slack", - "email": "qslack@qslack.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alex Kocharin", - "email": "alex@kocharin.ru", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Daniel Santiago", - "email": "daniel.santiago@highlevelwebs.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Denis Gladkikh", - "email": "outcoldman@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrew Horton", - "email": "andrew.j.horton@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Zeke Sikelianos", - "email": "zeke@sikelianos.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Dylan Greene", - "email": "dylang@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Franck Cuny", - "email": "franck.cuny@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Yeonghoon Park", - "email": "sola92@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Rafael de Oleza", - "email": "rafa@spotify.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mikola Lysenko", - "email": "mikolalysenko@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Yazhong Liu", - "email": "yorkiefixer@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Neil Gentleman", - "email": "ngentleman@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kris Kowal", - "email": "kris.kowal@cixar.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alex Gorbatchev", - "email": "alex.gorbatchev@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Shawn Wildermuth", - "email": "shawn@wildermuth.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Wesley de Souza", - "email": "wesleywex@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "yoyoyogi", - "email": "yogesh.k@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "J. Tangelder", - "email": "j.tangelder@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jean Lauliac", - "email": "jean@lauliac.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrey Kislyuk", - "email": "kislyuk@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Thorsten Lorenz", - "email": "thlorenz@gmx.de", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Julian Gruber", - "email": "julian@juliangruber.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Benjamin Coe", - "email": "bencoe@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alex Ford", - "email": "Alex.Ford@CodeTunnel.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Matt Hickford", - "email": "matt.hickford@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Sean McGivern", - "email": "sean.mcgivern@rightscale.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "C J Silverio", - "email": "ceejceej@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Robin Tweedie", - "email": "robin@songkick.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Miroslav Bajto\u0161", - "email": "miroslav@strongloop.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "David Glasser", - "email": "glasser@davidglasser.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Gianluca Casati", - "email": "casati_gianluca@yahoo.it", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Forrest L Norvell", - "email": "ogd@aoaioxxysz.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Karsten Tinnefeld", - "email": "k.tinnefeld@googlemail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Bryan Burgers", - "email": "bryan@burgers.io", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "David Beitey", - "email": "david@davidjb.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Evan You", - "email": "yyou@google.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Zach Pomerantz", - "email": "zmp@umich.edu", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Chris Williams", - "email": "cwilliams88@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "sudodoki", - "email": "smd.deluzion@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mick Thompson", - "email": "dthompson@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Felix Rabe", - "email": "felix@rabe.io", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Michael Hayes", - "email": "michael@hayes.io", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Chris Dickinson", - "email": "christopher.s.dickinson@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Bradley Meck", - "email": "bradley.meck@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "GeJ", - "email": "geraud@gcu.info", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrew Terris", - "email": "atterris@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Michael Nisi", - "email": "michael.nisi@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "fengmk2", - "email": "fengmk2@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Adam Meadows", - "email": "adam.meadows@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Chulki Lee", - "email": "chulki.lee@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "\u4e0d\u56db", - "email": "busi.hyy@taobao.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "dead_horse", - "email": "dead_horse@qq.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kenan Yildirim", - "email": "kenan@kenany.me", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Laurie Voss", - "email": "git@seldo.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Rebecca Turner", - "email": "me@re-becca.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Hunter Loftis", - "email": "hunter@hunterloftis.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Peter Richardson", - "email": "github@zoomy.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jussi Kalliokoski", - "email": "jussi.kalliokoski@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Filip Weiss", - "email": "me@fiws.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Timo Wei\u00df", - "email": "timoweiss@Timo-MBP.local", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Christopher Hiller", - "email": "chiller@badwing.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "J\u00e9r\u00e9my Lal", - "email": "kapouer@melix.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Anders Janmyr", - "email": "anders@janmyr.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Chris Meyers", - "email": "chris.meyers.fsu@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ludwig Magnusson", - "email": "ludwig@mediatool.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Wout Mertens", - "email": "Wout.Mertens@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Nick Santos", - "email": "nick@medium.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Terin Stock", - "email": "terinjokes@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Faiq Raza", - "email": "faiqrazarizvi@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Thomas Torp", - "email": "thomas@erupt.no", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Sam Mikes", - "email": "smikes@cubane.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mat Tyndall", - "email": "mat.tyndall@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tauren Mills", - "email": "tauren@sportzing.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ron Martinez", - "email": "ramartin.net@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kazuhito Hokamura", - "email": "k.hokamura@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tristan Davies", - "email": "github@tristan.io", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "David Volm", - "email": "david@volminator.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Lin Clark", - "email": "lin.w.clark@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ben Page", - "email": "bpage@dewalch.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jeff Jo", - "email": "jeffjo@squareup.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "martinvd", - "email": "martinvdpub@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mark J. Titorenko", - "email": "nospam-github.com@titorenko.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Oddur Sigurdsson", - "email": "oddurs@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Eric Mill", - "email": "eric@konklone.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Gabriel Barros", - "email": "descartavel1@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "KevinSheedy", - "email": "kevinsheedy@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Aleksey Smolenchuk", - "email": "aleksey@uber.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ed Morley", - "email": "emorley@mozilla.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Blaine Bublitz", - "email": "blaine@iceddev.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrey Fedorov", - "email": "anfedorov@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Daijiro Wachi", - "email": "daijiro.wachi@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Luc Thevenard", - "email": "lucthevenard@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Aria Stewart", - "email": "aredridel@nbtsc.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Charlie Rudolph", - "email": "charles.w.rudolph@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Vladimir Rutsky", - "email": "rutsky@users.noreply.github.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Isaac Murchie", - "email": "isaac@saucelabs.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Marcin Wosinek", - "email": "marcin.wosinek@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "David Marr", - "email": "davemarr@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Bryan English", - "email": "bryan@bryanenglish.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Anthony Zotti", - "email": "amZotti@users.noreply.github.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Karl Horky", - "email": "karl.horky@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Gu\u00f0laugur Stef\u00e1n Egilsson", - "email": "gulli@kolibri.is", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Helge Skogly Holm", - "email": "helge.holm@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Peter A. Shevtsov", - "email": "petr.shevtsov@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alain Kalker", - "email": "a.c.kalker@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Bryant Williams", - "email": "b.n.williams@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jonas Weber", - "email": "github@jonasw.de", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tim Whidden", - "email": "twhid@twhid.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andreas", - "email": "functino@users.noreply.github.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Karolis Narkevicius", - "email": "karolis.n@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Adrian Lynch", - "email": "adi_ady_ade@hotmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Richard Littauer", - "email": "richard.littauer@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Oli Evans", - "email": "oli@zilla.org.uk", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Matt Brennan", - "email": "mattyb1000@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jeff Barczewski", - "email": "jeff.barczewski@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Danny Fritz", - "email": "dannyfritz@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Takaya Kobayashi", - "email": "jigsaw@live.jp", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ra'Shaun Stovall", - "email": "rashaunstovall@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Julien Meddah", - "email": "julien.meddah@deveryware.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Michiel Sikma", - "email": "michiel@wedemandhtml.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jakob Krigovsky", - "email": "jakob.krigovsky@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Charmander", - "email": "~@charmander.me", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Erik Wienhold", - "email": "git@ewie.name", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "James Butler", - "email": "james.butler@sandfox.co.uk", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kevin Kragenbrink", - "email": "kevin@gaikai.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Arnaud Rinquin", - "email": "rinquin.arnaud@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mike MacCana", - "email": "mike.maccana@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Antti Mattila", - "email": "anttti@fastmail.fm", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "laiso", - "email": "laiso@lai.so", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Matt Zorn", - "email": "zornme@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kyle Mitchell", - "email": "kyle@kemitchell.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jeremiah Senkpiel", - "email": "fishrock123@rocketmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Michael Klein", - "email": "mischkl@users.noreply.github.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Simen Bekkhus", - "email": "sbekkhus91@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Victor", - "email": "victor.shih@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "thefourtheye", - "email": "thechargingvolcano@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Clay Carpenter", - "email": "claycarpenter@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "bangbang93", - "email": "bangbang93@163.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Nick Malaguti", - "email": "nmalaguti@palantir.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Cedric Nelson", - "email": "cedric.nelson@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kat March\u00e1n", - "email": "kzm@sykosomatic.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrew", - "email": "talktome@aboutandrew.co.uk", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Eduardo Pinho", - "email": "enet4mikeenet@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Rachel Hutchison", - "email": "rhutchix@intel.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ryan Temple", - "email": "ryantemple145@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Eugene Sharygin", - "email": "eush77@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Nick Heiner", - "email": "nick.heiner@opower.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "James Talmage", - "email": "james@talmage.io", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "jane arc", - "email": "jane@uber.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Joseph Dykstra", - "email": "josephdykstra@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Joshua Egan", - "email": "josh-egan@users.noreply.github.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Thaddee Tyl", - "email": "thaddee.tyl@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Steve Klabnik", - "email": "steve@steveklabnik.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrew Murray", - "email": "radarhere@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Stephan B\u00f6nnemann", - "email": "stephan@excellenteasy.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kyle M. Tarplee", - "email": "kyle.tarplee@numerica.us", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Derek Peterson", - "email": "derekpetey@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Greg Whiteley", - "email": "greg.whiteley@atomos.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "murgatroid99", - "email": "mlumish@google.com", - "url": null - }, - { - "type": "person", - "role": "maintainer", - "name": "isaacs", - "email": "isaacs@npmjs.com", - "url": null - }, - { - "type": "person", - "role": "maintainer", - "name": "othiym23", - "email": "ogd@aoaioxxysz.net", - "url": null - }, - { - "type": "person", - "role": "maintainer", - "name": "iarna", - "email": "me@re-becca.org", - "url": null - }, - { - "type": "person", - "role": "maintainer", - "name": "zkat", - "email": "kat@sykosomatic.org", - "url": null - } - ], - "keywords": [ - "package manager", - "modules", - "install", - "package.json" - ], - "homepage_url": "https://docs.npmjs.com/", - "download_url": "https://registry.npmjs.org/npm/-/npm-2.13.5.tgz", - "size": null, - "sha1": "a124386bce4a90506f28ad4b1d1a804a17baaf32", - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": "http://github.com/npm/npm/issues", - "code_view_url": null, - "vcs_url": "git+https://github.com/npm/npm.git@fc7bbf03e39cc48a8924b90696d28345a6a90f3c", - "copyright": null, - "license_expression": "artistic-2.0", - "declared_license": [ - "Artistic-2.0" - ], - "notice_text": null, - "contains_source_code": null, - "source_packages": [], - "extra_data": {}, - "package_uuid": "pkg:npm/npm@2.13.5", - "package_data_files": [ - "scan/package.json" - ], - "files": [ - "scan/cc0-1.0.LICENSE", - "scan/package.json", - "scan/README", - "scan/arch/adler32.c", - "scan/arch/zlib.h", - "scan/arch/zutil.h", - "scan/JGroups/src/FixedMembershipToken.java", - "scan/JGroups/src/GuardedBy.java", - "scan/JGroups/src/ImmutableReference.java", - "scan/JGroups/src/RATE_LIMITER.java", - "scan/JGroups/src/RouterStub.java", - "scan/JGroups/src/RouterStubManager.java", - "scan/JGroups/src/S3_PING.java", - "scan/zlib/adler32.c", - "scan/zlib/deflate.c", - "scan/zlib/deflate.h", - "scan/zlib/zlib.h", - "scan/zlib/zutil.c", - "scan/zlib/zutil.h", - "scan/zlib/ada/zlib.ads", - "scan/zlib/dotzlib/AssemblyInfo.cs", - "scan/zlib/dotzlib/ChecksumImpl.cs", - "scan/zlib/gcc_gvmat64/gvmat64.S", - "scan/zlib/infback9/infback9.c", - "scan/zlib/infback9/infback9.h", - "scan/zlib/iostream2/zstream.h" - ], - "purl": "pkg:npm/npm@2.13.5", - "repository_homepage_url": "https://www.npmjs.com/package/npm", - "repository_download_url": "https://registry.npmjs.org/npm/-/npm-2.13.5.tgz", - "api_data_url": "https://registry.npmjs.org/npm/2.13.5" - } - ], - "files": [ - { - "path": "scan", - "type": "directory", - "name": "scan", - "base_name": "scan", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "files_count": 26, - "dirs_count": 9, - "size_count": 58647, - "scan_errors": [] - }, - { - "path": "scan/JGroups", - "type": "directory", - "name": "JGroups", - "base_name": "JGroups", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "files_count": 7, - "dirs_count": 1, - "size_count": 4227, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src", - "type": "directory", - "name": "src", - "base_name": "src", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 7, - "dirs_count": 0, - "size_count": 4227, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src/FixedMembershipToken.java", - "type": "file", - "name": "FixedMembershipToken.java", - "base_name": "FixedMembershipToken", - "extension": ".java", - "size": 1016, - "sha1": "d0d55d2ae0842afee96695bcc8be939e763704ec", - "md5": "301dfe021b3b4076b9f8d49577205b44", - "sha256": "ff6dfac01c9b7ad9fcb5e646db83b482f5f720d981f0ca6c68828c5aa4ec784b", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "is_unknown": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.yml", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 125, - "matched_length": 125, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "percentage_of_license_text": 79.62, - "copyrights": [ - { - "copyright": "Copyright 2005, JBoss Inc., and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "holders": [ - { - "holder": "JBoss Inc., and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src/GuardedBy.java", - "type": "file", - "name": "GuardedBy.java", - "base_name": "GuardedBy", - "extension": ".java", - "size": 482, - "sha1": "21ec75514ce72011c4e86c977505c024832c1b63", - "md5": "5165fdeefda7a55c13e44c5e56cac920", - "sha256": "8553411bf58f4ac35fc9e7d6142f11fc2fbef33e50a77f514a253135807afd44", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "cc-by-2.5", - "score": 100.0, - "name": "Creative Commons Attribution License 2.5", - "short_name": "CC-BY-2.5", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "Creative Commons", - "homepage_url": "http://creativecommons.org/licenses/by/2.5/", - "text_url": "http://creativecommons.org/licenses/by/2.5/legalcode", - "reference_url": "https://scancode-licensedb.aboutcode.org/cc-by-2.5", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/cc-by-2.5.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/cc-by-2.5.yml", - "spdx_license_key": "CC-BY-2.5", - "spdx_url": "https://spdx.org/licenses/CC-BY-2.5", - "start_line": 4, - "end_line": 5, - "matched_rule": { - "identifier": "cc-by-2.5_4.RULE", - "license_expression": "cc-by-2.5", - "licenses": [ - "cc-by-2.5" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 14, - "matched_length": 14, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "cc-by-2.5" - ], - "percentage_of_license_text": 19.72, - "copyrights": [ - { - "copyright": "Copyright (c) 2005 Brian Goetz and Tim Peierls", - "start_line": 3, - "end_line": 3 - } - ], - "holders": [ - { - "holder": "Brian Goetz and Tim Peierls", - "start_line": 3, - "end_line": 3 - } - ], - "authors": [ - { - "author": "Bela Ban", - "start_line": 10, - "end_line": 10 - } - ], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src/ImmutableReference.java", - "type": "file", - "name": "ImmutableReference.java", - "base_name": "ImmutableReference", - "extension": ".java", - "size": 1023, - "sha1": "aee1bb33424e7c1264f85c9aad40d43c3738f871", - "md5": "53a91ff66fdc4d812d7656b4e807bfd2", - "sha256": "ec1427fc2f7e322e6a4d5d99f8119310d6586aaaf5b30b2904b4ccd27966e120", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "is_unknown": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.yml", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 125, - "matched_length": 125, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "percentage_of_license_text": 78.62, - "copyrights": [ - { - "copyright": "Copyright 2010, Red Hat, Inc. and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "holders": [ - { - "holder": "Red Hat, Inc. and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src/RATE_LIMITER.java", - "type": "file", - "name": "RATE_LIMITER.java", - "base_name": "RATE_LIMITER", - "extension": ".java", - "size": 269, - "sha1": "8da19aa25da421608fbe9f4f5eeb122ab35fd01e", - "md5": "52540f80f5c22d8d13627c57b76d44f4", - "sha256": "c3bcefbbb2706f65410b4bb91d531e2ec461fa4586135becc8865adeca3385c8", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [ - { - "author": "Bela Ban", - "start_line": 4, - "end_line": 4 - } - ], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src/RouterStub.java", - "type": "file", - "name": "RouterStub.java", - "base_name": "RouterStub", - "extension": ".java", - "size": 153, - "sha1": "c1baa345449b4b91e61886dadea8f1bbea034eb4", - "md5": "a0b4e3f4d679a98d11d75e7e27e894af", - "sha256": "5c0f94fc518daca08e74fd117fef09d6dd090b0fd623a47edde451be3aed28c7", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [ - { - "author": "Bela Ban", - "start_line": 3, - "end_line": 3 - } - ], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src/RouterStubManager.java", - "type": "file", - "name": "RouterStubManager.java", - "base_name": "RouterStubManager", - "extension": ".java", - "size": 1032, - "sha1": "a51c5bbb738c1c1cd1f58c79060fa5ea4d0dd753", - "md5": "cae07c80e6f79864de002700bf9ab02f", - "sha256": "fe96061d23b37c98913379d54c5388cffdc99239807c2caf8c96d7d10321d085", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "is_unknown": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.yml", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 125, - "matched_length": 125, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "percentage_of_license_text": 78.12, - "copyrights": [ - { - "copyright": "Copyright 2009, Red Hat Middleware LLC, and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "holders": [ - { - "holder": "Red Hat Middleware LLC, and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/JGroups/src/S3_PING.java", - "type": "file", - "name": "S3_PING.java", - "base_name": "S3_PING", - "extension": ".java", - "size": 252, - "sha1": "a7a9763832eb31e1f7f7927d6288df284b70c6e5", - "md5": "ffb481f2a0c6262d0f7d1e9a4681a6ca", - "sha256": "5470e41b0bfba6adb43649215df756f1a4a5173ceed6127af1b38801651efde2", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [ - { - "author": "Bela Ban", - "start_line": 3, - "end_line": 3 - } - ], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/README", - "type": "file", - "name": "README", - "base_name": "README", - "extension": "", - "size": 236, - "sha1": "2e07e32c52d607204fad196052d70e3d18fb8636", - "md5": "effc6856ef85a9250fb1a470792b3f38", - "sha256": "165da86bfdf296cd5a0a3e20c1d1ee86d70ecb8a1fa579d6f8cadad8eee85878", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": true, - "is_top_level": true, - "is_key_file": true, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/arch", - "type": "directory", - "name": "arch", - "base_name": "arch", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "files_count": 3, - "dirs_count": 0, - "size_count": 1896, - "scan_errors": [] - }, - { - "path": "scan/arch/adler32.c", - "type": "file", - "name": "adler32.c", - "base_name": "adler32", - "extension": ".c", - "size": 175, - "sha1": "a7ee5ea54da88a6390e72ff018dd471045d8bbf1", - "md5": "92011414f344e34f711e77bac40e4bc4", - "sha256": "e533accabdc7434f3905ced32c4fba755f707929ad73df6e07172cd5a786e023", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 42.86, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2011 Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/arch/zlib.h", - "type": "file", - "name": "zlib.h", - "base_name": "zlib", - "extension": ".h", - "size": 1326, - "sha1": "26610e5eab2a17e0fa9ef6ac791f25f77af145af", - "md5": "4ed53ac605f16247ab7d571670f2351d", - "sha256": "b09e2a43e9960d3d28d37d24f10dfbc462a4cb376da54ba571ac9a8874911ed5", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 6, - "end_line": 23, - "matched_rule": { - "identifier": "zlib_17.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 144, - "matched_length": 144, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 69.57, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/arch/zutil.h", - "type": "file", - "name": "zutil.h", - "base_name": "zutil", - "extension": ".h", - "size": 395, - "sha1": "830fca8d60bd0d0d91f6354d83ec8bf118a20e64", - "md5": "807b91d2bf5e18de555e56de37e487d1", - "sha256": "3980fa5633b16f944641bf2fba3f49b8b9b9de6ffea7be1e142792393bf1a867", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 20.34, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/cc0-1.0.LICENSE", - "type": "file", - "name": "cc0-1.0.LICENSE", - "base_name": "cc0-1.0", - "extension": ".LICENSE", - "size": 6433, - "sha1": "172444e7c137eb5cd3cae530aca0879c90f7fada", - "md5": "57f047ea87f405486a94bc5a56ba7fcf", - "sha256": "963aabe87f6a51ca9c237669034a9fdecd71df7350eaf30bdf0718f63c5a94f8", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "cc0-1.0", - "score": 99.69, - "name": "Creative Commons CC0 1.0 Universal", - "short_name": "CC0-1.0", - "category": "Public Domain", - "is_exception": false, - "is_unknown": false, - "owner": "Creative Commons", - "homepage_url": "http://creativecommons.org/publicdomain/zero/1.0/", - "text_url": "http://creativecommons.org/publicdomain/zero/1.0/legalcode", - "reference_url": "https://scancode-licensedb.aboutcode.org/cc0-1.0", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/cc0-1.0.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/cc0-1.0.yml", - "spdx_license_key": "CC0-1.0", - "spdx_url": "https://spdx.org/licenses/CC0-1.0", - "start_line": 1, - "end_line": 98, - "matched_rule": { - "identifier": "cc0-1.0_155.RULE", - "license_expression": "cc0-1.0", - "licenses": [ - "cc0-1.0" - ], - "referenced_filenames": [], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "3-seq", - "rule_length": 981, - "matched_length": 978, - "match_coverage": 99.69, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "cc0-1.0" - ], - "percentage_of_license_text": 100.0, - "copyrights": [], - "holders": [], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": true, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": true, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/package.json", - "type": "file", - "name": "package.json", - "base_name": "package", - "extension": ".json", - "size": 37904, - "sha1": "dfc6c1274bd31b47d5cc482af0c0dad9d30eccaa", - "md5": "62b51527599b11b32361699c75b05683", - "sha256": "8b54b0b90570e4b0d5b8c8520e4b5a8258ae15849ec1919f57da093f5df84f38", - "mime_type": "application/json", - "file_type": "JSON data", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "artistic-2.0", - "score": 100.0, - "name": "Artistic License 2.0", - "short_name": "Artistic 2.0", - "category": "Copyleft Limited", - "is_exception": false, - "is_unknown": false, - "owner": "Perl Foundation", - "homepage_url": "http://www.perlfoundation.org/", - "text_url": "https://www.perlfoundation.org/artistic_license_2_0", - "reference_url": "https://scancode-licensedb.aboutcode.org/artistic-2.0", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/artistic-2.0.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/artistic-2.0.yml", - "spdx_license_key": "Artistic-2.0", - "spdx_url": "https://spdx.org/licenses/Artistic-2.0", - "start_line": 198, - "end_line": 198, - "matched_rule": { - "identifier": "artistic-2.0_46.RULE", - "license_expression": "artistic-2.0", - "licenses": [ - "artistic-2.0" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": true, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 4, - "matched_length": 4, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "artistic-2.0" - ], - "percentage_of_license_text": 0.1, - "copyrights": [], - "holders": [], - "authors": [ - { - "author": "name' Isaac Z.", - "start_line": 16, - "end_line": 17 - } - ], - "package_data": [ - { - "type": "npm", - "namespace": null, - "name": "npm", - "version": "2.13.5", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": "a package manager for JavaScript", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me" - }, - { - "type": "person", - "role": "contributor", - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Steve Steiner", - "email": "ssteinerX@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Aaron Blohowiak", - "email": "aaron.blohowiak@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Martyn Smith", - "email": "martyn@dollyfish.net.nz", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Charlie Robbins", - "email": "charlie.robbins@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Francisco Treacy", - "email": "francisco.treacy@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Cliffano Subagio", - "email": "cliffano@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Christian Eager", - "email": "christian.eager@nokia.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Dav Glass", - "email": "davglass@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alex K. Wolfe", - "email": "alexkwolfe@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "James Sanders", - "email": "jimmyjazz14@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Reid Burke", - "email": "me@reidburke.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Arlo Breault", - "email": "arlolra@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Timo Derstappen", - "email": "teemow@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Bart Teeuwisse", - "email": "bart.teeuwisse@thecodemill.biz", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ben Noordhuis", - "email": "info@bnoordhuis.nl", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tor Valamo", - "email": "tor.valamo@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Whyme.Lyu", - "email": "5longluna@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Olivier Melcher", - "email": "olivier.melcher@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Toma\u017e Muraus", - "email": "kami@k5-storitve.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Evan Meagher", - "email": "evan.meagher@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Orlando Vazquez", - "email": "ovazquez@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kai Chen", - "email": "kaichenxyz@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "George Miroshnykov", - "email": "gmiroshnykov@lohika.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Geoff Flarity", - "email": "geoff.flarity@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Max Goodman", - "email": "c@chromakode.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Pete Kruckenberg", - "email": "pete@kruckenberg.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Laurie Harper", - "email": "laurie@holoweb.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Chris Wong", - "email": "chris@chriswongstudio.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Scott Bronson", - "email": "brons_github@rinspin.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Federico Romero", - "email": "federomero@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Visnu Pitiyanuvath", - "email": "visnupx@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Irakli Gozalishvili", - "email": "rfobic@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mark Cahill", - "email": "mark@tiemonster.info", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tony", - "email": "zearin@gonk.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Iain Sproat", - "email": "iainsproat@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Trent Mick", - "email": "trentm@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Felix Geisendo\u0308rfer", - "email": "felix@debuggable.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jameson Little", - "email": "t.jameson.little@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Conny Brunnkvist", - "email": "conny@fuchsia.se", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Will Elwood", - "email": "w.elwood08@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Dean Landolt", - "email": "dean@deanlandolt.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Oleg Efimov", - "email": "efimovov@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Martin Cooper", - "email": "mfncooper@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jann Horn", - "email": "jannhorn@googlemail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrew Bradley", - "email": "cspotcode@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Maciej Ma\u0142ecki", - "email": "me@mmalecki.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Stephen Sugden", - "email": "glurgle@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Michael Budde", - "email": "mbudde@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jason Smith", - "email": "jhs@iriscouch.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Gautham Pai", - "email": "buzypi@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "David Trejo", - "email": "david.daniel.trejo@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Paul Vorbach", - "email": "paul@vorb.de", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "George Ornbo", - "email": "george@shapeshed.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tim Oxley", - "email": "secoif@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tyler Green", - "email": "tyler.green2@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Dave Pacheco", - "email": "dap@joyent.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Danila Gerasimov", - "email": "danila.gerasimov@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Rod Vagg", - "email": "rod@vagg.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Christian Howe", - "email": "coderarity@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrew Lunny", - "email": "alunny@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Henrik Hodne", - "email": "dvyjones@binaryhex.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Adam Blackburn", - "email": "regality@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kris Windham", - "email": "kriswindham@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jens Grunert", - "email": "jens.grunert@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Joost-Wim Boekesteijn", - "email": "joost-wim@boekesteijn.nl", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Dalmais Maxence", - "email": "root@ip-10-195-202-5.ec2.internal", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Marcus Ekwall", - "email": "marcus.ekwall@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Aaron Stacy", - "email": "aaron.r.stacy@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Phillip Howell", - "email": "phowell@cothm.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Domenic Denicola", - "email": "domenic@domenicdenicola.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "James Halliday", - "email": "mail@substack.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jeremy Cantrell", - "email": "jmcantrell@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ribettes", - "email": "patlogan29@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Don Park", - "email": "donpark@docuverse.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Einar Otto Stangvik", - "email": "einaros@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kei Son", - "email": "heyacct@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Nicolas Morel", - "email": "marsup@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mark Dube", - "email": "markisdee@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Maxim Bogushevich", - "email": "boga1@mail.ru", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Meaglin", - "email": "Meaglin.wasabi@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ben Evans", - "email": "ben@bensbit.co.uk", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Nathan Zadoks", - "email": "nathan@nathan7.eu", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Brian White", - "email": "mscdex@mscdex.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jed Schmidt", - "email": "tr@nslator.jp", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ian Livingstone", - "email": "ianl@cs.dal.ca", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Patrick Pfeiffer", - "email": "patrick@buzzle.at", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Paul Miller", - "email": "paul@paulmillr.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ryan Emery", - "email": "seebees@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Carl Lange", - "email": "carl@flax.ie", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jan Lehnardt", - "email": "jan@apache.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Stuart P. Bentley", - "email": "stuart@testtrack4.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Johan Sk\u00f6ld", - "email": "johan@skold.cc", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Stuart Knightley", - "email": "stuart@stuartk.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Niggler", - "email": "nirk.niggler@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Paolo Fragomeni", - "email": "paolo@async.ly", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jaakko Manninen", - "email": "jaakko@rocketpack.fi", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Luke Arduini", - "email": "luke.arduini@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Larz Conwell", - "email": "larz@larz-laptop.(none)", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Marcel Klehr", - "email": "mklehr@gmx.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Robert Kowalski", - "email": "rok@kowalski.gd", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Forbes Lindesay", - "email": "forbes@lindesay.co.uk", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Vaz Allen", - "email": "vaz@tryptid.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jake Verbaten", - "email": "raynos2@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Schabse Laks", - "email": "Dev@SLaks.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Florian Margaine", - "email": "florian@margaine.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Johan Nordberg", - "email": "its@johan-nordberg.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ian Babrou", - "email": "ibobrik@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Di Wu", - "email": "dwu@palantir.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mathias Bynens", - "email": "mathias@qiwi.be", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Matt McClure", - "email": "matt.mcclure@mapmyfitness.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Matt Lunn", - "email": "matt@mattlunn.me.uk", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alexey Kreschuk", - "email": "akrsch@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "elisee", - "email": "elisee@sparklin.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Robert Gieseke", - "email": "robert.gieseke@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Franc\u0327ois Frisch", - "email": "francoisfrisch@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Trevor Burnham", - "email": "tburnham@hubspot.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alan Shaw", - "email": "alan@freestyle-developments.co.uk", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Nicholas Kinsey", - "email": "pyro@feisty.io", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Paulo Cesar", - "email": "pauloc062@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Elan Shanker", - "email": "elan.shanker@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jon Spencer", - "email": "jon@jonspencer.ca", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jason Diamond", - "email": "jason@diamond.name", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Maximilian Antoni", - "email": "mail@maxantoni.de", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Thom Blake", - "email": "tblake@brightroll.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jess Martin", - "email": "jessmartin@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Spain Train", - "email": "michael.spainhower@opower.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alex Rodionov", - "email": "p0deje@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Matt Colyer", - "email": "matt@colyer.name", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Evan You", - "email": "yyx990803@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "bitspill", - "email": "bitspill+github@bitspill.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Gabriel Falkenberg", - "email": "gabriel.falkenberg@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alexej Yaroshevich", - "email": "alex@qfox.ru", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Quim Calpe", - "email": "quim@kalpe.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Steve Mason", - "email": "stevem@brandwatch.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Wil Moore III", - "email": "wil.moore@wilmoore.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Sergey Belov", - "email": "peimei@ya.ru", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tom Huang", - "email": "hzlhu.dargon@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "CamilleM", - "email": "camille.moulin@alterway.fr", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "S\u00e9bastien Santoro", - "email": "dereckson@espace-win.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Evan Lucas", - "email": "evan@btc.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Quinn Slack", - "email": "qslack@qslack.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alex Kocharin", - "email": "alex@kocharin.ru", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Daniel Santiago", - "email": "daniel.santiago@highlevelwebs.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Denis Gladkikh", - "email": "outcoldman@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrew Horton", - "email": "andrew.j.horton@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Zeke Sikelianos", - "email": "zeke@sikelianos.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Dylan Greene", - "email": "dylang@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Franck Cuny", - "email": "franck.cuny@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Yeonghoon Park", - "email": "sola92@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Rafael de Oleza", - "email": "rafa@spotify.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mikola Lysenko", - "email": "mikolalysenko@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Yazhong Liu", - "email": "yorkiefixer@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Neil Gentleman", - "email": "ngentleman@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kris Kowal", - "email": "kris.kowal@cixar.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alex Gorbatchev", - "email": "alex.gorbatchev@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Shawn Wildermuth", - "email": "shawn@wildermuth.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Wesley de Souza", - "email": "wesleywex@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "yoyoyogi", - "email": "yogesh.k@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "J. Tangelder", - "email": "j.tangelder@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jean Lauliac", - "email": "jean@lauliac.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrey Kislyuk", - "email": "kislyuk@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Thorsten Lorenz", - "email": "thlorenz@gmx.de", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Julian Gruber", - "email": "julian@juliangruber.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Benjamin Coe", - "email": "bencoe@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alex Ford", - "email": "Alex.Ford@CodeTunnel.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Matt Hickford", - "email": "matt.hickford@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Sean McGivern", - "email": "sean.mcgivern@rightscale.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "C J Silverio", - "email": "ceejceej@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Robin Tweedie", - "email": "robin@songkick.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Miroslav Bajto\u0161", - "email": "miroslav@strongloop.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "David Glasser", - "email": "glasser@davidglasser.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Gianluca Casati", - "email": "casati_gianluca@yahoo.it", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Forrest L Norvell", - "email": "ogd@aoaioxxysz.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Karsten Tinnefeld", - "email": "k.tinnefeld@googlemail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Bryan Burgers", - "email": "bryan@burgers.io", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "David Beitey", - "email": "david@davidjb.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Evan You", - "email": "yyou@google.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Zach Pomerantz", - "email": "zmp@umich.edu", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Chris Williams", - "email": "cwilliams88@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "sudodoki", - "email": "smd.deluzion@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mick Thompson", - "email": "dthompson@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Felix Rabe", - "email": "felix@rabe.io", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Michael Hayes", - "email": "michael@hayes.io", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Chris Dickinson", - "email": "christopher.s.dickinson@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Bradley Meck", - "email": "bradley.meck@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "GeJ", - "email": "geraud@gcu.info", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrew Terris", - "email": "atterris@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Michael Nisi", - "email": "michael.nisi@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "fengmk2", - "email": "fengmk2@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Adam Meadows", - "email": "adam.meadows@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Chulki Lee", - "email": "chulki.lee@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "\u4e0d\u56db", - "email": "busi.hyy@taobao.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "dead_horse", - "email": "dead_horse@qq.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kenan Yildirim", - "email": "kenan@kenany.me", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Laurie Voss", - "email": "git@seldo.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Rebecca Turner", - "email": "me@re-becca.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Hunter Loftis", - "email": "hunter@hunterloftis.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Peter Richardson", - "email": "github@zoomy.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jussi Kalliokoski", - "email": "jussi.kalliokoski@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Filip Weiss", - "email": "me@fiws.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Timo Wei\u00df", - "email": "timoweiss@Timo-MBP.local", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Christopher Hiller", - "email": "chiller@badwing.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "J\u00e9r\u00e9my Lal", - "email": "kapouer@melix.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Anders Janmyr", - "email": "anders@janmyr.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Chris Meyers", - "email": "chris.meyers.fsu@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ludwig Magnusson", - "email": "ludwig@mediatool.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Wout Mertens", - "email": "Wout.Mertens@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Nick Santos", - "email": "nick@medium.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Terin Stock", - "email": "terinjokes@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Faiq Raza", - "email": "faiqrazarizvi@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Thomas Torp", - "email": "thomas@erupt.no", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Sam Mikes", - "email": "smikes@cubane.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mat Tyndall", - "email": "mat.tyndall@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tauren Mills", - "email": "tauren@sportzing.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ron Martinez", - "email": "ramartin.net@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kazuhito Hokamura", - "email": "k.hokamura@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tristan Davies", - "email": "github@tristan.io", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "David Volm", - "email": "david@volminator.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Lin Clark", - "email": "lin.w.clark@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ben Page", - "email": "bpage@dewalch.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jeff Jo", - "email": "jeffjo@squareup.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "martinvd", - "email": "martinvdpub@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mark J. Titorenko", - "email": "nospam-github.com@titorenko.net", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Oddur Sigurdsson", - "email": "oddurs@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Eric Mill", - "email": "eric@konklone.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Gabriel Barros", - "email": "descartavel1@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "KevinSheedy", - "email": "kevinsheedy@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Aleksey Smolenchuk", - "email": "aleksey@uber.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ed Morley", - "email": "emorley@mozilla.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Blaine Bublitz", - "email": "blaine@iceddev.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrey Fedorov", - "email": "anfedorov@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Daijiro Wachi", - "email": "daijiro.wachi@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Luc Thevenard", - "email": "lucthevenard@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Aria Stewart", - "email": "aredridel@nbtsc.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Charlie Rudolph", - "email": "charles.w.rudolph@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Vladimir Rutsky", - "email": "rutsky@users.noreply.github.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Isaac Murchie", - "email": "isaac@saucelabs.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Marcin Wosinek", - "email": "marcin.wosinek@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "David Marr", - "email": "davemarr@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Bryan English", - "email": "bryan@bryanenglish.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Anthony Zotti", - "email": "amZotti@users.noreply.github.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Karl Horky", - "email": "karl.horky@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jordan Harband", - "email": "ljharb@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Gu\u00f0laugur Stef\u00e1n Egilsson", - "email": "gulli@kolibri.is", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Helge Skogly Holm", - "email": "helge.holm@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Peter A. Shevtsov", - "email": "petr.shevtsov@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Alain Kalker", - "email": "a.c.kalker@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Bryant Williams", - "email": "b.n.williams@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jonas Weber", - "email": "github@jonasw.de", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Tim Whidden", - "email": "twhid@twhid.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andreas", - "email": "functino@users.noreply.github.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Karolis Narkevicius", - "email": "karolis.n@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Adrian Lynch", - "email": "adi_ady_ade@hotmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Richard Littauer", - "email": "richard.littauer@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Oli Evans", - "email": "oli@zilla.org.uk", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Matt Brennan", - "email": "mattyb1000@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jeff Barczewski", - "email": "jeff.barczewski@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Danny Fritz", - "email": "dannyfritz@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Takaya Kobayashi", - "email": "jigsaw@live.jp", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ra'Shaun Stovall", - "email": "rashaunstovall@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Julien Meddah", - "email": "julien.meddah@deveryware.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Michiel Sikma", - "email": "michiel@wedemandhtml.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jakob Krigovsky", - "email": "jakob.krigovsky@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Charmander", - "email": "~@charmander.me", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Erik Wienhold", - "email": "git@ewie.name", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "James Butler", - "email": "james.butler@sandfox.co.uk", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kevin Kragenbrink", - "email": "kevin@gaikai.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Arnaud Rinquin", - "email": "rinquin.arnaud@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Mike MacCana", - "email": "mike.maccana@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Antti Mattila", - "email": "anttti@fastmail.fm", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "laiso", - "email": "laiso@lai.so", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Matt Zorn", - "email": "zornme@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kyle Mitchell", - "email": "kyle@kemitchell.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Jeremiah Senkpiel", - "email": "fishrock123@rocketmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Michael Klein", - "email": "mischkl@users.noreply.github.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Simen Bekkhus", - "email": "sbekkhus91@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Victor", - "email": "victor.shih@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "thefourtheye", - "email": "thechargingvolcano@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Clay Carpenter", - "email": "claycarpenter@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "bangbang93", - "email": "bangbang93@163.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Nick Malaguti", - "email": "nmalaguti@palantir.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Cedric Nelson", - "email": "cedric.nelson@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kat March\u00e1n", - "email": "kzm@sykosomatic.org", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrew", - "email": "talktome@aboutandrew.co.uk", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Eduardo Pinho", - "email": "enet4mikeenet@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Rachel Hutchison", - "email": "rhutchix@intel.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Ryan Temple", - "email": "ryantemple145@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Eugene Sharygin", - "email": "eush77@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Nick Heiner", - "email": "nick.heiner@opower.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "James Talmage", - "email": "james@talmage.io", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "jane arc", - "email": "jane@uber.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Joseph Dykstra", - "email": "josephdykstra@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Joshua Egan", - "email": "josh-egan@users.noreply.github.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Thaddee Tyl", - "email": "thaddee.tyl@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Steve Klabnik", - "email": "steve@steveklabnik.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Andrew Murray", - "email": "radarhere@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Stephan B\u00f6nnemann", - "email": "stephan@excellenteasy.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Kyle M. Tarplee", - "email": "kyle.tarplee@numerica.us", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Derek Peterson", - "email": "derekpetey@gmail.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "Greg Whiteley", - "email": "greg.whiteley@atomos.com", - "url": null - }, - { - "type": "person", - "role": "contributor", - "name": "murgatroid99", - "email": "mlumish@google.com", - "url": null - }, - { - "type": "person", - "role": "maintainer", - "name": "isaacs", - "email": "isaacs@npmjs.com", - "url": null - }, - { - "type": "person", - "role": "maintainer", - "name": "othiym23", - "email": "ogd@aoaioxxysz.net", - "url": null - }, - { - "type": "person", - "role": "maintainer", - "name": "iarna", - "email": "me@re-becca.org", - "url": null - }, - { - "type": "person", - "role": "maintainer", - "name": "zkat", - "email": "kat@sykosomatic.org", - "url": null - } - ], - "keywords": [ - "package manager", - "modules", - "install", - "package.json" - ], - "homepage_url": "https://docs.npmjs.com/", - "download_url": "https://registry.npmjs.org/npm/-/npm-2.13.5.tgz", - "size": null, - "sha1": "a124386bce4a90506f28ad4b1d1a804a17baaf32", - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": "http://github.com/npm/npm/issues", - "code_view_url": null, - "vcs_url": "git+https://github.com/npm/npm.git@fc7bbf03e39cc48a8924b90696d28345a6a90f3c", - "copyright": null, - "license_expression": "artistic-2.0", - "declared_license": [ - "Artistic-2.0" - ], - "notice_text": null, - "contains_source_code": null, - "source_packages": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:npm/abbrev", - "extracted_requirement": "~1.0.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/ansi", - "extracted_requirement": "~0.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/ansicolors", - "extracted_requirement": "~0.3.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/ansistyles", - "extracted_requirement": "~0.1.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/archy", - "extracted_requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/async-some", - "extracted_requirement": "~1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/block-stream", - "extracted_requirement": "0.0.8", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/char-spinner", - "extracted_requirement": "~1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/chmodr", - "extracted_requirement": "~1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/chownr", - "extracted_requirement": "0.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/cmd-shim", - "extracted_requirement": "~2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/columnify", - "extracted_requirement": "~1.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/config-chain", - "extracted_requirement": "~1.1.9", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/dezalgo", - "extracted_requirement": "~1.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/editor", - "extracted_requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/fs-vacuum", - "extracted_requirement": "~1.2.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/fs-write-stream-atomic", - "extracted_requirement": "~1.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/fstream", - "extracted_requirement": "~1.0.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/fstream-npm", - "extracted_requirement": "~1.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/github-url-from-git", - "extracted_requirement": "~1.4.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/github-url-from-username-repo", - "extracted_requirement": "~1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/glob", - "extracted_requirement": "~5.0.14", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/graceful-fs", - "extracted_requirement": "~4.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/hosted-git-info", - "extracted_requirement": "~2.1.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/inflight", - "extracted_requirement": "~1.0.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/inherits", - "extracted_requirement": "~2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/ini", - "extracted_requirement": "~1.3.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/init-package-json", - "extracted_requirement": "~1.7.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/lockfile", - "extracted_requirement": "~1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/lru-cache", - "extracted_requirement": "~2.6.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/minimatch", - "extracted_requirement": "~2.0.10", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/mkdirp", - "extracted_requirement": "~0.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/node-gyp", - "extracted_requirement": "~2.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/nopt", - "extracted_requirement": "~3.0.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/normalize-git-url", - "extracted_requirement": "~3.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/normalize-package-data", - "extracted_requirement": "~2.3.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/npm-cache-filename", - "extracted_requirement": "~1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/npm-install-checks", - "extracted_requirement": "~1.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/npm-package-arg", - "extracted_requirement": "~4.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/npm-registry-client", - "extracted_requirement": "~6.5.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/npm-user-validate", - "extracted_requirement": "~0.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/npmlog", - "extracted_requirement": "~1.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/once", - "extracted_requirement": "~1.3.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/opener", - "extracted_requirement": "~1.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/osenv", - "extracted_requirement": "~0.1.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/path-is-inside", - "extracted_requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/read", - "extracted_requirement": "~1.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/read-installed", - "extracted_requirement": "~4.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/read-package-json", - "extracted_requirement": "~2.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/readable-stream", - "extracted_requirement": "~1.1.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/realize-package-specifier", - "extracted_requirement": "~3.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/request", - "extracted_requirement": "~2.60.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/retry", - "extracted_requirement": "~0.6.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/rimraf", - "extracted_requirement": "~2.4.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/semver", - "extracted_requirement": "~5.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/sha", - "extracted_requirement": "~1.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/slide", - "extracted_requirement": "~1.1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/sorted-object", - "extracted_requirement": "~1.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/spdx", - "extracted_requirement": "~0.4.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/tar", - "extracted_requirement": "~2.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/text-table", - "extracted_requirement": "~0.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/uid-number", - "extracted_requirement": "0.0.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/umask", - "extracted_requirement": "~1.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/validate-npm-package-name", - "extracted_requirement": "~2.2.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/which", - "extracted_requirement": "~1.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/wrappy", - "extracted_requirement": "~1.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/write-file-atomic", - "extracted_requirement": "~1.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/validate-npm-package-license", - "extracted_requirement": "*", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/deep-equal", - "extracted_requirement": "~1.0.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/marked", - "extracted_requirement": "~0.3.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/marked-man", - "extracted_requirement": "~0.1.5", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/nock", - "extracted_requirement": "~2.10.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/npm-registry-couchapp", - "extracted_requirement": "~2.6.7", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/npm-registry-mock", - "extracted_requirement": "~1.0.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/require-inject", - "extracted_requirement": "~1.2.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/sprintf-js", - "extracted_requirement": "~1.0.2", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/tap", - "extracted_requirement": "~1.3.1", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - } - ], - "purl": "pkg:npm/npm@2.13.5", - "repository_homepage_url": "https://www.npmjs.com/package/npm", - "repository_download_url": "https://registry.npmjs.org/npm/-/npm-2.13.5.tgz", - "api_data_url": "https://registry.npmjs.org/npm/2.13.5" - } - ], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": true, - "is_readme": false, - "is_top_level": true, - "is_key_file": true, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/zlib", - "type": "directory", - "name": "zlib", - "base_name": "zlib", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "files_count": 13, - "dirs_count": 5, - "size_count": 7951, - "scan_errors": [] - }, - { - "path": "scan/zlib/ada", - "type": "directory", - "name": "ada", - "base_name": "ada", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 1, - "dirs_count": 0, - "size_count": 2054, - "scan_errors": [] - }, - { - "path": "scan/zlib/ada/zlib.ads", - "type": "file", - "name": "zlib.ads", - "base_name": "zlib", - "extension": ".ads", - "size": 2054, - "sha1": "93b3e6e5822c350a9c12e69a2848e29767777002", - "md5": "4e58eb393ad904c1de81a9ca5b9e392c", - "sha256": "8e6da5a880c0547bac5b71f0f123164511ae17e3c7d7f424e4ec5b44e1cae731", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "gpl-2.0-plus", - "score": 100.0, - "name": "GNU General Public License 2.0 or later", - "short_name": "GPL 2.0 or later", - "category": "Copyleft", - "is_exception": false, - "is_unknown": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/gpl-2.0-plus", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.yml", - "spdx_license_key": "GPL-2.0-or-later", - "spdx_url": "https://spdx.org/licenses/GPL-2.0-or-later", - "start_line": 6, - "end_line": 25, - "matched_rule": { - "identifier": "gpl-2.0-plus_with_ada-linking-exception_1.RULE", - "license_expression": "gpl-2.0-plus WITH ada-linking-exception", - "licenses": [ - "gpl-2.0-plus", - "ada-linking-exception" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 176, - "matched_length": 176, - "match_coverage": 100.0, - "rule_relevance": 100 - } - }, - { - "key": "ada-linking-exception", - "score": 100.0, - "name": "Ada linking exception to GPL 2.0 or later", - "short_name": "Ada linking exception to GPL 2.0 or later", - "category": "Copyleft Limited", - "is_exception": true, - "is_unknown": false, - "owner": "Dmitriy Anisimkov", - "homepage_url": null, - "text_url": "", - "reference_url": "https://scancode-licensedb.aboutcode.org/ada-linking-exception", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ada-linking-exception.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ada-linking-exception.yml", - "spdx_license_key": "LicenseRef-scancode-ada-linking-exception", - "spdx_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ada-linking-exception.LICENSE", - "start_line": 6, - "end_line": 25, - "matched_rule": { - "identifier": "gpl-2.0-plus_with_ada-linking-exception_1.RULE", - "license_expression": "gpl-2.0-plus WITH ada-linking-exception", - "licenses": [ - "gpl-2.0-plus", - "ada-linking-exception" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 176, - "matched_length": 176, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "gpl-2.0-plus WITH ada-linking-exception" - ], - "percentage_of_license_text": 94.12, - "copyrights": [ - { - "copyright": "Copyright (c) 2002-2004 Dmitriy Anisimkov", - "start_line": 4, - "end_line": 4 - } - ], - "holders": [ - { - "holder": "Dmitriy Anisimkov", - "start_line": 4, - "end_line": 4 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/zlib/adler32.c", - "type": "file", - "name": "adler32.c", - "base_name": "adler32", - "extension": ".c", - "size": 179, - "sha1": "f98c6c82a570ac852801b46157c1540070d55358", - "md5": "48c4037f16b4670795fdf72e88cc278c", - "sha256": "fc1682e787ccc8d9eb83eb0b1f5acb59d22aa6ce1bff7c749a9dc315237b2240", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 42.86, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2011 Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/zlib/deflate.c", - "type": "file", - "name": "deflate.c", - "base_name": "deflate", - "extension": ".c", - "size": 198, - "sha1": "4b4696c59e245cef0bad7334fdb63725ccfa218c", - "md5": "f11ed826baf25f2bfa9c610313460036", - "sha256": "ef7bf500e1accf7e91352788c92b5c6663bab52e2cd6c42284496518e4a5f054", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 40.0, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly and Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/zlib/deflate.h", - "type": "file", - "name": "deflate.h", - "base_name": "deflate", - "extension": ".h", - "size": 165, - "sha1": "a99a71ff971faf49a52ed6f7d3075fdffae8054b", - "md5": "d8821cd288e2be7fd83cdcac22a427ce", - "sha256": "a3c2fa63c7e730bdd008bc07b7d3865dc76781082b77a03d52a918ce1c7d3459", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 50.0, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2012 Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/zlib/dotzlib", - "type": "directory", - "name": "dotzlib", - "base_name": "dotzlib", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 2, - "dirs_count": 0, - "size_count": 863, - "scan_errors": [] - }, - { - "path": "scan/zlib/dotzlib/AssemblyInfo.cs", - "type": "file", - "name": "AssemblyInfo.cs", - "base_name": "AssemblyInfo", - "extension": ".cs", - "size": 627, - "sha1": "cc7fcb4d721a7efe9eefa6bd2d9d0105d33203a8", - "md5": "dbd621f76cb27e2fd8b8e2d9d985ffcf", - "sha256": "8b257a625c537736ee3ac2321b4ef56ba8a6fa4f922a35b1a0e992f9327d39e9", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": "C#", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [ - { - "copyright": "Copyright (c) 2004 by Henrik Ravn", - "start_line": 14, - "end_line": 14 - } - ], - "holders": [ - { - "holder": "Henrik Ravn", - "start_line": 14, - "end_line": 14 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/zlib/dotzlib/ChecksumImpl.cs", - "type": "file", - "name": "ChecksumImpl.cs", - "base_name": "ChecksumImpl", - "extension": ".cs", - "size": 236, - "sha1": "3043848212232cdde81eb3e20fca7f2447d944be", - "md5": "661652a0568e25d12fc9bfad2fdabfb2", - "sha256": "f3144ba734429b825e22c2f9048412e78c907e0142f2cdc629879b3a0fa63c89", - "mime_type": "text/plain", - "file_type": "UTF-8 Unicode text, with CRLF line terminators", - "programming_language": "C#", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "boost-1.0", - "score": 100.0, - "name": "Boost Software License 1.0", - "short_name": "Boost 1.0", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "Boost", - "homepage_url": "http://www.boost.org/users/license.html", - "text_url": "http://www.boost.org/LICENSE_1_0.txt", - "reference_url": "https://scancode-licensedb.aboutcode.org/boost-1.0", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/boost-1.0.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/boost-1.0.yml", - "spdx_license_key": "BSL-1.0", - "spdx_url": "https://spdx.org/licenses/BSL-1.0", - "start_line": 4, - "end_line": 5, - "matched_rule": { - "identifier": "boost-1.0_21.RULE", - "license_expression": "boost-1.0", - "licenses": [ - "boost-1.0" - ], - "referenced_filenames": [ - "LICENSE_1_0.txt" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 32, - "matched_length": 32, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "boost-1.0" - ], - "percentage_of_license_text": 88.89, - "copyrights": [ - { - "copyright": "Copyright Henrik Ravn 2004", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Henrik Ravn", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/zlib/gcc_gvmat64", - "type": "directory", - "name": "gcc_gvmat64", - "base_name": "gcc_gvmat64", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 1, - "dirs_count": 0, - "size_count": 1774, - "scan_errors": [] - }, - { - "path": "scan/zlib/gcc_gvmat64/gvmat64.S", - "type": "file", - "name": "gvmat64.S", - "base_name": "gvmat64", - "extension": ".S", - "size": 1774, - "sha1": "8dff93e95ccef023a871fb438784635b5df1d541", - "md5": "4f0d2f55d43d9466750350f8b27f0302", - "sha256": "1551b8fb1c2f1f3cc92c8e4f31730ebdde0c766caeca6d670a7758b55e3804f3", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": "GAS", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 17, - "end_line": 31, - "matched_rule": { - "identifier": "zlib.LICENSE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 132, - "matched_length": 132, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 50.0, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2010 Jean-loup Gailly, Brian Raiter and Gilles Vollant", - "start_line": 10, - "end_line": 10 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly, Brian Raiter and Gilles Vollant", - "start_line": 10, - "end_line": 10 - } - ], - "authors": [ - { - "author": "Gilles Vollant", - "start_line": 12, - "end_line": 12 - } - ], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/zlib/infback9", - "type": "directory", - "name": "infback9", - "base_name": "infback9", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 2, - "dirs_count": 0, - "size_count": 353, - "scan_errors": [] - }, - { - "path": "scan/zlib/infback9/infback9.c", - "type": "file", - "name": "infback9.c", - "base_name": "infback9", - "extension": ".c", - "size": 185, - "sha1": "299f7a056cf0e0ed7d5bd687c53f3247d809cab2", - "md5": "d570bd029ee2362f2a0927c87999773b", - "sha256": "03fb435669b57aa90fe00c4dbc12d8492ef87b6243427d1e1831006994ee1f80", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 44.44, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2008 Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/zlib/infback9/infback9.h", - "type": "file", - "name": "infback9.h", - "base_name": "infback9", - "extension": ".h", - "size": 168, - "sha1": "c849edb4691d23e0db97d3f5da1cc5b396929449", - "md5": "2913c8ea7fb43a0f469bb2797c820a95", - "sha256": "4f8db049a7156b8a4616a6c9df0b5ee09571f0ac2eb253e111f2fb727fb033ea", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 50.0, - "copyrights": [ - { - "copyright": "Copyright (c) 2003 Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/zlib/iostream2", - "type": "directory", - "name": "iostream2", - "base_name": "iostream2", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 1, - "dirs_count": 0, - "size_count": 649, - "scan_errors": [] - }, - { - "path": "scan/zlib/iostream2/zstream.h", - "type": "file", - "name": "zstream.h", - "base_name": "zstream", - "extension": ".h", - "size": 649, - "sha1": "b7fe15df27e601b88cde6b6a63dad184ccbce572", - "md5": "8b897171ea0767232e586086bc94518c", - "sha256": "ee2eef602cba7c4ba350617f4154de50cb4cbf274c7dd773130aca0775d5d9cd", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "mit-old-style", - "score": 100.0, - "name": "MIT Old Style", - "short_name": "MIT Old Style", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "MIT", - "homepage_url": "http://fedoraproject.org/wiki/Licensing:MIT#Old_Style", - "text_url": "http://fedoraproject.org/wiki/Licensing:MIT#Old_Style", - "reference_url": "https://scancode-licensedb.aboutcode.org/mit-old-style", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit-old-style.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit-old-style.yml", - "spdx_license_key": "LicenseRef-scancode-mit-old-style", - "spdx_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit-old-style.LICENSE", - "start_line": 9, - "end_line": 15, - "matched_rule": { - "identifier": "mit-old-style_cmr-no_1.RULE", - "license_expression": "mit-old-style", - "licenses": [ - "mit-old-style" - ], - "referenced_filenames": [], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 71, - "matched_length": 71, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "mit-old-style" - ], - "percentage_of_license_text": 79.78, - "copyrights": [ - { - "copyright": "Copyright (c) 1997 Christian Michelsen Research AS Advanced Computing", - "start_line": 3, - "end_line": 5 - } - ], - "holders": [ - { - "holder": "Christian Michelsen Research AS Advanced Computing", - "start_line": 4, - "end_line": 5 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/zlib/zlib.h", - "type": "file", - "name": "zlib.h", - "base_name": "zlib", - "extension": ".h", - "size": 1103, - "sha1": "85c65180242c560a4df66e9882119bf70eaefd02", - "md5": "07497e2688dad9406386f0534a0bbfca", - "sha256": "64fef1f0a7cd69eae744ad2fa754ee8568a5715588e38b7a3fa6e11eaeaec97e", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 6, - "end_line": 23, - "matched_rule": { - "identifier": "zlib_17.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 144, - "matched_length": 144, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 84.21, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/zlib/zutil.c", - "type": "file", - "name": "zutil.c", - "base_name": "zutil", - "extension": ".c", - "size": 218, - "sha1": "2e846ef84cfb16e0e8b92c62a850a607a709d7b2", - "md5": "2a0ea6a99e31fb0989209a027476038d", - "sha256": "dc7224c7f079d237acf510ff40282cf6d50352c851d4e2957d227e2a3b57eb4d", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 37.5, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2005, 2010, 2011, 2012 Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - }, - { - "path": "scan/zlib/zutil.h", - "type": "file", - "name": "zutil.h", - "base_name": "zutil", - "extension": ".h", - "size": 395, - "sha1": "830fca8d60bd0d0d91f6354d83ec8bf118a20e64", - "md5": "807b91d2bf5e18de555e56de37e487d1", - "sha256": "3980fa5633b16f944641bf2fba3f49b8b9b9de6ffea7be1e142792393bf1a867", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 20.34, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "package_data": [], - "for_packages": [ - "pkg:npm/npm@2.13.5" - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] -} \ No newline at end of file diff --git a/tests/summarycode/data/summary2/full/scan.expected.json-lines b/tests/summarycode/data/summary2/full/scan.expected.json-lines deleted file mode 100644 index eb3873a710d..00000000000 --- a/tests/summarycode/data/summary2/full/scan.expected.json-lines +++ /dev/null @@ -1,2730 +0,0 @@ -[ - { - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--classify": true, - "--copyright": true, - "--info": true, - "--json-lines": "", - "--license": true, - "--license-clarity-score": true, - "--summary2": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "extra_data": { - "spdx_license_list_version": "3.16", - "files_count": 26 - } - } - ] - }, - { - "summary": { - "primary_license_expression": "", - "declared_license_expressions": [ - "cc0-1.0", - "artistic-2.0" - ], - "license_clarity_score": { - "score": 60, - "declared_license": true, - "precise_license_detection": true, - "has_license_text": true, - "declared_copyrights": false, - "conflicting_license_categories": true, - "ambigous_compound_licensing": true - }, - "license_expressions": [ - { - "value": "zlib", - "count": 12 - }, - { - "value": "lgpl-2.1-plus", - "count": 3 - }, - { - "value": "artistic-2.0", - "count": 1 - }, - { - "value": "boost-1.0", - "count": 1 - }, - { - "value": "cc-by-2.5", - "count": 1 - }, - { - "value": "cc0-1.0", - "count": 1 - }, - { - "value": "gpl-2.0-plus WITH ada-linking-exception", - "count": 1 - }, - { - "value": "mit-old-style", - "count": 1 - } - ], - "holders": [ - { - "value": null, - "count": 6 - }, - { - "value": "Jean-loup Gailly", - "count": 4 - }, - { - "value": "Mark Adler", - "count": 4 - }, - { - "value": "Jean-loup Gailly and Mark Adler", - "count": 3 - }, - { - "value": "Henrik Ravn", - "count": 2 - }, - { - "value": "Brian Goetz and Tim Peierls", - "count": 1 - }, - { - "value": "Christian Michelsen Research AS Advanced Computing", - "count": 1 - }, - { - "value": "Dmitriy Anisimkov", - "count": 1 - }, - { - "value": "JBoss Inc., and individual contributors", - "count": 1 - }, - { - "value": "Jean-loup Gailly, Brian Raiter and Gilles Vollant", - "count": 1 - }, - { - "value": "Red Hat Middleware LLC, and individual contributors", - "count": 1 - }, - { - "value": "Red Hat, Inc. and individual contributors", - "count": 1 - } - ] - } - }, - { - "files": [ - { - "path": "scan", - "type": "directory", - "name": "scan", - "base_name": "scan", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "files_count": 26, - "dirs_count": 9, - "size_count": 58647, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/cc0-1.0.LICENSE", - "type": "file", - "name": "cc0-1.0.LICENSE", - "base_name": "cc0-1.0", - "extension": ".LICENSE", - "size": 6433, - "sha1": "172444e7c137eb5cd3cae530aca0879c90f7fada", - "md5": "57f047ea87f405486a94bc5a56ba7fcf", - "sha256": "963aabe87f6a51ca9c237669034a9fdecd71df7350eaf30bdf0718f63c5a94f8", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "cc0-1.0", - "score": 99.69, - "name": "Creative Commons CC0 1.0 Universal", - "short_name": "CC0-1.0", - "category": "Public Domain", - "is_exception": false, - "is_unknown": false, - "owner": "Creative Commons", - "homepage_url": "http://creativecommons.org/publicdomain/zero/1.0/", - "text_url": "http://creativecommons.org/publicdomain/zero/1.0/legalcode", - "reference_url": "https://scancode-licensedb.aboutcode.org/cc0-1.0", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/cc0-1.0.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/cc0-1.0.yml", - "spdx_license_key": "CC0-1.0", - "spdx_url": "https://spdx.org/licenses/CC0-1.0", - "start_line": 1, - "end_line": 98, - "matched_rule": { - "identifier": "cc0-1.0_155.RULE", - "license_expression": "cc0-1.0", - "licenses": [ - "cc0-1.0" - ], - "referenced_filenames": [], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "3-seq", - "rule_length": 981, - "matched_length": 978, - "match_coverage": 99.69, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "cc0-1.0" - ], - "percentage_of_license_text": 100.0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": true, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": true, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/package.json", - "type": "file", - "name": "package.json", - "base_name": "package", - "extension": ".json", - "size": 37904, - "sha1": "dfc6c1274bd31b47d5cc482af0c0dad9d30eccaa", - "md5": "62b51527599b11b32361699c75b05683", - "sha256": "8b54b0b90570e4b0d5b8c8520e4b5a8258ae15849ec1919f57da093f5df84f38", - "mime_type": "application/json", - "file_type": "JSON data", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "artistic-2.0", - "score": 100.0, - "name": "Artistic License 2.0", - "short_name": "Artistic 2.0", - "category": "Copyleft Limited", - "is_exception": false, - "is_unknown": false, - "owner": "Perl Foundation", - "homepage_url": "http://www.perlfoundation.org/", - "text_url": "https://www.perlfoundation.org/artistic_license_2_0", - "reference_url": "https://scancode-licensedb.aboutcode.org/artistic-2.0", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/artistic-2.0.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/artistic-2.0.yml", - "spdx_license_key": "Artistic-2.0", - "spdx_url": "https://spdx.org/licenses/Artistic-2.0", - "start_line": 198, - "end_line": 198, - "matched_rule": { - "identifier": "artistic-2.0_46.RULE", - "license_expression": "artistic-2.0", - "licenses": [ - "artistic-2.0" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": true, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 4, - "matched_length": 4, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "artistic-2.0" - ], - "percentage_of_license_text": 0.1, - "copyrights": [], - "holders": [], - "authors": [ - { - "author": "name' Isaac Z.", - "start_line": 16, - "end_line": 17 - } - ], - "is_legal": false, - "is_manifest": true, - "is_readme": false, - "is_top_level": true, - "is_key_file": true, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/README", - "type": "file", - "name": "README", - "base_name": "README", - "extension": "", - "size": 236, - "sha1": "2e07e32c52d607204fad196052d70e3d18fb8636", - "md5": "effc6856ef85a9250fb1a470792b3f38", - "sha256": "165da86bfdf296cd5a0a3e20c1d1ee86d70ecb8a1fa579d6f8cadad8eee85878", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": true, - "is_top_level": true, - "is_key_file": true, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/arch", - "type": "directory", - "name": "arch", - "base_name": "arch", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "files_count": 3, - "dirs_count": 0, - "size_count": 1896, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/arch/adler32.c", - "type": "file", - "name": "adler32.c", - "base_name": "adler32", - "extension": ".c", - "size": 175, - "sha1": "a7ee5ea54da88a6390e72ff018dd471045d8bbf1", - "md5": "92011414f344e34f711e77bac40e4bc4", - "sha256": "e533accabdc7434f3905ced32c4fba755f707929ad73df6e07172cd5a786e023", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 42.86, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2011 Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/arch/zlib.h", - "type": "file", - "name": "zlib.h", - "base_name": "zlib", - "extension": ".h", - "size": 1326, - "sha1": "26610e5eab2a17e0fa9ef6ac791f25f77af145af", - "md5": "4ed53ac605f16247ab7d571670f2351d", - "sha256": "b09e2a43e9960d3d28d37d24f10dfbc462a4cb376da54ba571ac9a8874911ed5", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 6, - "end_line": 23, - "matched_rule": { - "identifier": "zlib_17.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 144, - "matched_length": 144, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 69.57, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/arch/zutil.h", - "type": "file", - "name": "zutil.h", - "base_name": "zutil", - "extension": ".h", - "size": 395, - "sha1": "830fca8d60bd0d0d91f6354d83ec8bf118a20e64", - "md5": "807b91d2bf5e18de555e56de37e487d1", - "sha256": "3980fa5633b16f944641bf2fba3f49b8b9b9de6ffea7be1e142792393bf1a867", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 20.34, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/JGroups", - "type": "directory", - "name": "JGroups", - "base_name": "JGroups", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "files_count": 7, - "dirs_count": 1, - "size_count": 4227, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/JGroups/src", - "type": "directory", - "name": "src", - "base_name": "src", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 7, - "dirs_count": 0, - "size_count": 4227, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/JGroups/src/FixedMembershipToken.java", - "type": "file", - "name": "FixedMembershipToken.java", - "base_name": "FixedMembershipToken", - "extension": ".java", - "size": 1016, - "sha1": "d0d55d2ae0842afee96695bcc8be939e763704ec", - "md5": "301dfe021b3b4076b9f8d49577205b44", - "sha256": "ff6dfac01c9b7ad9fcb5e646db83b482f5f720d981f0ca6c68828c5aa4ec784b", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "is_unknown": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.yml", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 125, - "matched_length": 125, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "percentage_of_license_text": 79.62, - "copyrights": [ - { - "copyright": "Copyright 2005, JBoss Inc., and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "holders": [ - { - "holder": "JBoss Inc., and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/JGroups/src/GuardedBy.java", - "type": "file", - "name": "GuardedBy.java", - "base_name": "GuardedBy", - "extension": ".java", - "size": 482, - "sha1": "21ec75514ce72011c4e86c977505c024832c1b63", - "md5": "5165fdeefda7a55c13e44c5e56cac920", - "sha256": "8553411bf58f4ac35fc9e7d6142f11fc2fbef33e50a77f514a253135807afd44", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "cc-by-2.5", - "score": 100.0, - "name": "Creative Commons Attribution License 2.5", - "short_name": "CC-BY-2.5", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "Creative Commons", - "homepage_url": "http://creativecommons.org/licenses/by/2.5/", - "text_url": "http://creativecommons.org/licenses/by/2.5/legalcode", - "reference_url": "https://scancode-licensedb.aboutcode.org/cc-by-2.5", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/cc-by-2.5.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/cc-by-2.5.yml", - "spdx_license_key": "CC-BY-2.5", - "spdx_url": "https://spdx.org/licenses/CC-BY-2.5", - "start_line": 4, - "end_line": 5, - "matched_rule": { - "identifier": "cc-by-2.5_4.RULE", - "license_expression": "cc-by-2.5", - "licenses": [ - "cc-by-2.5" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 14, - "matched_length": 14, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "cc-by-2.5" - ], - "percentage_of_license_text": 19.72, - "copyrights": [ - { - "copyright": "Copyright (c) 2005 Brian Goetz and Tim Peierls", - "start_line": 3, - "end_line": 3 - } - ], - "holders": [ - { - "holder": "Brian Goetz and Tim Peierls", - "start_line": 3, - "end_line": 3 - } - ], - "authors": [ - { - "author": "Bela Ban", - "start_line": 10, - "end_line": 10 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/JGroups/src/ImmutableReference.java", - "type": "file", - "name": "ImmutableReference.java", - "base_name": "ImmutableReference", - "extension": ".java", - "size": 1023, - "sha1": "aee1bb33424e7c1264f85c9aad40d43c3738f871", - "md5": "53a91ff66fdc4d812d7656b4e807bfd2", - "sha256": "ec1427fc2f7e322e6a4d5d99f8119310d6586aaaf5b30b2904b4ccd27966e120", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "is_unknown": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.yml", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 125, - "matched_length": 125, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "percentage_of_license_text": 78.62, - "copyrights": [ - { - "copyright": "Copyright 2010, Red Hat, Inc. and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "holders": [ - { - "holder": "Red Hat, Inc. and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/JGroups/src/RATE_LIMITER.java", - "type": "file", - "name": "RATE_LIMITER.java", - "base_name": "RATE_LIMITER", - "extension": ".java", - "size": 269, - "sha1": "8da19aa25da421608fbe9f4f5eeb122ab35fd01e", - "md5": "52540f80f5c22d8d13627c57b76d44f4", - "sha256": "c3bcefbbb2706f65410b4bb91d531e2ec461fa4586135becc8865adeca3385c8", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [ - { - "author": "Bela Ban", - "start_line": 4, - "end_line": 4 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/JGroups/src/RouterStub.java", - "type": "file", - "name": "RouterStub.java", - "base_name": "RouterStub", - "extension": ".java", - "size": 153, - "sha1": "c1baa345449b4b91e61886dadea8f1bbea034eb4", - "md5": "a0b4e3f4d679a98d11d75e7e27e894af", - "sha256": "5c0f94fc518daca08e74fd117fef09d6dd090b0fd623a47edde451be3aed28c7", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [ - { - "author": "Bela Ban", - "start_line": 3, - "end_line": 3 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/JGroups/src/RouterStubManager.java", - "type": "file", - "name": "RouterStubManager.java", - "base_name": "RouterStubManager", - "extension": ".java", - "size": 1032, - "sha1": "a51c5bbb738c1c1cd1f58c79060fa5ea4d0dd753", - "md5": "cae07c80e6f79864de002700bf9ab02f", - "sha256": "fe96061d23b37c98913379d54c5388cffdc99239807c2caf8c96d7d10321d085", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "lgpl-2.1-plus", - "score": 100.0, - "name": "GNU Lesser General Public License 2.1 or later", - "short_name": "LGPL 2.1 or later", - "category": "Copyleft Limited", - "is_exception": false, - "is_unknown": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/lgpl-2.1-plus", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/lgpl-2.1-plus.yml", - "spdx_license_key": "LGPL-2.1-or-later", - "spdx_url": "https://spdx.org/licenses/LGPL-2.1-or-later", - "start_line": 7, - "end_line": 20, - "matched_rule": { - "identifier": "lgpl-2.1-plus_59.RULE", - "license_expression": "lgpl-2.1-plus", - "licenses": [ - "lgpl-2.1-plus" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 125, - "matched_length": 125, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "lgpl-2.1-plus" - ], - "percentage_of_license_text": 78.12, - "copyrights": [ - { - "copyright": "Copyright 2009, Red Hat Middleware LLC, and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "holders": [ - { - "holder": "Red Hat Middleware LLC, and individual contributors", - "start_line": 3, - "end_line": 3 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/JGroups/src/S3_PING.java", - "type": "file", - "name": "S3_PING.java", - "base_name": "S3_PING", - "extension": ".java", - "size": 252, - "sha1": "a7a9763832eb31e1f7f7927d6288df284b70c6e5", - "md5": "ffb481f2a0c6262d0f7d1e9a4681a6ca", - "sha256": "5470e41b0bfba6adb43649215df756f1a4a5173ceed6127af1b38801651efde2", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "Java", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [ - { - "author": "Bela Ban", - "start_line": 3, - "end_line": 3 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib", - "type": "directory", - "name": "zlib", - "base_name": "zlib", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "files_count": 13, - "dirs_count": 5, - "size_count": 7951, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/adler32.c", - "type": "file", - "name": "adler32.c", - "base_name": "adler32", - "extension": ".c", - "size": 179, - "sha1": "f98c6c82a570ac852801b46157c1540070d55358", - "md5": "48c4037f16b4670795fdf72e88cc278c", - "sha256": "fc1682e787ccc8d9eb83eb0b1f5acb59d22aa6ce1bff7c749a9dc315237b2240", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 42.86, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2011 Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/deflate.c", - "type": "file", - "name": "deflate.c", - "base_name": "deflate", - "extension": ".c", - "size": 198, - "sha1": "4b4696c59e245cef0bad7334fdb63725ccfa218c", - "md5": "f11ed826baf25f2bfa9c610313460036", - "sha256": "ef7bf500e1accf7e91352788c92b5c6663bab52e2cd6c42284496518e4a5f054", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 40.0, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly and Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/deflate.h", - "type": "file", - "name": "deflate.h", - "base_name": "deflate", - "extension": ".h", - "size": 165, - "sha1": "a99a71ff971faf49a52ed6f7d3075fdffae8054b", - "md5": "d8821cd288e2be7fd83cdcac22a427ce", - "sha256": "a3c2fa63c7e730bdd008bc07b7d3865dc76781082b77a03d52a918ce1c7d3459", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 50.0, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2012 Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/zlib.h", - "type": "file", - "name": "zlib.h", - "base_name": "zlib", - "extension": ".h", - "size": 1103, - "sha1": "85c65180242c560a4df66e9882119bf70eaefd02", - "md5": "07497e2688dad9406386f0534a0bbfca", - "sha256": "64fef1f0a7cd69eae744ad2fa754ee8568a5715588e38b7a3fa6e11eaeaec97e", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 6, - "end_line": 23, - "matched_rule": { - "identifier": "zlib_17.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 144, - "matched_length": 144, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 84.21, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly and Mark Adler", - "start_line": 4, - "end_line": 4 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/zutil.c", - "type": "file", - "name": "zutil.c", - "base_name": "zutil", - "extension": ".c", - "size": 218, - "sha1": "2e846ef84cfb16e0e8b92c62a850a607a709d7b2", - "md5": "2a0ea6a99e31fb0989209a027476038d", - "sha256": "dc7224c7f079d237acf510ff40282cf6d50352c851d4e2957d227e2a3b57eb4d", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 37.5, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2005, 2010, 2011, 2012 Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/zutil.h", - "type": "file", - "name": "zutil.h", - "base_name": "zutil", - "extension": ".h", - "size": 395, - "sha1": "830fca8d60bd0d0d91f6354d83ec8bf118a20e64", - "md5": "807b91d2bf5e18de555e56de37e487d1", - "sha256": "3980fa5633b16f944641bf2fba3f49b8b9b9de6ffea7be1e142792393bf1a867", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 20.34, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2013 Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/ada", - "type": "directory", - "name": "ada", - "base_name": "ada", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 1, - "dirs_count": 0, - "size_count": 2054, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/ada/zlib.ads", - "type": "file", - "name": "zlib.ads", - "base_name": "zlib", - "extension": ".ads", - "size": 2054, - "sha1": "93b3e6e5822c350a9c12e69a2848e29767777002", - "md5": "4e58eb393ad904c1de81a9ca5b9e392c", - "sha256": "8e6da5a880c0547bac5b71f0f123164511ae17e3c7d7f424e4ec5b44e1cae731", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": null, - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [ - { - "key": "gpl-2.0-plus", - "score": 100.0, - "name": "GNU General Public License 2.0 or later", - "short_name": "GPL 2.0 or later", - "category": "Copyleft", - "is_exception": false, - "is_unknown": false, - "owner": "Free Software Foundation (FSF)", - "homepage_url": "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", - "text_url": "http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/gpl-2.0-plus", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/gpl-2.0-plus.yml", - "spdx_license_key": "GPL-2.0-or-later", - "spdx_url": "https://spdx.org/licenses/GPL-2.0-or-later", - "start_line": 6, - "end_line": 25, - "matched_rule": { - "identifier": "gpl-2.0-plus_with_ada-linking-exception_1.RULE", - "license_expression": "gpl-2.0-plus WITH ada-linking-exception", - "licenses": [ - "gpl-2.0-plus", - "ada-linking-exception" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 176, - "matched_length": 176, - "match_coverage": 100.0, - "rule_relevance": 100 - } - }, - { - "key": "ada-linking-exception", - "score": 100.0, - "name": "Ada linking exception to GPL 2.0 or later", - "short_name": "Ada linking exception to GPL 2.0 or later", - "category": "Copyleft Limited", - "is_exception": true, - "is_unknown": false, - "owner": "Dmitriy Anisimkov", - "homepage_url": null, - "text_url": "", - "reference_url": "https://scancode-licensedb.aboutcode.org/ada-linking-exception", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ada-linking-exception.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ada-linking-exception.yml", - "spdx_license_key": "LicenseRef-scancode-ada-linking-exception", - "spdx_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ada-linking-exception.LICENSE", - "start_line": 6, - "end_line": 25, - "matched_rule": { - "identifier": "gpl-2.0-plus_with_ada-linking-exception_1.RULE", - "license_expression": "gpl-2.0-plus WITH ada-linking-exception", - "licenses": [ - "gpl-2.0-plus", - "ada-linking-exception" - ], - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 176, - "matched_length": 176, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "gpl-2.0-plus WITH ada-linking-exception" - ], - "percentage_of_license_text": 94.12, - "copyrights": [ - { - "copyright": "Copyright (c) 2002-2004 Dmitriy Anisimkov", - "start_line": 4, - "end_line": 4 - } - ], - "holders": [ - { - "holder": "Dmitriy Anisimkov", - "start_line": 4, - "end_line": 4 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/dotzlib", - "type": "directory", - "name": "dotzlib", - "base_name": "dotzlib", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 2, - "dirs_count": 0, - "size_count": 863, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/dotzlib/AssemblyInfo.cs", - "type": "file", - "name": "AssemblyInfo.cs", - "base_name": "AssemblyInfo", - "extension": ".cs", - "size": 627, - "sha1": "cc7fcb4d721a7efe9eefa6bd2d9d0105d33203a8", - "md5": "dbd621f76cb27e2fd8b8e2d9d985ffcf", - "sha256": "8b257a625c537736ee3ac2321b4ef56ba8a6fa4f922a35b1a0e992f9327d39e9", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": "C#", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [ - { - "copyright": "Copyright (c) 2004 by Henrik Ravn", - "start_line": 14, - "end_line": 14 - } - ], - "holders": [ - { - "holder": "Henrik Ravn", - "start_line": 14, - "end_line": 14 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/dotzlib/ChecksumImpl.cs", - "type": "file", - "name": "ChecksumImpl.cs", - "base_name": "ChecksumImpl", - "extension": ".cs", - "size": 236, - "sha1": "3043848212232cdde81eb3e20fca7f2447d944be", - "md5": "661652a0568e25d12fc9bfad2fdabfb2", - "sha256": "f3144ba734429b825e22c2f9048412e78c907e0142f2cdc629879b3a0fa63c89", - "mime_type": "text/plain", - "file_type": "UTF-8 Unicode text, with CRLF line terminators", - "programming_language": "C#", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "boost-1.0", - "score": 100.0, - "name": "Boost Software License 1.0", - "short_name": "Boost 1.0", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "Boost", - "homepage_url": "http://www.boost.org/users/license.html", - "text_url": "http://www.boost.org/LICENSE_1_0.txt", - "reference_url": "https://scancode-licensedb.aboutcode.org/boost-1.0", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/boost-1.0.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/boost-1.0.yml", - "spdx_license_key": "BSL-1.0", - "spdx_url": "https://spdx.org/licenses/BSL-1.0", - "start_line": 4, - "end_line": 5, - "matched_rule": { - "identifier": "boost-1.0_21.RULE", - "license_expression": "boost-1.0", - "licenses": [ - "boost-1.0" - ], - "referenced_filenames": [ - "LICENSE_1_0.txt" - ], - "is_license_text": false, - "is_license_notice": true, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 32, - "matched_length": 32, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "boost-1.0" - ], - "percentage_of_license_text": 88.89, - "copyrights": [ - { - "copyright": "Copyright Henrik Ravn 2004", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Henrik Ravn", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/gcc_gvmat64", - "type": "directory", - "name": "gcc_gvmat64", - "base_name": "gcc_gvmat64", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 1, - "dirs_count": 0, - "size_count": 1774, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/gcc_gvmat64/gvmat64.S", - "type": "file", - "name": "gvmat64.S", - "base_name": "gvmat64", - "extension": ".S", - "size": 1774, - "sha1": "8dff93e95ccef023a871fb438784635b5df1d541", - "md5": "4f0d2f55d43d9466750350f8b27f0302", - "sha256": "1551b8fb1c2f1f3cc92c8e4f31730ebdde0c766caeca6d670a7758b55e3804f3", - "mime_type": "text/plain", - "file_type": "ASCII text, with CRLF line terminators", - "programming_language": "GAS", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 17, - "end_line": 31, - "matched_rule": { - "identifier": "zlib.LICENSE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 132, - "matched_length": 132, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 50.0, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2010 Jean-loup Gailly, Brian Raiter and Gilles Vollant", - "start_line": 10, - "end_line": 10 - } - ], - "holders": [ - { - "holder": "Jean-loup Gailly, Brian Raiter and Gilles Vollant", - "start_line": 10, - "end_line": 10 - } - ], - "authors": [ - { - "author": "Gilles Vollant", - "start_line": 12, - "end_line": 12 - } - ], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/infback9", - "type": "directory", - "name": "infback9", - "base_name": "infback9", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 2, - "dirs_count": 0, - "size_count": 353, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/infback9/infback9.c", - "type": "file", - "name": "infback9.c", - "base_name": "infback9", - "extension": ".c", - "size": 185, - "sha1": "299f7a056cf0e0ed7d5bd687c53f3247d809cab2", - "md5": "d570bd029ee2362f2a0927c87999773b", - "sha256": "03fb435669b57aa90fe00c4dbc12d8492ef87b6243427d1e1831006994ee1f80", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 44.44, - "copyrights": [ - { - "copyright": "Copyright (c) 1995-2008 Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/infback9/infback9.h", - "type": "file", - "name": "infback9.h", - "base_name": "infback9", - "extension": ".h", - "size": 168, - "sha1": "c849edb4691d23e0db97d3f5da1cc5b396929449", - "md5": "2913c8ea7fb43a0f469bb2797c820a95", - "sha256": "4f8db049a7156b8a4616a6c9df0b5ee09571f0ac2eb253e111f2fb727fb033ea", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "zlib", - "score": 100.0, - "name": "ZLIB License", - "short_name": "ZLIB License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "zlib", - "homepage_url": "http://www.zlib.net/", - "text_url": "http://www.gzip.org/zlib/zlib_license.html", - "reference_url": "https://scancode-licensedb.aboutcode.org/zlib", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/zlib.yml", - "spdx_license_key": "Zlib", - "spdx_url": "https://spdx.org/licenses/Zlib", - "start_line": 3, - "end_line": 3, - "matched_rule": { - "identifier": "zlib_5.RULE", - "license_expression": "zlib", - "licenses": [ - "zlib" - ], - "referenced_filenames": [ - "zlib.h" - ], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 12, - "matched_length": 12, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "zlib" - ], - "percentage_of_license_text": 50.0, - "copyrights": [ - { - "copyright": "Copyright (c) 2003 Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "holders": [ - { - "holder": "Mark Adler", - "start_line": 2, - "end_line": 2 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/iostream2", - "type": "directory", - "name": "iostream2", - "base_name": "iostream2", - "extension": "", - "size": 0, - "sha1": null, - "md5": null, - "sha256": null, - "mime_type": null, - "file_type": null, - "programming_language": null, - "is_binary": false, - "is_text": false, - "is_archive": false, - "is_media": false, - "is_source": false, - "is_script": false, - "licenses": [], - "license_expressions": [], - "percentage_of_license_text": 0, - "copyrights": [], - "holders": [], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 1, - "dirs_count": 0, - "size_count": 649, - "scan_errors": [] - } - ] - }, - { - "files": [ - { - "path": "scan/zlib/iostream2/zstream.h", - "type": "file", - "name": "zstream.h", - "base_name": "zstream", - "extension": ".h", - "size": 649, - "sha1": "b7fe15df27e601b88cde6b6a63dad184ccbce572", - "md5": "8b897171ea0767232e586086bc94518c", - "sha256": "ee2eef602cba7c4ba350617f4154de50cb4cbf274c7dd773130aca0775d5d9cd", - "mime_type": "text/plain", - "file_type": "ASCII text", - "programming_language": "C", - "is_binary": false, - "is_text": true, - "is_archive": false, - "is_media": false, - "is_source": true, - "is_script": false, - "licenses": [ - { - "key": "mit-old-style", - "score": 100.0, - "name": "MIT Old Style", - "short_name": "MIT Old Style", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "MIT", - "homepage_url": "http://fedoraproject.org/wiki/Licensing:MIT#Old_Style", - "text_url": "http://fedoraproject.org/wiki/Licensing:MIT#Old_Style", - "reference_url": "https://scancode-licensedb.aboutcode.org/mit-old-style", - "scancode_text_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit-old-style.LICENSE", - "scancode_data_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit-old-style.yml", - "spdx_license_key": "LicenseRef-scancode-mit-old-style", - "spdx_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit-old-style.LICENSE", - "start_line": 9, - "end_line": 15, - "matched_rule": { - "identifier": "mit-old-style_cmr-no_1.RULE", - "license_expression": "mit-old-style", - "licenses": [ - "mit-old-style" - ], - "referenced_filenames": [], - "is_license_text": true, - "is_license_notice": false, - "is_license_reference": false, - "is_license_tag": false, - "is_license_intro": false, - "has_unknown": false, - "matcher": "2-aho", - "rule_length": 71, - "matched_length": 71, - "match_coverage": 100.0, - "rule_relevance": 100 - } - } - ], - "license_expressions": [ - "mit-old-style" - ], - "percentage_of_license_text": 79.78, - "copyrights": [ - { - "copyright": "Copyright (c) 1997 Christian Michelsen Research AS Advanced Computing", - "start_line": 3, - "end_line": 5 - } - ], - "holders": [ - { - "holder": "Christian Michelsen Research AS Advanced Computing", - "start_line": 4, - "end_line": 5 - } - ], - "authors": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "files_count": 0, - "dirs_count": 0, - "size_count": 0, - "scan_errors": [] - } - ] - } -] \ No newline at end of file diff --git a/tests/summarycode/data/summary2/full/scan/JGroups/src/FixedMembershipToken.java b/tests/summarycode/data/summary2/full/scan/JGroups/src/FixedMembershipToken.java deleted file mode 100644 index b9f2abd0088..00000000000 --- a/tests/summarycode/data/summary2/full/scan/JGroups/src/FixedMembershipToken.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2005, JBoss Inc., and individual contributors as indicated - * by the @authors tag. See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. - */ - - \ No newline at end of file diff --git a/tests/summarycode/data/summary2/full/scan/JGroups/src/GuardedBy.java b/tests/summarycode/data/summary2/full/scan/JGroups/src/GuardedBy.java deleted file mode 100644 index 991606291da..00000000000 --- a/tests/summarycode/data/summary2/full/scan/JGroups/src/GuardedBy.java +++ /dev/null @@ -1,12 +0,0 @@ - -/** - * Copyright (c) 2005 Brian Goetz and Tim Peierls - * Released under the Creative Commons Attribution License - * (http://creativecommons.org/licenses/by/2.5) - * Official home: http://www.jcip.net - * - * Adopted from Java Concurrency in Practice. This annotation defines the monitor that protects the variable - * annotated by @GuardedBy, e.g. @GuardedBy("lock") or @GuardedBy("this") - * @author Bela Ban - * @version $Id: GuardedBy.java,v 1.3 2007/02/27 14:49:40 belaban Exp $ - */ diff --git a/tests/summarycode/data/summary2/full/scan/JGroups/src/ImmutableReference.java b/tests/summarycode/data/summary2/full/scan/JGroups/src/ImmutableReference.java deleted file mode 100644 index 9c3c08df13f..00000000000 --- a/tests/summarycode/data/summary2/full/scan/JGroups/src/ImmutableReference.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * Copyright 2010, Red Hat, Inc. and individual contributors - * as indicated by the @author tags. See the copyright.txt file in the - * distribution for a full listing of individual contributors. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. - */ - diff --git a/tests/summarycode/data/summary2/full/scan/JGroups/src/RATE_LIMITER.java b/tests/summarycode/data/summary2/full/scan/JGroups/src/RATE_LIMITER.java deleted file mode 100644 index b4071b2728a..00000000000 --- a/tests/summarycode/data/summary2/full/scan/JGroups/src/RATE_LIMITER.java +++ /dev/null @@ -1,6 +0,0 @@ -/** - * Protocol which sends at most max_bytes in time_period milliseconds. Can be used instead of a flow control protocol, - * e.g. FC or SFC (same position in the stack) - * @author Bela Ban - * @version $Id: RATE_LIMITER.java,v 1.3 2009/12/11 13:08:03 belaban Exp $ - */ diff --git a/tests/summarycode/data/summary2/full/scan/JGroups/src/RouterStub.java b/tests/summarycode/data/summary2/full/scan/JGroups/src/RouterStub.java deleted file mode 100644 index c1941b54e7b..00000000000 --- a/tests/summarycode/data/summary2/full/scan/JGroups/src/RouterStub.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Client stub that talks to a remote GossipRouter - * @author Bela Ban - * @version $Id: RouterStub.java,v 1.62 2010/06/09 14:22:00 belaban Exp $ - */ diff --git a/tests/summarycode/data/summary2/full/scan/JGroups/src/RouterStubManager.java b/tests/summarycode/data/summary2/full/scan/JGroups/src/RouterStubManager.java deleted file mode 100644 index 188435705b6..00000000000 --- a/tests/summarycode/data/summary2/full/scan/JGroups/src/RouterStubManager.java +++ /dev/null @@ -1,21 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * Copyright 2009, Red Hat Middleware LLC, and individual contributors - * as indicated by the @author tags. See the copyright.txt file in the - * distribution for a full listing of individual contributors. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. - */ diff --git a/tests/summarycode/data/summary2/full/scan/JGroups/src/S3_PING.java b/tests/summarycode/data/summary2/full/scan/JGroups/src/S3_PING.java deleted file mode 100644 index b79361f193e..00000000000 --- a/tests/summarycode/data/summary2/full/scan/JGroups/src/S3_PING.java +++ /dev/null @@ -1,5 +0,0 @@ - * Discovery protocol using Amazon's S3 storage. The S3 access code reuses the example shipped by Amazon. - * This protocol is unsupported and experimental ! - * @author Bela Ban - * @version $Id: S3_PING.java,v 1.11 2010/06/18 04:39:08 belaban Exp $ - */ diff --git a/tests/summarycode/data/summary2/full/scan/README b/tests/summarycode/data/summary2/full/scan/README deleted file mode 100644 index 1d61df81ffb..00000000000 --- a/tests/summarycode/data/summary2/full/scan/README +++ /dev/null @@ -1,4 +0,0 @@ -This directory contains a few sample files extracted from these two archives: - -download_url: http://zlib.net/zlib-1.2.8.tar.gz -download_url: http://master.dl.sourceforge.net/project/javagroups/JGroups/2.10.0.GA/JGroups-2.10.0.GA.src.zip \ No newline at end of file diff --git a/tests/summarycode/data/summary2/full/scan/arch/adler32.c b/tests/summarycode/data/summary2/full/scan/arch/adler32.c deleted file mode 100644 index 99bd88552be..00000000000 --- a/tests/summarycode/data/summary2/full/scan/arch/adler32.c +++ /dev/null @@ -1,3 +0,0 @@ -/* adler32.c -- compute the Adler-32 checksum of a data stream - * Copyright (C) 1995-2011 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h diff --git a/tests/summarycode/data/summary2/full/scan/arch/zlib.h b/tests/summarycode/data/summary2/full/scan/arch/zlib.h deleted file mode 100644 index 36568396a1e..00000000000 --- a/tests/summarycode/data/summary2/full/scan/arch/zlib.h +++ /dev/null @@ -1,29 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.8, April 28th, 2013 - - Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 - (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). -*/ diff --git a/tests/summarycode/data/summary2/full/scan/arch/zutil.h b/tests/summarycode/data/summary2/full/scan/arch/zutil.h deleted file mode 100644 index d85c1f24ea8..00000000000 --- a/tests/summarycode/data/summary2/full/scan/arch/zutil.h +++ /dev/null @@ -1,9 +0,0 @@ -/* zutil.h -- internal interface and configuration of the compression library - * Copyright (C) 1995-2013 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ diff --git a/tests/summarycode/data/summary2/full/scan/cc0-1.0.LICENSE b/tests/summarycode/data/summary2/full/scan/cc0-1.0.LICENSE deleted file mode 100644 index d9dde3ce862..00000000000 --- a/tests/summarycode/data/summary2/full/scan/cc0-1.0.LICENSE +++ /dev/null @@ -1,98 +0,0 @@ -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; moral rights retained by the original author(s) - and/or performer(s); publicity and privacy rights pertaining to a person's - image or likeness depicted in a Work; rights protecting against unfair - competition in regards to a Work, subject to the limitations in paragraph - 4(a), below; rights protecting the extraction, dissemination, use and - reuse of data in a Work; database rights (such as those arising under - Directive 96/9/EC of the European Parliament and of the Council of 11 - March 1996 on the legal protection of databases, and under any national - implementation thereof, including any amended or successor version of such - directive); and other similar, equivalent or corresponding rights - throughout the world based on applicable law or treaty, and any national - implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. Affirmer - offers the Work as-is and makes no representations or warranties of any - kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or - not discoverable, all to the greatest extent permissible under applicable - law. Affirmer disclaims responsibility for clearing rights of other - persons that may apply to the Work or any use thereof, including without - limitation any person's Copyright and Related Rights in the Work. Further, - Affirmer disclaims responsibility for obtaining any necessary consents, - permissions or other rights required for any use of the Work. Affirmer - understands and acknowledges that Creative Commons is not a party to this - document and has no duty or obligation with respect to this CC0 or use of - the Work. diff --git a/tests/summarycode/data/summary2/full/scan/package.json b/tests/summarycode/data/summary2/full/scan/package.json deleted file mode 100644 index 28ce1718edf..00000000000 --- a/tests/summarycode/data/summary2/full/scan/package.json +++ /dev/null @@ -1,1570 +0,0 @@ -{ - "version": "2.13.5", - "name": "npm", - "description": "a package manager for JavaScript", - "keywords": [ - "package manager", - "modules", - "install", - "package.json" - ], - "preferGlobal": true, - "config": { - "publishtest": false - }, - "homepage": "https://docs.npmjs.com/", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/npm/npm.git" - }, - "bugs": { - "url": "http://github.com/npm/npm/issues" - }, - "directories": { - "doc": "./doc", - "man": "./man", - "lib": "./lib", - "bin": "./bin" - }, - "main": "./lib/npm.js", - "bin": { - "npm": "./bin/npm-cli.js" - }, - "dependencies": { - "abbrev": "~1.0.7", - "ansi": "~0.3.0", - "ansicolors": "~0.3.2", - "ansistyles": "~0.1.3", - "archy": "~1.0.0", - "async-some": "~1.0.2", - "block-stream": "0.0.8", - "char-spinner": "~1.0.1", - "chmodr": "~1.0.1", - "chownr": "0.0.2", - "cmd-shim": "~2.0.1", - "columnify": "~1.5.1", - "config-chain": "~1.1.9", - "dezalgo": "~1.0.3", - "editor": "~1.0.0", - "fs-vacuum": "~1.2.6", - "fs-write-stream-atomic": "~1.0.3", - "fstream": "~1.0.7", - "fstream-npm": "~1.0.4", - "github-url-from-git": "~1.4.0", - "github-url-from-username-repo": "~1.0.2", - "glob": "~5.0.14", - "graceful-fs": "~4.1.2", - "hosted-git-info": "~2.1.4", - "inflight": "~1.0.4", - "inherits": "~2.0.1", - "ini": "~1.3.4", - "init-package-json": "~1.7.1", - "lockfile": "~1.0.1", - "lru-cache": "~2.6.5", - "minimatch": "~2.0.10", - "mkdirp": "~0.5.1", - "node-gyp": "~2.0.2", - "nopt": "~3.0.3", - "normalize-git-url": "~3.0.1", - "normalize-package-data": "~2.3.1", - "npm-cache-filename": "~1.0.2", - "npm-install-checks": "~1.0.6", - "npm-package-arg": "~4.0.2", - "npm-registry-client": "~6.5.1", - "npm-user-validate": "~0.1.2", - "npmlog": "~1.2.1", - "once": "~1.3.2", - "opener": "~1.4.1", - "osenv": "~0.1.3", - "path-is-inside": "~1.0.0", - "read": "~1.0.6", - "read-installed": "~4.0.2", - "read-package-json": "~2.0.0", - "readable-stream": "~1.1.13", - "realize-package-specifier": "~3.0.1", - "request": "~2.60.0", - "retry": "~0.6.1", - "rimraf": "~2.4.2", - "semver": "~5.0.1", - "sha": "~1.3.0", - "slide": "~1.1.6", - "sorted-object": "~1.0.0", - "spdx": "~0.4.1", - "tar": "~2.1.1", - "text-table": "~0.2.0", - "uid-number": "0.0.6", - "umask": "~1.1.0", - "validate-npm-package-name": "~2.2.2", - "which": "~1.1.1", - "wrappy": "~1.0.1", - "write-file-atomic": "~1.1.2", - "validate-npm-package-license": "*" - }, - "bundleDependencies": [ - "abbrev", - "ansi", - "ansicolors", - "ansistyles", - "archy", - "async-some", - "block-stream", - "char-spinner", - "chmodr", - "chownr", - "cmd-shim", - "columnify", - "config-chain", - "dezalgo", - "editor", - "fs-vacuum", - "fs-write-stream-atomic", - "fstream", - "fstream-npm", - "github-url-from-git", - "github-url-from-username-repo", - "glob", - "graceful-fs", - "hosted-git-info", - "inflight", - "inherits", - "ini", - "init-package-json", - "lockfile", - "lru-cache", - "minimatch", - "mkdirp", - "node-gyp", - "nopt", - "normalize-git-url", - "normalize-package-data", - "npm-cache-filename", - "npm-install-checks", - "npm-package-arg", - "npm-registry-client", - "npm-user-validate", - "npmlog", - "once", - "opener", - "osenv", - "path-is-inside", - "read", - "read-installed", - "read-package-json", - "readable-stream", - "realize-package-specifier", - "request", - "retry", - "rimraf", - "semver", - "sha", - "slide", - "sorted-object", - "spdx", - "tar", - "text-table", - "uid-number", - "umask", - "validate-npm-package-license", - "validate-npm-package-name", - "which", - "wrappy", - "write-file-atomic" - ], - "devDependencies": { - "deep-equal": "~1.0.0", - "marked": "~0.3.3", - "marked-man": "~0.1.5", - "nock": "~2.10.0", - "npm-registry-couchapp": "~2.6.7", - "npm-registry-mock": "~1.0.0", - "require-inject": "~1.2.0", - "sprintf-js": "~1.0.2", - "tap": "~1.3.1" - }, - "scripts": { - "test-legacy": "node ./test/run.js", - "test": "tap --timeout 240 test/tap/*.js", - "tap": "tap --timeout 240 test/tap/*.js", - "test-all": "npm run test-legacy && npm test", - "preversion": "bash scripts/update-authors.sh && git add AUTHORS && git commit -m \"update AUTHORS\" || true", - "prepublish": "node bin/npm-cli.js prune --prefix=. --no-global && rimraf test/*/*/node_modules && make -j4 doc", - "dumpconf": "env | grep npm | sort | uniq" - }, - "license": "Artistic-2.0", - "contributors": [ - { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me" - }, - { - "name": "Steve Steiner", - "email": "ssteinerX@gmail.com" - }, - { - "name": "Mikeal Rogers", - "email": "mikeal.rogers@gmail.com" - }, - { - "name": "Aaron Blohowiak", - "email": "aaron.blohowiak@gmail.com" - }, - { - "name": "Martyn Smith", - "email": "martyn@dollyfish.net.nz" - }, - { - "name": "Charlie Robbins", - "email": "charlie.robbins@gmail.com" - }, - { - "name": "Francisco Treacy", - "email": "francisco.treacy@gmail.com" - }, - { - "name": "Cliffano Subagio", - "email": "cliffano@gmail.com" - }, - { - "name": "Christian Eager", - "email": "christian.eager@nokia.com" - }, - { - "name": "Dav Glass", - "email": "davglass@gmail.com" - }, - { - "name": "Alex K. Wolfe", - "email": "alexkwolfe@gmail.com" - }, - { - "name": "James Sanders", - "email": "jimmyjazz14@gmail.com" - }, - { - "name": "Reid Burke", - "email": "me@reidburke.com" - }, - { - "name": "Arlo Breault", - "email": "arlolra@gmail.com" - }, - { - "name": "Timo Derstappen", - "email": "teemow@gmail.com" - }, - { - "name": "Bart Teeuwisse", - "email": "bart.teeuwisse@thecodemill.biz" - }, - { - "name": "Ben Noordhuis", - "email": "info@bnoordhuis.nl" - }, - { - "name": "Tor Valamo", - "email": "tor.valamo@gmail.com" - }, - { - "name": "Whyme.Lyu", - "email": "5longluna@gmail.com" - }, - { - "name": "Olivier Melcher", - "email": "olivier.melcher@gmail.com" - }, - { - "name": "Tomaž Muraus", - "email": "kami@k5-storitve.net" - }, - { - "name": "Evan Meagher", - "email": "evan.meagher@gmail.com" - }, - { - "name": "Orlando Vazquez", - "email": "ovazquez@gmail.com" - }, - { - "name": "Kai Chen", - "email": "kaichenxyz@gmail.com" - }, - { - "name": "George Miroshnykov", - "email": "gmiroshnykov@lohika.com" - }, - { - "name": "Geoff Flarity", - "email": "geoff.flarity@gmail.com" - }, - { - "name": "Max Goodman", - "email": "c@chromakode.com" - }, - { - "name": "Pete Kruckenberg", - "email": "pete@kruckenberg.com" - }, - { - "name": "Laurie Harper", - "email": "laurie@holoweb.net" - }, - { - "name": "Chris Wong", - "email": "chris@chriswongstudio.com" - }, - { - "name": "Scott Bronson", - "email": "brons_github@rinspin.com" - }, - { - "name": "Federico Romero", - "email": "federomero@gmail.com" - }, - { - "name": "Visnu Pitiyanuvath", - "email": "visnupx@gmail.com" - }, - { - "name": "Irakli Gozalishvili", - "email": "rfobic@gmail.com" - }, - { - "name": "Mark Cahill", - "email": "mark@tiemonster.info" - }, - { - "name": "Tony", - "email": "zearin@gonk.net" - }, - { - "name": "Iain Sproat", - "email": "iainsproat@gmail.com" - }, - { - "name": "Trent Mick", - "email": "trentm@gmail.com" - }, - { - "name": "Felix Geisendörfer", - "email": "felix@debuggable.com" - }, - { - "name": "Jameson Little", - "email": "t.jameson.little@gmail.com" - }, - { - "name": "Conny Brunnkvist", - "email": "conny@fuchsia.se" - }, - { - "name": "Will Elwood", - "email": "w.elwood08@gmail.com" - }, - { - "name": "Dean Landolt", - "email": "dean@deanlandolt.com" - }, - { - "name": "Oleg Efimov", - "email": "efimovov@gmail.com" - }, - { - "name": "Martin Cooper", - "email": "mfncooper@gmail.com" - }, - { - "name": "Jann Horn", - "email": "jannhorn@googlemail.com" - }, - { - "name": "Andrew Bradley", - "email": "cspotcode@gmail.com" - }, - { - "name": "Maciej Małecki", - "email": "me@mmalecki.com" - }, - { - "name": "Stephen Sugden", - "email": "glurgle@gmail.com" - }, - { - "name": "Michael Budde", - "email": "mbudde@gmail.com" - }, - { - "name": "Jason Smith", - "email": "jhs@iriscouch.com" - }, - { - "name": "Gautham Pai", - "email": "buzypi@gmail.com" - }, - { - "name": "David Trejo", - "email": "david.daniel.trejo@gmail.com" - }, - { - "name": "Paul Vorbach", - "email": "paul@vorb.de" - }, - { - "name": "George Ornbo", - "email": "george@shapeshed.com" - }, - { - "name": "Tim Oxley", - "email": "secoif@gmail.com" - }, - { - "name": "Tyler Green", - "email": "tyler.green2@gmail.com" - }, - { - "name": "Dave Pacheco", - "email": "dap@joyent.com" - }, - { - "name": "Danila Gerasimov", - "email": "danila.gerasimov@gmail.com" - }, - { - "name": "Rod Vagg", - "email": "rod@vagg.org" - }, - { - "name": "Christian Howe", - "email": "coderarity@gmail.com" - }, - { - "name": "Andrew Lunny", - "email": "alunny@gmail.com" - }, - { - "name": "Henrik Hodne", - "email": "dvyjones@binaryhex.com" - }, - { - "name": "Adam Blackburn", - "email": "regality@gmail.com" - }, - { - "name": "Kris Windham", - "email": "kriswindham@gmail.com" - }, - { - "name": "Jens Grunert", - "email": "jens.grunert@gmail.com" - }, - { - "name": "Joost-Wim Boekesteijn", - "email": "joost-wim@boekesteijn.nl" - }, - { - "name": "Dalmais Maxence", - "email": "root@ip-10-195-202-5.ec2.internal" - }, - { - "name": "Marcus Ekwall", - "email": "marcus.ekwall@gmail.com" - }, - { - "name": "Aaron Stacy", - "email": "aaron.r.stacy@gmail.com" - }, - { - "name": "Phillip Howell", - "email": "phowell@cothm.org" - }, - { - "name": "Domenic Denicola", - "email": "domenic@domenicdenicola.com" - }, - { - "name": "James Halliday", - "email": "mail@substack.net" - }, - { - "name": "Jeremy Cantrell", - "email": "jmcantrell@gmail.com" - }, - { - "name": "Ribettes", - "email": "patlogan29@gmail.com" - }, - { - "name": "Don Park", - "email": "donpark@docuverse.com" - }, - { - "name": "Einar Otto Stangvik", - "email": "einaros@gmail.com" - }, - { - "name": "Kei Son", - "email": "heyacct@gmail.com" - }, - { - "name": "Nicolas Morel", - "email": "marsup@gmail.com" - }, - { - "name": "Mark Dube", - "email": "markisdee@gmail.com" - }, - { - "name": "Nathan Rajlich", - "email": "nathan@tootallnate.net" - }, - { - "name": "Maxim Bogushevich", - "email": "boga1@mail.ru" - }, - { - "name": "Meaglin", - "email": "Meaglin.wasabi@gmail.com" - }, - { - "name": "Ben Evans", - "email": "ben@bensbit.co.uk" - }, - { - "name": "Nathan Zadoks", - "email": "nathan@nathan7.eu" - }, - { - "name": "Brian White", - "email": "mscdex@mscdex.net" - }, - { - "name": "Jed Schmidt", - "email": "tr@nslator.jp" - }, - { - "name": "Ian Livingstone", - "email": "ianl@cs.dal.ca" - }, - { - "name": "Patrick Pfeiffer", - "email": "patrick@buzzle.at" - }, - { - "name": "Paul Miller", - "email": "paul@paulmillr.com" - }, - { - "name": "Ryan Emery", - "email": "seebees@gmail.com" - }, - { - "name": "Carl Lange", - "email": "carl@flax.ie" - }, - { - "name": "Jan Lehnardt", - "email": "jan@apache.org" - }, - { - "name": "Stuart P. Bentley", - "email": "stuart@testtrack4.com" - }, - { - "name": "Johan Sköld", - "email": "johan@skold.cc" - }, - { - "name": "Stuart Knightley", - "email": "stuart@stuartk.com" - }, - { - "name": "Niggler", - "email": "nirk.niggler@gmail.com" - }, - { - "name": "Paolo Fragomeni", - "email": "paolo@async.ly" - }, - { - "name": "Jaakko Manninen", - "email": "jaakko@rocketpack.fi" - }, - { - "name": "Luke Arduini", - "email": "luke.arduini@gmail.com" - }, - { - "name": "Larz Conwell", - "email": "larz@larz-laptop.(none)", - "url": "none" - }, - { - "name": "Marcel Klehr", - "email": "mklehr@gmx.net" - }, - { - "name": "Robert Kowalski", - "email": "rok@kowalski.gd" - }, - { - "name": "Forbes Lindesay", - "email": "forbes@lindesay.co.uk" - }, - { - "name": "Vaz Allen", - "email": "vaz@tryptid.com" - }, - { - "name": "Jake Verbaten", - "email": "raynos2@gmail.com" - }, - { - "name": "Schabse Laks", - "email": "Dev@SLaks.net" - }, - { - "name": "Florian Margaine", - "email": "florian@margaine.com" - }, - { - "name": "Johan Nordberg", - "email": "its@johan-nordberg.com" - }, - { - "name": "Ian Babrou", - "email": "ibobrik@gmail.com" - }, - { - "name": "Di Wu", - "email": "dwu@palantir.com" - }, - { - "name": "Mathias Bynens", - "email": "mathias@qiwi.be" - }, - { - "name": "Matt McClure", - "email": "matt.mcclure@mapmyfitness.com" - }, - { - "name": "Matt Lunn", - "email": "matt@mattlunn.me.uk" - }, - { - "name": "Alexey Kreschuk", - "email": "akrsch@gmail.com" - }, - { - "name": "elisee", - "email": "elisee@sparklin.org" - }, - { - "name": "Robert Gieseke", - "email": "robert.gieseke@gmail.com" - }, - { - "name": "François Frisch", - "email": "francoisfrisch@gmail.com" - }, - { - "name": "Trevor Burnham", - "email": "tburnham@hubspot.com" - }, - { - "name": "Alan Shaw", - "email": "alan@freestyle-developments.co.uk" - }, - { - "name": "TJ Holowaychuk", - "email": "tj@vision-media.ca" - }, - { - "name": "Nicholas Kinsey", - "email": "pyro@feisty.io" - }, - { - "name": "Paulo Cesar", - "email": "pauloc062@gmail.com" - }, - { - "name": "Elan Shanker", - "email": "elan.shanker@gmail.com" - }, - { - "name": "Jon Spencer", - "email": "jon@jonspencer.ca" - }, - { - "name": "Jason Diamond", - "email": "jason@diamond.name" - }, - { - "name": "Maximilian Antoni", - "email": "mail@maxantoni.de" - }, - { - "name": "Thom Blake", - "email": "tblake@brightroll.com" - }, - { - "name": "Jess Martin", - "email": "jessmartin@gmail.com" - }, - { - "name": "Spain Train", - "email": "michael.spainhower@opower.com" - }, - { - "name": "Alex Rodionov", - "email": "p0deje@gmail.com" - }, - { - "name": "Matt Colyer", - "email": "matt@colyer.name" - }, - { - "name": "Evan You", - "email": "yyx990803@gmail.com" - }, - { - "name": "bitspill", - "email": "bitspill+github@bitspill.net" - }, - { - "name": "Gabriel Falkenberg", - "email": "gabriel.falkenberg@gmail.com" - }, - { - "name": "Alexej Yaroshevich", - "email": "alex@qfox.ru" - }, - { - "name": "Quim Calpe", - "email": "quim@kalpe.com" - }, - { - "name": "Steve Mason", - "email": "stevem@brandwatch.com" - }, - { - "name": "Wil Moore III", - "email": "wil.moore@wilmoore.com" - }, - { - "name": "Sergey Belov", - "email": "peimei@ya.ru" - }, - { - "name": "Tom Huang", - "email": "hzlhu.dargon@gmail.com" - }, - { - "name": "CamilleM", - "email": "camille.moulin@alterway.fr" - }, - { - "name": "Sébastien Santoro", - "email": "dereckson@espace-win.org" - }, - { - "name": "Evan Lucas", - "email": "evan@btc.com" - }, - { - "name": "Quinn Slack", - "email": "qslack@qslack.com" - }, - { - "name": "Alex Kocharin", - "email": "alex@kocharin.ru" - }, - { - "name": "Daniel Santiago", - "email": "daniel.santiago@highlevelwebs.com" - }, - { - "name": "Denis Gladkikh", - "email": "outcoldman@gmail.com" - }, - { - "name": "Andrew Horton", - "email": "andrew.j.horton@gmail.com" - }, - { - "name": "Zeke Sikelianos", - "email": "zeke@sikelianos.com" - }, - { - "name": "Dylan Greene", - "email": "dylang@gmail.com" - }, - { - "name": "Franck Cuny", - "email": "franck.cuny@gmail.com" - }, - { - "name": "Yeonghoon Park", - "email": "sola92@gmail.com" - }, - { - "name": "Rafael de Oleza", - "email": "rafa@spotify.com" - }, - { - "name": "Mikola Lysenko", - "email": "mikolalysenko@gmail.com" - }, - { - "name": "Yazhong Liu", - "email": "yorkiefixer@gmail.com" - }, - { - "name": "Neil Gentleman", - "email": "ngentleman@gmail.com" - }, - { - "name": "Kris Kowal", - "email": "kris.kowal@cixar.com" - }, - { - "name": "Alex Gorbatchev", - "email": "alex.gorbatchev@gmail.com" - }, - { - "name": "Shawn Wildermuth", - "email": "shawn@wildermuth.com" - }, - { - "name": "Wesley de Souza", - "email": "wesleywex@gmail.com" - }, - { - "name": "yoyoyogi", - "email": "yogesh.k@gmail.com" - }, - { - "name": "J. Tangelder", - "email": "j.tangelder@gmail.com" - }, - { - "name": "Jean Lauliac", - "email": "jean@lauliac.com" - }, - { - "name": "Andrey Kislyuk", - "email": "kislyuk@gmail.com" - }, - { - "name": "Thorsten Lorenz", - "email": "thlorenz@gmx.de" - }, - { - "name": "Julian Gruber", - "email": "julian@juliangruber.com" - }, - { - "name": "Benjamin Coe", - "email": "bencoe@gmail.com" - }, - { - "name": "Alex Ford", - "email": "Alex.Ford@CodeTunnel.com" - }, - { - "name": "Matt Hickford", - "email": "matt.hickford@gmail.com" - }, - { - "name": "Sean McGivern", - "email": "sean.mcgivern@rightscale.com" - }, - { - "name": "C J Silverio", - "email": "ceejceej@gmail.com" - }, - { - "name": "Robin Tweedie", - "email": "robin@songkick.com" - }, - { - "name": "Miroslav Bajtoš", - "email": "miroslav@strongloop.com" - }, - { - "name": "David Glasser", - "email": "glasser@davidglasser.net" - }, - { - "name": "Gianluca Casati", - "email": "casati_gianluca@yahoo.it" - }, - { - "name": "Forrest L Norvell", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "Karsten Tinnefeld", - "email": "k.tinnefeld@googlemail.com" - }, - { - "name": "Bryan Burgers", - "email": "bryan@burgers.io" - }, - { - "name": "David Beitey", - "email": "david@davidjb.com" - }, - { - "name": "Evan You", - "email": "yyou@google.com" - }, - { - "name": "Zach Pomerantz", - "email": "zmp@umich.edu" - }, - { - "name": "Chris Williams", - "email": "cwilliams88@gmail.com" - }, - { - "name": "sudodoki", - "email": "smd.deluzion@gmail.com" - }, - { - "name": "Mick Thompson", - "email": "dthompson@gmail.com" - }, - { - "name": "Felix Rabe", - "email": "felix@rabe.io" - }, - { - "name": "Michael Hayes", - "email": "michael@hayes.io" - }, - { - "name": "Chris Dickinson", - "email": "christopher.s.dickinson@gmail.com" - }, - { - "name": "Bradley Meck", - "email": "bradley.meck@gmail.com" - }, - { - "name": "GeJ", - "email": "geraud@gcu.info" - }, - { - "name": "Andrew Terris", - "email": "atterris@gmail.com" - }, - { - "name": "Michael Nisi", - "email": "michael.nisi@gmail.com" - }, - { - "name": "fengmk2", - "email": "fengmk2@gmail.com" - }, - { - "name": "Adam Meadows", - "email": "adam.meadows@gmail.com" - }, - { - "name": "Chulki Lee", - "email": "chulki.lee@gmail.com" - }, - { - "name": "不四", - "email": "busi.hyy@taobao.com" - }, - { - "name": "dead_horse", - "email": "dead_horse@qq.com" - }, - { - "name": "Kenan Yildirim", - "email": "kenan@kenany.me" - }, - { - "name": "Laurie Voss", - "email": "git@seldo.com" - }, - { - "name": "Rebecca Turner", - "email": "me@re-becca.org" - }, - { - "name": "Hunter Loftis", - "email": "hunter@hunterloftis.com" - }, - { - "name": "Peter Richardson", - "email": "github@zoomy.net" - }, - { - "name": "Jussi Kalliokoski", - "email": "jussi.kalliokoski@gmail.com" - }, - { - "name": "Filip Weiss", - "email": "me@fiws.net" - }, - { - "name": "Timo Weiß", - "email": "timoweiss@Timo-MBP.local" - }, - { - "name": "Christopher Hiller", - "email": "chiller@badwing.com" - }, - { - "name": "Jérémy Lal", - "email": "kapouer@melix.org" - }, - { - "name": "Anders Janmyr", - "email": "anders@janmyr.com" - }, - { - "name": "Chris Meyers", - "email": "chris.meyers.fsu@gmail.com" - }, - { - "name": "Ludwig Magnusson", - "email": "ludwig@mediatool.com" - }, - { - "name": "Wout Mertens", - "email": "Wout.Mertens@gmail.com" - }, - { - "name": "Nick Santos", - "email": "nick@medium.com" - }, - { - "name": "Terin Stock", - "email": "terinjokes@gmail.com" - }, - { - "name": "Faiq Raza", - "email": "faiqrazarizvi@gmail.com" - }, - { - "name": "Thomas Torp", - "email": "thomas@erupt.no" - }, - { - "name": "Sam Mikes", - "email": "smikes@cubane.com" - }, - { - "name": "Mat Tyndall", - "email": "mat.tyndall@gmail.com" - }, - { - "name": "Tauren Mills", - "email": "tauren@sportzing.com" - }, - { - "name": "Ron Martinez", - "email": "ramartin.net@gmail.com" - }, - { - "name": "Kazuhito Hokamura", - "email": "k.hokamura@gmail.com" - }, - { - "name": "Tristan Davies", - "email": "github@tristan.io" - }, - { - "name": "David Volm", - "email": "david@volminator.com" - }, - { - "name": "Lin Clark", - "email": "lin.w.clark@gmail.com" - }, - { - "name": "Ben Page", - "email": "bpage@dewalch.com" - }, - { - "name": "Jeff Jo", - "email": "jeffjo@squareup.com" - }, - { - "name": "martinvd", - "email": "martinvdpub@gmail.com" - }, - { - "name": "Mark J. Titorenko", - "email": "nospam-github.com@titorenko.net" - }, - { - "name": "Oddur Sigurdsson", - "email": "oddurs@gmail.com" - }, - { - "name": "Eric Mill", - "email": "eric@konklone.com" - }, - { - "name": "Gabriel Barros", - "email": "descartavel1@gmail.com" - }, - { - "name": "KevinSheedy", - "email": "kevinsheedy@gmail.com" - }, - { - "name": "Aleksey Smolenchuk", - "email": "aleksey@uber.com" - }, - { - "name": "Ed Morley", - "email": "emorley@mozilla.com" - }, - { - "name": "Blaine Bublitz", - "email": "blaine@iceddev.com" - }, - { - "name": "Andrey Fedorov", - "email": "anfedorov@gmail.com" - }, - { - "name": "Daijiro Wachi", - "email": "daijiro.wachi@gmail.com" - }, - { - "name": "Luc Thevenard", - "email": "lucthevenard@gmail.com" - }, - { - "name": "Aria Stewart", - "email": "aredridel@nbtsc.org" - }, - { - "name": "Charlie Rudolph", - "email": "charles.w.rudolph@gmail.com" - }, - { - "name": "Vladimir Rutsky", - "email": "rutsky@users.noreply.github.com" - }, - { - "name": "Isaac Murchie", - "email": "isaac@saucelabs.com" - }, - { - "name": "Marcin Wosinek", - "email": "marcin.wosinek@gmail.com" - }, - { - "name": "David Marr", - "email": "davemarr@gmail.com" - }, - { - "name": "Bryan English", - "email": "bryan@bryanenglish.com" - }, - { - "name": "Anthony Zotti", - "email": "amZotti@users.noreply.github.com" - }, - { - "name": "Karl Horky", - "email": "karl.horky@gmail.com" - }, - { - "name": "Jordan Harband", - "email": "ljharb@gmail.com" - }, - { - "name": "Guðlaugur Stefán Egilsson", - "email": "gulli@kolibri.is" - }, - { - "name": "Helge Skogly Holm", - "email": "helge.holm@gmail.com" - }, - { - "name": "Peter A. Shevtsov", - "email": "petr.shevtsov@gmail.com" - }, - { - "name": "Alain Kalker", - "email": "a.c.kalker@gmail.com" - }, - { - "name": "Bryant Williams", - "email": "b.n.williams@gmail.com" - }, - { - "name": "Jonas Weber", - "email": "github@jonasw.de" - }, - { - "name": "Tim Whidden", - "email": "twhid@twhid.com" - }, - { - "name": "Andreas", - "email": "functino@users.noreply.github.com" - }, - { - "name": "Karolis Narkevicius", - "email": "karolis.n@gmail.com" - }, - { - "name": "Adrian Lynch", - "email": "adi_ady_ade@hotmail.com" - }, - { - "name": "Richard Littauer", - "email": "richard.littauer@gmail.com" - }, - { - "name": "Oli Evans", - "email": "oli@zilla.org.uk" - }, - { - "name": "Matt Brennan", - "email": "mattyb1000@gmail.com" - }, - { - "name": "Jeff Barczewski", - "email": "jeff.barczewski@gmail.com" - }, - { - "name": "Danny Fritz", - "email": "dannyfritz@gmail.com" - }, - { - "name": "Takaya Kobayashi", - "email": "jigsaw@live.jp" - }, - { - "name": "Ra'Shaun Stovall", - "email": "rashaunstovall@gmail.com" - }, - { - "name": "Julien Meddah", - "email": "julien.meddah@deveryware.com" - }, - { - "name": "Michiel Sikma", - "email": "michiel@wedemandhtml.com" - }, - { - "name": "Jakob Krigovsky", - "email": "jakob.krigovsky@gmail.com" - }, - { - "name": "Charmander", - "email": "~@charmander.me" - }, - { - "name": "Erik Wienhold", - "email": "git@ewie.name" - }, - { - "name": "James Butler", - "email": "james.butler@sandfox.co.uk" - }, - { - "name": "Kevin Kragenbrink", - "email": "kevin@gaikai.com" - }, - { - "name": "Arnaud Rinquin", - "email": "rinquin.arnaud@gmail.com" - }, - { - "name": "Mike MacCana", - "email": "mike.maccana@gmail.com" - }, - { - "name": "Antti Mattila", - "email": "anttti@fastmail.fm" - }, - { - "name": "laiso", - "email": "laiso@lai.so" - }, - { - "name": "Matt Zorn", - "email": "zornme@gmail.com" - }, - { - "name": "Kyle Mitchell", - "email": "kyle@kemitchell.com" - }, - { - "name": "Jeremiah Senkpiel", - "email": "fishrock123@rocketmail.com" - }, - { - "name": "Michael Klein", - "email": "mischkl@users.noreply.github.com" - }, - { - "name": "Simen Bekkhus", - "email": "sbekkhus91@gmail.com" - }, - { - "name": "Victor", - "email": "victor.shih@gmail.com" - }, - { - "name": "thefourtheye", - "email": "thechargingvolcano@gmail.com" - }, - { - "name": "Clay Carpenter", - "email": "claycarpenter@gmail.com" - }, - { - "name": "bangbang93", - "email": "bangbang93@163.com" - }, - { - "name": "Nick Malaguti", - "email": "nmalaguti@palantir.com" - }, - { - "name": "Cedric Nelson", - "email": "cedric.nelson@gmail.com" - }, - { - "name": "Kat Marchán", - "email": "kzm@sykosomatic.org" - }, - { - "name": "Andrew", - "email": "talktome@aboutandrew.co.uk" - }, - { - "name": "Eduardo Pinho", - "email": "enet4mikeenet@gmail.com" - }, - { - "name": "Rachel Hutchison", - "email": "rhutchix@intel.com" - }, - { - "name": "Ryan Temple", - "email": "ryantemple145@gmail.com" - }, - { - "name": "Eugene Sharygin", - "email": "eush77@gmail.com" - }, - { - "name": "Nick Heiner", - "email": "nick.heiner@opower.com" - }, - { - "name": "James Talmage", - "email": "james@talmage.io" - }, - { - "name": "jane arc", - "email": "jane@uber.com" - }, - { - "name": "Joseph Dykstra", - "email": "josephdykstra@gmail.com" - }, - { - "name": "Joshua Egan", - "email": "josh-egan@users.noreply.github.com" - }, - { - "name": "Thomas Cort", - "email": "thomasc@ssimicro.com" - }, - { - "name": "Thaddee Tyl", - "email": "thaddee.tyl@gmail.com" - }, - { - "name": "Steve Klabnik", - "email": "steve@steveklabnik.com" - }, - { - "name": "Andrew Murray", - "email": "radarhere@gmail.com" - }, - { - "name": "Stephan Bönnemann", - "email": "stephan@excellenteasy.com" - }, - { - "name": "Kyle M. Tarplee", - "email": "kyle.tarplee@numerica.us" - }, - { - "name": "Derek Peterson", - "email": "derekpetey@gmail.com" - }, - { - "name": "Greg Whiteley", - "email": "greg.whiteley@atomos.com" - }, - { - "name": "murgatroid99", - "email": "mlumish@google.com" - } - ], - "man": [ - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-README.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-access.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-adduser.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-bin.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-bugs.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-build.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-bundle.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-cache.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-completion.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-config.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-dedupe.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-deprecate.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-dist-tag.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-docs.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-edit.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-explore.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-help-search.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-help.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-init.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-install.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-link.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-logout.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-ls.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-outdated.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-owner.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-pack.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-ping.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-prefix.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-prune.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-publish.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-rebuild.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-repo.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-restart.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-rm.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-root.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-run-script.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-search.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-shrinkwrap.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-star.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-stars.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-start.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-stop.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-submodule.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-tag.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-test.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-uninstall.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-unpublish.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-update.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-version.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-view.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm-whoami.1", - "/Users/ogd/Documents/projects/npm/npm/man/man1/npm.1", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-bin.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-bugs.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-cache.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-commands.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-config.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-deprecate.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-docs.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-edit.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-explore.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-help-search.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-init.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-install.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-link.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-load.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-ls.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-outdated.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-owner.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-pack.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-ping.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-prefix.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-prune.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-publish.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-rebuild.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-repo.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-restart.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-root.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-run-script.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-search.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-shrinkwrap.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-start.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-stop.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-submodule.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-tag.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-test.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-uninstall.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-unpublish.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-update.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-version.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-view.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm-whoami.3", - "/Users/ogd/Documents/projects/npm/npm/man/man3/npm.3", - "/Users/ogd/Documents/projects/npm/npm/man/man5/npm-folders.5", - "/Users/ogd/Documents/projects/npm/npm/man/man5/npm-global.5", - "/Users/ogd/Documents/projects/npm/npm/man/man5/npm-json.5", - "/Users/ogd/Documents/projects/npm/npm/man/man5/npmrc.5", - "/Users/ogd/Documents/projects/npm/npm/man/man5/package.json.5", - "/Users/ogd/Documents/projects/npm/npm/man/man7/npm-coding-style.7", - "/Users/ogd/Documents/projects/npm/npm/man/man7/npm-config.7", - "/Users/ogd/Documents/projects/npm/npm/man/man7/npm-developers.7", - "/Users/ogd/Documents/projects/npm/npm/man/man7/npm-disputes.7", - "/Users/ogd/Documents/projects/npm/npm/man/man7/npm-faq.7", - "/Users/ogd/Documents/projects/npm/npm/man/man7/npm-index.7", - "/Users/ogd/Documents/projects/npm/npm/man/man7/npm-registry.7", - "/Users/ogd/Documents/projects/npm/npm/man/man7/npm-scope.7", - "/Users/ogd/Documents/projects/npm/npm/man/man7/npm-scripts.7", - "/Users/ogd/Documents/projects/npm/npm/man/man7/removing-npm.7", - "/Users/ogd/Documents/projects/npm/npm/man/man7/semver.7" - ], - "gitHead": "fc7bbf03e39cc48a8924b90696d28345a6a90f3c", - "_id": "npm@2.13.5", - "_shasum": "a124386bce4a90506f28ad4b1d1a804a17baaf32", - "_from": "npm@*", - "_npmVersion": "2.13.5", - "_nodeVersion": "2.5.0", - "_npmUser": { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, - "dist": { - "shasum": "a124386bce4a90506f28ad4b1d1a804a17baaf32", - "tarball": "http://registry.npmjs.org/npm/-/npm-2.13.5.tgz" - }, - "maintainers": [ - { - "name": "isaacs", - "email": "isaacs@npmjs.com" - }, - { - "name": "othiym23", - "email": "ogd@aoaioxxysz.net" - }, - { - "name": "iarna", - "email": "me@re-becca.org" - }, - { - "name": "zkat", - "email": "kat@sykosomatic.org" - } - ], - "_resolved": "https://registry.npmjs.org/npm/-/npm-2.13.5.tgz" -} \ No newline at end of file diff --git a/tests/summarycode/data/summary2/full/scan/zlib/ada/zlib.ads b/tests/summarycode/data/summary2/full/scan/zlib/ada/zlib.ads deleted file mode 100644 index c814a2df733..00000000000 --- a/tests/summarycode/data/summary2/full/scan/zlib/ada/zlib.ads +++ /dev/null @@ -1,26 +0,0 @@ ------------------------------------------------------------------------------- --- ZLib for Ada thick binding. -- --- -- --- Copyright (C) 2002-2004 Dmitriy Anisimkov -- --- -- --- This library is free software; you can redistribute it and/or modify -- --- it under the terms of the GNU General Public License as published by -- --- the Free Software Foundation; either version 2 of the License, or (at -- --- your option) any later version. -- --- -- --- This library is distributed in the hope that it will be useful, but -- --- WITHOUT ANY WARRANTY; without even the implied warranty of -- --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- --- General Public License for more details. -- --- -- --- You should have received a copy of the GNU General Public License -- --- along with this library; if not, write to the Free Software Foundation, -- --- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- --- -- --- As a special exception, if other files instantiate generics from this -- --- unit, or you link this unit with other files to produce an executable, -- --- this unit does not by itself cause the resulting executable to be -- --- covered by the GNU General Public License. This exception does not -- --- however invalidate any other reasons why the executable file might be -- --- covered by the GNU Public License. -- ------------------------------------------------------------------------------- diff --git a/tests/summarycode/data/summary2/full/scan/zlib/adler32.c b/tests/summarycode/data/summary2/full/scan/zlib/adler32.c deleted file mode 100644 index d28e9039336..00000000000 --- a/tests/summarycode/data/summary2/full/scan/zlib/adler32.c +++ /dev/null @@ -1,4 +0,0 @@ -/* adler32.c -- compute the Adler-32 checksum of a data stream - * Copyright (C) 1995-2011 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ diff --git a/tests/summarycode/data/summary2/full/scan/zlib/deflate.c b/tests/summarycode/data/summary2/full/scan/zlib/deflate.c deleted file mode 100644 index 4524875c9ff..00000000000 --- a/tests/summarycode/data/summary2/full/scan/zlib/deflate.c +++ /dev/null @@ -1,5 +0,0 @@ -/* deflate.c -- compress data using the deflation algorithm - * Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - diff --git a/tests/summarycode/data/summary2/full/scan/zlib/deflate.h b/tests/summarycode/data/summary2/full/scan/zlib/deflate.h deleted file mode 100644 index 0b360ce6c16..00000000000 --- a/tests/summarycode/data/summary2/full/scan/zlib/deflate.h +++ /dev/null @@ -1,4 +0,0 @@ -/* deflate.h -- internal compression state - * Copyright (C) 1995-2012 Jean-loup Gailly - * For conditions of distribution and use, see copyright notice in zlib.h - */ diff --git a/tests/summarycode/data/summary2/full/scan/zlib/dotzlib/AssemblyInfo.cs b/tests/summarycode/data/summary2/full/scan/zlib/dotzlib/AssemblyInfo.cs deleted file mode 100644 index 23da9b437db..00000000000 --- a/tests/summarycode/data/summary2/full/scan/zlib/dotzlib/AssemblyInfo.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("DotZLib")] -[assembly: AssemblyDescription(".Net bindings for ZLib compression dll 1.2.x")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Henrik Ravn")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("(c) 2004 by Henrik Ravn")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] diff --git a/tests/summarycode/data/summary2/full/scan/zlib/dotzlib/ChecksumImpl.cs b/tests/summarycode/data/summary2/full/scan/zlib/dotzlib/ChecksumImpl.cs deleted file mode 100644 index 65ea66cb943..00000000000 --- a/tests/summarycode/data/summary2/full/scan/zlib/dotzlib/ChecksumImpl.cs +++ /dev/null @@ -1,7 +0,0 @@ -// -// � Copyright Henrik Ravn 2004 -// -// Use, modification and distribution are subject to the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - diff --git a/tests/summarycode/data/summary2/full/scan/zlib/gcc_gvmat64/gvmat64.S b/tests/summarycode/data/summary2/full/scan/zlib/gcc_gvmat64/gvmat64.S deleted file mode 100644 index 3fc192371e4..00000000000 --- a/tests/summarycode/data/summary2/full/scan/zlib/gcc_gvmat64/gvmat64.S +++ /dev/null @@ -1,36 +0,0 @@ -/* -;uInt longest_match_x64( -; deflate_state *s, -; IPos cur_match); // current match - -; gvmat64.S -- Asm portion of the optimized longest_match for 32 bits x86_64 -; (AMD64 on Athlon 64, Opteron, Phenom -; and Intel EM64T on Pentium 4 with EM64T, Pentium D, Core 2 Duo, Core I5/I7) -; this file is translation from gvmat64.asm to GCC 4.x (for Linux, Mac XCode) -; Copyright (C) 1995-2010 Jean-loup Gailly, Brian Raiter and Gilles Vollant. -; -; File written by Gilles Vollant, by converting to assembly the longest_match -; from Jean-loup Gailly in deflate.c of zLib and infoZip zip. -; and by taking inspiration on asm686 with masm, optimised assembly code -; from Brian Raiter, written 1998 -; -; This software is provided 'as-is', without any express or implied -; warranty. In no event will the authors be held liable for any damages -; arising from the use of this software. -; -; Permission is granted to anyone to use this software for any purpose, -; including commercial applications, and to alter it and redistribute it -; freely, subject to the following restrictions: -; -; 1. The origin of this software must not be misrepresented; you must not -; claim that you wrote the original software. If you use this software -; in a product, an acknowledgment in the product documentation would be -; appreciated but is not required. -; 2. Altered source versions must be plainly marked as such, and must not be -; misrepresented as being the original software -; 3. This notice may not be removed or altered from any source distribution. -; -; http://www.zlib.net -; http://www.winimage.com/zLibDll -; http://www.muppetlabs.com/~breadbox/software/assembly.html -; diff --git a/tests/summarycode/data/summary2/full/scan/zlib/infback9/infback9.c b/tests/summarycode/data/summary2/full/scan/zlib/infback9/infback9.c deleted file mode 100644 index 3d9f3c93d7f..00000000000 --- a/tests/summarycode/data/summary2/full/scan/zlib/infback9/infback9.c +++ /dev/null @@ -1,5 +0,0 @@ -/* infback9.c -- inflate deflate64 data using a call-back interface - * Copyright (C) 1995-2008 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - diff --git a/tests/summarycode/data/summary2/full/scan/zlib/infback9/infback9.h b/tests/summarycode/data/summary2/full/scan/zlib/infback9/infback9.h deleted file mode 100644 index e7be4800317..00000000000 --- a/tests/summarycode/data/summary2/full/scan/zlib/infback9/infback9.h +++ /dev/null @@ -1,4 +0,0 @@ -/* infback9.h -- header for using inflateBack9 functions - * Copyright (C) 2003 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ diff --git a/tests/summarycode/data/summary2/full/scan/zlib/iostream2/zstream.h b/tests/summarycode/data/summary2/full/scan/zlib/iostream2/zstream.h deleted file mode 100644 index c62dc6d1f15..00000000000 --- a/tests/summarycode/data/summary2/full/scan/zlib/iostream2/zstream.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * - * Copyright (c) 1997 - * Christian Michelsen Research AS - * Advanced Computing - * Fantoftvegen 38, 5036 BERGEN, Norway - * http://www.cmr.no - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Christian Michelsen Research AS makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - */ diff --git a/tests/summarycode/data/summary2/full/scan/zlib/zlib.h b/tests/summarycode/data/summary2/full/scan/zlib/zlib.h deleted file mode 100644 index a5942194eea..00000000000 --- a/tests/summarycode/data/summary2/full/scan/zlib/zlib.h +++ /dev/null @@ -1,24 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.8, April 28th, 2013 - - Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - diff --git a/tests/summarycode/data/summary2/full/scan/zlib/zutil.c b/tests/summarycode/data/summary2/full/scan/zlib/zutil.c deleted file mode 100644 index 1aac612ec30..00000000000 --- a/tests/summarycode/data/summary2/full/scan/zlib/zutil.c +++ /dev/null @@ -1,4 +0,0 @@ -/* zutil.c -- target dependent utility functions for the compression library - * Copyright (C) 1995-2005, 2010, 2011, 2012 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ diff --git a/tests/summarycode/data/summary2/full/scan/zlib/zutil.h b/tests/summarycode/data/summary2/full/scan/zlib/zutil.h deleted file mode 100644 index d85c1f24ea8..00000000000 --- a/tests/summarycode/data/summary2/full/scan/zlib/zutil.h +++ /dev/null @@ -1,9 +0,0 @@ -/* zutil.h -- internal interface and configuration of the compression library - * Copyright (C) 1995-2013 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ diff --git a/tests/summarycode/data/summary2/packages/scan.expected.json b/tests/summarycode/data/summary2/packages/scan.expected.json deleted file mode 100644 index 6d82334c608..00000000000 --- a/tests/summarycode/data/summary2/packages/scan.expected.json +++ /dev/null @@ -1,1755 +0,0 @@ -{ - "headers": [ - { - "tool_name": "scancode-toolkit", - "options": { - "input": "", - "--classify": true, - "--json-pp": "", - "--license-clarity-score": true, - "--package": true, - "--summary2": true - }, - "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "2.0.0", - "message": null, - "errors": [], - "extra_data": { - "spdx_license_list_version": "3.16", - "files_count": 3 - } - } - ], - "summary": { - "primary_license_expression": "", - "declared_license_expressions": [], - "license_clarity_score": { - "score": 0, - "declared_license": false, - "precise_license_detection": false, - "has_license_text": false, - "declared_copyrights": false, - "conflicting_license_categories": false, - "ambigous_compound_licensing": false - } - }, - "dependencies": [ - { - "purl": "pkg:npm/%40angular-devkit/build-optimizer", - "extracted_requirement": "^0.0.31", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40angular-devkit/build-optimizer", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/autoprefixer", - "extracted_requirement": "^7.1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/autoprefixer", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/chalk", - "extracted_requirement": "^2.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/chalk", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/chokidar", - "extracted_requirement": "^1.7.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/chokidar", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/clean-css", - "extracted_requirement": "^4.1.9", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/clean-css", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/cross-spawn", - "extracted_requirement": "^5.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/cross-spawn", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/express", - "extracted_requirement": "^4.16.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/express", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/fs-extra", - "extracted_requirement": "^4.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/fs-extra", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/glob", - "extracted_requirement": "^7.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/glob", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/json-loader", - "extracted_requirement": "^0.5.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/json-loader", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/node-sass", - "extracted_requirement": "^4.5.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/node-sass", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/os-name", - "extracted_requirement": "^2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/os-name", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/postcss", - "extracted_requirement": "^6.0.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/postcss", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/proxy-middleware", - "extracted_requirement": "^0.15.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/proxy-middleware", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/reflect-metadata", - "extracted_requirement": "^0.1.10", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/reflect-metadata", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/rollup", - "extracted_requirement": "0.50.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/rollup", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/rollup-plugin-commonjs", - "extracted_requirement": "8.2.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/rollup-plugin-commonjs", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/rollup-plugin-node-resolve", - "extracted_requirement": "3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/rollup-plugin-node-resolve", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/source-map", - "extracted_requirement": "^0.6.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/source-map", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/tiny-lr", - "extracted_requirement": "^1.0.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/tiny-lr", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/tslint", - "extracted_requirement": "^5.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/tslint", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/tslint-eslint-rules", - "extracted_requirement": "^4.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/tslint-eslint-rules", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/uglify-es", - "extracted_requirement": "^3.1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/uglify-es", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/webpack", - "extracted_requirement": "^3.8.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/webpack", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/ws", - "extracted_requirement": "^3.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/ws", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/xml2js", - "extracted_requirement": "^0.4.19", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/xml2js", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40angular/animations", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40angular/animations", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40angular/common", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40angular/common", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40angular/compiler", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40angular/compiler", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40angular/compiler-cli", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40angular/compiler-cli", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40angular/core", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40angular/core", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40angular/forms", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40angular/forms", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40angular/http", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40angular/http", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40angular/platform-browser", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40angular/platform-browser", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40angular/platform-browser-dynamic", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40angular/platform-browser-dynamic", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40angular/platform-server", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40angular/platform-server", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40angular/tsc-wrapped", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40angular/tsc-wrapped", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40types/chokidar", - "extracted_requirement": "^1.7.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40types/chokidar", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40types/clean-css", - "extracted_requirement": "^3.4.29", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40types/clean-css", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40types/express", - "extracted_requirement": "^4.0.39", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40types/express", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40types/fs-extra", - "extracted_requirement": "^4.0.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40types/fs-extra", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40types/glob", - "extracted_requirement": "^5.0.30", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40types/glob", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40types/jest", - "extracted_requirement": "^21.1.5", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40types/jest", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40types/mock-fs", - "extracted_requirement": "^3.6.30", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40types/mock-fs", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40types/node", - "extracted_requirement": "^8.0.47", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40types/node", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40types/node-sass", - "extracted_requirement": "^3.10.32", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40types/node-sass", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40types/rewire", - "extracted_requirement": "^2.5.27", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40types/rewire", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40types/webpack", - "extracted_requirement": "^3.0.14", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40types/webpack", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/%40types/ws", - "extracted_requirement": "^3.2.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/%40types/ws", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/conventional-changelog-cli", - "extracted_requirement": "^1.3.1", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/conventional-changelog-cli", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/github", - "extracted_requirement": "0.2.4", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/github", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/ionic-cz-conventional-changelog", - "extracted_requirement": "^1.0.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/ionic-cz-conventional-changelog", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/jest", - "extracted_requirement": "^21.2.1", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/jest", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/mock-fs", - "extracted_requirement": "^4.4.2", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/mock-fs", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/rewire", - "extracted_requirement": "^2.5.2", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/rewire", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/rimraf", - "extracted_requirement": "^2.6.1", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/rimraf", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/rxjs", - "extracted_requirement": "^5.5.2", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/rxjs", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/sw-toolbox", - "extracted_requirement": "^3.6.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/sw-toolbox", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/tslint-ionic-rules", - "extracted_requirement": "^0.0.11", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/tslint-ionic-rules", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/typescript", - "extracted_requirement": "~2.3.4", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/typescript", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - }, - { - "purl": "pkg:npm/zone.js", - "extracted_requirement": "^0.8.17", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "dependency_uuid": "pkg:npm/zone.js", - "for_package": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "lockfile": "scan/scoped1/package.json" - } - ], - "packages": [ - { - "type": "maven", - "namespace": "aopalliance", - "name": "aopalliance", - "version": "1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Java", - "description": "AOP alliance\nAOP Alliance", - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": "http://aopalliance.sourceforge.net", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": "public-domain", - "declared_license": [ - { - "name": "Public Domain", - "url": null, - "comments": null, - "distribution": null - } - ], - "notice_text": null, - "contains_source_code": null, - "source_packages": [ - "pkg:maven/aopalliance/aopalliance@1.0?classifier=sources" - ], - "extra_data": {}, - "package_uuid": "pkg:maven/aopalliance/aopalliance@1.0", - "package_data_files": [ - "scan/aopalliance/aopalliance/1.0/aopalliance-1.0.pom" - ], - "files": [ - "scan/aopalliance/aopalliance/1.0/aopalliance-1.0.pom" - ], - "purl": "pkg:maven/aopalliance/aopalliance@1.0", - "repository_homepage_url": "https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/", - "repository_download_url": "https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/aopalliance-1.0.jar", - "api_data_url": "https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/aopalliance-1.0.pom" - }, - { - "type": "freebsd", - "namespace": null, - "name": "dmidecode", - "version": "2.12", - "qualifiers": { - "arch": "freebsd:10:x86:64", - "origin": "sysutils/dmidecode" - }, - "subpath": null, - "primary_language": null, - "description": "Dmidecode is a tool or dumping a computer's DMI (some say SMBIOS) table\ncontents in a human-readable format. The output contains a description of the\nsystem's hardware components, as well as other useful pieces of information\nsuch as serial numbers and BIOS revision.\n\nWWW: http://www.nongnu.org/dmidecode/", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "maintainer", - "name": null, - "email": "anders@FreeBSD.org", - "url": null - } - ], - "keywords": [ - "sysutils" - ], - "homepage_url": "http://www.nongnu.org/dmidecode/", - "download_url": "https://pkg.freebsd.org/freebsd:10:x86:64/latest/All/dmidecode-2.12.txz", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": "https://svnweb.freebsd.org/ports/head/sysutils/dmidecode", - "vcs_url": null, - "copyright": null, - "license_expression": "gpl-2.0", - "declared_license": { - "licenses": [ - "GPLv2" - ], - "licenselogic": "single" - }, - "notice_text": null, - "contains_source_code": null, - "source_packages": [], - "extra_data": {}, - "package_uuid": "pkg:freebsd/dmidecode@2.12?arch=freebsd:10:x86:64&origin=sysutils/dmidecode", - "package_data_files": [ - "scan/freebsd/basic/+COMPACT_MANIFEST" - ], - "files": [ - "scan/freebsd/basic/+COMPACT_MANIFEST" - ], - "purl": "pkg:freebsd/dmidecode@2.12?arch=freebsd:10:x86:64&origin=sysutils/dmidecode", - "repository_homepage_url": null, - "repository_download_url": null, - "api_data_url": null - }, - { - "type": "npm", - "namespace": "@ionic", - "name": "app-scripts", - "version": "3.0.1-201710301651", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": "Scripts for Ionic Projects", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Ionic Team", - "email": "hi@ionic.io", - "url": "https://ionic.io" - } - ], - "keywords": [], - "homepage_url": "https://ionicframework.com/", - "download_url": "https://registry.npmjs.org/@ionic/app-scripts/-/app-scripts-3.0.1-201710301651.tgz", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": "https://github.com/ionic-team/ionic-app-scripts/issues", - "code_view_url": null, - "vcs_url": "git+https://github.com/ionic-team/ionic-app-scripts.git", - "copyright": null, - "license_expression": "mit", - "declared_license": [ - "MIT" - ], - "notice_text": null, - "contains_source_code": null, - "source_packages": [], - "extra_data": {}, - "package_uuid": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "package_data_files": [ - "scan/scoped1/package.json" - ], - "files": [ - "scan/scoped1/package.json" - ], - "purl": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "repository_homepage_url": "https://www.npmjs.com/package/@ionic/app-scripts", - "repository_download_url": "https://registry.npmjs.org/@ionic/app-scripts/-/app-scripts-3.0.1-201710301651.tgz", - "api_data_url": "https://registry.npmjs.org/@ionic%2fapp-scripts" - } - ], - "files": [ - { - "path": "scan", - "type": "directory", - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/aopalliance", - "type": "directory", - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/aopalliance/aopalliance", - "type": "directory", - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/aopalliance/aopalliance/1.0", - "type": "directory", - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/aopalliance/aopalliance/1.0/aopalliance-1.0.pom", - "type": "file", - "package_data": [ - { - "type": "maven", - "namespace": "aopalliance", - "name": "aopalliance", - "version": "1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Java", - "description": "AOP alliance\nAOP Alliance", - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": "http://aopalliance.sourceforge.net", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "license_expression": "public-domain", - "declared_license": [ - { - "name": "Public Domain", - "url": null, - "comments": null, - "distribution": null - } - ], - "notice_text": null, - "contains_source_code": null, - "source_packages": [ - "pkg:maven/aopalliance/aopalliance@1.0?classifier=sources" - ], - "extra_data": {}, - "dependencies": [], - "purl": "pkg:maven/aopalliance/aopalliance@1.0", - "repository_homepage_url": "https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/", - "repository_download_url": "https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/aopalliance-1.0.jar", - "api_data_url": "https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/aopalliance-1.0.pom" - } - ], - "for_packages": [ - "pkg:maven/aopalliance/aopalliance@1.0" - ], - "is_legal": false, - "is_manifest": true, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/freebsd", - "type": "directory", - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/freebsd/basic", - "type": "directory", - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/freebsd/basic/+COMPACT_MANIFEST", - "type": "file", - "package_data": [ - { - "type": "freebsd", - "namespace": null, - "name": "dmidecode", - "version": "2.12", - "qualifiers": { - "arch": "freebsd:10:x86:64", - "origin": "sysutils/dmidecode" - }, - "subpath": null, - "primary_language": null, - "description": "Dmidecode is a tool or dumping a computer's DMI (some say SMBIOS) table\ncontents in a human-readable format. The output contains a description of the\nsystem's hardware components, as well as other useful pieces of information\nsuch as serial numbers and BIOS revision.\n\nWWW: http://www.nongnu.org/dmidecode/", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "maintainer", - "name": null, - "email": "anders@FreeBSD.org", - "url": null - } - ], - "keywords": [ - "sysutils" - ], - "homepage_url": "http://www.nongnu.org/dmidecode/", - "download_url": "https://pkg.freebsd.org/freebsd:10:x86:64/latest/All/dmidecode-2.12.txz", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": "https://svnweb.freebsd.org/ports/head/sysutils/dmidecode", - "vcs_url": null, - "copyright": null, - "license_expression": "gpl-2.0", - "declared_license": { - "licenses": [ - "GPLv2" - ], - "licenselogic": "single" - }, - "notice_text": null, - "contains_source_code": null, - "source_packages": [], - "extra_data": {}, - "dependencies": [], - "purl": "pkg:freebsd/dmidecode@2.12?arch=freebsd:10:x86:64&origin=sysutils/dmidecode", - "repository_homepage_url": null, - "repository_download_url": null, - "api_data_url": null - } - ], - "for_packages": [ - "pkg:freebsd/dmidecode@2.12?arch=freebsd:10:x86:64&origin=sysutils/dmidecode" - ], - "is_legal": false, - "is_manifest": true, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/scoped1", - "type": "directory", - "package_data": [], - "for_packages": [], - "is_legal": false, - "is_manifest": false, - "is_readme": false, - "is_top_level": true, - "is_key_file": false, - "scan_errors": [] - }, - { - "path": "scan/scoped1/package.json", - "type": "file", - "package_data": [ - { - "type": "npm", - "namespace": "@ionic", - "name": "app-scripts", - "version": "3.0.1-201710301651", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": "Scripts for Ionic Projects", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Ionic Team", - "email": "hi@ionic.io", - "url": "https://ionic.io" - } - ], - "keywords": [], - "homepage_url": "https://ionicframework.com/", - "download_url": "https://registry.npmjs.org/@ionic/app-scripts/-/app-scripts-3.0.1-201710301651.tgz", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": "https://github.com/ionic-team/ionic-app-scripts/issues", - "code_view_url": null, - "vcs_url": "git+https://github.com/ionic-team/ionic-app-scripts.git", - "copyright": null, - "license_expression": "mit", - "declared_license": [ - "MIT" - ], - "notice_text": null, - "contains_source_code": null, - "source_packages": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:npm/%40angular-devkit/build-optimizer", - "extracted_requirement": "^0.0.31", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/autoprefixer", - "extracted_requirement": "^7.1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/chalk", - "extracted_requirement": "^2.3.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/chokidar", - "extracted_requirement": "^1.7.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/clean-css", - "extracted_requirement": "^4.1.9", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/cross-spawn", - "extracted_requirement": "^5.1.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/express", - "extracted_requirement": "^4.16.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/fs-extra", - "extracted_requirement": "^4.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/glob", - "extracted_requirement": "^7.1.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/json-loader", - "extracted_requirement": "^0.5.7", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/node-sass", - "extracted_requirement": "^4.5.3", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/os-name", - "extracted_requirement": "^2.0.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/postcss", - "extracted_requirement": "^6.0.13", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/proxy-middleware", - "extracted_requirement": "^0.15.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/reflect-metadata", - "extracted_requirement": "^0.1.10", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/rollup", - "extracted_requirement": "0.50.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/rollup-plugin-commonjs", - "extracted_requirement": "8.2.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/rollup-plugin-node-resolve", - "extracted_requirement": "3.0.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/source-map", - "extracted_requirement": "^0.6.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/tiny-lr", - "extracted_requirement": "^1.0.5", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/tslint", - "extracted_requirement": "^5.8.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/tslint-eslint-rules", - "extracted_requirement": "^4.1.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/uglify-es", - "extracted_requirement": "^3.1.6", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/webpack", - "extracted_requirement": "^3.8.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/ws", - "extracted_requirement": "^3.2.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/xml2js", - "extracted_requirement": "^0.4.19", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40angular/animations", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40angular/common", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40angular/compiler", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40angular/compiler-cli", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40angular/core", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40angular/forms", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40angular/http", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40angular/platform-browser", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40angular/platform-browser-dynamic", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40angular/platform-server", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40angular/tsc-wrapped", - "extracted_requirement": "4.4.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40types/chokidar", - "extracted_requirement": "^1.7.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40types/clean-css", - "extracted_requirement": "^3.4.29", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40types/express", - "extracted_requirement": "^4.0.39", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40types/fs-extra", - "extracted_requirement": "^4.0.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40types/glob", - "extracted_requirement": "^5.0.30", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40types/jest", - "extracted_requirement": "^21.1.5", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40types/mock-fs", - "extracted_requirement": "^3.6.30", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40types/node", - "extracted_requirement": "^8.0.47", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40types/node-sass", - "extracted_requirement": "^3.10.32", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40types/rewire", - "extracted_requirement": "^2.5.27", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40types/webpack", - "extracted_requirement": "^3.0.14", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/%40types/ws", - "extracted_requirement": "^3.2.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/conventional-changelog-cli", - "extracted_requirement": "^1.3.1", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/github", - "extracted_requirement": "0.2.4", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/ionic-cz-conventional-changelog", - "extracted_requirement": "^1.0.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/jest", - "extracted_requirement": "^21.2.1", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/mock-fs", - "extracted_requirement": "^4.4.2", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/rewire", - "extracted_requirement": "^2.5.2", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/rimraf", - "extracted_requirement": "^2.6.1", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/rxjs", - "extracted_requirement": "^5.5.2", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/sw-toolbox", - "extracted_requirement": "^3.6.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/tslint-ionic-rules", - "extracted_requirement": "^0.0.11", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/typescript", - "extracted_requirement": "~2.3.4", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - }, - { - "purl": "pkg:npm/zone.js", - "extracted_requirement": "^0.8.17", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {} - } - ], - "purl": "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651", - "repository_homepage_url": "https://www.npmjs.com/package/@ionic/app-scripts", - "repository_download_url": "https://registry.npmjs.org/@ionic/app-scripts/-/app-scripts-3.0.1-201710301651.tgz", - "api_data_url": "https://registry.npmjs.org/@ionic%2fapp-scripts" - } - ], - "for_packages": [ - "pkg:npm/%40ionic/app-scripts@3.0.1-201710301651" - ], - "is_legal": false, - "is_manifest": true, - "is_readme": false, - "is_top_level": false, - "is_key_file": false, - "scan_errors": [] - } - ] -} \ No newline at end of file diff --git a/tests/summarycode/data/summary2/packages/scan/aopalliance/aopalliance/1.0/aopalliance-1.0.pom b/tests/summarycode/data/summary2/packages/scan/aopalliance/aopalliance/1.0/aopalliance-1.0.pom deleted file mode 100644 index af3323fdcb4..00000000000 --- a/tests/summarycode/data/summary2/packages/scan/aopalliance/aopalliance/1.0/aopalliance-1.0.pom +++ /dev/null @@ -1,15 +0,0 @@ - - 4.0.0 - aopalliance - aopalliance - AOP alliance - 1.0 - AOP Alliance - http://aopalliance.sourceforge.net - - - - Public Domain - - - \ No newline at end of file diff --git a/tests/summarycode/data/summary2/packages/scan/freebsd/basic/+COMPACT_MANIFEST b/tests/summarycode/data/summary2/packages/scan/freebsd/basic/+COMPACT_MANIFEST deleted file mode 100644 index 12d92d068fc..00000000000 --- a/tests/summarycode/data/summary2/packages/scan/freebsd/basic/+COMPACT_MANIFEST +++ /dev/null @@ -1 +0,0 @@ -{"name":"dmidecode","origin":"sysutils/dmidecode","version":"2.12","arch":"freebsd:10:x86:64","maintainer":"anders@FreeBSD.org","prefix":"/usr/local","www":"http://www.nongnu.org/dmidecode/","flatsize":188874,"comment":"Tool for dumping DMI (SMBIOS) contents in human-readable format","licenselogic":"single","licenses":["GPLv2"],"desc":"Dmidecode is a tool or dumping a computer's DMI (some say SMBIOS) table\ncontents in a human-readable format. The output contains a description of the\nsystem's hardware components, as well as other useful pieces of information\nsuch as serial numbers and BIOS revision.\n\nWWW: http://www.nongnu.org/dmidecode/","categories":["sysutils"]} \ No newline at end of file diff --git a/tests/summarycode/data/summary2/packages/scan/scoped1/package.json b/tests/summarycode/data/summary2/packages/scan/scoped1/package.json deleted file mode 100644 index e4b97dc9d21..00000000000 --- a/tests/summarycode/data/summary2/packages/scan/scoped1/package.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "name": "@ionic/app-scripts", - "version": "3.0.1-201710301651", - "description": "Scripts for Ionic Projects", - "homepage": "https://ionicframework.com/", - "author": "Ionic Team (https://ionic.io)", - "license": "MIT", - "files": [ - "bin/", - "config/", - "dist/", - "lab", - "LICENSE", - "README.md" - ], - "bin": { - "ionic-app-scripts": "./bin/ionic-app-scripts.js" - }, - "scripts": { - "build": "npm run clean && tsc && npm run sass", - "build-and-test": "jest", - "changelog": "./node_modules/.bin/conventional-changelog -p angular -i CHANGELOG.md -s", - "clean": "rimraf ./dist", - "github-release": "node ./scripts/create-github-release.js", - "lint": "tslint -c ./tslint.json --project ./tsconfig.json --type-check -t stylish", - "nightly": "npm run build && node ./scripts/publish-nightly.js", - "sass": "node-sass ./src/dev-client/sass/ion-dev.scss --output ./bin/ --output-style compressed", - "sass-watch": "npm run sass && node-sass ./src/dev-client/sass/ion-dev.scss --watch --output ./bin/ --output-style compressed", - "test": "jest", - "watch": "npm run clean && tsc --watch & npm run sass-watch" - }, - "main": "dist/index.js", - "dependencies": { - "@angular-devkit/build-optimizer": "^0.0.31", - "autoprefixer": "^7.1.6", - "chalk": "^2.3.0", - "chokidar": "^1.7.0", - "clean-css": "^4.1.9", - "cross-spawn": "^5.1.0", - "express": "^4.16.2", - "fs-extra": "^4.0.2", - "glob": "^7.1.2", - "json-loader": "^0.5.7", - "node-sass": "^4.5.3", - "os-name": "^2.0.1", - "postcss": "^6.0.13", - "proxy-middleware": "^0.15.0", - "reflect-metadata": "^0.1.10", - "rollup": "0.50.0", - "rollup-plugin-commonjs": "8.2.6", - "rollup-plugin-node-resolve": "3.0.0", - "source-map": "^0.6.1", - "tiny-lr": "^1.0.5", - "tslint": "^5.8.0", - "tslint-eslint-rules": "^4.1.1", - "uglify-es": "^3.1.6", - "webpack": "^3.8.1", - "ws": "^3.2.0", - "xml2js": "^0.4.19" - }, - "devDependencies": { - "@angular/animations": "4.4.3", - "@angular/common": "4.4.3", - "@angular/compiler": "4.4.3", - "@angular/compiler-cli": "4.4.3", - "@angular/core": "4.4.3", - "@angular/forms": "4.4.3", - "@angular/http": "4.4.3", - "@angular/platform-browser": "4.4.3", - "@angular/platform-browser-dynamic": "4.4.3", - "@angular/platform-server": "4.4.3", - "@angular/tsc-wrapped": "4.4.3", - "@types/chokidar": "^1.7.3", - "@types/clean-css": "^3.4.29", - "@types/express": "^4.0.39", - "@types/fs-extra": "^4.0.3", - "@types/glob": "^5.0.30", - "@types/jest": "^21.1.5", - "@types/mock-fs": "^3.6.30", - "@types/node": "^8.0.47", - "@types/node-sass": "^3.10.32", - "@types/rewire": "^2.5.27", - "@types/webpack": "^3.0.14", - "@types/ws": "^3.2.0", - "conventional-changelog-cli": "^1.3.1", - "github": "0.2.4", - "ionic-cz-conventional-changelog": "^1.0.0", - "jest": "^21.2.1", - "mock-fs": "^4.4.2", - "rewire": "^2.5.2", - "rimraf": "^2.6.1", - "rxjs": "^5.5.2", - "sw-toolbox": "^3.6.0", - "tslint-ionic-rules": "^0.0.11", - "typescript": "~2.3.4", - "zone.js": "^0.8.17" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ionic-team/ionic-app-scripts.git" - }, - "bugs": { - "url": "https://github.com/ionic-team/ionic-app-scripts/issues" - }, - "config": { - "commitizen": { - "path": "node_modules/ionic-cz-conventional-changelog" - } - }, - "typings": "dist/index.d.ts", - "jest": { - "testEnvironment": "node", - "moduleFileExtensions": [ - "ts", - "js" - ], - "transform": { - "^.+\\.(ts)$": "/preprocessor.js" - }, - "testRegex": "/src/.*\\.spec\\.(ts|js)$", - "coverageDirectory": "coverage" - } -} \ No newline at end of file diff --git a/tests/summarycode/data/copyright_summary/scan/JGroups/src/FixedMembershipToken.java b/tests/summarycode/data/tallies/copyright_tallies/scan/JGroups/src/FixedMembershipToken.java similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/JGroups/src/FixedMembershipToken.java rename to tests/summarycode/data/tallies/copyright_tallies/scan/JGroups/src/FixedMembershipToken.java diff --git a/tests/summarycode/data/copyright_summary/scan/JGroups/src/GuardedBy.java b/tests/summarycode/data/tallies/copyright_tallies/scan/JGroups/src/GuardedBy.java similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/JGroups/src/GuardedBy.java rename to tests/summarycode/data/tallies/copyright_tallies/scan/JGroups/src/GuardedBy.java diff --git a/tests/summarycode/data/copyright_summary/scan/JGroups/src/ImmutableReference.java b/tests/summarycode/data/tallies/copyright_tallies/scan/JGroups/src/ImmutableReference.java similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/JGroups/src/ImmutableReference.java rename to tests/summarycode/data/tallies/copyright_tallies/scan/JGroups/src/ImmutableReference.java diff --git a/tests/summarycode/data/copyright_summary/scan/JGroups/src/RATE_LIMITER.java b/tests/summarycode/data/tallies/copyright_tallies/scan/JGroups/src/RATE_LIMITER.java similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/JGroups/src/RATE_LIMITER.java rename to tests/summarycode/data/tallies/copyright_tallies/scan/JGroups/src/RATE_LIMITER.java diff --git a/tests/summarycode/data/copyright_summary/scan/JGroups/src/RouterStub.java b/tests/summarycode/data/tallies/copyright_tallies/scan/JGroups/src/RouterStub.java similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/JGroups/src/RouterStub.java rename to tests/summarycode/data/tallies/copyright_tallies/scan/JGroups/src/RouterStub.java diff --git a/tests/summarycode/data/copyright_summary/scan/JGroups/src/RouterStubManager.java b/tests/summarycode/data/tallies/copyright_tallies/scan/JGroups/src/RouterStubManager.java similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/JGroups/src/RouterStubManager.java rename to tests/summarycode/data/tallies/copyright_tallies/scan/JGroups/src/RouterStubManager.java diff --git a/tests/summarycode/data/copyright_summary/scan/JGroups/src/S3_PING.java b/tests/summarycode/data/tallies/copyright_tallies/scan/JGroups/src/S3_PING.java similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/JGroups/src/S3_PING.java rename to tests/summarycode/data/tallies/copyright_tallies/scan/JGroups/src/S3_PING.java diff --git a/tests/summarycode/data/copyright_summary/scan/README b/tests/summarycode/data/tallies/copyright_tallies/scan/README similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/README rename to tests/summarycode/data/tallies/copyright_tallies/scan/README diff --git a/tests/summarycode/data/copyright_summary/scan/arch/adler32.c b/tests/summarycode/data/tallies/copyright_tallies/scan/arch/adler32.c similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/arch/adler32.c rename to tests/summarycode/data/tallies/copyright_tallies/scan/arch/adler32.c diff --git a/tests/summarycode/data/copyright_summary/scan/arch/zlib.h b/tests/summarycode/data/tallies/copyright_tallies/scan/arch/zlib.h similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/arch/zlib.h rename to tests/summarycode/data/tallies/copyright_tallies/scan/arch/zlib.h diff --git a/tests/summarycode/data/copyright_summary/scan/arch/zutil.h b/tests/summarycode/data/tallies/copyright_tallies/scan/arch/zutil.h similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/arch/zutil.h rename to tests/summarycode/data/tallies/copyright_tallies/scan/arch/zutil.h diff --git a/tests/summarycode/data/copyright_summary/scan/zlib/ada/zlib.ads b/tests/summarycode/data/tallies/copyright_tallies/scan/zlib/ada/zlib.ads similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/zlib/ada/zlib.ads rename to tests/summarycode/data/tallies/copyright_tallies/scan/zlib/ada/zlib.ads diff --git a/tests/summarycode/data/copyright_summary/scan/zlib/adler32.c b/tests/summarycode/data/tallies/copyright_tallies/scan/zlib/adler32.c similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/zlib/adler32.c rename to tests/summarycode/data/tallies/copyright_tallies/scan/zlib/adler32.c diff --git a/tests/summarycode/data/copyright_summary/scan/zlib/deflate.c b/tests/summarycode/data/tallies/copyright_tallies/scan/zlib/deflate.c similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/zlib/deflate.c rename to tests/summarycode/data/tallies/copyright_tallies/scan/zlib/deflate.c diff --git a/tests/summarycode/data/copyright_summary/scan/zlib/deflate.h b/tests/summarycode/data/tallies/copyright_tallies/scan/zlib/deflate.h similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/zlib/deflate.h rename to tests/summarycode/data/tallies/copyright_tallies/scan/zlib/deflate.h diff --git a/tests/summarycode/data/copyright_summary/scan/zlib/dotzlib/AssemblyInfo.cs b/tests/summarycode/data/tallies/copyright_tallies/scan/zlib/dotzlib/AssemblyInfo.cs similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/zlib/dotzlib/AssemblyInfo.cs rename to tests/summarycode/data/tallies/copyright_tallies/scan/zlib/dotzlib/AssemblyInfo.cs diff --git a/tests/summarycode/data/copyright_summary/scan/zlib/dotzlib/ChecksumImpl.cs b/tests/summarycode/data/tallies/copyright_tallies/scan/zlib/dotzlib/ChecksumImpl.cs similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/zlib/dotzlib/ChecksumImpl.cs rename to tests/summarycode/data/tallies/copyright_tallies/scan/zlib/dotzlib/ChecksumImpl.cs diff --git a/tests/summarycode/data/copyright_summary/scan/zlib/gcc_gvmat64/gvmat64.S b/tests/summarycode/data/tallies/copyright_tallies/scan/zlib/gcc_gvmat64/gvmat64.S similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/zlib/gcc_gvmat64/gvmat64.S rename to tests/summarycode/data/tallies/copyright_tallies/scan/zlib/gcc_gvmat64/gvmat64.S diff --git a/tests/summarycode/data/copyright_summary/scan/zlib/infback9/infback9.c b/tests/summarycode/data/tallies/copyright_tallies/scan/zlib/infback9/infback9.c similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/zlib/infback9/infback9.c rename to tests/summarycode/data/tallies/copyright_tallies/scan/zlib/infback9/infback9.c diff --git a/tests/summarycode/data/copyright_summary/scan/zlib/infback9/infback9.h b/tests/summarycode/data/tallies/copyright_tallies/scan/zlib/infback9/infback9.h similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/zlib/infback9/infback9.h rename to tests/summarycode/data/tallies/copyright_tallies/scan/zlib/infback9/infback9.h diff --git a/tests/summarycode/data/copyright_summary/scan/zlib/iostream2/zstream.h b/tests/summarycode/data/tallies/copyright_tallies/scan/zlib/iostream2/zstream.h similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/zlib/iostream2/zstream.h rename to tests/summarycode/data/tallies/copyright_tallies/scan/zlib/iostream2/zstream.h diff --git a/tests/summarycode/data/copyright_summary/scan/zlib/zlib.h b/tests/summarycode/data/tallies/copyright_tallies/scan/zlib/zlib.h similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/zlib/zlib.h rename to tests/summarycode/data/tallies/copyright_tallies/scan/zlib/zlib.h diff --git a/tests/summarycode/data/copyright_summary/scan/zlib/zutil.c b/tests/summarycode/data/tallies/copyright_tallies/scan/zlib/zutil.c similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/zlib/zutil.c rename to tests/summarycode/data/tallies/copyright_tallies/scan/zlib/zutil.c diff --git a/tests/summarycode/data/copyright_summary/scan/zlib/zutil.h b/tests/summarycode/data/tallies/copyright_tallies/scan/zlib/zutil.h similarity index 100% rename from tests/summarycode/data/copyright_summary/scan/zlib/zutil.h rename to tests/summarycode/data/tallies/copyright_tallies/scan/zlib/zutil.h diff --git a/tests/summarycode/data/summary2/copyright/scan2/jetty.LICENSE b/tests/summarycode/data/tallies/copyright_tallies/scan2/jetty.LICENSE similarity index 100% rename from tests/summarycode/data/summary2/copyright/scan2/jetty.LICENSE rename to tests/summarycode/data/tallies/copyright_tallies/scan2/jetty.LICENSE diff --git a/tests/summarycode/data/copyright_summary/summary.expected.json b/tests/summarycode/data/tallies/copyright_tallies/tallies.expected.json similarity index 99% rename from tests/summarycode/data/copyright_summary/summary.expected.json rename to tests/summarycode/data/tallies/copyright_tallies/tallies.expected.json index d68208a3e1c..5b6db8a6812 100644 --- a/tests/summarycode/data/copyright_summary/summary.expected.json +++ b/tests/summarycode/data/tallies/copyright_tallies/tallies.expected.json @@ -6,19 +6,20 @@ "input": "", "--copyright": true, "--json-pp": "", - "--summary": true + "--tallies": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "1.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 24 } } ], - "summary": { + "tallies": { "copyrights": [ { "value": null, diff --git a/tests/summarycode/data/copyright_summary/summary2.expected.json b/tests/summarycode/data/tallies/copyright_tallies/tallies2.expected.json similarity index 93% rename from tests/summarycode/data/copyright_summary/summary2.expected.json rename to tests/summarycode/data/tallies/copyright_tallies/tallies2.expected.json index ddff16be544..e7da856aa4d 100644 --- a/tests/summarycode/data/copyright_summary/summary2.expected.json +++ b/tests/summarycode/data/tallies/copyright_tallies/tallies2.expected.json @@ -6,19 +6,20 @@ "input": "", "--copyright": true, "--json-pp": "", - "--summary": true + "--tallies": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "1.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 1 } } ], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Mort Bay Consulting Pty. Ltd. (Australia) and others", diff --git a/tests/summarycode/data/copyright_summary/summary_details.expected.json b/tests/summarycode/data/tallies/copyright_tallies/tallies_details.expected.json similarity index 97% rename from tests/summarycode/data/copyright_summary/summary_details.expected.json rename to tests/summarycode/data/tallies/copyright_tallies/tallies_details.expected.json index 35f508662f2..d8ca6edcb35 100644 --- a/tests/summarycode/data/copyright_summary/summary_details.expected.json +++ b/tests/summarycode/data/tallies/copyright_tallies/tallies_details.expected.json @@ -6,19 +6,20 @@ "input": "", "--copyright": true, "--json-pp": "", - "--summary-with-details": true + "--tallies-with-details": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "1.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 24 } } ], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -145,7 +146,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -273,7 +274,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -337,7 +338,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -413,7 +414,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright JBoss Inc., and individual contributors", @@ -459,7 +460,7 @@ "end_line": 10 } ], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Brian Goetz and Tim Peierls", @@ -499,7 +500,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright Red Hat, Inc. and individual contributors", @@ -533,7 +534,7 @@ "end_line": 4 } ], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -567,7 +568,7 @@ "end_line": 3 } ], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -607,7 +608,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright Red Hat Middleware LLC, and individual contributors", @@ -641,7 +642,7 @@ "end_line": 3 } ], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -669,7 +670,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -697,7 +698,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly", @@ -753,7 +754,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Mark Adler", @@ -793,7 +794,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly and Mark Adler", @@ -833,7 +834,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly", @@ -861,7 +862,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly", @@ -945,7 +946,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Dmitriy Anisimkov", @@ -985,7 +986,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Dmitriy Anisimkov", @@ -1025,7 +1026,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Mark Adler", @@ -1065,7 +1066,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly and Mark Adler", @@ -1105,7 +1106,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly", @@ -1133,7 +1134,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) by Henrik Ravn", @@ -1177,7 +1178,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) by Henrik Ravn", @@ -1217,7 +1218,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright Henrik Ravn", @@ -1245,7 +1246,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly, Brian Raiter and Gilles Vollant", @@ -1291,7 +1292,7 @@ "end_line": 12 } ], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly, Brian Raiter and Gilles Vollant", @@ -1319,7 +1320,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Mark Adler", @@ -1359,7 +1360,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Mark Adler", @@ -1399,7 +1400,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Mark Adler", @@ -1427,7 +1428,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Christian Michelsen Research AS Advanced Computing", @@ -1467,7 +1468,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Christian Michelsen Research AS Advanced Computing", @@ -1507,7 +1508,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly and Mark Adler", @@ -1547,7 +1548,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly", @@ -1587,7 +1588,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly", diff --git a/tests/summarycode/data/copyright_summary/summary_details.expected2.json b/tests/summarycode/data/tallies/copyright_tallies/tallies_details.expected2.json similarity index 97% rename from tests/summarycode/data/copyright_summary/summary_details.expected2.json rename to tests/summarycode/data/tallies/copyright_tallies/tallies_details.expected2.json index 98065c7d208..b134fc9a91c 100644 --- a/tests/summarycode/data/copyright_summary/summary_details.expected2.json +++ b/tests/summarycode/data/tallies/copyright_tallies/tallies_details.expected2.json @@ -6,19 +6,20 @@ "input": "", "--copyright": true, "--json": "", - "--summary-with-details": true + "--tallies-with-details": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "1.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 24 } } ], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -145,7 +146,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -273,7 +274,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -337,7 +338,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -413,7 +414,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright JBoss Inc., and individual contributors", @@ -459,7 +460,7 @@ "end_line": 10 } ], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Brian Goetz and Tim Peierls", @@ -499,7 +500,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright Red Hat, Inc. and individual contributors", @@ -533,7 +534,7 @@ "end_line": 4 } ], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -567,7 +568,7 @@ "end_line": 3 } ], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -607,7 +608,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright Red Hat Middleware LLC, and individual contributors", @@ -641,7 +642,7 @@ "end_line": 3 } ], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -669,7 +670,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -697,7 +698,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly", @@ -753,7 +754,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Mark Adler", @@ -793,7 +794,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly and Mark Adler", @@ -833,7 +834,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly", @@ -861,7 +862,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly", @@ -945,7 +946,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Dmitriy Anisimkov", @@ -985,7 +986,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Dmitriy Anisimkov", @@ -1025,7 +1026,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Mark Adler", @@ -1065,7 +1066,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly and Mark Adler", @@ -1105,7 +1106,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly", @@ -1133,7 +1134,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) by Henrik Ravn", @@ -1177,7 +1178,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) by Henrik Ravn", @@ -1217,7 +1218,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright Henrik Ravn", @@ -1245,7 +1246,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly, Brian Raiter and Gilles Vollant", @@ -1291,7 +1292,7 @@ "end_line": 12 } ], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly, Brian Raiter and Gilles Vollant", @@ -1319,7 +1320,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Mark Adler", @@ -1359,7 +1360,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Mark Adler", @@ -1399,7 +1400,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Mark Adler", @@ -1427,7 +1428,7 @@ "copyrights": [], "holders": [], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Christian Michelsen Research AS Advanced Computing", @@ -1467,7 +1468,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Christian Michelsen Research AS Advanced Computing", @@ -1507,7 +1508,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly and Mark Adler", @@ -1547,7 +1548,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly", @@ -1587,7 +1588,7 @@ } ], "authors": [], - "summary": { + "tallies": { "copyrights": [ { "value": "Copyright (c) Jean-loup Gailly", diff --git a/tests/summarycode/data/copyright_summary/summary_key_files.expected.json b/tests/summarycode/data/tallies/copyright_tallies/tallies_key_files.expected.json similarity index 99% rename from tests/summarycode/data/copyright_summary/summary_key_files.expected.json rename to tests/summarycode/data/tallies/copyright_tallies/tallies_key_files.expected.json index aa085e7a2d1..92e006cad3e 100644 --- a/tests/summarycode/data/copyright_summary/summary_key_files.expected.json +++ b/tests/summarycode/data/tallies/copyright_tallies/tallies_key_files.expected.json @@ -8,20 +8,21 @@ "--copyright": true, "--info": true, "--json-pp": "", - "--summary": true, - "--summary-key-files": true + "--tallies": true, + "--tallies-key-files": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "1.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 24 } } ], - "summary": { + "tallies": { "copyrights": [ { "value": null, @@ -159,7 +160,7 @@ } ] }, - "summary_of_key_files": { + "tallies_of_key_files": { "copyrights": [], "holders": [], "authors": [], diff --git a/tests/summarycode/data/end-2-end/bug-1141.expected.json b/tests/summarycode/data/tallies/end-2-end/bug-1141.expected.json similarity index 99% rename from tests/summarycode/data/end-2-end/bug-1141.expected.json rename to tests/summarycode/data/tallies/end-2-end/bug-1141.expected.json index 6a4217ccbe4..22c6a7dbbc9 100644 --- a/tests/summarycode/data/end-2-end/bug-1141.expected.json +++ b/tests/summarycode/data/tallies/end-2-end/bug-1141.expected.json @@ -13,22 +13,23 @@ "--json-pp": "", "--license": true, "--package": true, - "--summary": true, - "--summary-key-files": true + "--tallies": true, + "--tallies-key-files": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.14", + "spdx_license_list_version": "3.16", "files_count": 4 } } ], "dependencies": [], "packages": [], - "summary": { + "tallies": { "license_expressions": [ { "value": "gpl-2.0-plus", @@ -76,7 +77,7 @@ } ] }, - "summary_of_key_files": { + "tallies_of_key_files": { "license_expressions": [ { "value": "gpl-3.0-plus", diff --git a/tests/summarycode/data/summary2/end-2-end/bug-1141.tar.gz b/tests/summarycode/data/tallies/end-2-end/bug-1141.tar.gz similarity index 100% rename from tests/summarycode/data/summary2/end-2-end/bug-1141.tar.gz rename to tests/summarycode/data/tallies/end-2-end/bug-1141.tar.gz diff --git a/tests/summarycode/data/full_summary/scan/JGroups/src/FixedMembershipToken.java b/tests/summarycode/data/tallies/full_tallies/scan/JGroups/src/FixedMembershipToken.java similarity index 100% rename from tests/summarycode/data/full_summary/scan/JGroups/src/FixedMembershipToken.java rename to tests/summarycode/data/tallies/full_tallies/scan/JGroups/src/FixedMembershipToken.java diff --git a/tests/summarycode/data/full_summary/scan/JGroups/src/GuardedBy.java b/tests/summarycode/data/tallies/full_tallies/scan/JGroups/src/GuardedBy.java similarity index 100% rename from tests/summarycode/data/full_summary/scan/JGroups/src/GuardedBy.java rename to tests/summarycode/data/tallies/full_tallies/scan/JGroups/src/GuardedBy.java diff --git a/tests/summarycode/data/full_summary/scan/JGroups/src/ImmutableReference.java b/tests/summarycode/data/tallies/full_tallies/scan/JGroups/src/ImmutableReference.java similarity index 100% rename from tests/summarycode/data/full_summary/scan/JGroups/src/ImmutableReference.java rename to tests/summarycode/data/tallies/full_tallies/scan/JGroups/src/ImmutableReference.java diff --git a/tests/summarycode/data/full_summary/scan/JGroups/src/RATE_LIMITER.java b/tests/summarycode/data/tallies/full_tallies/scan/JGroups/src/RATE_LIMITER.java similarity index 100% rename from tests/summarycode/data/full_summary/scan/JGroups/src/RATE_LIMITER.java rename to tests/summarycode/data/tallies/full_tallies/scan/JGroups/src/RATE_LIMITER.java diff --git a/tests/summarycode/data/full_summary/scan/JGroups/src/RouterStub.java b/tests/summarycode/data/tallies/full_tallies/scan/JGroups/src/RouterStub.java similarity index 100% rename from tests/summarycode/data/full_summary/scan/JGroups/src/RouterStub.java rename to tests/summarycode/data/tallies/full_tallies/scan/JGroups/src/RouterStub.java diff --git a/tests/summarycode/data/full_summary/scan/JGroups/src/RouterStubManager.java b/tests/summarycode/data/tallies/full_tallies/scan/JGroups/src/RouterStubManager.java similarity index 100% rename from tests/summarycode/data/full_summary/scan/JGroups/src/RouterStubManager.java rename to tests/summarycode/data/tallies/full_tallies/scan/JGroups/src/RouterStubManager.java diff --git a/tests/summarycode/data/full_summary/scan/JGroups/src/S3_PING.java b/tests/summarycode/data/tallies/full_tallies/scan/JGroups/src/S3_PING.java similarity index 100% rename from tests/summarycode/data/full_summary/scan/JGroups/src/S3_PING.java rename to tests/summarycode/data/tallies/full_tallies/scan/JGroups/src/S3_PING.java diff --git a/tests/summarycode/data/full_summary/scan/README b/tests/summarycode/data/tallies/full_tallies/scan/README similarity index 100% rename from tests/summarycode/data/full_summary/scan/README rename to tests/summarycode/data/tallies/full_tallies/scan/README diff --git a/tests/summarycode/data/full_summary/scan/arch/adler32.c b/tests/summarycode/data/tallies/full_tallies/scan/arch/adler32.c similarity index 100% rename from tests/summarycode/data/full_summary/scan/arch/adler32.c rename to tests/summarycode/data/tallies/full_tallies/scan/arch/adler32.c diff --git a/tests/summarycode/data/full_summary/scan/arch/zlib.h b/tests/summarycode/data/tallies/full_tallies/scan/arch/zlib.h similarity index 100% rename from tests/summarycode/data/full_summary/scan/arch/zlib.h rename to tests/summarycode/data/tallies/full_tallies/scan/arch/zlib.h diff --git a/tests/summarycode/data/full_summary/scan/arch/zutil.h b/tests/summarycode/data/tallies/full_tallies/scan/arch/zutil.h similarity index 100% rename from tests/summarycode/data/full_summary/scan/arch/zutil.h rename to tests/summarycode/data/tallies/full_tallies/scan/arch/zutil.h diff --git a/tests/summarycode/data/full_summary/scan/cc0-1.0.LICENSE b/tests/summarycode/data/tallies/full_tallies/scan/cc0-1.0.LICENSE similarity index 100% rename from tests/summarycode/data/full_summary/scan/cc0-1.0.LICENSE rename to tests/summarycode/data/tallies/full_tallies/scan/cc0-1.0.LICENSE diff --git a/tests/summarycode/data/full_summary/scan/package.json b/tests/summarycode/data/tallies/full_tallies/scan/package.json similarity index 100% rename from tests/summarycode/data/full_summary/scan/package.json rename to tests/summarycode/data/tallies/full_tallies/scan/package.json diff --git a/tests/summarycode/data/full_summary/scan/zlib/ada/zlib.ads b/tests/summarycode/data/tallies/full_tallies/scan/zlib/ada/zlib.ads similarity index 100% rename from tests/summarycode/data/full_summary/scan/zlib/ada/zlib.ads rename to tests/summarycode/data/tallies/full_tallies/scan/zlib/ada/zlib.ads diff --git a/tests/summarycode/data/full_summary/scan/zlib/adler32.c b/tests/summarycode/data/tallies/full_tallies/scan/zlib/adler32.c similarity index 100% rename from tests/summarycode/data/full_summary/scan/zlib/adler32.c rename to tests/summarycode/data/tallies/full_tallies/scan/zlib/adler32.c diff --git a/tests/summarycode/data/full_summary/scan/zlib/deflate.c b/tests/summarycode/data/tallies/full_tallies/scan/zlib/deflate.c similarity index 100% rename from tests/summarycode/data/full_summary/scan/zlib/deflate.c rename to tests/summarycode/data/tallies/full_tallies/scan/zlib/deflate.c diff --git a/tests/summarycode/data/full_summary/scan/zlib/deflate.h b/tests/summarycode/data/tallies/full_tallies/scan/zlib/deflate.h similarity index 100% rename from tests/summarycode/data/full_summary/scan/zlib/deflate.h rename to tests/summarycode/data/tallies/full_tallies/scan/zlib/deflate.h diff --git a/tests/summarycode/data/full_summary/scan/zlib/dotzlib/AssemblyInfo.cs b/tests/summarycode/data/tallies/full_tallies/scan/zlib/dotzlib/AssemblyInfo.cs similarity index 100% rename from tests/summarycode/data/full_summary/scan/zlib/dotzlib/AssemblyInfo.cs rename to tests/summarycode/data/tallies/full_tallies/scan/zlib/dotzlib/AssemblyInfo.cs diff --git a/tests/summarycode/data/full_summary/scan/zlib/dotzlib/ChecksumImpl.cs b/tests/summarycode/data/tallies/full_tallies/scan/zlib/dotzlib/ChecksumImpl.cs similarity index 100% rename from tests/summarycode/data/full_summary/scan/zlib/dotzlib/ChecksumImpl.cs rename to tests/summarycode/data/tallies/full_tallies/scan/zlib/dotzlib/ChecksumImpl.cs diff --git a/tests/summarycode/data/full_summary/scan/zlib/gcc_gvmat64/gvmat64.S b/tests/summarycode/data/tallies/full_tallies/scan/zlib/gcc_gvmat64/gvmat64.S similarity index 100% rename from tests/summarycode/data/full_summary/scan/zlib/gcc_gvmat64/gvmat64.S rename to tests/summarycode/data/tallies/full_tallies/scan/zlib/gcc_gvmat64/gvmat64.S diff --git a/tests/summarycode/data/full_summary/scan/zlib/infback9/infback9.c b/tests/summarycode/data/tallies/full_tallies/scan/zlib/infback9/infback9.c similarity index 100% rename from tests/summarycode/data/full_summary/scan/zlib/infback9/infback9.c rename to tests/summarycode/data/tallies/full_tallies/scan/zlib/infback9/infback9.c diff --git a/tests/summarycode/data/full_summary/scan/zlib/infback9/infback9.h b/tests/summarycode/data/tallies/full_tallies/scan/zlib/infback9/infback9.h similarity index 100% rename from tests/summarycode/data/full_summary/scan/zlib/infback9/infback9.h rename to tests/summarycode/data/tallies/full_tallies/scan/zlib/infback9/infback9.h diff --git a/tests/summarycode/data/full_summary/scan/zlib/iostream2/zstream.h b/tests/summarycode/data/tallies/full_tallies/scan/zlib/iostream2/zstream.h similarity index 100% rename from tests/summarycode/data/full_summary/scan/zlib/iostream2/zstream.h rename to tests/summarycode/data/tallies/full_tallies/scan/zlib/iostream2/zstream.h diff --git a/tests/summarycode/data/full_summary/scan/zlib/zlib.h b/tests/summarycode/data/tallies/full_tallies/scan/zlib/zlib.h similarity index 100% rename from tests/summarycode/data/full_summary/scan/zlib/zlib.h rename to tests/summarycode/data/tallies/full_tallies/scan/zlib/zlib.h diff --git a/tests/summarycode/data/full_summary/scan/zlib/zutil.c b/tests/summarycode/data/tallies/full_tallies/scan/zlib/zutil.c similarity index 100% rename from tests/summarycode/data/full_summary/scan/zlib/zutil.c rename to tests/summarycode/data/tallies/full_tallies/scan/zlib/zutil.c diff --git a/tests/summarycode/data/full_summary/scan/zlib/zutil.h b/tests/summarycode/data/tallies/full_tallies/scan/zlib/zutil.h similarity index 100% rename from tests/summarycode/data/full_summary/scan/zlib/zutil.h rename to tests/summarycode/data/tallies/full_tallies/scan/zlib/zutil.h diff --git a/tests/summarycode/data/full_summary/summary.expected.json b/tests/summarycode/data/tallies/full_tallies/tallies.expected.json similarity index 99% rename from tests/summarycode/data/full_summary/summary.expected.json rename to tests/summarycode/data/tallies/full_tallies/tallies.expected.json index f16b9e79f96..127e8e7684c 100644 --- a/tests/summarycode/data/full_summary/summary.expected.json +++ b/tests/summarycode/data/tallies/full_tallies/tallies.expected.json @@ -9,12 +9,13 @@ "--json-pp": "", "--license": true, "--package": true, - "--summary": true + "--tallies": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 26 @@ -3200,7 +3201,7 @@ "api_data_url": "https://registry.npmjs.org/npm/2.13.5" } ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", diff --git a/tests/summarycode/data/full_summary/summary_by_facet.expected.json b/tests/summarycode/data/tallies/full_tallies/tallies_by_facet.expected.json similarity index 99% rename from tests/summarycode/data/full_summary/summary_by_facet.expected.json rename to tests/summarycode/data/tallies/full_tallies/tallies_by_facet.expected.json index 5833a2cc7ac..ead32eb0e8e 100644 --- a/tests/summarycode/data/full_summary/summary_by_facet.expected.json +++ b/tests/summarycode/data/tallies/full_tallies/tallies_by_facet.expected.json @@ -18,14 +18,15 @@ "--json-pp": "", "--license": true, "--package": true, - "--summary": true, - "--summary-by-facet": true, + "--tallies": true, + "--tallies-by-facet": true, "--url": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 26 @@ -3211,7 +3212,7 @@ "api_data_url": "https://registry.npmjs.org/npm/2.13.5" } ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -3387,10 +3388,10 @@ } ] }, - "summary_by_facet": [ + "tallies_by_facet": [ { "facet": "core", - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -3461,7 +3462,7 @@ }, { "facet": "dev", - "summary": { + "tallies": { "license_expressions": [ { "value": "lgpl-2.1-plus", @@ -3556,7 +3557,7 @@ }, { "facet": "tests", - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -3586,7 +3587,7 @@ }, { "facet": "docs", - "summary": { + "tallies": { "license_expressions": [], "copyrights": [], "holders": [], @@ -3596,7 +3597,7 @@ }, { "facet": "data", - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -3631,7 +3632,7 @@ }, { "facet": "examples", - "summary": { + "tallies": { "license_expressions": [], "copyrights": [], "holders": [], diff --git a/tests/summarycode/data/full_summary/summary_details.expected.json b/tests/summarycode/data/tallies/full_tallies/tallies_details.expected.json similarity index 99% rename from tests/summarycode/data/full_summary/summary_details.expected.json rename to tests/summarycode/data/tallies/full_tallies/tallies_details.expected.json index ae86fc44375..f491069f71c 100644 --- a/tests/summarycode/data/full_summary/summary_details.expected.json +++ b/tests/summarycode/data/tallies/full_tallies/tallies_details.expected.json @@ -9,12 +9,13 @@ "--json-pp": "", "--license": true, "--package": true, - "--summary-with-details": true + "--tallies-with-details": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 26 @@ -3200,7 +3201,7 @@ "api_data_url": "https://registry.npmjs.org/npm/2.13.5" } ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -3404,7 +3405,7 @@ "authors": [], "package_data": [], "for_packages": [], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -3612,7 +3613,7 @@ "authors": [], "package_data": [], "for_packages": [], - "summary": { + "tallies": { "license_expressions": [ { "value": "lgpl-2.1-plus", @@ -3716,7 +3717,7 @@ "authors": [], "package_data": [], "for_packages": [], - "summary": { + "tallies": { "license_expressions": [ { "value": "lgpl-2.1-plus", @@ -3875,7 +3876,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "lgpl-2.1-plus", @@ -4000,7 +4001,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "cc-by-2.5", @@ -4119,7 +4120,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "lgpl-2.1-plus", @@ -4191,7 +4192,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": null, @@ -4263,7 +4264,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": null, @@ -4382,7 +4383,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "lgpl-2.1-plus", @@ -4454,7 +4455,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": null, @@ -4520,7 +4521,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": null, @@ -4584,7 +4585,7 @@ "authors": [], "package_data": [], "for_packages": [], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -4721,7 +4722,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -4840,7 +4841,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -4961,7 +4962,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -5068,7 +5069,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "cc0-1.0", @@ -8096,7 +8097,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "artistic-2.0", @@ -8160,7 +8161,7 @@ "authors": [], "package_data": [], "for_packages": [], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -8300,7 +8301,7 @@ "authors": [], "package_data": [], "for_packages": [], - "summary": { + "tallies": { "license_expressions": [ { "value": "gpl-2.0-plus WITH ada-linking-exception", @@ -8454,7 +8455,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "gpl-2.0-plus WITH ada-linking-exception", @@ -8575,7 +8576,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -8696,7 +8697,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -8817,7 +8818,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -8881,7 +8882,7 @@ "authors": [], "package_data": [], "for_packages": [], - "summary": { + "tallies": { "license_expressions": [ { "value": "boost-1.0", @@ -8963,7 +8964,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": null, @@ -9084,7 +9085,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "boost-1.0", @@ -9148,7 +9149,7 @@ "authors": [], "package_data": [], "for_packages": [], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -9273,7 +9274,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -9337,7 +9338,7 @@ "authors": [], "package_data": [], "for_packages": [], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -9458,7 +9459,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -9579,7 +9580,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -9643,7 +9644,7 @@ "authors": [], "package_data": [], "for_packages": [], - "summary": { + "tallies": { "license_expressions": [ { "value": "mit-old-style", @@ -9762,7 +9763,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "mit-old-style", @@ -9881,7 +9882,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -10002,7 +10003,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -10123,7 +10124,7 @@ "for_packages": [ "pkg:npm/npm@2.13.5" ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", diff --git a/tests/summarycode/data/full_summary/summary_key_files-details.expected.json-lines b/tests/summarycode/data/tallies/full_tallies/tallies_key_files-details.expected.json-lines similarity index 99% rename from tests/summarycode/data/full_summary/summary_key_files-details.expected.json-lines rename to tests/summarycode/data/tallies/full_tallies/tallies_key_files-details.expected.json-lines index d41d76cac3f..530f02b9822 100644 --- a/tests/summarycode/data/full_summary/summary_key_files-details.expected.json-lines +++ b/tests/summarycode/data/tallies/full_tallies/tallies_key_files-details.expected.json-lines @@ -10,22 +10,23 @@ "--info": true, "--json-lines": "", "--license": true, - "--summary": true, - "--summary-key-files": true + "--tallies": true, + "--tallies-key-files": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 26 } } ] }, { - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -203,7 +204,7 @@ } }, { - "summary_of_key_files": { + "tallies_of_key_files": { "license_expressions": [ { "value": "artistic-2.0", diff --git a/tests/summarycode/data/full_summary/summary_key_files.expected.json b/tests/summarycode/data/tallies/full_tallies/tallies_key_files.expected.json similarity index 99% rename from tests/summarycode/data/full_summary/summary_key_files.expected.json rename to tests/summarycode/data/tallies/full_tallies/tallies_key_files.expected.json index 316685c5c65..8325a131250 100644 --- a/tests/summarycode/data/full_summary/summary_key_files.expected.json +++ b/tests/summarycode/data/tallies/full_tallies/tallies_key_files.expected.json @@ -9,20 +9,21 @@ "--info": true, "--json-pp": "", "--license": true, - "--summary": true, - "--summary-key-files": true + "--tallies": true, + "--tallies-key-files": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { - "spdx_license_list_version": "3.15", + "spdx_license_list_version": "3.16", "files_count": 26 } } ], - "summary": { + "tallies": { "license_expressions": [ { "value": "zlib", @@ -198,7 +199,7 @@ } ] }, - "summary_of_key_files": { + "tallies_of_key_files": { "license_expressions": [ { "value": "artistic-2.0", diff --git a/tests/summarycode/data/packages/expected.json b/tests/summarycode/data/tallies/packages/expected.json similarity index 99% rename from tests/summarycode/data/packages/expected.json rename to tests/summarycode/data/tallies/packages/expected.json index 83e75c09fb3..6826bb3bde0 100644 --- a/tests/summarycode/data/packages/expected.json +++ b/tests/summarycode/data/tallies/packages/expected.json @@ -6,12 +6,13 @@ "input": "", "--json-pp": "", "--package": true, - "--summary": true + "--tallies": true }, "notice": "Generated with ScanCode and provided on an \"AS IS\" BASIS, WITHOUT WARRANTIES\nOR CONDITIONS OF ANY KIND, either express or implied. No content created from\nScanCode should be considered or used as legal advice. Consult an Attorney\nfor any legal advice.\nScanCode is a free software code scanning tool from nexB Inc. and others.\nVisit https://github.com/nexB/scancode-toolkit/ for support and download.", - "output_format_version": "3.0.0", + "output_format_version": "2.0.0", "message": null, "errors": [], + "warnings": [], "extra_data": { "spdx_license_list_version": "3.16", "files_count": 3 @@ -914,7 +915,7 @@ "api_data_url": "https://registry.npmjs.org/@ionic%2fapp-scripts" } ], - "summary": {}, + "tallies": {}, "files": [ { "path": "scan", diff --git a/tests/summarycode/data/packages/scan/aopalliance/aopalliance/1.0/aopalliance-1.0.pom b/tests/summarycode/data/tallies/packages/scan/aopalliance/aopalliance/1.0/aopalliance-1.0.pom similarity index 100% rename from tests/summarycode/data/packages/scan/aopalliance/aopalliance/1.0/aopalliance-1.0.pom rename to tests/summarycode/data/tallies/packages/scan/aopalliance/aopalliance/1.0/aopalliance-1.0.pom diff --git a/tests/summarycode/data/packages/scan/freebsd/basic/+COMPACT_MANIFEST b/tests/summarycode/data/tallies/packages/scan/freebsd/basic/+COMPACT_MANIFEST similarity index 100% rename from tests/summarycode/data/packages/scan/freebsd/basic/+COMPACT_MANIFEST rename to tests/summarycode/data/tallies/packages/scan/freebsd/basic/+COMPACT_MANIFEST diff --git a/tests/summarycode/data/packages/scan/scoped1/package.json b/tests/summarycode/data/tallies/packages/scan/scoped1/package.json similarity index 100% rename from tests/summarycode/data/packages/scan/scoped1/package.json rename to tests/summarycode/data/tallies/packages/scan/scoped1/package.json diff --git a/tests/summarycode/test_summarizer.py b/tests/summarycode/test_summarizer.py index e51631041cb..b0250587ee1 100644 --- a/tests/summarycode/test_summarizer.py +++ b/tests/summarycode/test_summarizer.py @@ -7,7 +7,7 @@ # See https://aboutcode.org for more information about nexB OSS projects. # - +from copy import copy from os import path import pytest @@ -15,9 +15,11 @@ from commoncode.testcase import FileDrivenTesting from scancode.cli_test_utils import check_json_scan -from scancode.cli_test_utils import check_jsonlines_scan from scancode.cli_test_utils import run_scan_click from scancode_config import REGEN_TEST_FIXTURES +from summarycode.summarizer import remove_from_tallies +from summarycode.summarizer import get_primary_language +from summarycode.summarizer import get_holders_from_copyright pytestmark = pytest.mark.scanslow @@ -27,115 +29,222 @@ class TestScanSummary(FileDrivenTesting): test_data_dir = path.join(path.dirname(__file__), 'data') - def test_copyright_summary_base(self): - test_dir = self.get_test_loc('copyright_summary/scan') + def test_end2end_summary_and_classify_works_with_empty_dir_and_empty_values(self): + test_dir = self.extract_test_tar('summary/end-2-end/bug-1141.tar.gz') result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('copyright_summary/summary.expected.json') - run_scan_click(['-c', '--summary', '--json-pp', result_file, test_dir]) - check_json_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + expected_file = self.get_test_loc('summary/end-2-end/bug-1141.expected.json') + run_scan_click([ + '-clip', + '--summary', + '--classify', + '--json-pp', result_file, test_dir + ]) + check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - def test_copyright_summary_with_details(self): - test_dir = self.get_test_loc('copyright_summary/scan') + def test_summary_license_ambiguity_unambiguous(self): + test_dir = self.get_test_loc('summary/license_ambiguity/unambiguous') result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('copyright_summary/summary_details.expected.json') - run_scan_click(['-c', '--summary-with-details', '--json-pp', result_file, test_dir]) - check_json_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + expected_file = self.get_test_loc('summary/license_ambiguity/unambiguous.expected.json') + run_scan_click([ + '-clip', + '--summary', + '--classify', + '--json-pp', result_file, test_dir + ]) + check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - def test_copyright_summary_with_details_plain_json(self): - test_dir = self.get_test_loc('copyright_summary/scan') + def test_summary_license_ambiguity_ambiguous(self): + test_dir = self.get_test_loc('summary/license_ambiguity/ambiguous') result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('copyright_summary/summary_details.expected2.json') - run_scan_click(['-c', '--summary-with-details', '--json', result_file, test_dir]) - check_json_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + expected_file = self.get_test_loc('summary/license_ambiguity/ambiguous.expected.json') + run_scan_click([ + '-clip', + '--summary', + '--classify', + '--json-pp', result_file, test_dir + ]) + check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - def test_copyright_summary_does_not_crash(self): - test_dir = self.get_test_loc('copyright_summary/scan2') + def test_summary_single_file_with_origin_info(self): + test_dir = self.get_test_loc('summary/single_file/codebase') result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('copyright_summary/summary2.expected.json') - run_scan_click(['-c', '--summary', '--json-pp', result_file, test_dir]) - check_json_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + expected_file = self.get_test_loc('summary/single_file/single_file.expected.json') + run_scan_click([ + '-clip', + '--summary', + '--classify', + '--json-pp', result_file, test_dir + ]) + check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - def test_full_summary_base(self): - test_dir = self.get_test_loc('full_summary/scan') + def test_summary_conflicting_license_categories(self): + test_dir = self.get_test_loc('summary/conflicting_license_categories/codebase') result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('full_summary/summary.expected.json') - run_scan_click(['-clip', '--summary', '--json-pp', result_file, test_dir]) + expected_file = self.get_test_loc('summary/conflicting_license_categories/conflicting_license_categories.expected.json') + run_scan_click([ + '-clip', + '--summary', + '--classify', + '--json-pp', result_file, test_dir + ]) check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - def test_full_summary_with_details(self): - test_dir = self.get_test_loc('full_summary/scan') + def test_summary_with_package_data(self): + test_dir = self.get_test_loc('summary/with_package_data/codebase') result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('full_summary/summary_details.expected.json') - run_scan_click(['-clip', '--summary-with-details', '--json-pp', result_file, test_dir]) + expected_file = self.get_test_loc('summary/with_package_data/with_package_data.expected.json') + run_scan_click([ + '-clip', + '--summary', + '--classify', + '--json-pp', result_file, test_dir + ]) check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - def test_copyright_summary_key_files(self): - test_dir = self.get_test_loc('copyright_summary/scan') + def test_summary_without_package_data(self): + test_dir = self.get_test_loc('summary/without_package_data/codebase') result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('copyright_summary/summary_key_files.expected.json') - run_scan_click( - ['-c', '-i', '--classify', '--summary', '--summary-key-files', - '--json-pp', result_file, test_dir]) - - check_json_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + expected_file = self.get_test_loc('summary/without_package_data/without_package_data.expected.json') + run_scan_click([ + '-clip', + '--summary', + '--classify', + '--json-pp', result_file, test_dir + ]) + check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - def test_full_summary_key_files(self): - test_dir = self.get_test_loc('full_summary/scan') - result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('full_summary/summary_key_files.expected.json') - run_scan_click( - ['-cli', '--classify', '--summary', '--summary-key-files', - '--json-pp', result_file, test_dir]) - check_json_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - - def test_full_summary_key_files_json_lines(self): - test_dir = self.get_test_loc('full_summary/scan') + def test_summary_multiple_package_data(self): + test_dir = self.get_test_loc('summary/multiple_package_data/codebase') result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('full_summary/summary_key_files-details.expected.json-lines') - run_scan_click( - ['-cli', '--classify', '--summary', '--summary-key-files', - '--json-lines', result_file, test_dir]) - check_jsonlines_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - - def test_full_summary_by_facet(self): - test_dir = self.get_test_loc('full_summary/scan') - result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('full_summary/summary_by_facet.expected.json') + expected_file = self.get_test_loc('summary/multiple_package_data/multiple_package_data.expected.json') run_scan_click([ - '-clpieu', - '--facet', 'dev=*.java', - '--facet', 'dev=*.cs', - '--facet', 'dev=*ada*', - '--facet', 'data=*.S', - '--facet', 'tests=*infback9*', - '--facet', 'docs=*README', + '-clip', '--summary', - '--summary-by-facet', + '--classify', '--json-pp', result_file, test_dir ]) check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - def test_end2end_summary_and_classify_works_with_empty_dir_and_empty_values(self): - test_dir = self.extract_test_tar('end-2-end/bug-1141.tar.gz') + def test_summary_clear_holder(self): + test_dir = self.get_test_loc('summary/holders/clear_holder') result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('end-2-end/bug-1141.expected.json') + expected_file = self.get_test_loc('summary/holders/clear_holder.expected.json') run_scan_click([ '-clip', - '--classify', - '--facet', 'dev=*.java', '--summary', - '--summary-key-files', + '--classify', '--json-pp', result_file, test_dir ]) check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - def test_summary_with_packages_reports_packages_with_files(self): - test_dir = self.get_test_loc('packages/scan') + def test_summary_combined_holders(self): + test_dir = self.get_test_loc('summary/holders/combined_holders') result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('packages/expected.json') + expected_file = self.get_test_loc('summary/holders/combined_holders.expected.json') run_scan_click([ - '--package', + '-clip', '--summary', + '--classify', '--json-pp', result_file, test_dir ]) check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + + def test_remove_from_tallies(self): + tallies = [ + { + 'value': 'apache-2.0', + 'count': 5, + }, + { + 'value': 'mit', + 'count': 2, + }, + { + 'value': 'gpl-3.0', + 'count': 1, + } + ] + + test_entry_1 = { + 'value': 'apache-2.0', + 'count': 5, + } + expected_1 = [ + { + 'value': 'mit', + 'count': 2, + }, + { + 'value': 'gpl-3.0', + 'count': 1, + } + ] + result_1 = remove_from_tallies(test_entry_1, copy(tallies)) + assert(result_1, expected_1) + + test_entry_2 = [ + { + 'value': 'mit', + 'count': 2, + }, + { + 'value': 'gpl-3.0', + 'count': 1, + } + ] + expected_2 = [ + { + 'value': 'apache-2.0', + 'count': 5, + }, + ] + result_2 = remove_from_tallies(test_entry_2, copy(tallies)) + assert(result_2, expected_2) + + test_entry_3 = 'apache-2.0' + expected_3 = [ + { + 'value': 'mit', + 'count': 2, + }, + { + 'value': 'gpl-3.0', + 'count': 1, + } + ] + result_3 = remove_from_tallies(test_entry_3, copy(tallies)) + assert(result_3, expected_3) + + def test_get_primary_language(self): + language_tallies = [ + { + 'value': 'Python', + 'count': 5, + }, + { + 'value': 'Java', + 'count': 2, + }, + { + 'value': 'C++', + 'count': 1, + } + ] + expected_1 = 'Python' + result_1 = get_primary_language(language_tallies) + assert(result_1, expected_1) + + def test_get_holders_from_copyright(self): + test_copyright = 'Copyright (c) 2017, The University of Chicago. All rights reserved.' + expected_1 = ['The University of Chicago'] + result_1 = get_holders_from_copyright(test_copyright) + assert(result_1, expected_1) + + test_copyrights = [ + 'Copyright (c) 2017, The University of Chicago. All rights reserved.', + 'Copyright (c) MIT', + 'Copyright (c) Apache Software Foundation', + ] + expected_2 = ['The University of Chicago', 'MIT', 'Apache Software Foundation'] + result_2 = get_holders_from_copyright(test_copyrights) + assert(result_2, expected_2) diff --git a/tests/summarycode/test_summarizer2.py b/tests/summarycode/test_summarizer2.py deleted file mode 100644 index 34a6e620c86..00000000000 --- a/tests/summarycode/test_summarizer2.py +++ /dev/null @@ -1,84 +0,0 @@ -# -# Copyright (c) nexB Inc. and others. All rights reserved. -# ScanCode is a trademark of nexB Inc. -# SPDX-License-Identifier: Apache-2.0 -# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. -# See https://github.com/nexB/scancode-toolkit for support or download. -# See https://aboutcode.org for more information about nexB OSS projects. -# - - -from os import path - -import pytest - -from commoncode.testcase import FileDrivenTesting - -from scancode.cli_test_utils import check_json_scan -from scancode.cli_test_utils import check_jsonlines_scan -from scancode.cli_test_utils import run_scan_click -from scancode_config import REGEN_TEST_FIXTURES - - -pytestmark = pytest.mark.scanslow - - -class TestScanSummary(FileDrivenTesting): - - test_data_dir = path.join(path.dirname(__file__), 'data') - - def test_copyright_license_summary_base(self): - test_dir = self.get_test_loc('summary2/copyright/scan') - result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('summary2/copyright/scan.expected.json') - run_scan_click(['-cl', '--summary2', '--classify', '--license-clarity-score', '--json-pp', result_file, test_dir]) - check_json_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - - def test_copyright_summary_does_not_crash(self): - test_dir = self.get_test_loc('summary2/copyright/scan2') - result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('summary2/copyright/scan2.expected.json') - run_scan_click(['-cl', '--summary2', '--classify', '--license-clarity-score', '--json-pp', result_file, test_dir]) - check_json_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - - def test_full_summary_base(self): - test_dir = self.get_test_loc('summary2/full/scan') - result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('summary2/full/scan.expected.json') - run_scan_click(['-clip', '--summary2', '--classify', '--license-clarity-score', '--json-pp', result_file, test_dir]) - check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - - def test_full_summary_json_lines(self): - test_dir = self.get_test_loc('summary2/full/scan') - result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('summary2/full/scan.expected.json-lines') - run_scan_click( - ['-cli', '--summary2', '--classify', '--license-clarity-score', - '--json-lines', result_file, test_dir]) - check_jsonlines_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - - def test_end2end_summary_and_classify_works_with_empty_dir_and_empty_values(self): - test_dir = self.extract_test_tar('summary2/end-2-end/bug-1141.tar.gz') - result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('summary2/end-2-end/bug-1141.expected.json') - run_scan_click([ - '-clip', - '--summary2', - '--classify', - '--license-clarity-score', - '--json-pp', result_file, test_dir - ]) - check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) - - def test_summary_with_packages_reports_packages_with_files(self): - test_dir = self.get_test_loc('summary2/packages/scan') - result_file = self.get_temp_file('json') - expected_file = self.get_test_loc('summary2/packages/scan.expected.json') - run_scan_click([ - '--package', - '--summary2', - '--classify', - '--license-clarity-score', - '--json-pp', result_file, test_dir - ]) - check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) diff --git a/tests/summarycode/test_tallies.py b/tests/summarycode/test_tallies.py new file mode 100644 index 00000000000..40d0c7c70cb --- /dev/null +++ b/tests/summarycode/test_tallies.py @@ -0,0 +1,141 @@ +# +# Copyright (c) nexB Inc. and others. All rights reserved. +# ScanCode is a trademark of nexB Inc. +# SPDX-License-Identifier: Apache-2.0 +# See http://www.apache.org/licenses/LICENSE-2.0 for the license text. +# See https://github.com/nexB/scancode-toolkit for support or download. +# See https://aboutcode.org for more information about nexB OSS projects. +# + + +from os import path + +import pytest + +from commoncode.testcase import FileDrivenTesting + +from scancode.cli_test_utils import check_json_scan +from scancode.cli_test_utils import check_jsonlines_scan +from scancode.cli_test_utils import run_scan_click +from scancode_config import REGEN_TEST_FIXTURES + + +pytestmark = pytest.mark.scanslow + + +class TestTallies(FileDrivenTesting): + + test_data_dir = path.join(path.dirname(__file__), 'data') + + def test_copyright_summary_base(self): + test_dir = self.get_test_loc('tallies/copyright_tallies/scan') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('tallies/copyright_tallies/tallies.expected.json') + run_scan_click(['-c', '--tallies', '--json-pp', result_file, test_dir]) + check_json_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + + def test_copyright_summary_with_details(self): + test_dir = self.get_test_loc('tallies/copyright_tallies/scan') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('tallies/copyright_tallies/tallies_details.expected.json') + run_scan_click(['-c', '--tallies-with-details', '--json-pp', result_file, test_dir]) + check_json_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + + def test_copyright_summary_with_details_plain_json(self): + test_dir = self.get_test_loc('tallies/copyright_tallies/scan') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('tallies/copyright_tallies/tallies_details.expected2.json') + run_scan_click(['-c', '--tallies-with-details', '--json', result_file, test_dir]) + check_json_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + + def test_copyright_summary_does_not_crash(self): + test_dir = self.get_test_loc('tallies/copyright_tallies/scan2') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('tallies/copyright_tallies/tallies2.expected.json') + run_scan_click(['-c', '--tallies', '--json-pp', result_file, test_dir]) + check_json_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + + def test_full_summary_base(self): + test_dir = self.get_test_loc('tallies/full_tallies/scan') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('tallies/full_tallies/tallies.expected.json') + run_scan_click(['-clip', '--tallies', '--json-pp', result_file, test_dir]) + check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + + def test_full_summary_with_details(self): + test_dir = self.get_test_loc('tallies/full_tallies/scan') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('tallies/full_tallies/tallies_details.expected.json') + run_scan_click(['-clip', '--tallies-with-details', '--json-pp', result_file, test_dir]) + check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + + def test_copyright_summary_key_files(self): + test_dir = self.get_test_loc('tallies/copyright_tallies/scan') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('tallies/copyright_tallies/tallies_key_files.expected.json') + run_scan_click( + ['-c', '-i', '--classify', '--tallies', '--tallies-key-files', + '--json-pp', result_file, test_dir]) + + check_json_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + + def test_full_summary_key_files(self): + test_dir = self.get_test_loc('tallies/full_tallies/scan') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('tallies/full_tallies/tallies_key_files.expected.json') + run_scan_click( + ['-cli', '--classify', '--tallies', '--tallies-key-files', + '--json-pp', result_file, test_dir]) + check_json_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + + def test_full_summary_key_files_json_lines(self): + test_dir = self.get_test_loc('tallies/full_tallies/scan') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('tallies/full_tallies/tallies_key_files-details.expected.json-lines') + run_scan_click( + ['-cli', '--classify', '--tallies', '--tallies-key-files', + '--json-lines', result_file, test_dir]) + check_jsonlines_scan(expected_file, result_file, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + + def test_full_summary_by_facet(self): + test_dir = self.get_test_loc('tallies/full_tallies/scan') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('tallies/full_tallies/tallies_by_facet.expected.json') + run_scan_click([ + '-clpieu', + '--facet', 'dev=*.java', + '--facet', 'dev=*.cs', + '--facet', 'dev=*ada*', + '--facet', 'data=*.S', + '--facet', 'tests=*infback9*', + '--facet', 'docs=*README', + '--tallies', + '--tallies-by-facet', + '--json-pp', result_file, test_dir + ]) + check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + + def test_end2end_summary_and_classify_works_with_empty_dir_and_empty_values(self): + test_dir = self.extract_test_tar('tallies/end-2-end/bug-1141.tar.gz') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('tallies/end-2-end/bug-1141.expected.json') + run_scan_click([ + '-clip', + '--classify', + '--facet', 'dev=*.java', + '--tallies', + '--tallies-key-files', + '--json-pp', result_file, test_dir + ]) + check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES) + + def test_summary_with_packages_reports_packages_with_files(self): + test_dir = self.get_test_loc('tallies/packages/scan') + result_file = self.get_temp_file('json') + expected_file = self.get_test_loc('tallies/packages/expected.json') + run_scan_click([ + '--package', + '--tallies', + '--json-pp', result_file, test_dir + ]) + check_json_scan(expected_file, result_file, remove_instance_uuid=True, remove_file_date=True, regen=REGEN_TEST_FIXTURES)