Skip to content

Incorrect license detection #4942

@chinyeungli

Description

@chinyeungli

Description

            "license_expression": "(gpl-2.0 AND unknown) AND (gpl-2.0 OR bsd-simplified)",
            "license_expression_spdx": "(GPL-2.0-only AND LicenseRef-scancode-unknown) AND (GPL-2.0-only OR BSD-2-Clause)",
            "detection_count": 6,
            "reference_matches": [
                {
                    "license_expression": "gpl-2.0 AND unknown",
                    "license_expression_spdx": "GPL-2.0-only AND LicenseRef-scancode-unknown",
                    "from_file": "test.cpp",
                    "start_line": 7,
                    "end_line": 7,
                    "matcher": "3-seq",
                    "score": 5.1,
                    "matched_length": 5,
                    "match_coverage": 5.1,
                    "rule_relevance": 100,
                    "rule_identifier": "gpl-2.0_and_unknown_trommel_2.RULE",
                    "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/gpl-2.0_and_unknown_trommel_2.RULE",
                    "matched_text": " * released under GNU GPL v2 only licence"
                },
                {
                    "license_expression": "gpl-2.0 OR bsd-simplified",
                    "license_expression_spdx": "GPL-2.0-only OR BSD-2-Clause",
                    "from_file": "test.cpp",
                    "start_line": 7,
                    "end_line": 7,
                    "matcher": "3-seq",
                    "score": 16.13,
                    "matched_length": 5,
                    "match_coverage": 16.13,
                    "rule_relevance": 100,
                    "rule_identifier": "gpl-2.0_or_bsd-simplified_20.RULE",
                    "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/gpl-2.0_or_bsd-simplified_20.RULE",
                    "matched_text": " * released under GNU GPL v2 only licence"
                }
            ]
			
.
.
.			
			
            "reference_matches": [
                {
                    "license_expression": "gpl-2.0 AND unknown",
                    "license_expression_spdx": "GPL-2.0-only AND LicenseRef-scancode-unknown",
                    "from_file": "tmp.cpp",
                    "start_line": 7,
                    "end_line": 7,
                    "matcher": "3-seq",
                    "score": 5.1,
                    "matched_length": 5,
                    "match_coverage": 5.1,
                    "rule_relevance": 100,
                    "rule_identifier": "gpl-2.0_and_unknown_trommel_2.RULE",
                    "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/gpl-2.0_and_unknown_trommel_2.RULE",
                    "matched_text": " * released under GNU GPL v2 licence"
                },
                {
                    "license_expression": "gpl-2.0 OR bsd-simplified",
                    "license_expression_spdx": "GPL-2.0-only OR BSD-2-Clause",
                    "from_file": "tmp.cpp",
                    "start_line": 7,
                    "end_line": 7,
                    "matcher": "3-seq",
                    "score": 12.9,
                    "matched_length": 4,
                    "match_coverage": 12.9,
                    "rule_relevance": 100,
                    "rule_identifier": "gpl-2.0_or_bsd-simplified_20.RULE",
                    "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/gpl-2.0_or_bsd-simplified_20.RULE",
                    "matched_text": " * released under GNU GPL v2 licence"
                }
            ]

In this scan output, the matched texts are
* released under GNU GPL v2 only licence
and
* released under GNU GPL v2 licence

However, because the rules overlap on similar wording, the tool currently returns (gpl-2.0 AND unknown) AND (gpl-2.0 OR bsd-simplified) which is incorrect. The expected result, based on the actual matched text should be gpl-2.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions