From 4b7a3c13723f5a42cb48e20263bd319bec15a172 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Mon, 20 May 2024 13:18:21 +0530 Subject: [PATCH 01/19] Improve cargo workspace support Reference: https://github.com/nexB/scancode-toolkit/issues/3769 Signed-off-by: Ayan Sinha Mahapatra --- src/packagedcode/cargo.py | 146 +- .../cargo/cargo-with-workspace.expected.json | 1969 ---------- .../cargo-with-workspace/boring.expected.json | 1573 ++++++++ .../cargo-with-workspace/boring/Cargo.toml | 44 + .../cargo-with-workspace/boring/README.md | 12 + .../boring/boring-sys/Cargo.toml | 21 + .../boring/boring/Cargo.toml | 23 + .../boring/hyper-boring/Cargo.toml | 28 + .../boring/tokio-boring/Cargo.toml | 23 + .../cargo-with-workspace/tauri.expected.json | 3253 +++++++++++++++++ .../{ => tauri}/Cargo.toml | 0 .../{ => tauri}/LICENSE.spdx | 0 .../{ => tauri}/LICENSE_APACHE-2.0 | 0 .../{ => tauri}/LICENSE_MIT | 0 .../{ => tauri}/README.md | 0 .../{ => tauri}/core/tauri-build/Cargo.toml | 19 - .../{ => tauri}/core/tauri-runtime/Cargo.toml | 17 - .../{ => tauri}/core/tauri/Cargo.toml | 97 - .../{ => tauri}/core/tests/restart/Cargo.toml | 0 .../{ => tauri}/examples/api/package.json | 0 .../examples/api/src-tauri/Cargo.lock | 0 .../examples/api/src-tauri/Cargo.toml | 11 - .../{ => tauri}/package.json | 0 .../cargo/cargo_toml/boring-child/Cargo.toml | 21 + .../boring-child/Cargo.toml.expected | 146 + .../cargo/cargo_toml/boring-main/Cargo.toml | 44 + .../boring-main/Cargo.toml.expected | 109 + .../cargo/cargo_toml/clap/Cargo.toml.expected | 160 +- .../cargo_toml/clippy/Cargo.toml.expected | 182 +- .../cargo_toml/mdbook/Cargo.toml.expected | 329 +- .../cargo_toml/rustfmt/Cargo.toml.expected | 273 +- .../cargo_toml/rustup/Cargo.toml.expected | 267 +- .../tauri-examples/Cargo.toml.expected | 3 +- .../cargo_toml/tauri/Cargo.toml.expected | 142 +- .../cargo/scan-package-only.expected.json | 261 +- .../data/cargo/scan.expected.json | 603 ++- .../data/plugin/cargo-package-expected.json | 344 +- tests/packagedcode/test_cargo.py | 29 +- .../score/no_license_ambiguity-expected.json | 242 +- 39 files changed, 8131 insertions(+), 2260 deletions(-) delete mode 100644 tests/packagedcode/data/cargo/cargo-with-workspace.expected.json create mode 100644 tests/packagedcode/data/cargo/cargo-with-workspace/boring.expected.json create mode 100644 tests/packagedcode/data/cargo/cargo-with-workspace/boring/Cargo.toml create mode 100644 tests/packagedcode/data/cargo/cargo-with-workspace/boring/README.md create mode 100644 tests/packagedcode/data/cargo/cargo-with-workspace/boring/boring-sys/Cargo.toml create mode 100644 tests/packagedcode/data/cargo/cargo-with-workspace/boring/boring/Cargo.toml create mode 100644 tests/packagedcode/data/cargo/cargo-with-workspace/boring/hyper-boring/Cargo.toml create mode 100644 tests/packagedcode/data/cargo/cargo-with-workspace/boring/tokio-boring/Cargo.toml create mode 100644 tests/packagedcode/data/cargo/cargo-with-workspace/tauri.expected.json rename tests/packagedcode/data/cargo/cargo-with-workspace/{ => tauri}/Cargo.toml (100%) rename tests/packagedcode/data/cargo/cargo-with-workspace/{ => tauri}/LICENSE.spdx (100%) rename tests/packagedcode/data/cargo/cargo-with-workspace/{ => tauri}/LICENSE_APACHE-2.0 (100%) rename tests/packagedcode/data/cargo/cargo-with-workspace/{ => tauri}/LICENSE_MIT (100%) rename tests/packagedcode/data/cargo/cargo-with-workspace/{ => tauri}/README.md (100%) rename tests/packagedcode/data/cargo/cargo-with-workspace/{ => tauri}/core/tauri-build/Cargo.toml (65%) rename tests/packagedcode/data/cargo/cargo-with-workspace/{ => tauri}/core/tauri-runtime/Cargo.toml (74%) rename tests/packagedcode/data/cargo/cargo-with-workspace/{ => tauri}/core/tauri/Cargo.toml (57%) rename tests/packagedcode/data/cargo/cargo-with-workspace/{ => tauri}/core/tests/restart/Cargo.toml (100%) rename tests/packagedcode/data/cargo/cargo-with-workspace/{ => tauri}/examples/api/package.json (100%) rename tests/packagedcode/data/cargo/cargo-with-workspace/{ => tauri}/examples/api/src-tauri/Cargo.lock (100%) rename tests/packagedcode/data/cargo/cargo-with-workspace/{ => tauri}/examples/api/src-tauri/Cargo.toml (85%) rename tests/packagedcode/data/cargo/cargo-with-workspace/{ => tauri}/package.json (100%) create mode 100644 tests/packagedcode/data/cargo/cargo_toml/boring-child/Cargo.toml create mode 100644 tests/packagedcode/data/cargo/cargo_toml/boring-child/Cargo.toml.expected create mode 100644 tests/packagedcode/data/cargo/cargo_toml/boring-main/Cargo.toml create mode 100644 tests/packagedcode/data/cargo/cargo_toml/boring-main/Cargo.toml.expected diff --git a/src/packagedcode/cargo.py b/src/packagedcode/cargo.py index 9113a9040b6..198ef1c7440 100644 --- a/src/packagedcode/cargo.py +++ b/src/packagedcode/cargo.py @@ -7,10 +7,11 @@ # See https://aboutcode.org for more information about nexB OSS projects. # +import logging import os import re +import sys -import saneyaml import toml from packageurl import PackageURL @@ -20,6 +21,22 @@ Handle Rust cargo crates """ +TRACE = os.environ.get('SCANCODE_DEBUG_PACKAGE_CARGO', False) + + +def logger_debug(*args): + pass + + +logger = logging.getLogger(__name__) + +if TRACE: + 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)) + class CargoBaseHandler(models.DatafileHandler): @classmethod @@ -29,7 +46,7 @@ def assemble(cls, package_data, resource, codebase, package_adder): support cargo workspaces where we have multiple packages from a repository and some shared information present at top-level. """ - workspace = package_data.extra_data.get("workspace", {}) + workspace = package_data.extra_data.get('workspace', {}) workspace_members = workspace.get("members", []) workspace_package_data = workspace.get("package", {}) attributes_to_copy = [ @@ -39,10 +56,13 @@ def assemble(cls, package_data, resource, codebase, package_adder): ] if "license" in workspace_package_data: for attribute in attributes_to_copy: + package_data.extra_data[attribute] = 'workspace' workspace_package_data[attribute] = getattr(package_data, attribute) workspace_root_path = resource.parent(codebase).path if workspace_package_data and workspace_members: + + # TODO: support glob patterns found in cargo workspaces for workspace_member_path in workspace_members: workspace_directory_path = os.path.join(workspace_root_path, workspace_member_path) workspace_directory = codebase.get_resource(path=workspace_directory_path) @@ -56,9 +76,13 @@ def assemble(cls, package_data, resource, codebase, package_adder): if not resource.package_data: continue + if TRACE: + logger_debug(f"Resource manifest to update: {resource.path}") + updated_package_data = cls.update_resource_package_data( - package_data=workspace_package_data, - old_package_data=resource.package_data.pop(), + workspace=workspace, + workspace_package_data=workspace_package_data, + resource_package_data=resource.package_data.pop(), mapping=CARGO_ATTRIBUTE_MAPPING, ) resource.package_data.append(updated_package_data) @@ -79,20 +103,61 @@ def assemble(cls, package_data, resource, codebase, package_adder): ) @classmethod - def update_resource_package_data(cls, package_data, old_package_data, mapping=None): + def update_resource_package_data(cls, workspace, workspace_package_data, resource_package_data, mapping=None): - for attribute in old_package_data.keys(): + extra_data = resource_package_data["extra_data"] + for attribute in resource_package_data.keys(): if attribute in mapping: replace_by_attribute = mapping.get(attribute) - old_package_data[attribute] = package_data.get(replace_by_attribute) + if not replace_by_attribute in extra_data: + continue + + extra_data.pop(replace_by_attribute) + replace_by_value = workspace_package_data.get(replace_by_attribute) + if replace_by_value: + resource_package_data[attribute] = replace_by_value elif attribute == "parties": - old_package_data[attribute] = list(get_parties( - person_names=package_data.get("authors"), + resource_package_data[attribute] = list(get_parties( + person_names=workspace_package_data.get("authors", []), party_role='author', )) - - return old_package_data - + if "authors" in extra_data: + extra_data.pop("authors") + + extra_data_copy = extra_data.copy() + for key, value in extra_data_copy.items(): + if value == 'workspace': + extra_data.pop(key) + + if key in workspace_package_data: + workspace_value = workspace_package_data.get(key) + if workspace_value and key in mapping: + replace_by_attribute = mapping.get(key) + extra_data[replace_by_attribute] = workspace_value + + # refresh purl if version updated from workspace + if "version" in workspace_package_data: + resource_package_data["purl"] = PackageURL( + type=cls.default_package_type, + name=resource_package_data["name"], + namespace=resource_package_data["namespace"], + version=resource_package_data["version"], + ).to_string() + + workspace_dependencies = dependency_mapper(dependencies=workspace.get('dependencies', {})) + deps_by_purl = {} + for dependency in workspace_dependencies: + deps_by_purl[dependency.purl] = dependency + + for dep_mapping in resource_package_data['dependencies']: + workspace_dependency = deps_by_purl.get(dep_mapping['purl'], None) + if workspace_dependency and workspace_dependency.extracted_requirement: + dep_mapping['extracted_requirement'] = workspace_dependency.extracted_requirement + + if 'workspace' in dep_mapping["extra_data"]: + dep_mapping['extra_data'].pop('workspace') + + return resource_package_data class CargoTomlHandler(CargoBaseHandler): @@ -105,16 +170,21 @@ class CargoTomlHandler(CargoBaseHandler): @classmethod def parse(cls, location, package_only=False): - package_data = toml.load(location, _dict=dict) - core_package_data = package_data.get('package', {}) - workspace = package_data.get('workspace', {}) + package_data_toml = toml.load(location, _dict=dict) + workspace = package_data_toml.get('workspace', {}) + core_package_data = package_data_toml.get('package', {}) extra_data = {} + if workspace: + extra_data['workspace'] = workspace + + package_data = core_package_data.copy() + for key, value in package_data.items(): + if isinstance(value, dict) and 'workspace' in value: + core_package_data.pop(key) + extra_data[key] = 'workspace' name = core_package_data.get('name') version = core_package_data.get('version') - if isinstance(version, dict) and "workspace" in version: - version = None - extra_data["version"] = "workspace" description = core_package_data.get('description') or '' description = description.strip() @@ -132,22 +202,28 @@ def parse(cls, location, package_only=False): # cargo dependencies are complex and can be overriden at multiple levels dependencies = [] - for key, value in core_package_data.items(): + for key, value in package_data_toml.items(): if key.endswith('dependencies'): dependencies.extend(dependency_mapper(dependencies=value, scope=key)) # TODO: add file refs: # - readme, include and exclude - # TODO: other URLs - # - documentation vcs_url = core_package_data.get('repository') homepage_url = core_package_data.get('homepage') repository_homepage_url = name and f'https://crates.io/crates/{name}' repository_download_url = name and version and f'https://crates.io/api/v1/crates/{name}/{version}/download' api_data_url = name and f'https://crates.io/api/v1/crates/{name}' - if workspace: - extra_data["workspace"] = workspace + + extra_data_mappings = { + "documentation": "documentation_url", + "rust-version": "rust_version", + "edition": "rust_edition", + } + for cargo_attribute, extra_attribute in extra_data_mappings.items(): + value = core_package_data.get(cargo_attribute) + if value: + extra_data[extra_attribute] = value package_data = dict( datasource_id=cls.datasource_id, @@ -156,6 +232,7 @@ def parse(cls, location, package_only=False): version=version, primary_language=cls.default_primary_language, description=description, + keywords=keywords, parties=parties, extracted_license_statement=extracted_license_statement, vcs_url=vcs_url, @@ -171,6 +248,7 @@ def parse(cls, location, package_only=False): CARGO_ATTRIBUTE_MAPPING = { # Fields in PackageData model: Fields in cargo + "version": "version", "homepage_url": "homepage", "vcs_url": "repository", "keywords": "categories", @@ -179,6 +257,9 @@ def parse(cls, location, package_only=False): "license_detections": "license_detections", "declared_license_expression": "declared_license_expression", "declared_license_expression_spdx": "declared_license_expression_spdx", + # extra data fields (reverse mapping) + "edition": "rust_edition", + "rust-version": "rust_version", } @@ -237,25 +318,36 @@ def dependency_mapper(dependencies, scope='dependencies'): """ is_runtime = not scope.endswith(('dev-dependencies', 'build-dependencies')) for name, requirement in dependencies.items(): + extra_data = {} + extracted_requirement = None if isinstance(requirement, str): # plain version requirement is_optional = False + extracted_requirement = requirement + elif isinstance(requirement, dict): - # complex requirement, with more than version are harder to handle - # so we just dump + # complex requirement, we extract version if available + # everything else is just dumped in extra data + # here {workspace = true} means dependency version + # should be inherited is_optional = requirement.pop('optional', False) - requirement = saneyaml.dump(requirement) + if 'version' in requirement: + extracted_requirement = requirement.get('version') + + if requirement: + extra_data = requirement yield models.DependentPackage( purl=PackageURL( type='cargo', name=name, ).to_string(), - extracted_requirement=requirement, + extracted_requirement=extracted_requirement, scope=scope, is_runtime=is_runtime, is_optional=is_optional, is_resolved=False, + extra_data=extra_data, ) diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace.expected.json b/tests/packagedcode/data/cargo/cargo-with-workspace.expected.json deleted file mode 100644 index cdf4644256d..00000000000 --- a/tests/packagedcode/data/cargo/cargo-with-workspace.expected.json +++ /dev/null @@ -1,1969 +0,0 @@ -{ - "packages": [ - { - "type": "cargo", - "namespace": null, - "name": "tauri", - "version": "2.0.0-alpha.17", - "qualifiers": {}, - "subpath": null, - "primary_language": "Rust", - "description": "Make tiny, secure apps for all desktop platforms with Tauri", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Tauri Programme within The Commons Conservancy", - "email": null, - "url": null - } - ], - "keywords": [ - "gui", - "web-programming" - ], - "homepage_url": "https://tauri.app/", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": "https://github.com/tauri-apps/tauri", - "copyright": null, - "holder": null, - "declared_license_expression": "apache-2.0 OR mit", - "declared_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/core/tauri/Cargo.toml", - "start_line": 17, - "end_line": 17, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ], - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9" - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "Apache-2.0 OR MIT", - "notice_text": null, - "source_packages": [], - "extra_data": {}, - "repository_homepage_url": "https://crates.io/crates/tauri", - "repository_download_url": "https://crates.io/api/v1/crates/tauri/2.0.0-alpha.17/download", - "api_data_url": "https://crates.io/api/v1/crates/tauri", - "package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", - "datafile_paths": [ - "cargo-with-workspace/core/tauri/Cargo.toml" - ], - "datasource_ids": [ - "cargo_toml" - ], - "purl": "pkg:cargo/tauri@2.0.0-alpha.17" - }, - { - "type": "cargo", - "namespace": null, - "name": "tauri-runtime", - "version": "1.0.0-alpha.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "Rust", - "description": "Runtime for Tauri applications", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Tauri Programme within The Commons Conservancy", - "email": null, - "url": null - } - ], - "keywords": [ - "gui", - "web-programming" - ], - "homepage_url": "https://tauri.app/", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": "https://github.com/tauri-apps/tauri", - "copyright": null, - "holder": null, - "declared_license_expression": "apache-2.0 OR mit", - "declared_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/core/tauri-runtime/Cargo.toml", - "start_line": 17, - "end_line": 17, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ], - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9" - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "Apache-2.0 OR MIT", - "notice_text": null, - "source_packages": [], - "extra_data": {}, - "repository_homepage_url": "https://crates.io/crates/tauri-runtime", - "repository_download_url": "https://crates.io/api/v1/crates/tauri-runtime/1.0.0-alpha.4/download", - "api_data_url": "https://crates.io/api/v1/crates/tauri-runtime", - "package_uid": "pkg:cargo/tauri-runtime@1.0.0-alpha.4?uuid=fixed-uid-done-for-testing-5642512d1758", - "datafile_paths": [ - "cargo-with-workspace/core/tauri-runtime/Cargo.toml" - ], - "datasource_ids": [ - "cargo_toml" - ], - "purl": "pkg:cargo/tauri-runtime@1.0.0-alpha.4" - }, - { - "type": "cargo", - "namespace": null, - "name": "tauri-build", - "version": "2.0.0-alpha.11", - "qualifiers": {}, - "subpath": null, - "primary_language": "Rust", - "description": "build time code to pair with https://crates.io/crates/tauri", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Tauri Programme within The Commons Conservancy", - "email": null, - "url": null - } - ], - "keywords": [ - "gui", - "web-programming" - ], - "homepage_url": "https://tauri.app/", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": "https://github.com/tauri-apps/tauri", - "copyright": null, - "holder": null, - "declared_license_expression": "apache-2.0 OR mit", - "declared_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/core/tauri-build/Cargo.toml", - "start_line": 17, - "end_line": 17, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ], - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9" - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "Apache-2.0 OR MIT", - "notice_text": null, - "source_packages": [], - "extra_data": {}, - "repository_homepage_url": "https://crates.io/crates/tauri-build", - "repository_download_url": "https://crates.io/api/v1/crates/tauri-build/2.0.0-alpha.11/download", - "api_data_url": "https://crates.io/api/v1/crates/tauri-build", - "package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", - "datafile_paths": [ - "cargo-with-workspace/core/tauri-build/Cargo.toml" - ], - "datasource_ids": [ - "cargo_toml" - ], - "purl": "pkg:cargo/tauri-build@2.0.0-alpha.11" - }, - { - "type": "cargo", - "namespace": null, - "name": "restart", - "version": "0.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Rust", - "description": null, - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Tauri Programme within The Commons Conservancy", - "email": null, - "url": null - } - ], - "keywords": [ - "gui", - "web-programming" - ], - "homepage_url": "https://tauri.app/", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": "https://github.com/tauri-apps/tauri", - "copyright": null, - "holder": null, - "declared_license_expression": "apache-2.0 OR mit", - "declared_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/core/tests/restart/Cargo.toml", - "start_line": 17, - "end_line": 17, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ], - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9" - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "Apache-2.0 OR MIT", - "notice_text": null, - "source_packages": [], - "extra_data": {}, - "repository_homepage_url": "https://crates.io/crates/restart", - "repository_download_url": "https://crates.io/api/v1/crates/restart/0.1.0/download", - "api_data_url": "https://crates.io/api/v1/crates/restart", - "package_uid": "pkg:cargo/restart@0.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "datafile_paths": [ - "cargo-with-workspace/core/tests/restart/Cargo.toml" - ], - "datasource_ids": [ - "cargo_toml" - ], - "purl": "pkg:cargo/restart@0.1.0" - }, - { - "type": "npm", - "namespace": null, - "name": "tauri-workspace", - "version": "0.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [ - { - "type": "person", - "role": "contributor", - "name": "Tauri Programme within The Commons Conservancy", - "email": null, - "url": null - } - ], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.npmjs.org/tauri-workspace/-/tauri-workspace-0.0.0.tgz", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": "git+https://github.com/tauri-apps/tauri.git", - "copyright": null, - "holder": null, - "declared_license_expression": "apache-2.0 OR mit", - "declared_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/package.json", - "start_line": 1, - "end_line": 1, - "matcher": "1-hash", - "score": 100.0, - "matched_length": 5, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_36.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_36.RULE", - "matched_text": "Apache-2.0 OR MIT" - } - ], - "identifier": "apache_2_0_or_mit-70d858d7-8968-9e7f-b90f-18b72fb96bef" - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "- Apache-2.0 OR MIT\n", - "notice_text": null, - "source_packages": [], - "extra_data": {}, - "repository_homepage_url": "https://www.npmjs.com/package/tauri-workspace", - "repository_download_url": "https://registry.npmjs.org/tauri-workspace/-/tauri-workspace-0.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/tauri-workspace/0.0.0", - "package_uid": "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "datafile_paths": [ - "cargo-with-workspace/package.json" - ], - "datasource_ids": [ - "npm_package_json" - ], - "purl": "pkg:npm/tauri-workspace@0.0.0" - } - ], - "dependencies": [ - { - "purl": "pkg:npm/typescript", - "extracted_requirement": "^4.5.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {}, - "dependency_uid": "pkg:npm/typescript?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "datafile_path": "cargo-with-workspace/package.json", - "datasource_id": "npm_package_json" - }, - { - "purl": "pkg:npm/covector", - "extracted_requirement": "^0.9.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {}, - "dependency_uid": "pkg:npm/covector?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "datafile_path": "cargo-with-workspace/package.json", - "datasource_id": "npm_package_json" - }, - { - "purl": "pkg:npm/husky", - "extracted_requirement": "^6.0.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {}, - "dependency_uid": "pkg:npm/husky?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "datafile_path": "cargo-with-workspace/package.json", - "datasource_id": "npm_package_json" - }, - { - "purl": "pkg:npm/prettier", - "extracted_requirement": "^2.5.1", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {}, - "dependency_uid": "pkg:npm/prettier?uuid=fixed-uid-done-for-testing-5642512d1758", - "for_package_uid": "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "datafile_path": "cargo-with-workspace/package.json", - "datasource_id": "npm_package_json" - } - ], - "license_detections": [ - { - "identifier": "mit_or__mit_or_apache_2_0___and_cc_by_nc_nd_4_0-59169298-1b74-1a33-b363-79a8d5b62d2d", - "license_expression": "(mit OR (mit OR apache-2.0)) AND cc-by-nc-nd-4.0", - "license_expression_spdx": "(MIT OR (MIT OR Apache-2.0)) AND CC-BY-NC-ND-4.0", - "detection_count": 1, - "reference_matches": [ - { - "license_expression": "mit OR (mit OR apache-2.0)", - "license_expression_spdx": "MIT OR (MIT OR Apache-2.0)", - "from_file": "cargo-with-workspace/README.md", - "start_line": 19, - "end_line": 19, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 8, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "mit_or_mit_or_apache-2.0_1.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_or_mit_or_apache-2.0_1.RULE" - }, - { - "license_expression": "cc-by-nc-nd-4.0", - "license_expression_spdx": "CC-BY-NC-ND-4.0", - "from_file": "cargo-with-workspace/README.md", - "start_line": 21, - "end_line": 21, - "matcher": "2-aho", - "score": 95.0, - "matched_length": 5, - "match_coverage": 100.0, - "rule_relevance": 95, - "rule_identifier": "cc-by-nc-nd-4.0_64.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/cc-by-nc-nd-4.0_64.RULE" - } - ] - }, - { - "identifier": "apache_2_0-62ae3761-33a2-9012-c9ab-0dd8e74dae85", - "license_expression": "apache-2.0", - "license_expression_spdx": "Apache-2.0", - "detection_count": 1, - "reference_matches": [ - { - "license_expression": "apache-2.0", - "license_expression_spdx": "Apache-2.0", - "from_file": "cargo-with-workspace/LICENSE_APACHE-2.0", - "start_line": 1, - "end_line": 1, - "matcher": "1-hash", - "score": 75.0, - "matched_length": 4, - "match_coverage": 100.0, - "rule_relevance": 75, - "rule_identifier": "apache-2.0_3.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_3.RULE" - } - ] - }, - { - "identifier": "apache_2_0-d66ab77d-a5cc-7104-e702-dc7df61fe9e8", - "license_expression": "apache-2.0", - "license_expression_spdx": "Apache-2.0", - "detection_count": 1, - "reference_matches": [ - { - "license_expression": "apache-2.0", - "license_expression_spdx": "Apache-2.0", - "from_file": "cargo-with-workspace/LICENSE.spdx", - "start_line": 7, - "end_line": 7, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 3, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "spdx_license_id_apache-2.0_for_apache-2.0.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/spdx_license_id_apache-2.0_for_apache-2.0.RULE" - } - ] - }, - { - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9", - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "detection_count": 9, - "reference_matches": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/Cargo.toml", - "start_line": 17, - "end_line": 17, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ] - }, - { - "identifier": "apache_2_0_or_mit-70d858d7-8968-9e7f-b90f-18b72fb96bef", - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "detection_count": 2, - "reference_matches": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/package.json", - "start_line": 1, - "end_line": 1, - "matcher": "1-hash", - "score": 100.0, - "matched_length": 5, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_36.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_36.RULE" - } - ] - }, - { - "identifier": "cc0_1_0-54f26353-a976-a403-90e0-c468b1a57236", - "license_expression": "cc0-1.0", - "license_expression_spdx": "CC0-1.0", - "detection_count": 1, - "reference_matches": [ - { - "license_expression": "cc0-1.0", - "license_expression_spdx": "CC0-1.0", - "from_file": "cargo-with-workspace/LICENSE.spdx", - "start_line": 2, - "end_line": 2, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 4, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "cc0-1.0_208.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/cc0-1.0_208.RULE" - } - ] - }, - { - "identifier": "mit-9967e727-165e-9bb5-f090-7de5e47a3929", - "license_expression": "mit", - "license_expression_spdx": "MIT", - "detection_count": 1, - "reference_matches": [ - { - "license_expression": "mit", - "license_expression_spdx": "MIT", - "from_file": "cargo-with-workspace/LICENSE_MIT", - "start_line": 1, - "end_line": 1, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 2, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "mit_14.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_14.RULE" - } - ] - } - ], - "files": [ - { - "path": "cargo-with-workspace", - "type": "directory", - "package_data": [], - "for_packages": [], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/Cargo.toml", - "type": "file", - "package_data": [ - { - "type": "cargo", - "namespace": null, - "name": null, - "version": null, - "qualifiers": {}, - "subpath": null, - "primary_language": "Rust", - "description": "", - "release_date": null, - "parties": [], - "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, - "holder": null, - "declared_license_expression": "apache-2.0 OR mit", - "declared_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/Cargo.toml", - "start_line": 17, - "end_line": 17, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ], - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9" - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": { - "workspace": { - "resolver": "2", - "members": [ - "core/tauri", - "core/tauri-runtime", - "core/tauri-build", - "core/tests/restart" - ], - "package": { - "authors": [ - "Tauri Programme within The Commons Conservancy" - ], - "homepage": "https://tauri.app/", - "repository": "https://github.com/tauri-apps/tauri", - "categories": [ - "gui", - "web-programming" - ], - "license": "Apache-2.0 OR MIT", - "edition": "2021", - "rust-version": "1.70", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/Cargo.toml", - "start_line": 17, - "end_line": 17, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ], - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9" - } - ], - "declared_license_expression": "apache-2.0 OR mit", - "declared_license_expression_spdx": "Apache-2.0 OR MIT" - } - } - }, - "dependencies": [], - "repository_homepage_url": null, - "repository_download_url": null, - "api_data_url": null, - "datasource_id": "cargo_toml", - "purl": null - } - ], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": "apache-2.0 OR mit", - "detected_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/Cargo.toml", - "start_line": 17, - "end_line": 17, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ], - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9" - } - ], - "license_clues": [], - "percentage_of_license_text": 8.0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/LICENSE.spdx", - "type": "file", - "package_data": [], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": "cc0-1.0 AND apache-2.0", - "detected_license_expression_spdx": "CC0-1.0 AND Apache-2.0", - "license_detections": [ - { - "license_expression": "cc0-1.0", - "license_expression_spdx": "CC0-1.0", - "matches": [ - { - "license_expression": "cc0-1.0", - "spdx_license_expression": "CC0-1.0", - "from_file": "cargo-with-workspace/LICENSE.spdx", - "start_line": 2, - "end_line": 2, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 4, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "cc0-1.0_208.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/cc0-1.0_208.RULE" - } - ], - "identifier": "cc0_1_0-54f26353-a976-a403-90e0-c468b1a57236" - }, - { - "license_expression": "apache-2.0", - "license_expression_spdx": "Apache-2.0", - "matches": [ - { - "license_expression": "apache-2.0", - "spdx_license_expression": "Apache-2.0", - "from_file": "cargo-with-workspace/LICENSE.spdx", - "start_line": 7, - "end_line": 7, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 3, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "spdx_license_id_apache-2.0_for_apache-2.0.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/spdx_license_id_apache-2.0_for_apache-2.0.RULE" - } - ], - "identifier": "apache_2_0-d66ab77d-a5cc-7104-e702-dc7df61fe9e8" - } - ], - "license_clues": [], - "percentage_of_license_text": 6.48, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/LICENSE_APACHE-2.0", - "type": "file", - "package_data": [], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": "apache-2.0", - "detected_license_expression_spdx": "Apache-2.0", - "license_detections": [ - { - "license_expression": "apache-2.0", - "license_expression_spdx": "Apache-2.0", - "matches": [ - { - "license_expression": "apache-2.0", - "spdx_license_expression": "Apache-2.0", - "from_file": "cargo-with-workspace/LICENSE_APACHE-2.0", - "start_line": 1, - "end_line": 1, - "matcher": "1-hash", - "score": 75.0, - "matched_length": 4, - "match_coverage": 100.0, - "rule_relevance": 75, - "rule_identifier": "apache-2.0_3.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_3.RULE" - } - ], - "identifier": "apache_2_0-62ae3761-33a2-9012-c9ab-0dd8e74dae85" - } - ], - "license_clues": [], - "percentage_of_license_text": 100.0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/LICENSE_MIT", - "type": "file", - "package_data": [], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": "mit", - "detected_license_expression_spdx": "MIT", - "license_detections": [ - { - "license_expression": "mit", - "license_expression_spdx": "MIT", - "matches": [ - { - "license_expression": "mit", - "spdx_license_expression": "MIT", - "from_file": "cargo-with-workspace/LICENSE_MIT", - "start_line": 1, - "end_line": 1, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 2, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "mit_14.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_14.RULE" - } - ], - "identifier": "mit-9967e727-165e-9bb5-f090-7de5e47a3929" - } - ], - "license_clues": [], - "percentage_of_license_text": 22.22, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/README.md", - "type": "file", - "package_data": [], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": "(mit OR (mit OR apache-2.0)) AND cc-by-nc-nd-4.0", - "detected_license_expression_spdx": "(MIT OR (MIT OR Apache-2.0)) AND CC-BY-NC-ND-4.0", - "license_detections": [ - { - "license_expression": "(mit OR (mit OR apache-2.0)) AND cc-by-nc-nd-4.0", - "license_expression_spdx": "(MIT OR (MIT OR Apache-2.0)) AND CC-BY-NC-ND-4.0", - "matches": [ - { - "license_expression": "mit OR (mit OR apache-2.0)", - "spdx_license_expression": "MIT OR (MIT OR Apache-2.0)", - "from_file": "cargo-with-workspace/README.md", - "start_line": 19, - "end_line": 19, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 8, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "mit_or_mit_or_apache-2.0_1.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_or_mit_or_apache-2.0_1.RULE" - }, - { - "license_expression": "cc-by-nc-nd-4.0", - "spdx_license_expression": "CC-BY-NC-ND-4.0", - "from_file": "cargo-with-workspace/README.md", - "start_line": 21, - "end_line": 21, - "matcher": "2-aho", - "score": 95.0, - "matched_length": 5, - "match_coverage": 100.0, - "rule_relevance": 95, - "rule_identifier": "cc-by-nc-nd-4.0_64.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/cc-by-nc-nd-4.0_64.RULE" - } - ], - "identifier": "mit_or__mit_or_apache_2_0___and_cc_by_nc_nd_4_0-59169298-1b74-1a33-b363-79a8d5b62d2d" - } - ], - "license_clues": [], - "percentage_of_license_text": 7.34, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/core", - "type": "directory", - "package_data": [], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/core/tauri", - "type": "directory", - "package_data": [], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/core/tauri-build", - "type": "directory", - "package_data": [], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/core/tauri-build/Cargo.toml", - "type": "file", - "package_data": [ - { - "type": "cargo", - "namespace": null, - "name": "tauri-build", - "version": "2.0.0-alpha.11", - "qualifiers": {}, - "subpath": null, - "primary_language": "Rust", - "description": "build time code to pair with https://crates.io/crates/tauri", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Tauri Programme within The Commons Conservancy", - "email": null, - "url": null - } - ], - "keywords": [ - "gui", - "web-programming" - ], - "homepage_url": "https://tauri.app/", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": "https://github.com/tauri-apps/tauri", - "copyright": null, - "holder": null, - "declared_license_expression": "apache-2.0 OR mit", - "declared_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/Cargo.toml", - "start_line": 17, - "end_line": 17, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ], - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9" - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "Apache-2.0 OR MIT", - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://crates.io/crates/tauri-build", - "repository_download_url": "https://crates.io/api/v1/crates/tauri-build/2.0.0-alpha.11/download", - "api_data_url": "https://crates.io/api/v1/crates/tauri-build", - "datasource_id": "cargo_toml", - "purl": "pkg:cargo/tauri-build@2.0.0-alpha.11" - } - ], - "for_packages": [ - "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/core/tauri-runtime", - "type": "directory", - "package_data": [], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/core/tauri-runtime/Cargo.toml", - "type": "file", - "package_data": [ - { - "type": "cargo", - "namespace": null, - "name": "tauri-runtime", - "version": "1.0.0-alpha.4", - "qualifiers": {}, - "subpath": null, - "primary_language": "Rust", - "description": "Runtime for Tauri applications", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Tauri Programme within The Commons Conservancy", - "email": null, - "url": null - } - ], - "keywords": [ - "gui", - "web-programming" - ], - "homepage_url": "https://tauri.app/", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": "https://github.com/tauri-apps/tauri", - "copyright": null, - "holder": null, - "declared_license_expression": "apache-2.0 OR mit", - "declared_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/Cargo.toml", - "start_line": 17, - "end_line": 17, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ], - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9" - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "Apache-2.0 OR MIT", - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://crates.io/crates/tauri-runtime", - "repository_download_url": "https://crates.io/api/v1/crates/tauri-runtime/1.0.0-alpha.4/download", - "api_data_url": "https://crates.io/api/v1/crates/tauri-runtime", - "datasource_id": "cargo_toml", - "purl": "pkg:cargo/tauri-runtime@1.0.0-alpha.4" - } - ], - "for_packages": [ - "pkg:cargo/tauri-runtime@1.0.0-alpha.4?uuid=fixed-uid-done-for-testing-5642512d1758", - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/core/tauri/Cargo.toml", - "type": "file", - "package_data": [ - { - "type": "cargo", - "namespace": null, - "name": "tauri", - "version": "2.0.0-alpha.17", - "qualifiers": {}, - "subpath": null, - "primary_language": "Rust", - "description": "Make tiny, secure apps for all desktop platforms with Tauri", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Tauri Programme within The Commons Conservancy", - "email": null, - "url": null - } - ], - "keywords": [ - "gui", - "web-programming" - ], - "homepage_url": "https://tauri.app/", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": "https://github.com/tauri-apps/tauri", - "copyright": null, - "holder": null, - "declared_license_expression": "apache-2.0 OR mit", - "declared_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/Cargo.toml", - "start_line": 17, - "end_line": 17, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ], - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9" - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "Apache-2.0 OR MIT", - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://crates.io/crates/tauri", - "repository_download_url": "https://crates.io/api/v1/crates/tauri/2.0.0-alpha.17/download", - "api_data_url": "https://crates.io/api/v1/crates/tauri", - "datasource_id": "cargo_toml", - "purl": "pkg:cargo/tauri@2.0.0-alpha.17" - } - ], - "for_packages": [ - "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/core/tests", - "type": "directory", - "package_data": [], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/core/tests/restart", - "type": "directory", - "package_data": [], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/core/tests/restart/Cargo.toml", - "type": "file", - "package_data": [ - { - "type": "cargo", - "namespace": null, - "name": "restart", - "version": "0.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Rust", - "description": "", - "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "Tauri Programme within The Commons Conservancy", - "email": null, - "url": null - } - ], - "keywords": [ - "gui", - "web-programming" - ], - "homepage_url": "https://tauri.app/", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": "https://github.com/tauri-apps/tauri", - "copyright": null, - "holder": null, - "declared_license_expression": "apache-2.0 OR mit", - "declared_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/Cargo.toml", - "start_line": 17, - "end_line": 17, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ], - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9" - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "Apache-2.0 OR MIT", - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://crates.io/crates/restart", - "repository_download_url": "https://crates.io/api/v1/crates/restart/0.1.0/download", - "api_data_url": "https://crates.io/api/v1/crates/restart", - "datasource_id": "cargo_toml", - "purl": "pkg:cargo/restart@0.1.0" - } - ], - "for_packages": [ - "pkg:cargo/restart@0.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": "apache-2.0 OR mit", - "detected_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/core/tests/restart/Cargo.toml", - "start_line": 5, - "end_line": 5, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ], - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9" - } - ], - "license_clues": [], - "percentage_of_license_text": 20.0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/examples", - "type": "directory", - "package_data": [], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/examples/api", - "type": "directory", - "package_data": [], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/examples/api/package.json", - "type": "file", - "package_data": [ - { - "type": "npm", - "namespace": null, - "name": "api", - "version": "1.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.npmjs.org/api/-/api-1.0.0.tgz", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": null, - "holder": null, - "declared_license_expression": null, - "declared_license_expression_spdx": null, - "license_detections": [], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:npm/%40tauri-apps/api", - "extracted_requirement": "../../tooling/api/dist", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:npm/%40zerodevx/svelte-json-view", - "extracted_requirement": "0.2.1", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:npm/%40iconify-json/codicon", - "extracted_requirement": "^1.1.10", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:npm/%40iconify-json/ph", - "extracted_requirement": "^1.1.1", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:npm/internal-ip", - "extracted_requirement": "^7.0.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:npm/unocss", - "extracted_requirement": "^0.39.3", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:npm/%40sveltejs/vite-plugin-svelte", - "extracted_requirement": "^2.4.6", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:npm/svelte", - "extracted_requirement": "^4.2.1", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:npm/vite", - "extracted_requirement": "^4.4.9", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://www.npmjs.com/package/api", - "repository_download_url": "https://registry.npmjs.org/api/-/api-1.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/api/1.0.0", - "datasource_id": "npm_package_json", - "purl": "pkg:npm/api@1.0.0" - } - ], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/examples/api/src-tauri", - "type": "directory", - "package_data": [], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/examples/api/src-tauri/Cargo.lock", - "type": "file", - "package_data": [ - { - "type": "cargo", - "namespace": null, - "name": null, - "version": null, - "qualifiers": {}, - "subpath": null, - "primary_language": "Rust", - "description": null, - "release_date": null, - "parties": [], - "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, - "holder": null, - "declared_license_expression": null, - "declared_license_expression_spdx": null, - "license_detections": [], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:cargo/addr2line@0.21.0", - "extracted_requirement": "0.21.0", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:cargo/adler@1.0.2", - "extracted_requirement": "1.0.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:cargo/aead@0.5.2", - "extracted_requirement": "0.5.2", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": null, - "repository_download_url": null, - "api_data_url": null, - "datasource_id": "cargo_lock", - "purl": null - } - ], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": null, - "detected_license_expression_spdx": null, - "license_detections": [], - "license_clues": [], - "percentage_of_license_text": 0, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/examples/api/src-tauri/Cargo.toml", - "type": "file", - "package_data": [ - { - "type": "cargo", - "namespace": null, - "name": "api", - "version": "0.1.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "Rust", - "description": "An example Tauri Application showcasing the api", - "release_date": null, - "parties": [], - "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, - "holder": null, - "declared_license_expression": "apache-2.0 OR mit", - "declared_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/examples/api/src-tauri/Cargo.toml", - "start_line": 1, - "end_line": 1, - "matcher": "1-hash", - "score": 100.0, - "matched_length": 5, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_36.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_36.RULE", - "matched_text": "Apache-2.0 OR MIT" - } - ], - "identifier": "apache_2_0_or_mit-70d858d7-8968-9e7f-b90f-18b72fb96bef" - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "Apache-2.0 OR MIT", - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://crates.io/crates/api", - "repository_download_url": "https://crates.io/api/v1/crates/api/0.1.0/download", - "api_data_url": "https://crates.io/api/v1/crates/api", - "datasource_id": "cargo_toml", - "purl": "pkg:cargo/api@0.1.0" - } - ], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": "apache-2.0 OR mit", - "detected_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/examples/api/src-tauri/Cargo.toml", - "start_line": 7, - "end_line": 7, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ], - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9" - } - ], - "license_clues": [], - "percentage_of_license_text": 3.28, - "scan_errors": [] - }, - { - "path": "cargo-with-workspace/package.json", - "type": "file", - "package_data": [ - { - "type": "npm", - "namespace": null, - "name": "tauri-workspace", - "version": "0.0.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "JavaScript", - "description": null, - "release_date": null, - "parties": [ - { - "type": "person", - "role": "contributor", - "name": "Tauri Programme within The Commons Conservancy", - "email": null, - "url": null - } - ], - "keywords": [], - "homepage_url": null, - "download_url": "https://registry.npmjs.org/tauri-workspace/-/tauri-workspace-0.0.0.tgz", - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": "git+https://github.com/tauri-apps/tauri.git", - "copyright": null, - "holder": null, - "declared_license_expression": "apache-2.0 OR mit", - "declared_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/package.json", - "start_line": 1, - "end_line": 1, - "matcher": "1-hash", - "score": 100.0, - "matched_length": 5, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_36.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_36.RULE", - "matched_text": "Apache-2.0 OR MIT" - } - ], - "identifier": "apache_2_0_or_mit-70d858d7-8968-9e7f-b90f-18b72fb96bef" - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "- Apache-2.0 OR MIT\n", - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:npm/typescript", - "extracted_requirement": "^4.5.4", - "scope": "dependencies", - "is_runtime": true, - "is_optional": false, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:npm/covector", - "extracted_requirement": "^0.9.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:npm/husky", - "extracted_requirement": "^6.0.0", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:npm/prettier", - "extracted_requirement": "^2.5.1", - "scope": "devDependencies", - "is_runtime": false, - "is_optional": true, - "is_resolved": false, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://www.npmjs.com/package/tauri-workspace", - "repository_download_url": "https://registry.npmjs.org/tauri-workspace/-/tauri-workspace-0.0.0.tgz", - "api_data_url": "https://registry.npmjs.org/tauri-workspace/0.0.0", - "datasource_id": "npm_package_json", - "purl": "pkg:npm/tauri-workspace@0.0.0" - } - ], - "for_packages": [ - "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "detected_license_expression": "apache-2.0 OR mit", - "detected_license_expression_spdx": "Apache-2.0 OR MIT", - "license_detections": [ - { - "license_expression": "apache-2.0 OR mit", - "license_expression_spdx": "Apache-2.0 OR MIT", - "matches": [ - { - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "from_file": "cargo-with-workspace/package.json", - "start_line": 4, - "end_line": 4, - "matcher": "2-aho", - "score": 100.0, - "matched_length": 6, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "apache-2.0_or_mit_37.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_37.RULE" - } - ], - "identifier": "apache_2_0_or_mit-8028b724-ab19-ab66-3288-312e7edc4fd9" - } - ], - "license_clues": [], - "percentage_of_license_text": 8.33, - "scan_errors": [] - } - ] -} \ No newline at end of file diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/boring.expected.json b/tests/packagedcode/data/cargo/cargo-with-workspace/boring.expected.json new file mode 100644 index 00000000000..326649b875e --- /dev/null +++ b/tests/packagedcode/data/cargo/cargo-with-workspace/boring.expected.json @@ -0,0 +1,1573 @@ +{ + "packages": [ + { + "type": "cargo", + "namespace": null, + "name": "boring", + "version": "4.6.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "BoringSSL bindings", + "release_date": null, + "parties": [], + "keywords": [ + "crypto", + "tls", + "ssl", + "dtls", + "cryptography", + "api-bindings" + ], + "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": "https://github.com/cloudflare/boring", + "copyright": null, + "holder": null, + "declared_license_expression": "apache-2.0", + "declared_license_expression_spdx": "Apache-2.0", + "license_detections": [ + { + "license_expression": "apache-2.0", + "license_expression_spdx": "Apache-2.0", + "matches": [ + { + "license_expression": "apache-2.0", + "spdx_license_expression": "Apache-2.0", + "from_file": "boring/boring/Cargo.toml", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 3, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "matched_text": "Apache-2.0" + } + ], + "identifier": "apache_2_0-d66ab77d-a5cc-7104-e702-dc7df61fe9e8" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "Apache-2.0", + "notice_text": null, + "source_packages": [], + "extra_data": { + "documentation_url": "https://docs.rs/boring", + "rust_edition": "2021" + }, + "repository_homepage_url": "https://crates.io/crates/boring", + "repository_download_url": null, + "api_data_url": "https://crates.io/api/v1/crates/boring", + "package_uid": "pkg:cargo/boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "boring/boring/Cargo.toml" + ], + "datasource_ids": [ + "cargo_toml" + ], + "purl": "pkg:cargo/boring@4.6.0" + }, + { + "type": "cargo", + "namespace": null, + "name": "boring-sys", + "version": "4.6.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "FFI bindings to BoringSSL", + "release_date": null, + "parties": [], + "keywords": [ + "cryptography", + "external-ffi-bindings" + ], + "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": "https://github.com/cloudflare/boring", + "copyright": null, + "holder": null, + "declared_license_expression": "mit", + "declared_license_expression_spdx": "MIT", + "license_detections": [ + { + "license_expression": "mit", + "license_expression_spdx": "MIT", + "matches": [ + { + "license_expression": "mit", + "spdx_license_expression": "MIT", + "from_file": "boring/boring-sys/Cargo.toml", + "start_line": 1, + "end_line": 1, + "matcher": "1-spdx-id", + "score": 100.0, + "matched_length": 1, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "spdx-license-identifier-mit-5da48780aba670b0860c46d899ed42a0f243ff06", + "rule_url": null, + "matched_text": "MIT" + } + ], + "identifier": "mit-a822f434-d61f-f2b1-c792-8b8cb9e7b9bf" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "MIT", + "notice_text": null, + "source_packages": [], + "extra_data": { + "documentation_url": "https://docs.rs/boring-sys", + "rust_edition": "2021" + }, + "repository_homepage_url": "https://crates.io/crates/boring-sys", + "repository_download_url": null, + "api_data_url": "https://crates.io/api/v1/crates/boring-sys", + "package_uid": "pkg:cargo/boring-sys@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "boring/boring-sys/Cargo.toml" + ], + "datasource_ids": [ + "cargo_toml" + ], + "purl": "pkg:cargo/boring-sys@4.6.0" + }, + { + "type": "cargo", + "namespace": null, + "name": "tokio-boring", + "version": "4.6.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "An implementation of SSL streams for Tokio backed by BoringSSL", + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": "https://github.com/cloudflare/boring", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": "https://github.com/cloudflare/boring", + "copyright": null, + "holder": null, + "declared_license_expression": "mit OR apache-2.0", + "declared_license_expression_spdx": "MIT OR Apache-2.0", + "license_detections": [ + { + "license_expression": "mit OR apache-2.0", + "license_expression_spdx": "MIT OR Apache-2.0", + "matches": [ + { + "license_expression": "mit OR apache-2.0", + "spdx_license_expression": "MIT OR Apache-2.0", + "from_file": "boring/tokio-boring/Cargo.toml", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 99.0, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 99, + "rule_identifier": "mit_or_apache-2.0_1.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_or_apache-2.0_1.RULE", + "matched_text": "MIT/Apache-2.0" + } + ], + "identifier": "mit_or_apache_2_0-48698550-8e33-0b55-dc83-ac89d00625dd" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "MIT/Apache-2.0", + "notice_text": null, + "source_packages": [], + "extra_data": { + "documentation_url": "https://docs.rs/tokio-boring", + "rust_edition": "2021" + }, + "repository_homepage_url": "https://crates.io/crates/tokio-boring", + "repository_download_url": null, + "api_data_url": "https://crates.io/api/v1/crates/tokio-boring", + "package_uid": "pkg:cargo/tokio-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "boring/tokio-boring/Cargo.toml" + ], + "datasource_ids": [ + "cargo_toml" + ], + "purl": "pkg:cargo/tokio-boring@4.6.0" + }, + { + "type": "cargo", + "namespace": null, + "name": "hyper-boring", + "version": "4.6.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "Hyper TLS support via BoringSSL", + "release_date": null, + "parties": [], + "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": "https://github.com/cloudflare/boring", + "copyright": null, + "holder": null, + "declared_license_expression": "mit OR apache-2.0", + "declared_license_expression_spdx": "MIT OR Apache-2.0", + "license_detections": [ + { + "license_expression": "mit OR apache-2.0", + "license_expression_spdx": "MIT OR Apache-2.0", + "matches": [ + { + "license_expression": "mit OR apache-2.0", + "spdx_license_expression": "MIT OR Apache-2.0", + "from_file": "boring/hyper-boring/Cargo.toml", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 99.0, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 99, + "rule_identifier": "mit_or_apache-2.0_1.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_or_apache-2.0_1.RULE", + "matched_text": "MIT/Apache-2.0" + } + ], + "identifier": "mit_or_apache_2_0-48698550-8e33-0b55-dc83-ac89d00625dd" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "MIT/Apache-2.0", + "notice_text": null, + "source_packages": [], + "extra_data": { + "documentation_url": "https://docs.rs/hyper-boring", + "rust_edition": "2021" + }, + "repository_homepage_url": "https://crates.io/crates/hyper-boring", + "repository_download_url": null, + "api_data_url": "https://crates.io/api/v1/crates/hyper-boring", + "package_uid": "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "boring/hyper-boring/Cargo.toml" + ], + "datasource_ids": [ + "cargo_toml" + ], + "purl": "pkg:cargo/hyper-boring@4.6.0" + } + ], + "dependencies": [ + { + "purl": "pkg:cargo/bitflags", + "extracted_requirement": "2.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/bitflags?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/foreign-types", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/foreign-types?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/once_cell", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/once_cell?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/libc", + "extracted_requirement": "0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/libc?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/boring-sys", + "extracted_requirement": "4.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/boring-sys?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/hex", + "extracted_requirement": "0.4", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/hex?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/rusty-hook", + "extracted_requirement": "^0.11", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/rusty-hook?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/bindgen", + "extracted_requirement": "0.68.1", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/bindgen?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/boring-sys@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/boring-sys/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/cmake", + "extracted_requirement": "0.1.18", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/cmake?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/boring-sys@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/boring-sys/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/fs_extra", + "extracted_requirement": "1.3.0", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/fs_extra?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/boring-sys@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/boring-sys/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/fslock", + "extracted_requirement": "0.2", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/fslock?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/boring-sys@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/boring-sys/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/boring", + "extracted_requirement": "4.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/boring?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tokio-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/tokio-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/boring-sys", + "extracted_requirement": "4.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/boring-sys?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tokio-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/tokio-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/once_cell", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/once_cell?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tokio-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/tokio-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tokio", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/tokio?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tokio-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/tokio-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/futures", + "extracted_requirement": "0.3", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/futures?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tokio-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/tokio-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tokio", + "extracted_requirement": "1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "features": [ + "full" + ] + }, + "dependency_uid": "pkg:cargo/tokio?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tokio-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/tokio-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/anyhow", + "extracted_requirement": "1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/anyhow?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tokio-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/tokio-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/antidote", + "extracted_requirement": "1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/antidote?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/hyper-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/http", + "extracted_requirement": "0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/http?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/hyper-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/hyper", + "extracted_requirement": "0.14", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "features": [ + "client" + ] + }, + "dependency_uid": "pkg:cargo/hyper?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/hyper-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/linked_hash_set", + "extracted_requirement": "0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/linked_hash_set?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/hyper-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/once_cell", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/once_cell?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/hyper-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/boring", + "extracted_requirement": "4.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/boring?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/hyper-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tokio", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/tokio?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/hyper-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tokio-boring", + "extracted_requirement": "4.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/tokio-boring?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/hyper-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tower-layer", + "extracted_requirement": "0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/tower-layer?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/hyper-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/hyper", + "extracted_requirement": "0.14", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "features": [ + "full" + ] + }, + "dependency_uid": "pkg:cargo/hyper?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/hyper-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tokio", + "extracted_requirement": "1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "features": [ + "full" + ] + }, + "dependency_uid": "pkg:cargo/tokio?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/hyper-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tower", + "extracted_requirement": "0.4", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "features": [ + "util" + ] + }, + "dependency_uid": "pkg:cargo/tower?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/hyper-boring/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/futures", + "extracted_requirement": "0.3", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/futures?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "boring/hyper-boring/Cargo.toml", + "datasource_id": "cargo_toml" + } + ], + "files": [ + { + "path": "boring", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "boring/Cargo.toml", + "type": "file", + "package_data": [ + { + "type": "cargo", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "", + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "workspace": { + "members": [ + "boring", + "boring-sys", + "tokio-boring", + "hyper-boring" + ], + "resolver": "2", + "package": { + "version": "4.6.0", + "repository": "https://github.com/cloudflare/boring", + "edition": "2021" + }, + "metadata": { + "release": { + "pre-release-commit-message": "Release {{version}}", + "shared-version": true, + "tag-prefix": "", + "publish": false + } + }, + "dependencies": { + "boring-sys": { + "version": "4.6.0", + "path": "./boring-sys" + }, + "boring": { + "version": "4.6.0", + "path": "./boring" + }, + "tokio-boring": { + "version": "4.6.0", + "path": "./tokio-boring" + }, + "bindgen": { + "version": "0.68.1", + "default-features": false, + "features": [ + "runtime" + ] + }, + "cmake": "0.1.18", + "fs_extra": "1.3.0", + "fslock": "0.2", + "bitflags": "2.4", + "foreign-types": "0.5", + "libc": "0.2", + "hex": "0.4", + "rusty-hook": "^0.11", + "futures": "0.3", + "tokio": "1", + "anyhow": "1", + "antidote": "1.0.0", + "http": "0.2", + "hyper": { + "version": "0.14", + "default-features": false + }, + "linked_hash_set": "0.1", + "once_cell": "1.0", + "tower": "0.4", + "tower-layer": "0.3" + } + } + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cargo_toml", + "purl": null + } + ], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "boring/README.md", + "type": "file", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "boring/boring", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "boring/boring-sys", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "boring/boring-sys/Cargo.toml", + "type": "file", + "package_data": [ + { + "type": "cargo", + "namespace": null, + "name": "boring-sys", + "version": "4.6.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "FFI bindings to BoringSSL", + "release_date": null, + "parties": [], + "keywords": [ + "cryptography", + "external-ffi-bindings" + ], + "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": "https://github.com/cloudflare/boring", + "copyright": null, + "holder": null, + "declared_license_expression": "mit", + "declared_license_expression_spdx": "MIT", + "license_detections": [ + { + "license_expression": "mit", + "license_expression_spdx": "MIT", + "matches": [ + { + "license_expression": "mit", + "spdx_license_expression": "MIT", + "from_file": "boring/boring-sys/Cargo.toml", + "start_line": 1, + "end_line": 1, + "matcher": "1-spdx-id", + "score": 100.0, + "matched_length": 1, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "spdx-license-identifier-mit-5da48780aba670b0860c46d899ed42a0f243ff06", + "rule_url": null, + "matched_text": "MIT" + } + ], + "identifier": "mit-a822f434-d61f-f2b1-c792-8b8cb9e7b9bf" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "MIT", + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "documentation_url": "https://docs.rs/boring-sys", + "rust_edition": "2021" + }, + "dependencies": [ + { + "purl": "pkg:cargo/bindgen", + "extracted_requirement": "0.68.1", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/cmake", + "extracted_requirement": "0.1.18", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/fs_extra", + "extracted_requirement": "1.3.0", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/fslock", + "extracted_requirement": "0.2", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://crates.io/crates/boring-sys", + "repository_download_url": null, + "api_data_url": "https://crates.io/api/v1/crates/boring-sys", + "datasource_id": "cargo_toml", + "purl": "pkg:cargo/boring-sys@4.6.0" + } + ], + "for_packages": [ + "pkg:cargo/boring-sys@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "boring/boring/Cargo.toml", + "type": "file", + "package_data": [ + { + "type": "cargo", + "namespace": null, + "name": "boring", + "version": "4.6.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "BoringSSL bindings", + "release_date": null, + "parties": [], + "keywords": [ + "crypto", + "tls", + "ssl", + "dtls", + "cryptography", + "api-bindings" + ], + "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": "https://github.com/cloudflare/boring", + "copyright": null, + "holder": null, + "declared_license_expression": "apache-2.0", + "declared_license_expression_spdx": "Apache-2.0", + "license_detections": [ + { + "license_expression": "apache-2.0", + "license_expression_spdx": "Apache-2.0", + "matches": [ + { + "license_expression": "apache-2.0", + "spdx_license_expression": "Apache-2.0", + "from_file": "boring/boring/Cargo.toml", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 3, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/spdx_license_id_apache-2.0_for_apache-2.0.RULE", + "matched_text": "Apache-2.0" + } + ], + "identifier": "apache_2_0-d66ab77d-a5cc-7104-e702-dc7df61fe9e8" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "Apache-2.0", + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "documentation_url": "https://docs.rs/boring", + "rust_edition": "2021" + }, + "dependencies": [ + { + "purl": "pkg:cargo/bitflags", + "extracted_requirement": "2.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/foreign-types", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/once_cell", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/libc", + "extracted_requirement": "0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/boring-sys", + "extracted_requirement": "4.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/hex", + "extracted_requirement": "0.4", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/rusty-hook", + "extracted_requirement": "^0.11", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://crates.io/crates/boring", + "repository_download_url": null, + "api_data_url": "https://crates.io/api/v1/crates/boring", + "datasource_id": "cargo_toml", + "purl": "pkg:cargo/boring@4.6.0" + } + ], + "for_packages": [ + "pkg:cargo/boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "boring/hyper-boring", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "boring/hyper-boring/Cargo.toml", + "type": "file", + "package_data": [ + { + "type": "cargo", + "namespace": null, + "name": "hyper-boring", + "version": "4.6.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "Hyper TLS support via BoringSSL", + "release_date": null, + "parties": [], + "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": "https://github.com/cloudflare/boring", + "copyright": null, + "holder": null, + "declared_license_expression": "mit OR apache-2.0", + "declared_license_expression_spdx": "MIT OR Apache-2.0", + "license_detections": [ + { + "license_expression": "mit OR apache-2.0", + "license_expression_spdx": "MIT OR Apache-2.0", + "matches": [ + { + "license_expression": "mit OR apache-2.0", + "spdx_license_expression": "MIT OR Apache-2.0", + "from_file": "boring/hyper-boring/Cargo.toml", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 99.0, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 99, + "rule_identifier": "mit_or_apache-2.0_1.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_or_apache-2.0_1.RULE", + "matched_text": "MIT/Apache-2.0" + } + ], + "identifier": "mit_or_apache_2_0-48698550-8e33-0b55-dc83-ac89d00625dd" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "MIT/Apache-2.0", + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "documentation_url": "https://docs.rs/hyper-boring", + "rust_edition": "2021" + }, + "dependencies": [ + { + "purl": "pkg:cargo/antidote", + "extracted_requirement": "1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/http", + "extracted_requirement": "0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/hyper", + "extracted_requirement": "0.14", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "features": [ + "client" + ] + } + }, + { + "purl": "pkg:cargo/linked_hash_set", + "extracted_requirement": "0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/once_cell", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/boring", + "extracted_requirement": "4.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/tokio", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/tokio-boring", + "extracted_requirement": "4.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/tower-layer", + "extracted_requirement": "0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/hyper", + "extracted_requirement": "0.14", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "features": [ + "full" + ] + } + }, + { + "purl": "pkg:cargo/tokio", + "extracted_requirement": "1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "features": [ + "full" + ] + } + }, + { + "purl": "pkg:cargo/tower", + "extracted_requirement": "0.4", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "features": [ + "util" + ] + } + }, + { + "purl": "pkg:cargo/futures", + "extracted_requirement": "0.3", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://crates.io/crates/hyper-boring", + "repository_download_url": null, + "api_data_url": "https://crates.io/api/v1/crates/hyper-boring", + "datasource_id": "cargo_toml", + "purl": "pkg:cargo/hyper-boring@4.6.0" + } + ], + "for_packages": [ + "pkg:cargo/hyper-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "boring/tokio-boring", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "boring/tokio-boring/Cargo.toml", + "type": "file", + "package_data": [ + { + "type": "cargo", + "namespace": null, + "name": "tokio-boring", + "version": "4.6.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "An implementation of SSL streams for Tokio backed by BoringSSL", + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": "https://github.com/cloudflare/boring", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": "https://github.com/cloudflare/boring", + "copyright": null, + "holder": null, + "declared_license_expression": "mit OR apache-2.0", + "declared_license_expression_spdx": "MIT OR Apache-2.0", + "license_detections": [ + { + "license_expression": "mit OR apache-2.0", + "license_expression_spdx": "MIT OR Apache-2.0", + "matches": [ + { + "license_expression": "mit OR apache-2.0", + "spdx_license_expression": "MIT OR Apache-2.0", + "from_file": "boring/tokio-boring/Cargo.toml", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 99.0, + "matched_length": 4, + "match_coverage": 100.0, + "rule_relevance": 99, + "rule_identifier": "mit_or_apache-2.0_1.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_or_apache-2.0_1.RULE", + "matched_text": "MIT/Apache-2.0" + } + ], + "identifier": "mit_or_apache_2_0-48698550-8e33-0b55-dc83-ac89d00625dd" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "MIT/Apache-2.0", + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "documentation_url": "https://docs.rs/tokio-boring", + "rust_edition": "2021" + }, + "dependencies": [ + { + "purl": "pkg:cargo/boring", + "extracted_requirement": "4.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/boring-sys", + "extracted_requirement": "4.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/once_cell", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/tokio", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/futures", + "extracted_requirement": "0.3", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/tokio", + "extracted_requirement": "1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "features": [ + "full" + ] + } + }, + { + "purl": "pkg:cargo/anyhow", + "extracted_requirement": "1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://crates.io/crates/tokio-boring", + "repository_download_url": null, + "api_data_url": "https://crates.io/api/v1/crates/tokio-boring", + "datasource_id": "cargo_toml", + "purl": "pkg:cargo/tokio-boring@4.6.0" + } + ], + "for_packages": [ + "pkg:cargo/tokio-boring@4.6.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/boring/Cargo.toml b/tests/packagedcode/data/cargo/cargo-with-workspace/boring/Cargo.toml new file mode 100644 index 00000000000..aaeb3db2037 --- /dev/null +++ b/tests/packagedcode/data/cargo/cargo-with-workspace/boring/Cargo.toml @@ -0,0 +1,44 @@ +[workspace] +members = [ + "boring", + "boring-sys", + "tokio-boring", + "hyper-boring" +] +resolver = "2" + +[workspace.package] +version = "4.6.0" +repository = "https://github.com/cloudflare/boring" +edition = "2021" + +[workspace.metadata.release] +pre-release-commit-message = "Release {{version}}" +shared-version = true +tag-prefix = "" +publish = false + +[workspace.dependencies] +boring-sys = { version = "4.6.0", path = "./boring-sys" } +boring = { version = "4.6.0", path = "./boring" } +tokio-boring = { version = "4.6.0", path = "./tokio-boring" } + +bindgen = { version = "0.68.1", default-features = false, features = ["runtime"] } +cmake = "0.1.18" +fs_extra = "1.3.0" +fslock = "0.2" +bitflags = "2.4" +foreign-types = "0.5" +libc = "0.2" +hex = "0.4" +rusty-hook = "^0.11" +futures = "0.3" +tokio = "1" +anyhow = "1" +antidote = "1.0.0" +http = "0.2" +hyper = { version = "0.14", default-features = false } +linked_hash_set = "0.1" +once_cell = "1.0" +tower = "0.4" +tower-layer = "0.3" diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/boring/README.md b/tests/packagedcode/data/cargo/cargo-with-workspace/boring/README.md new file mode 100644 index 00000000000..7821da2130b --- /dev/null +++ b/tests/packagedcode/data/cargo/cargo-with-workspace/boring/README.md @@ -0,0 +1,12 @@ +# boring + +BoringSSL bindings for the Rust programming language and TLS adapters for tokio +and hyper built on top of it. + +## Contribution + +Unless you explicitly state otherwise, any contribution intentionally +submitted for inclusion in the work by you, as defined in the Apache-2.0 +license, shall be dual licensed under the terms of both the Apache License, +Version 2.0 and the MIT license without any additional terms or conditions. + diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/boring/boring-sys/Cargo.toml b/tests/packagedcode/data/cargo/cargo-with-workspace/boring/boring-sys/Cargo.toml new file mode 100644 index 00000000000..84ebd07b95f --- /dev/null +++ b/tests/packagedcode/data/cargo/cargo-with-workspace/boring/boring-sys/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "boring-sys" +version = { workspace = true } +authors = ["Alex Crichton ", + "Steven Fackler ", + "Ivan Nikulin "] +license = "MIT" +description = "FFI bindings to BoringSSL" +repository = { workspace = true } +documentation = "https://docs.rs/boring-sys" +links = "boringssl" +build = "build/main.rs" +readme = "README.md" +categories = ["cryptography", "external-ffi-bindings"] +edition = { workspace = true } + +[build-dependencies] +bindgen = { workspace = true } +cmake = { workspace = true } +fs_extra = { workspace = true } +fslock = { workspace = true } diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/boring/boring/Cargo.toml b/tests/packagedcode/data/cargo/cargo-with-workspace/boring/boring/Cargo.toml new file mode 100644 index 00000000000..0db61ae89b2 --- /dev/null +++ b/tests/packagedcode/data/cargo/cargo-with-workspace/boring/boring/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "boring" +version = { workspace = true } +authors = ["Steven Fackler ", "Ivan Nikulin "] +license = "Apache-2.0" +description = "BoringSSL bindings" +repository = { workspace = true } +documentation = "https://docs.rs/boring" +readme = "README.md" +keywords = ["crypto", "tls", "ssl", "dtls"] +categories = ["cryptography", "api-bindings"] +edition = { workspace = true } + +[dependencies] +bitflags = { workspace = true } +foreign-types = { workspace = true } +once_cell = { workspace = true } +libc = { workspace = true } +boring-sys = { workspace = true } + +[dev-dependencies] +hex = { workspace = true } +rusty-hook = { workspace = true } diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/boring/hyper-boring/Cargo.toml b/tests/packagedcode/data/cargo/cargo-with-workspace/boring/hyper-boring/Cargo.toml new file mode 100644 index 00000000000..2e4aade49fc --- /dev/null +++ b/tests/packagedcode/data/cargo/cargo-with-workspace/boring/hyper-boring/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "hyper-boring" +version = { workspace = true } +authors = ["Steven Fackler ", "Ivan Nikulin "] +edition = { workspace = true } +description = "Hyper TLS support via BoringSSL" +license = "MIT/Apache-2.0" +repository = { workspace = true } +documentation = "https://docs.rs/hyper-boring" +readme = "README.md" +exclude = ["test/*"] + +[dependencies] +antidote = { workspace = true } +http = { workspace = true } +hyper = { workspace = true, features = ["client"] } +linked_hash_set = { workspace = true } +once_cell = { workspace = true } +boring = { workspace = true } +tokio = { workspace = true } +tokio-boring = { workspace = true } +tower-layer = { workspace = true } + +[dev-dependencies] +hyper = { workspace = true, features = [ "full" ] } +tokio = { workspace = true, features = [ "full" ] } +tower = { workspace = true, features = ["util"] } +futures = { workspace = true } diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/boring/tokio-boring/Cargo.toml b/tests/packagedcode/data/cargo/cargo-with-workspace/boring/tokio-boring/Cargo.toml new file mode 100644 index 00000000000..b6a2dd87c79 --- /dev/null +++ b/tests/packagedcode/data/cargo/cargo-with-workspace/boring/tokio-boring/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "tokio-boring" +version = { workspace = true } +authors = ["Alex Crichton ", "Ivan Nikulin "] +license = "MIT/Apache-2.0" +edition = { workspace = true } +repository = { workspace = true } +homepage = "https://github.com/cloudflare/boring" +documentation = "https://docs.rs/tokio-boring" +description = """ +An implementation of SSL streams for Tokio backed by BoringSSL +""" + +[dependencies] +boring = { workspace = true } +boring-sys = { workspace = true } +once_cell = { workspace = true } +tokio = { workspace = true } + +[dev-dependencies] +futures = { workspace = true } +tokio = { workspace = true, features = [ "full" ] } +anyhow = { workspace = true } diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/tauri.expected.json b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri.expected.json new file mode 100644 index 00000000000..007cec24efd --- /dev/null +++ b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri.expected.json @@ -0,0 +1,3253 @@ +{ + "packages": [ + { + "type": "cargo", + "namespace": null, + "name": "tauri", + "version": "2.0.0-alpha.17", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "Make tiny, secure apps for all desktop platforms with Tauri", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Tauri Programme within The Commons Conservancy", + "email": null, + "url": null + } + ], + "keywords": [ + "gui", + "web-programming" + ], + "homepage_url": "https://tauri.app/", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": "https://github.com/tauri-apps/tauri", + "copyright": null, + "holder": null, + "declared_license_expression": "apache-2.0 OR mit", + "declared_license_expression_spdx": "Apache-2.0 OR MIT", + "license_detections": [ + { + "license_expression": "apache-2.0 OR mit", + "license_expression_spdx": "Apache-2.0 OR MIT", + "matches": [ + { + "license_expression": "apache-2.0 OR mit", + "spdx_license_expression": "Apache-2.0 OR MIT", + "from_file": null, + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "apache-2.0_or_mit_36.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_36.RULE", + "matched_text": "Apache-2.0 OR MIT" + } + ], + "identifier": "apache_2_0_or_mit-70d858d7-8968-9e7f-b90f-18b72fb96bef" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "Apache-2.0 OR MIT", + "notice_text": null, + "source_packages": [], + "extra_data": { + "rust_edition": "2021", + "rust_version": "1.70" + }, + "repository_homepage_url": "https://crates.io/crates/tauri", + "repository_download_url": "https://crates.io/api/v1/crates/tauri/2.0.0-alpha.17/download", + "api_data_url": "https://crates.io/api/v1/crates/tauri", + "package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "tauri/core/tauri/Cargo.toml" + ], + "datasource_ids": [ + "cargo_toml" + ], + "purl": "pkg:cargo/tauri@2.0.0-alpha.17" + }, + { + "type": "cargo", + "namespace": null, + "name": "tauri-runtime", + "version": "1.0.0-alpha.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "Runtime for Tauri applications", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Tauri Programme within The Commons Conservancy", + "email": null, + "url": null + } + ], + "keywords": [ + "gui", + "web-programming" + ], + "homepage_url": "https://tauri.app/", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": "https://github.com/tauri-apps/tauri", + "copyright": null, + "holder": null, + "declared_license_expression": "apache-2.0 OR mit", + "declared_license_expression_spdx": "Apache-2.0 OR MIT", + "license_detections": [ + { + "license_expression": "apache-2.0 OR mit", + "license_expression_spdx": "Apache-2.0 OR MIT", + "matches": [ + { + "license_expression": "apache-2.0 OR mit", + "spdx_license_expression": "Apache-2.0 OR MIT", + "from_file": null, + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "apache-2.0_or_mit_36.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_36.RULE", + "matched_text": "Apache-2.0 OR MIT" + } + ], + "identifier": "apache_2_0_or_mit-70d858d7-8968-9e7f-b90f-18b72fb96bef" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "Apache-2.0 OR MIT", + "notice_text": null, + "source_packages": [], + "extra_data": { + "rust_edition": "2021", + "rust_version": "1.70" + }, + "repository_homepage_url": "https://crates.io/crates/tauri-runtime", + "repository_download_url": "https://crates.io/api/v1/crates/tauri-runtime/1.0.0-alpha.4/download", + "api_data_url": "https://crates.io/api/v1/crates/tauri-runtime", + "package_uid": "pkg:cargo/tauri-runtime@1.0.0-alpha.4?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "tauri/core/tauri-runtime/Cargo.toml" + ], + "datasource_ids": [ + "cargo_toml" + ], + "purl": "pkg:cargo/tauri-runtime@1.0.0-alpha.4" + }, + { + "type": "cargo", + "namespace": null, + "name": "tauri-build", + "version": "2.0.0-alpha.11", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "build time code to pair with https://crates.io/crates/tauri", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Tauri Programme within The Commons Conservancy", + "email": null, + "url": null + } + ], + "keywords": [ + "gui", + "web-programming" + ], + "homepage_url": "https://tauri.app/", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": "https://github.com/tauri-apps/tauri", + "copyright": null, + "holder": null, + "declared_license_expression": "apache-2.0 OR mit", + "declared_license_expression_spdx": "Apache-2.0 OR MIT", + "license_detections": [ + { + "license_expression": "apache-2.0 OR mit", + "license_expression_spdx": "Apache-2.0 OR MIT", + "matches": [ + { + "license_expression": "apache-2.0 OR mit", + "spdx_license_expression": "Apache-2.0 OR MIT", + "from_file": null, + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "apache-2.0_or_mit_36.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_36.RULE", + "matched_text": "Apache-2.0 OR MIT" + } + ], + "identifier": "apache_2_0_or_mit-70d858d7-8968-9e7f-b90f-18b72fb96bef" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "Apache-2.0 OR MIT", + "notice_text": null, + "source_packages": [], + "extra_data": { + "rust_edition": "2021", + "rust_version": "1.70" + }, + "repository_homepage_url": "https://crates.io/crates/tauri-build", + "repository_download_url": "https://crates.io/api/v1/crates/tauri-build/2.0.0-alpha.11/download", + "api_data_url": "https://crates.io/api/v1/crates/tauri-build", + "package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "tauri/core/tauri-build/Cargo.toml" + ], + "datasource_ids": [ + "cargo_toml" + ], + "purl": "pkg:cargo/tauri-build@2.0.0-alpha.11" + }, + { + "type": "cargo", + "namespace": null, + "name": "restart", + "version": "0.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": null, + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Tauri Programme within The Commons Conservancy", + "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, + "holder": null, + "declared_license_expression": "apache-2.0 OR mit", + "declared_license_expression_spdx": "Apache-2.0 OR MIT", + "license_detections": [ + { + "license_expression": "apache-2.0 OR mit", + "license_expression_spdx": "Apache-2.0 OR MIT", + "matches": [ + { + "license_expression": "apache-2.0 OR mit", + "spdx_license_expression": "Apache-2.0 OR MIT", + "from_file": "tauri/core/tests/restart/Cargo.toml", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "apache-2.0_or_mit_36.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_36.RULE", + "matched_text": "Apache-2.0 OR MIT" + } + ], + "identifier": "apache_2_0_or_mit-70d858d7-8968-9e7f-b90f-18b72fb96bef" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "Apache-2.0 OR MIT", + "notice_text": null, + "source_packages": [], + "extra_data": { + "rust_edition": "2021" + }, + "repository_homepage_url": "https://crates.io/crates/restart", + "repository_download_url": "https://crates.io/api/v1/crates/restart/0.1.0/download", + "api_data_url": "https://crates.io/api/v1/crates/restart", + "package_uid": "pkg:cargo/restart@0.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "tauri/core/tests/restart/Cargo.toml" + ], + "datasource_ids": [ + "cargo_toml" + ], + "purl": "pkg:cargo/restart@0.1.0" + }, + { + "type": "npm", + "namespace": null, + "name": "tauri-workspace", + "version": "0.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [ + { + "type": "person", + "role": "contributor", + "name": "Tauri Programme within The Commons Conservancy", + "email": null, + "url": null + } + ], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.npmjs.org/tauri-workspace/-/tauri-workspace-0.0.0.tgz", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": "git+https://github.com/tauri-apps/tauri.git", + "copyright": null, + "holder": null, + "declared_license_expression": "apache-2.0 OR mit", + "declared_license_expression_spdx": "Apache-2.0 OR MIT", + "license_detections": [ + { + "license_expression": "apache-2.0 OR mit", + "license_expression_spdx": "Apache-2.0 OR MIT", + "matches": [ + { + "license_expression": "apache-2.0 OR mit", + "spdx_license_expression": "Apache-2.0 OR MIT", + "from_file": "tauri/package.json", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "apache-2.0_or_mit_36.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_36.RULE", + "matched_text": "Apache-2.0 OR MIT" + } + ], + "identifier": "apache_2_0_or_mit-70d858d7-8968-9e7f-b90f-18b72fb96bef" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "- Apache-2.0 OR MIT\n", + "notice_text": null, + "source_packages": [], + "extra_data": {}, + "repository_homepage_url": "https://www.npmjs.com/package/tauri-workspace", + "repository_download_url": "https://registry.npmjs.org/tauri-workspace/-/tauri-workspace-0.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/tauri-workspace/0.0.0", + "package_uid": "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "tauri/package.json" + ], + "datasource_ids": [ + "npm_package_json" + ], + "purl": "pkg:npm/tauri-workspace@0.0.0" + } + ], + "dependencies": [ + { + "purl": "pkg:cargo/serde_json", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0", + "features": [ + "raw_value" + ] + }, + "dependency_uid": "pkg:cargo/serde_json?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0", + "features": [ + "derive", + "rc" + ] + }, + "dependency_uid": "pkg:cargo/serde?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tokio", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1", + "features": [ + "rt", + "rt-multi-thread", + "sync", + "fs", + "io-util" + ] + }, + "dependency_uid": "pkg:cargo/tokio?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/futures-util", + "extracted_requirement": "0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/futures-util?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/uuid", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1", + "features": [ + "v4" + ] + }, + "dependency_uid": "pkg:cargo/uuid?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/url", + "extracted_requirement": "2.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2.4" + }, + "dependency_uid": "pkg:cargo/url?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/anyhow", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/anyhow?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/thiserror", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/thiserror?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/once_cell", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/once_cell?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tauri-runtime", + "extracted_requirement": "1.0.0-alpha.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0.0-alpha.4", + "path": "../tauri-runtime" + }, + "dependency_uid": "pkg:cargo/tauri-runtime?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tauri-macros", + "extracted_requirement": "2.0.0-alpha.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2.0.0-alpha.10", + "path": "../tauri-macros" + }, + "dependency_uid": "pkg:cargo/tauri-macros?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tauri-utils", + "extracted_requirement": "2.0.0-alpha.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2.0.0-alpha.10", + "features": [ + "resources" + ], + "path": "../tauri-utils" + }, + "dependency_uid": "pkg:cargo/tauri-utils?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tauri-runtime-wry", + "extracted_requirement": "1.0.0-alpha.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0.0-alpha.5", + "path": "../tauri-runtime-wry" + }, + "dependency_uid": "pkg:cargo/tauri-runtime-wry?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/getrandom", + "extracted_requirement": "0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/getrandom?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/serde_repr", + "extracted_requirement": "0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/serde_repr?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/state", + "extracted_requirement": "0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/state?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/http", + "extracted_requirement": "0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/http?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/dirs-next", + "extracted_requirement": "2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/dirs-next?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/percent-encoding", + "extracted_requirement": "2.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/percent-encoding?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/reqwest", + "extracted_requirement": "0.11", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.11", + "default-features": false, + "features": [ + "json", + "stream" + ] + }, + "dependency_uid": "pkg:cargo/reqwest?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/bytes", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1", + "features": [ + "serde" + ] + }, + "dependency_uid": "pkg:cargo/bytes?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/raw-window-handle", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/raw-window-handle?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/glob", + "extracted_requirement": "0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/glob?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/mime", + "extracted_requirement": "0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/mime?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/data-url", + "extracted_requirement": "0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.3" + }, + "dependency_uid": "pkg:cargo/data-url?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/serialize-to-javascript", + "extracted_requirement": "=0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/serialize-to-javascript?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/infer", + "extracted_requirement": "0.15", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.15" + }, + "dependency_uid": "pkg:cargo/infer?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/png", + "extracted_requirement": "0.17", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.17" + }, + "dependency_uid": "pkg:cargo/png?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/ico", + "extracted_requirement": "0.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.3.0" + }, + "dependency_uid": "pkg:cargo/ico?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/http-range", + "extracted_requirement": "0.1.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.1.5" + }, + "dependency_uid": "pkg:cargo/http-range?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/heck", + "extracted_requirement": "0.4", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/heck?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/once_cell", + "extracted_requirement": "1", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/once_cell?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tauri-build", + "extracted_requirement": "2.0.0-alpha.11", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "../tauri-build/", + "version": "2.0.0-alpha.11" + }, + "dependency_uid": "pkg:cargo/tauri-build?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/proptest", + "extracted_requirement": "1.4.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/proptest?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/quickcheck", + "extracted_requirement": "1.0.3", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/quickcheck?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/quickcheck_macros", + "extracted_requirement": "1.0.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/quickcheck_macros?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0", + "features": [ + "derive" + ] + }, + "dependency_uid": "pkg:cargo/serde?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/serde_json", + "extracted_requirement": "1.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/serde_json?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tauri", + "extracted_requirement": null, + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": ".", + "default-features": false, + "features": [ + "wry" + ] + }, + "dependency_uid": "pkg:cargo/tauri?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tokio", + "extracted_requirement": "1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1", + "features": [ + "full" + ] + }, + "dependency_uid": "pkg:cargo/tokio?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/cargo_toml", + "extracted_requirement": "0.17", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/cargo_toml?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/http-range", + "extracted_requirement": "0.1.5", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/http-range?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0", + "features": [ + "derive" + ] + }, + "dependency_uid": "pkg:cargo/serde?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-runtime@1.0.0-alpha.4?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-runtime/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/serde_json", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/serde_json?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-runtime@1.0.0-alpha.4?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-runtime/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/thiserror", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/thiserror?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-runtime@1.0.0-alpha.4?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-runtime/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tauri-utils", + "extracted_requirement": "2.0.0-alpha.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2.0.0-alpha.10", + "path": "../tauri-utils" + }, + "dependency_uid": "pkg:cargo/tauri-utils?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-runtime@1.0.0-alpha.4?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-runtime/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/http", + "extracted_requirement": "0.2.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/http?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-runtime@1.0.0-alpha.4?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-runtime/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/raw-window-handle", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/raw-window-handle?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-runtime@1.0.0-alpha.4?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-runtime/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/url", + "extracted_requirement": "2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2" + }, + "dependency_uid": "pkg:cargo/url?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-runtime@1.0.0-alpha.4?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-runtime/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/anyhow", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/anyhow?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-build/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/quote", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1" + }, + "dependency_uid": "pkg:cargo/quote?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-build/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tauri-codegen", + "extracted_requirement": "2.0.0-alpha.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2.0.0-alpha.10", + "path": "../tauri-codegen" + }, + "dependency_uid": "pkg:cargo/tauri-codegen?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-build/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tauri-utils", + "extracted_requirement": "2.0.0-alpha.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2.0.0-alpha.10", + "path": "../tauri-utils", + "features": [ + "build", + "resources" + ] + }, + "dependency_uid": "pkg:cargo/tauri-utils?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-build/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/cargo_toml", + "extracted_requirement": "0.17", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/cargo_toml?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-build/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/serde?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-build/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/serde_json", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/serde_json?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-build/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/heck", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/heck?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-build/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/json-patch", + "extracted_requirement": "1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/json-patch?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-build/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/walkdir", + "extracted_requirement": "2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/walkdir?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-build/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tauri-winres", + "extracted_requirement": "0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/tauri-winres?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-build/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/semver", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/semver?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-build/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/dirs-next", + "extracted_requirement": "2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/dirs-next?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tauri-build/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tauri", + "extracted_requirement": null, + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "../../tauri" + }, + "dependency_uid": "pkg:cargo/tauri?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/restart@0.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tests/restart/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/tempfile", + "extracted_requirement": "3", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/tempfile?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/restart@0.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/core/tests/restart/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:npm/typescript", + "extracted_requirement": "^4.5.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:npm/typescript?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/package.json", + "datasource_id": "npm_package_json" + }, + { + "purl": "pkg:npm/covector", + "extracted_requirement": "^0.9.0", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:npm/covector?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/package.json", + "datasource_id": "npm_package_json" + }, + { + "purl": "pkg:npm/husky", + "extracted_requirement": "^6.0.0", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:npm/husky?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/package.json", + "datasource_id": "npm_package_json" + }, + { + "purl": "pkg:npm/prettier", + "extracted_requirement": "^2.5.1", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:npm/prettier?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "tauri/package.json", + "datasource_id": "npm_package_json" + } + ], + "files": [ + { + "path": "tauri", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "tauri/Cargo.toml", + "type": "file", + "package_data": [ + { + "type": "cargo", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "", + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "workspace": { + "resolver": "2", + "members": [ + "core/tauri", + "core/tauri-runtime", + "core/tauri-build", + "core/tests/restart" + ], + "package": { + "authors": [ + "Tauri Programme within The Commons Conservancy" + ], + "homepage": "https://tauri.app/", + "repository": "https://github.com/tauri-apps/tauri", + "categories": [ + "gui", + "web-programming" + ], + "license": "Apache-2.0 OR MIT", + "edition": "2021", + "rust-version": "1.70", + "license_detections": [], + "declared_license_expression": null, + "declared_license_expression_spdx": null + } + }, + "license_detections": "workspace", + "declared_license_expression": "workspace", + "declared_license_expression_spdx": "workspace" + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cargo_toml", + "purl": null + } + ], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/LICENSE.spdx", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/LICENSE_APACHE-2.0", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/LICENSE_MIT", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/README.md", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/core", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/core/tauri", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/core/tauri-build", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/core/tauri-build/Cargo.toml", + "type": "file", + "package_data": [ + { + "type": "cargo", + "namespace": null, + "name": "tauri-build", + "version": "2.0.0-alpha.11", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "build time code to pair with https://crates.io/crates/tauri", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Tauri Programme within The Commons Conservancy", + "email": null, + "url": null + } + ], + "keywords": [ + "gui", + "web-programming" + ], + "homepage_url": "https://tauri.app/", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": "https://github.com/tauri-apps/tauri", + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "Apache-2.0 OR MIT", + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "rust_edition": "2021", + "rust_version": "1.70" + }, + "dependencies": [ + { + "purl": "pkg:cargo/anyhow", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/quote", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1" + } + }, + { + "purl": "pkg:cargo/tauri-codegen", + "extracted_requirement": "2.0.0-alpha.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2.0.0-alpha.10", + "path": "../tauri-codegen" + } + }, + { + "purl": "pkg:cargo/tauri-utils", + "extracted_requirement": "2.0.0-alpha.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2.0.0-alpha.10", + "path": "../tauri-utils", + "features": [ + "build", + "resources" + ] + } + }, + { + "purl": "pkg:cargo/cargo_toml", + "extracted_requirement": "0.17", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/serde_json", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/heck", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/json-patch", + "extracted_requirement": "1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/walkdir", + "extracted_requirement": "2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/tauri-winres", + "extracted_requirement": "0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/semver", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/dirs-next", + "extracted_requirement": "2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://crates.io/crates/tauri-build", + "repository_download_url": "https://crates.io/api/v1/crates/tauri-build/2.0.0-alpha.11/download", + "api_data_url": "https://crates.io/api/v1/crates/tauri-build", + "datasource_id": "cargo_toml", + "purl": "pkg:cargo/tauri-build@2.0.0-alpha.11" + } + ], + "for_packages": [ + "pkg:cargo/tauri-build@2.0.0-alpha.11?uuid=fixed-uid-done-for-testing-5642512d1758", + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/core/tauri-runtime", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/core/tauri-runtime/Cargo.toml", + "type": "file", + "package_data": [ + { + "type": "cargo", + "namespace": null, + "name": "tauri-runtime", + "version": "1.0.0-alpha.4", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "Runtime for Tauri applications", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Tauri Programme within The Commons Conservancy", + "email": null, + "url": null + } + ], + "keywords": [ + "gui", + "web-programming" + ], + "homepage_url": "https://tauri.app/", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": "https://github.com/tauri-apps/tauri", + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "Apache-2.0 OR MIT", + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "rust_edition": "2021", + "rust_version": "1.70" + }, + "dependencies": [ + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0", + "features": [ + "derive" + ] + } + }, + { + "purl": "pkg:cargo/serde_json", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/thiserror", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/tauri-utils", + "extracted_requirement": "2.0.0-alpha.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2.0.0-alpha.10", + "path": "../tauri-utils" + } + }, + { + "purl": "pkg:cargo/http", + "extracted_requirement": "0.2.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/raw-window-handle", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/url", + "extracted_requirement": "2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2" + } + } + ], + "repository_homepage_url": "https://crates.io/crates/tauri-runtime", + "repository_download_url": "https://crates.io/api/v1/crates/tauri-runtime/1.0.0-alpha.4/download", + "api_data_url": "https://crates.io/api/v1/crates/tauri-runtime", + "datasource_id": "cargo_toml", + "purl": "pkg:cargo/tauri-runtime@1.0.0-alpha.4" + } + ], + "for_packages": [ + "pkg:cargo/tauri-runtime@1.0.0-alpha.4?uuid=fixed-uid-done-for-testing-5642512d1758", + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/core/tauri/Cargo.toml", + "type": "file", + "package_data": [ + { + "type": "cargo", + "namespace": null, + "name": "tauri", + "version": "2.0.0-alpha.17", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "Make tiny, secure apps for all desktop platforms with Tauri", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Tauri Programme within The Commons Conservancy", + "email": null, + "url": null + } + ], + "keywords": [ + "gui", + "web-programming" + ], + "homepage_url": "https://tauri.app/", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": "https://github.com/tauri-apps/tauri", + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "Apache-2.0 OR MIT", + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "rust_edition": "2021", + "rust_version": "1.70" + }, + "dependencies": [ + { + "purl": "pkg:cargo/serde_json", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0", + "features": [ + "raw_value" + ] + } + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0", + "features": [ + "derive", + "rc" + ] + } + }, + { + "purl": "pkg:cargo/tokio", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1", + "features": [ + "rt", + "rt-multi-thread", + "sync", + "fs", + "io-util" + ] + } + }, + { + "purl": "pkg:cargo/futures-util", + "extracted_requirement": "0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/uuid", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1", + "features": [ + "v4" + ] + } + }, + { + "purl": "pkg:cargo/url", + "extracted_requirement": "2.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2.4" + } + }, + { + "purl": "pkg:cargo/anyhow", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/thiserror", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/once_cell", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/tauri-runtime", + "extracted_requirement": "1.0.0-alpha.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0.0-alpha.4", + "path": "../tauri-runtime" + } + }, + { + "purl": "pkg:cargo/tauri-macros", + "extracted_requirement": "2.0.0-alpha.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2.0.0-alpha.10", + "path": "../tauri-macros" + } + }, + { + "purl": "pkg:cargo/tauri-utils", + "extracted_requirement": "2.0.0-alpha.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2.0.0-alpha.10", + "features": [ + "resources" + ], + "path": "../tauri-utils" + } + }, + { + "purl": "pkg:cargo/tauri-runtime-wry", + "extracted_requirement": "1.0.0-alpha.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0.0-alpha.5", + "path": "../tauri-runtime-wry" + } + }, + { + "purl": "pkg:cargo/getrandom", + "extracted_requirement": "0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/serde_repr", + "extracted_requirement": "0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/state", + "extracted_requirement": "0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/http", + "extracted_requirement": "0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/dirs-next", + "extracted_requirement": "2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/percent-encoding", + "extracted_requirement": "2.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/reqwest", + "extracted_requirement": "0.11", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.11", + "default-features": false, + "features": [ + "json", + "stream" + ] + } + }, + { + "purl": "pkg:cargo/bytes", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1", + "features": [ + "serde" + ] + } + }, + { + "purl": "pkg:cargo/raw-window-handle", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/glob", + "extracted_requirement": "0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/mime", + "extracted_requirement": "0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/data-url", + "extracted_requirement": "0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.3" + } + }, + { + "purl": "pkg:cargo/serialize-to-javascript", + "extracted_requirement": "=0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/infer", + "extracted_requirement": "0.15", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.15" + } + }, + { + "purl": "pkg:cargo/png", + "extracted_requirement": "0.17", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.17" + } + }, + { + "purl": "pkg:cargo/ico", + "extracted_requirement": "0.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.3.0" + } + }, + { + "purl": "pkg:cargo/http-range", + "extracted_requirement": "0.1.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.1.5" + } + }, + { + "purl": "pkg:cargo/heck", + "extracted_requirement": "0.4", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/once_cell", + "extracted_requirement": "1", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/tauri-build", + "extracted_requirement": "2.0.0-alpha.11", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "../tauri-build/", + "version": "2.0.0-alpha.11" + } + }, + { + "purl": "pkg:cargo/proptest", + "extracted_requirement": "1.4.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/quickcheck", + "extracted_requirement": "1.0.3", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/quickcheck_macros", + "extracted_requirement": "1.0.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0", + "features": [ + "derive" + ] + } + }, + { + "purl": "pkg:cargo/serde_json", + "extracted_requirement": "1.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/tauri", + "extracted_requirement": null, + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": ".", + "default-features": false, + "features": [ + "wry" + ] + } + }, + { + "purl": "pkg:cargo/tokio", + "extracted_requirement": "1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1", + "features": [ + "full" + ] + } + }, + { + "purl": "pkg:cargo/cargo_toml", + "extracted_requirement": "0.17", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/http-range", + "extracted_requirement": "0.1.5", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://crates.io/crates/tauri", + "repository_download_url": "https://crates.io/api/v1/crates/tauri/2.0.0-alpha.17/download", + "api_data_url": "https://crates.io/api/v1/crates/tauri", + "datasource_id": "cargo_toml", + "purl": "pkg:cargo/tauri@2.0.0-alpha.17" + } + ], + "for_packages": [ + "pkg:cargo/tauri@2.0.0-alpha.17?uuid=fixed-uid-done-for-testing-5642512d1758", + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/core/tests", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/core/tests/restart", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/core/tests/restart/Cargo.toml", + "type": "file", + "package_data": [ + { + "type": "cargo", + "namespace": null, + "name": "restart", + "version": "0.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Tauri Programme within The Commons Conservancy", + "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, + "holder": null, + "declared_license_expression": "apache-2.0 OR mit", + "declared_license_expression_spdx": "Apache-2.0 OR MIT", + "license_detections": [ + { + "license_expression": "apache-2.0 OR mit", + "license_expression_spdx": "Apache-2.0 OR MIT", + "matches": [ + { + "license_expression": "apache-2.0 OR mit", + "spdx_license_expression": "Apache-2.0 OR MIT", + "from_file": "tauri/core/tests/restart/Cargo.toml", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "apache-2.0_or_mit_36.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_36.RULE", + "matched_text": "Apache-2.0 OR MIT" + } + ], + "identifier": "apache_2_0_or_mit-70d858d7-8968-9e7f-b90f-18b72fb96bef" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "Apache-2.0 OR MIT", + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "rust_edition": "2021" + }, + "dependencies": [ + { + "purl": "pkg:cargo/tauri", + "extracted_requirement": null, + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "../../tauri" + } + }, + { + "purl": "pkg:cargo/tempfile", + "extracted_requirement": "3", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://crates.io/crates/restart", + "repository_download_url": "https://crates.io/api/v1/crates/restart/0.1.0/download", + "api_data_url": "https://crates.io/api/v1/crates/restart", + "datasource_id": "cargo_toml", + "purl": "pkg:cargo/restart@0.1.0" + } + ], + "for_packages": [ + "pkg:cargo/restart@0.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/examples", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/examples/api", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/examples/api/package.json", + "type": "file", + "package_data": [ + { + "type": "npm", + "namespace": null, + "name": "api", + "version": "1.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.npmjs.org/api/-/api-1.0.0.tgz", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": null, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/%40tauri-apps/api", + "extracted_requirement": "../../tooling/api/dist", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/%40zerodevx/svelte-json-view", + "extracted_requirement": "0.2.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/%40iconify-json/codicon", + "extracted_requirement": "^1.1.10", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/%40iconify-json/ph", + "extracted_requirement": "^1.1.1", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/internal-ip", + "extracted_requirement": "^7.0.0", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/unocss", + "extracted_requirement": "^0.39.3", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/%40sveltejs/vite-plugin-svelte", + "extracted_requirement": "^2.4.6", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/svelte", + "extracted_requirement": "^4.2.1", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/vite", + "extracted_requirement": "^4.4.9", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://www.npmjs.com/package/api", + "repository_download_url": "https://registry.npmjs.org/api/-/api-1.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/api/1.0.0", + "datasource_id": "npm_package_json", + "purl": "pkg:npm/api@1.0.0" + } + ], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/examples/api/src-tauri", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/examples/api/src-tauri/Cargo.lock", + "type": "file", + "package_data": [ + { + "type": "cargo", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:cargo/addr2line@0.21.0", + "extracted_requirement": "0.21.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/adler@1.0.2", + "extracted_requirement": "1.0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/aead@0.5.2", + "extracted_requirement": "0.5.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cargo_lock", + "purl": null + } + ], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/examples/api/src-tauri/Cargo.toml", + "type": "file", + "package_data": [ + { + "type": "cargo", + "namespace": null, + "name": "api", + "version": "0.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "An example Tauri Application showcasing the api", + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": "apache-2.0 OR mit", + "declared_license_expression_spdx": "Apache-2.0 OR MIT", + "license_detections": [ + { + "license_expression": "apache-2.0 OR mit", + "license_expression_spdx": "Apache-2.0 OR MIT", + "matches": [ + { + "license_expression": "apache-2.0 OR mit", + "spdx_license_expression": "Apache-2.0 OR MIT", + "from_file": "tauri/examples/api/src-tauri/Cargo.toml", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "apache-2.0_or_mit_36.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_36.RULE", + "matched_text": "Apache-2.0 OR MIT" + } + ], + "identifier": "apache_2_0_or_mit-70d858d7-8968-9e7f-b90f-18b72fb96bef" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "Apache-2.0 OR MIT", + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "rust_version": "1.70", + "rust_edition": "2021" + }, + "dependencies": [ + { + "purl": "pkg:cargo/tauri-build", + "extracted_requirement": null, + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "../../../core/tauri-build", + "features": [ + "codegen", + "isolation" + ] + } + }, + { + "purl": "pkg:cargo/serde_json", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0", + "features": [ + "derive" + ] + } + }, + { + "purl": "pkg:cargo/tiny_http", + "extracted_requirement": "0.11", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/log", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/tauri-plugin-sample", + "extracted_requirement": null, + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "./tauri-plugin-sample/" + } + }, + { + "purl": "pkg:cargo/tauri", + "extracted_requirement": null, + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "../../../core/tauri", + "features": [ + "protocol-asset", + "icon-ico", + "icon-png", + "isolation", + "macos-private-api", + "tray-icon" + ] + } + }, + { + "purl": "pkg:cargo/tauri", + "extracted_requirement": null, + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "../../../core/tauri", + "features": [ + "test" + ] + } + } + ], + "repository_homepage_url": "https://crates.io/crates/api", + "repository_download_url": "https://crates.io/api/v1/crates/api/0.1.0/download", + "api_data_url": "https://crates.io/api/v1/crates/api", + "datasource_id": "cargo_toml", + "purl": "pkg:cargo/api@0.1.0" + } + ], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "tauri/package.json", + "type": "file", + "package_data": [ + { + "type": "npm", + "namespace": null, + "name": "tauri-workspace", + "version": "0.0.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "JavaScript", + "description": null, + "release_date": null, + "parties": [ + { + "type": "person", + "role": "contributor", + "name": "Tauri Programme within The Commons Conservancy", + "email": null, + "url": null + } + ], + "keywords": [], + "homepage_url": null, + "download_url": "https://registry.npmjs.org/tauri-workspace/-/tauri-workspace-0.0.0.tgz", + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": "git+https://github.com/tauri-apps/tauri.git", + "copyright": null, + "holder": null, + "declared_license_expression": "apache-2.0 OR mit", + "declared_license_expression_spdx": "Apache-2.0 OR MIT", + "license_detections": [ + { + "license_expression": "apache-2.0 OR mit", + "license_expression_spdx": "Apache-2.0 OR MIT", + "matches": [ + { + "license_expression": "apache-2.0 OR mit", + "spdx_license_expression": "Apache-2.0 OR MIT", + "from_file": "tauri/package.json", + "start_line": 1, + "end_line": 1, + "matcher": "1-hash", + "score": 100.0, + "matched_length": 5, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "apache-2.0_or_mit_36.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_36.RULE", + "matched_text": "Apache-2.0 OR MIT" + } + ], + "identifier": "apache_2_0_or_mit-70d858d7-8968-9e7f-b90f-18b72fb96bef" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "- Apache-2.0 OR MIT\n", + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:npm/typescript", + "extracted_requirement": "^4.5.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/covector", + "extracted_requirement": "^0.9.0", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/husky", + "extracted_requirement": "^6.0.0", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:npm/prettier", + "extracted_requirement": "^2.5.1", + "scope": "devDependencies", + "is_runtime": false, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://www.npmjs.com/package/tauri-workspace", + "repository_download_url": "https://registry.npmjs.org/tauri-workspace/-/tauri-workspace-0.0.0.tgz", + "api_data_url": "https://registry.npmjs.org/tauri-workspace/0.0.0", + "datasource_id": "npm_package_json", + "purl": "pkg:npm/tauri-workspace@0.0.0" + } + ], + "for_packages": [ + "pkg:npm/tauri-workspace@0.0.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/Cargo.toml b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/Cargo.toml similarity index 100% rename from tests/packagedcode/data/cargo/cargo-with-workspace/Cargo.toml rename to tests/packagedcode/data/cargo/cargo-with-workspace/tauri/Cargo.toml diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/LICENSE.spdx b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/LICENSE.spdx similarity index 100% rename from tests/packagedcode/data/cargo/cargo-with-workspace/LICENSE.spdx rename to tests/packagedcode/data/cargo/cargo-with-workspace/tauri/LICENSE.spdx diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/LICENSE_APACHE-2.0 b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/LICENSE_APACHE-2.0 similarity index 100% rename from tests/packagedcode/data/cargo/cargo-with-workspace/LICENSE_APACHE-2.0 rename to tests/packagedcode/data/cargo/cargo-with-workspace/tauri/LICENSE_APACHE-2.0 diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/LICENSE_MIT b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/LICENSE_MIT similarity index 100% rename from tests/packagedcode/data/cargo/cargo-with-workspace/LICENSE_MIT rename to tests/packagedcode/data/cargo/cargo-with-workspace/tauri/LICENSE_MIT diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/README.md b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/README.md similarity index 100% rename from tests/packagedcode/data/cargo/cargo-with-workspace/README.md rename to tests/packagedcode/data/cargo/cargo-with-workspace/tauri/README.md diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/core/tauri-build/Cargo.toml b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/core/tauri-build/Cargo.toml similarity index 65% rename from tests/packagedcode/data/cargo/cargo-with-workspace/core/tauri-build/Cargo.toml rename to tests/packagedcode/data/cargo/cargo-with-workspace/tauri/core/tauri-build/Cargo.toml index a3725585b68..79177b2ca62 100644 --- a/tests/packagedcode/data/cargo/cargo-with-workspace/core/tauri-build/Cargo.toml +++ b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/core/tauri-build/Cargo.toml @@ -12,19 +12,6 @@ license = { workspace = true } edition = { workspace = true } rust-version = { workspace = true } -[package.metadata.docs.rs] -all-features = true -default-target = "x86_64-unknown-linux-gnu" -targets = [ - "x86_64-pc-windows-msvc", - "x86_64-unknown-linux-gnu", - "x86_64-apple-darwin", - "x86_64-linux-android", - "x86_64-apple-ios" -] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] - [dependencies] anyhow = "1" quote = { version = "1", optional = true } @@ -43,9 +30,3 @@ dirs-next = "2" [target."cfg(target_os = \"macos\")".dependencies] swift-rs = { version = "1.0.6", features = [ "build" ] } plist = "1" - -[features] -codegen = [ "tauri-codegen", "quote" ] -isolation = [ "tauri-codegen/isolation", "tauri-utils/isolation" ] -config-json5 = [ "tauri-utils/config-json5" ] -config-toml = [ "tauri-utils/config-toml" ] diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/core/tauri-runtime/Cargo.toml b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/core/tauri-runtime/Cargo.toml similarity index 74% rename from tests/packagedcode/data/cargo/cargo-with-workspace/core/tauri-runtime/Cargo.toml rename to tests/packagedcode/data/cargo/cargo-with-workspace/tauri/core/tauri-runtime/Cargo.toml index 8c30ab13d5f..94afc4af703 100644 --- a/tests/packagedcode/data/cargo/cargo-with-workspace/core/tauri-runtime/Cargo.toml +++ b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/core/tauri-runtime/Cargo.toml @@ -12,19 +12,6 @@ license = { workspace = true } edition = { workspace = true } rust-version = { workspace = true } -[package.metadata.docs.rs] -all-features = true -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] -default-target = "x86_64-unknown-linux-gnu" -targets = [ - "x86_64-pc-windows-msvc", - "x86_64-unknown-linux-gnu", - "x86_64-apple-darwin", - "x86_64-linux-android", - "x86_64-apple-ios" -] - [dependencies] serde = { version = "1.0", features = [ "derive" ] } serde_json = "1.0" @@ -46,7 +33,3 @@ jni = "0.21" [target."cfg(target_os = \"macos\")".dependencies] url = "2" - -[features] -devtools = [ ] -macos-private-api = [ ] diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/core/tauri/Cargo.toml b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/core/tauri/Cargo.toml similarity index 57% rename from tests/packagedcode/data/cargo/cargo-with-workspace/core/tauri/Cargo.toml rename to tests/packagedcode/data/cargo/cargo-with-workspace/tauri/core/tauri/Cargo.toml index 97ea27d4641..11222befb70 100644 --- a/tests/packagedcode/data/cargo/cargo-with-workspace/core/tauri/Cargo.toml +++ b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/core/tauri/Cargo.toml @@ -13,33 +13,6 @@ license = { workspace = true } edition = { workspace = true } rust-version = { workspace = true } -[package.metadata.docs.rs] -no-default-features = true -features = [ - "wry", - "custom-protocol", - "tray-icon", - "devtools", - "icon-png", - "protocol-asset", - "test" -] -rustc-args = [ "--cfg", "docsrs" ] -rustdoc-args = [ "--cfg", "docsrs" ] -default-target = "x86_64-unknown-linux-gnu" -targets = [ - "x86_64-pc-windows-msvc", - "x86_64-unknown-linux-gnu", - "x86_64-apple-darwin", - "x86_64-linux-android", - "x86_64-apple-ios" -] - -[package.metadata.cargo-udeps.ignore] -normal = [ "reqwest" ] -build = [ "tauri-build" ] -development = [ "quickcheck_macros" ] - [dependencies] serde_json = { version = "1.0", features = [ "raw_value" ] } serde = { version = "1.0", features = [ "derive", "rc" ] } @@ -122,73 +95,3 @@ tauri = { path = ".", default-features = false, features = [ "wry" ] } tokio = { version = "1", features = [ "full" ] } cargo_toml = "0.17" http-range = "0.1.5" - -[features] -default = [ - "wry", - "compression", - "objc-exception", - "tray-icon?/common-controls-v6", - "muda/common-controls-v6" -] -tray-icon = [ "dep:tray-icon" ] -test = [ ] -compression = [ "tauri-macros/compression", "tauri-utils/compression" ] -wry = [ "tauri-runtime-wry" ] -objc-exception = [ "tauri-runtime-wry/objc-exception" ] -linux-ipc-protocol = [ "tauri-runtime-wry/linux-protocol-body", "webkit2gtk/v2_40" ] -linux-libxdo = [ "tray-icon/libxdo", "muda/libxdo" ] -isolation = [ "tauri-utils/isolation", "tauri-macros/isolation", "uuid" ] -custom-protocol = [ "tauri-macros/custom-protocol" ] -native-tls = [ "reqwest/native-tls" ] -native-tls-vendored = [ "reqwest/native-tls-vendored" ] -rustls-tls = [ "reqwest/rustls-tls" ] -devtools = [ "tauri-runtime/devtools", "tauri-runtime-wry/devtools" ] -process-relaunch-dangerous-allow-symlink-macos = [ "tauri-utils/process-relaunch-dangerous-allow-symlink-macos" ] -macos-private-api = [ - "tauri-runtime/macos-private-api", - "tauri-runtime-wry/macos-private-api" -] -window-data-url = [ "data-url" ] -protocol-asset = [ "http-range" ] -config-json5 = [ "tauri-macros/config-json5" ] -config-toml = [ "tauri-macros/config-toml" ] -icon-ico = [ "infer", "ico" ] -icon-png = [ "infer", "png" ] - -[[example]] -name = "commands" -path = "../../examples/commands/main.rs" - -[[example]] -name = "helloworld" -path = "../../examples/helloworld/main.rs" - -[[example]] -name = "multiwindow" -path = "../../examples/multiwindow/main.rs" - -[[example]] -name = "parent-window" -path = "../../examples/parent-window/main.rs" - -[[example]] -name = "navigation" -path = "../../examples/navigation/main.rs" - -[[example]] -name = "splashscreen" -path = "../../examples/splashscreen/main.rs" - -[[example]] -name = "state" -path = "../../examples/state/main.rs" - -[[example]] -name = "streaming" -path = "../../examples/streaming/main.rs" - -[[example]] -name = "isolation" -path = "../../examples/isolation/main.rs" -required-features = [ "isolation" ] diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/core/tests/restart/Cargo.toml b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/core/tests/restart/Cargo.toml similarity index 100% rename from tests/packagedcode/data/cargo/cargo-with-workspace/core/tests/restart/Cargo.toml rename to tests/packagedcode/data/cargo/cargo-with-workspace/tauri/core/tests/restart/Cargo.toml diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/examples/api/package.json b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/examples/api/package.json similarity index 100% rename from tests/packagedcode/data/cargo/cargo-with-workspace/examples/api/package.json rename to tests/packagedcode/data/cargo/cargo-with-workspace/tauri/examples/api/package.json diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/examples/api/src-tauri/Cargo.lock b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/examples/api/src-tauri/Cargo.lock similarity index 100% rename from tests/packagedcode/data/cargo/cargo-with-workspace/examples/api/src-tauri/Cargo.lock rename to tests/packagedcode/data/cargo/cargo-with-workspace/tauri/examples/api/src-tauri/Cargo.lock diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/examples/api/src-tauri/Cargo.toml b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/examples/api/src-tauri/Cargo.toml similarity index 85% rename from tests/packagedcode/data/cargo/cargo-with-workspace/examples/api/src-tauri/Cargo.toml rename to tests/packagedcode/data/cargo/cargo-with-workspace/tauri/examples/api/src-tauri/Cargo.toml index c83ce5c1ce1..a6df95d9274 100644 --- a/tests/packagedcode/data/cargo/cargo-with-workspace/examples/api/src-tauri/Cargo.toml +++ b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/examples/api/src-tauri/Cargo.toml @@ -44,14 +44,3 @@ features = ["test"] [target."cfg(target_os = \"windows\")".dependencies] window-shadows= "0.2" - -[features] -custom-protocol = [ "tauri/custom-protocol" ] - -# default to small, optimized release binaries -[profile.release] -panic = "abort" -codegen-units = 1 -lto = true -incremental = false -opt-level = "s" diff --git a/tests/packagedcode/data/cargo/cargo-with-workspace/package.json b/tests/packagedcode/data/cargo/cargo-with-workspace/tauri/package.json similarity index 100% rename from tests/packagedcode/data/cargo/cargo-with-workspace/package.json rename to tests/packagedcode/data/cargo/cargo-with-workspace/tauri/package.json diff --git a/tests/packagedcode/data/cargo/cargo_toml/boring-child/Cargo.toml b/tests/packagedcode/data/cargo/cargo_toml/boring-child/Cargo.toml new file mode 100644 index 00000000000..84ebd07b95f --- /dev/null +++ b/tests/packagedcode/data/cargo/cargo_toml/boring-child/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "boring-sys" +version = { workspace = true } +authors = ["Alex Crichton ", + "Steven Fackler ", + "Ivan Nikulin "] +license = "MIT" +description = "FFI bindings to BoringSSL" +repository = { workspace = true } +documentation = "https://docs.rs/boring-sys" +links = "boringssl" +build = "build/main.rs" +readme = "README.md" +categories = ["cryptography", "external-ffi-bindings"] +edition = { workspace = true } + +[build-dependencies] +bindgen = { workspace = true } +cmake = { workspace = true } +fs_extra = { workspace = true } +fslock = { workspace = true } diff --git a/tests/packagedcode/data/cargo/cargo_toml/boring-child/Cargo.toml.expected b/tests/packagedcode/data/cargo/cargo_toml/boring-child/Cargo.toml.expected new file mode 100644 index 00000000000..2c7082cb036 --- /dev/null +++ b/tests/packagedcode/data/cargo/cargo_toml/boring-child/Cargo.toml.expected @@ -0,0 +1,146 @@ +[ + { + "type": "cargo", + "namespace": null, + "name": "boring-sys", + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "FFI bindings to BoringSSL", + "release_date": null, + "parties": [ + { + "type": "person", + "role": "author", + "name": "Alex Crichton", + "email": "alex@alexcrichton.com", + "url": null + }, + { + "type": "person", + "role": "author", + "name": "Steven Fackler", + "email": "sfackler@gmail.com", + "url": null + }, + { + "type": "person", + "role": "author", + "name": "Ivan Nikulin", + "email": "ifaaan@gmail.com", + "url": null + } + ], + "keywords": [ + "cryptography", + "external-ffi-bindings" + ], + "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, + "holder": null, + "declared_license_expression": "mit", + "declared_license_expression_spdx": "MIT", + "license_detections": [ + { + "license_expression": "mit", + "license_expression_spdx": "MIT", + "matches": [ + { + "license_expression": "mit", + "spdx_license_expression": "MIT", + "from_file": null, + "start_line": 1, + "end_line": 1, + "matcher": "1-spdx-id", + "score": 100.0, + "matched_length": 1, + "match_coverage": 100.0, + "rule_relevance": 100, + "rule_identifier": "spdx-license-identifier-mit-5da48780aba670b0860c46d899ed42a0f243ff06", + "rule_url": null, + "matched_text": "MIT" + } + ], + "identifier": "mit-a822f434-d61f-f2b1-c792-8b8cb9e7b9bf" + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "MIT", + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "version": "workspace", + "repository": "workspace", + "edition": "workspace", + "documentation_url": "https://docs.rs/boring-sys" + }, + "dependencies": [ + { + "purl": "pkg:cargo/bindgen", + "extracted_requirement": null, + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "workspace": true + } + }, + { + "purl": "pkg:cargo/cmake", + "extracted_requirement": null, + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "workspace": true + } + }, + { + "purl": "pkg:cargo/fs_extra", + "extracted_requirement": null, + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "workspace": true + } + }, + { + "purl": "pkg:cargo/fslock", + "extracted_requirement": null, + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "workspace": true + } + } + ], + "repository_homepage_url": "https://crates.io/crates/boring-sys", + "repository_download_url": null, + "api_data_url": "https://crates.io/api/v1/crates/boring-sys", + "datasource_id": "cargo_toml", + "purl": "pkg:cargo/boring-sys" + } +] \ No newline at end of file diff --git a/tests/packagedcode/data/cargo/cargo_toml/boring-main/Cargo.toml b/tests/packagedcode/data/cargo/cargo_toml/boring-main/Cargo.toml new file mode 100644 index 00000000000..aaeb3db2037 --- /dev/null +++ b/tests/packagedcode/data/cargo/cargo_toml/boring-main/Cargo.toml @@ -0,0 +1,44 @@ +[workspace] +members = [ + "boring", + "boring-sys", + "tokio-boring", + "hyper-boring" +] +resolver = "2" + +[workspace.package] +version = "4.6.0" +repository = "https://github.com/cloudflare/boring" +edition = "2021" + +[workspace.metadata.release] +pre-release-commit-message = "Release {{version}}" +shared-version = true +tag-prefix = "" +publish = false + +[workspace.dependencies] +boring-sys = { version = "4.6.0", path = "./boring-sys" } +boring = { version = "4.6.0", path = "./boring" } +tokio-boring = { version = "4.6.0", path = "./tokio-boring" } + +bindgen = { version = "0.68.1", default-features = false, features = ["runtime"] } +cmake = "0.1.18" +fs_extra = "1.3.0" +fslock = "0.2" +bitflags = "2.4" +foreign-types = "0.5" +libc = "0.2" +hex = "0.4" +rusty-hook = "^0.11" +futures = "0.3" +tokio = "1" +anyhow = "1" +antidote = "1.0.0" +http = "0.2" +hyper = { version = "0.14", default-features = false } +linked_hash_set = "0.1" +once_cell = "1.0" +tower = "0.4" +tower-layer = "0.3" diff --git a/tests/packagedcode/data/cargo/cargo_toml/boring-main/Cargo.toml.expected b/tests/packagedcode/data/cargo/cargo_toml/boring-main/Cargo.toml.expected new file mode 100644 index 00000000000..7037878eea2 --- /dev/null +++ b/tests/packagedcode/data/cargo/cargo_toml/boring-main/Cargo.toml.expected @@ -0,0 +1,109 @@ +[ + { + "type": "cargo", + "namespace": null, + "name": null, + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "Rust", + "description": "", + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": { + "workspace": { + "members": [ + "boring", + "boring-sys", + "tokio-boring", + "hyper-boring" + ], + "resolver": "2", + "package": { + "version": "4.6.0", + "repository": "https://github.com/cloudflare/boring", + "edition": "2021" + }, + "metadata": { + "release": { + "pre-release-commit-message": "Release {{version}}", + "shared-version": true, + "tag-prefix": "", + "publish": false + } + }, + "dependencies": { + "boring-sys": { + "version": "4.6.0", + "path": "./boring-sys" + }, + "boring": { + "version": "4.6.0", + "path": "./boring" + }, + "tokio-boring": { + "version": "4.6.0", + "path": "./tokio-boring" + }, + "bindgen": { + "version": "0.68.1", + "default-features": false, + "features": [ + "runtime" + ] + }, + "cmake": "0.1.18", + "fs_extra": "1.3.0", + "fslock": "0.2", + "bitflags": "2.4", + "foreign-types": "0.5", + "libc": "0.2", + "hex": "0.4", + "rusty-hook": "^0.11", + "futures": "0.3", + "tokio": "1", + "anyhow": "1", + "antidote": "1.0.0", + "http": "0.2", + "hyper": { + "version": "0.14", + "default-features": false + }, + "linked_hash_set": "0.1", + "once_cell": "1.0", + "tower": "0.4", + "tower-layer": "0.3" + } + } + }, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "cargo_toml", + "purl": null + } +] \ No newline at end of file diff --git a/tests/packagedcode/data/cargo/cargo_toml/clap/Cargo.toml.expected b/tests/packagedcode/data/cargo/cargo_toml/clap/Cargo.toml.expected index fc87d164f1a..b30fd5da915 100644 --- a/tests/packagedcode/data/cargo/cargo_toml/clap/Cargo.toml.expected +++ b/tests/packagedcode/data/cargo/cargo_toml/clap/Cargo.toml.expected @@ -18,7 +18,14 @@ "url": null } ], - "keywords": [], + "keywords": [ + "argument", + "cli", + "arg", + "parser", + "parse", + "command-line-interface" + ], "homepage_url": "https://clap.rs/", "download_url": null, "size": null, @@ -39,17 +46,17 @@ "license_expression_spdx": "MIT", "matches": [ { - "score": 100.0, + "license_expression": "mit", + "spdx_license_expression": "MIT", + "from_file": null, "start_line": 1, "end_line": 1, - "from_file": null, + "matcher": "1-spdx-id", + "score": 100.0, "matched_length": 1, "match_coverage": 100.0, - "matcher": "1-spdx-id", - "license_expression": "mit", - "spdx_license_expression": "MIT", - "rule_identifier": "spdx-license-identifier-mit-5da48780aba670b0860c46d899ed42a0f243ff06", "rule_relevance": 100, + "rule_identifier": "spdx-license-identifier-mit-5da48780aba670b0860c46d899ed42a0f243ff06", "rule_url": null, "matched_text": "MIT" } @@ -64,8 +71,143 @@ "notice_text": null, "source_packages": [], "file_references": [], - "extra_data": {}, - "dependencies": [], + "extra_data": { + "documentation_url": "https://docs.rs/clap/" + }, + "dependencies": [ + { + "purl": "pkg:cargo/bitflags", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/unicode-width", + "extracted_requirement": "0.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/textwrap", + "extracted_requirement": "0.10.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/strsim", + "extracted_requirement": "0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.8" + } + }, + { + "purl": "pkg:cargo/yaml-rust", + "extracted_requirement": "0.3.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.3.5" + } + }, + { + "purl": "pkg:cargo/clippy", + "extracted_requirement": "~0.0.166", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "~0.0.166" + } + }, + { + "purl": "pkg:cargo/atty", + "extracted_requirement": "0.2.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.2.2" + } + }, + { + "purl": "pkg:cargo/vec_map", + "extracted_requirement": "0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.8" + } + }, + { + "purl": "pkg:cargo/term_size", + "extracted_requirement": "0.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.3.0" + } + }, + { + "purl": "pkg:cargo/regex", + "extracted_requirement": "1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/lazy_static", + "extracted_requirement": "~1.1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/version-sync", + "extracted_requirement": "0.5", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], "repository_homepage_url": "https://crates.io/crates/clap", "repository_download_url": "https://crates.io/api/v1/crates/clap/2.32.0/download", "api_data_url": "https://crates.io/api/v1/crates/clap", diff --git a/tests/packagedcode/data/cargo/cargo_toml/clippy/Cargo.toml.expected b/tests/packagedcode/data/cargo/cargo_toml/clippy/Cargo.toml.expected index a8585508038..1834c064a82 100644 --- a/tests/packagedcode/data/cargo/cargo_toml/clippy/Cargo.toml.expected +++ b/tests/packagedcode/data/cargo/cargo_toml/clippy/Cargo.toml.expected @@ -46,7 +46,13 @@ "url": null } ], - "keywords": [], + "keywords": [ + "clippy", + "lint", + "plugin", + "development-tools", + "development-tools::cargo-plugins" + ], "homepage_url": null, "download_url": null, "size": null, @@ -67,17 +73,17 @@ "license_expression_spdx": "MIT OR Apache-2.0", "matches": [ { - "score": 99.0, + "license_expression": "mit OR apache-2.0", + "spdx_license_expression": "MIT OR Apache-2.0", + "from_file": null, "start_line": 1, "end_line": 1, - "from_file": null, + "matcher": "1-hash", + "score": 99.0, "matched_length": 4, "match_coverage": 100.0, - "matcher": "1-hash", - "license_expression": "mit OR apache-2.0", - "spdx_license_expression": "MIT OR Apache-2.0", - "rule_identifier": "mit_or_apache-2.0_1.RULE", "rule_relevance": 99, + "rule_identifier": "mit_or_apache-2.0_1.RULE", "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_or_apache-2.0_1.RULE", "matched_text": "MIT/Apache-2.0" } @@ -92,8 +98,166 @@ "notice_text": null, "source_packages": [], "file_references": [], - "extra_data": {}, - "dependencies": [], + "extra_data": { + "rust_edition": "2018" + }, + "dependencies": [ + { + "purl": "pkg:cargo/clippy_lints", + "extracted_requirement": "0.0.212", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.0.212", + "path": "clippy_lints" + } + }, + { + "purl": "pkg:cargo/regex", + "extracted_requirement": "1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/semver", + "extracted_requirement": "0.9", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/rustc_tools_util", + "extracted_requirement": "0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.1.1", + "path": "rustc_tools_util" + } + }, + { + "purl": "pkg:cargo/clippy_dev", + "extracted_requirement": "0.0.1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.0.1", + "path": "clippy_dev" + } + }, + { + "purl": "pkg:cargo/cargo_metadata", + "extracted_requirement": "0.7.1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/compiletest_rs", + "extracted_requirement": "0.3.19", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/lazy_static", + "extracted_requirement": "1.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/serde_derive", + "extracted_requirement": "1.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/clippy-mini-macro-test", + "extracted_requirement": "0.2", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.2", + "path": "mini-macro" + } + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/derive-new", + "extracted_requirement": "0.5", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/rustc-workspace-hack", + "extracted_requirement": "1.0.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/rustc_tools_util", + "extracted_requirement": "0.1.1", + "scope": "build-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.1.1", + "path": "rustc_tools_util" + } + } + ], "repository_homepage_url": "https://crates.io/crates/clippy", "repository_download_url": "https://crates.io/api/v1/crates/clippy/0.0.212/download", "api_data_url": "https://crates.io/api/v1/crates/clippy", diff --git a/tests/packagedcode/data/cargo/cargo_toml/mdbook/Cargo.toml.expected b/tests/packagedcode/data/cargo/cargo_toml/mdbook/Cargo.toml.expected index 120a987ea56..31dad5fba6f 100644 --- a/tests/packagedcode/data/cargo/cargo_toml/mdbook/Cargo.toml.expected +++ b/tests/packagedcode/data/cargo/cargo_toml/mdbook/Cargo.toml.expected @@ -32,7 +32,12 @@ "url": null } ], - "keywords": [], + "keywords": [ + "book", + "gitbook", + "rustbook", + "markdown" + ], "homepage_url": null, "download_url": null, "size": null, @@ -53,17 +58,17 @@ "license_expression_spdx": "MPL-2.0", "matches": [ { - "score": 50.0, + "license_expression": "mpl-2.0", + "spdx_license_expression": "MPL-2.0", + "from_file": null, "start_line": 1, "end_line": 1, - "from_file": null, + "matcher": "1-hash", + "score": 50.0, "matched_length": 3, "match_coverage": 100.0, - "matcher": "1-hash", - "license_expression": "mpl-2.0", - "spdx_license_expression": "MPL-2.0", - "rule_identifier": "spdx_license_id_mpl-2.0_for_mpl-2.0.RULE", "rule_relevance": 50, + "rule_identifier": "spdx_license_id_mpl-2.0_for_mpl-2.0.RULE", "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/spdx_license_id_mpl-2.0_for_mpl-2.0.RULE", "matched_text": "MPL-2.0" } @@ -78,8 +83,314 @@ "notice_text": null, "source_packages": [], "file_references": [], - "extra_data": {}, - "dependencies": [], + "extra_data": { + "documentation_url": "http://rust-lang-nursery.github.io/mdBook/index.html" + }, + "dependencies": [ + { + "purl": "pkg:cargo/clap", + "extracted_requirement": "2.24", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/chrono", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/handlebars", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/serde_derive", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/error-chain", + "extracted_requirement": "0.12", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/serde_json", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/pulldown-cmark", + "extracted_requirement": "0.1.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/lazy_static", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/log", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/env_logger", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/toml", + "extracted_requirement": "0.4.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/memchr", + "extracted_requirement": "2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/open", + "extracted_requirement": "1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/regex", + "extracted_requirement": "1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/tempfile", + "extracted_requirement": "3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/itertools", + "extracted_requirement": "0.7", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/shlex", + "extracted_requirement": "0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/toml-query", + "extracted_requirement": "0.7", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/notify", + "extracted_requirement": "4.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "4.0" + } + }, + { + "purl": "pkg:cargo/iron", + "extracted_requirement": "0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.6" + } + }, + { + "purl": "pkg:cargo/staticfile", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.5" + } + }, + { + "purl": "pkg:cargo/ws", + "extracted_requirement": "0.7", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.7" + } + }, + { + "purl": "pkg:cargo/elasticlunr-rs", + "extracted_requirement": "2.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2.3", + "default-features": false + } + }, + { + "purl": "pkg:cargo/ammonia", + "extracted_requirement": "1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.1" + } + }, + { + "purl": "pkg:cargo/select", + "extracted_requirement": "0.4", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/pretty_assertions", + "extracted_requirement": "0.5", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/walkdir", + "extracted_requirement": "2.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/pulldown-cmark-to-cmark", + "extracted_requirement": "1.1.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], "repository_homepage_url": "https://crates.io/crates/mdbook", "repository_download_url": "https://crates.io/api/v1/crates/mdbook/0.2.4-alpha.0/download", "api_data_url": "https://crates.io/api/v1/crates/mdbook", diff --git a/tests/packagedcode/data/cargo/cargo_toml/rustfmt/Cargo.toml.expected b/tests/packagedcode/data/cargo/cargo_toml/rustfmt/Cargo.toml.expected index 34f798d0394..9407ec023b9 100644 --- a/tests/packagedcode/data/cargo/cargo_toml/rustfmt/Cargo.toml.expected +++ b/tests/packagedcode/data/cargo/cargo_toml/rustfmt/Cargo.toml.expected @@ -25,7 +25,9 @@ "url": null } ], - "keywords": [], + "keywords": [ + "development-tools" + ], "homepage_url": null, "download_url": null, "size": null, @@ -46,17 +48,17 @@ "license_expression_spdx": "Apache-2.0 OR MIT", "matches": [ { - "score": 99.0, + "license_expression": "apache-2.0 OR mit", + "spdx_license_expression": "Apache-2.0 OR MIT", + "from_file": null, "start_line": 1, "end_line": 1, - "from_file": null, + "matcher": "1-hash", + "score": 99.0, "matched_length": 4, "match_coverage": 100.0, - "matcher": "1-hash", - "license_expression": "apache-2.0 OR mit", - "spdx_license_expression": "Apache-2.0 OR MIT", - "rule_identifier": "apache-2.0_or_mit_48.RULE", "rule_relevance": 99, + "rule_identifier": "apache-2.0_or_mit_48.RULE", "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_or_mit_48.RULE", "matched_text": "Apache-2.0/MIT" } @@ -71,8 +73,261 @@ "notice_text": null, "source_packages": [], "file_references": [], - "extra_data": {}, - "dependencies": [], + "extra_data": { + "rust_edition": "2018" + }, + "dependencies": [ + { + "purl": "pkg:cargo/atty", + "extracted_requirement": "0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/itertools", + "extracted_requirement": "0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/toml", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/serde_derive", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/serde_json", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/unicode-segmentation", + "extracted_requirement": "1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/regex", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/term", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/diff", + "extracted_requirement": "0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/log", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/env_logger", + "extracted_requirement": "0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/getopts", + "extracted_requirement": "0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/derive-new", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/cargo_metadata", + "extracted_requirement": "0.7", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/rustc-ap-rustc_target", + "extracted_requirement": "373.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/rustc-ap-syntax", + "extracted_requirement": "373.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/rustc-ap-syntax_pos", + "extracted_requirement": "373.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/failure", + "extracted_requirement": "0.1.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/bytecount", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/unicode-width", + "extracted_requirement": "0.1.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/unicode_categories", + "extracted_requirement": "0.1.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/dirs", + "extracted_requirement": "1.0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/rustc-workspace-hack", + "extracted_requirement": "1.0.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/lazy_static", + "extracted_requirement": "1.0.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], "repository_homepage_url": "https://crates.io/crates/rustfmt-nightly", "repository_download_url": "https://crates.io/api/v1/crates/rustfmt-nightly/1.0.3/download", "api_data_url": "https://crates.io/api/v1/crates/rustfmt-nightly", diff --git a/tests/packagedcode/data/cargo/cargo_toml/rustup/Cargo.toml.expected b/tests/packagedcode/data/cargo/cargo_toml/rustup/Cargo.toml.expected index 457a1549d3b..a39f2cd6f85 100644 --- a/tests/packagedcode/data/cargo/cargo_toml/rustup/Cargo.toml.expected +++ b/tests/packagedcode/data/cargo/cargo_toml/rustup/Cargo.toml.expected @@ -18,7 +18,12 @@ "url": null } ], - "keywords": [], + "keywords": [ + "rustup", + "multirust", + "install", + "proxy" + ], "homepage_url": "https://github.com/rust-lang/rustup.rs", "download_url": null, "size": null, @@ -39,17 +44,17 @@ "license_expression_spdx": "MIT OR Apache-2.0", "matches": [ { - "score": 100.0, + "license_expression": "mit OR apache-2.0", + "spdx_license_expression": "MIT OR Apache-2.0", + "from_file": null, "start_line": 1, "end_line": 1, - "from_file": null, + "matcher": "1-hash", + "score": 100.0, "matched_length": 5, "match_coverage": 100.0, - "matcher": "1-hash", - "license_expression": "mit OR apache-2.0", - "spdx_license_expression": "MIT OR Apache-2.0", - "rule_identifier": "mit_or_apache-2.0_15.RULE", "rule_relevance": 100, + "rule_identifier": "mit_or_apache-2.0_15.RULE", "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_or_apache-2.0_15.RULE", "matched_text": "MIT OR Apache-2.0" } @@ -69,9 +74,253 @@ "members": [ "src/download" ] - } + }, + "documentation_url": "http://rust-lang.github.io/rustup.rs/rustup/index.html", + "rust_edition": "2018" }, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:cargo/rustup-dist", + "extracted_requirement": null, + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "src/rustup-dist" + } + }, + { + "purl": "pkg:cargo/rustup-utils", + "extracted_requirement": null, + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "src/rustup-utils" + } + }, + { + "purl": "pkg:cargo/download", + "extracted_requirement": null, + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "src/download" + } + }, + { + "purl": "pkg:cargo/clap", + "extracted_requirement": "2.18.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/error-chain", + "extracted_requirement": "0.12.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/itertools", + "extracted_requirement": "0.7.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/libc", + "extracted_requirement": "0.2.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/markdown", + "extracted_requirement": "0.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/rand", + "extracted_requirement": "0.5.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/regex", + "extracted_requirement": "1.0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/remove_dir_all", + "extracted_requirement": "0.5.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/same-file", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/scopeguard", + "extracted_requirement": "0.3", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/sha2", + "extracted_requirement": "0.7.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/tempdir", + "extracted_requirement": "0.3.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/term", + "extracted_requirement": "0.5.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/time", + "extracted_requirement": "0.1.34", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/toml", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/url", + "extracted_requirement": "1.1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/wait-timeout", + "extracted_requirement": "0.1.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/openssl", + "extracted_requirement": "0.10.15", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.10.15" + } + }, + { + "purl": "pkg:cargo/rustup-mock", + "extracted_requirement": "1.1.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "src/rustup-mock", + "version": "1.1.0" + } + }, + { + "purl": "pkg:cargo/lazy_static", + "extracted_requirement": "1.0.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], "repository_homepage_url": "https://crates.io/crates/rustup", "repository_download_url": "https://crates.io/api/v1/crates/rustup/1.17.0/download", "api_data_url": "https://crates.io/api/v1/crates/rustup", diff --git a/tests/packagedcode/data/cargo/cargo_toml/tauri-examples/Cargo.toml.expected b/tests/packagedcode/data/cargo/cargo_toml/tauri-examples/Cargo.toml.expected index 32ee8a491c6..2aeb2a6ecfb 100644 --- a/tests/packagedcode/data/cargo/cargo_toml/tauri-examples/Cargo.toml.expected +++ b/tests/packagedcode/data/cargo/cargo_toml/tauri-examples/Cargo.toml.expected @@ -34,7 +34,8 @@ "source_packages": [], "file_references": [], "extra_data": { - "version": "workspace" + "version": "workspace", + "rust_edition": "2021" }, "dependencies": [], "repository_homepage_url": "https://crates.io/crates/core-api", diff --git a/tests/packagedcode/data/cargo/cargo_toml/tauri/Cargo.toml.expected b/tests/packagedcode/data/cargo/cargo_toml/tauri/Cargo.toml.expected index 2d142d914af..8b2b919f6da 100644 --- a/tests/packagedcode/data/cargo/cargo_toml/tauri/Cargo.toml.expected +++ b/tests/packagedcode/data/cargo/cargo_toml/tauri/Cargo.toml.expected @@ -9,19 +9,9 @@ "primary_language": "Rust", "description": "Runtime for Tauri applications", "release_date": null, - "parties": [ - { - "type": "person", - "role": "author", - "name": "workspace", - "email": null, - "url": null - } - ], + "parties": [], "keywords": [], - "homepage_url": { - "workspace": true - }, + "homepage_url": null, "download_url": null, "size": null, "sha1": null, @@ -30,46 +20,110 @@ "sha512": null, "bug_tracking_url": null, "code_view_url": null, - "vcs_url": { - "workspace": true - }, + "vcs_url": null, "copyright": null, "holder": null, - "declared_license_expression": "unknown", - "declared_license_expression_spdx": "LicenseRef-scancode-unknown", - "license_detections": [ - { - "license_expression": "unknown", - "license_expression_spdx": "LicenseRef-scancode-unknown", - "matches": [ - { - "license_expression": "unknown", - "spdx_license_expression": "LicenseRef-scancode-unknown", - "from_file": null, - "start_line": 1, - "end_line": 1, - "matcher": "5-undetected", - "score": 100.0, - "matched_length": 3, - "match_coverage": 100.0, - "rule_relevance": 100, - "rule_identifier": "package-manifest-unknown-06e9bf2862e301d2e03347936ee156170df84855", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/package-manifest-unknown-06e9bf2862e301d2e03347936ee156170df84855", - "matched_text": "license {'workspace': True}" - } - ], - "identifier": "unknown-91d148c3-19ed-e6b1-0d37-5f588dcd6a94" - } - ], + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], "other_license_expression": null, "other_license_expression_spdx": null, "other_license_detections": [], - "extracted_license_statement": "workspace: yes\n", + "extracted_license_statement": null, "notice_text": null, "source_packages": [], "file_references": [], - "extra_data": {}, - "dependencies": [], + "extra_data": { + "authors": "workspace", + "homepage": "workspace", + "repository": "workspace", + "categories": "workspace", + "license": "workspace", + "edition": "workspace", + "rust-version": "workspace" + }, + "dependencies": [ + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0", + "features": [ + "derive" + ] + } + }, + { + "purl": "pkg:cargo/serde_json", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/thiserror", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/tauri-utils", + "extracted_requirement": "2.0.0-alpha.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2.0.0-alpha.10", + "path": "../tauri-utils" + } + }, + { + "purl": "pkg:cargo/http", + "extracted_requirement": "0.2.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/raw-window-handle", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/url", + "extracted_requirement": "2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "2" + } + } + ], "repository_homepage_url": "https://crates.io/crates/tauri-runtime", "repository_download_url": "https://crates.io/api/v1/crates/tauri-runtime/1.0.0-alpha.4/download", "api_data_url": "https://crates.io/api/v1/crates/tauri-runtime", diff --git a/tests/packagedcode/data/cargo/scan-package-only.expected.json b/tests/packagedcode/data/cargo/scan-package-only.expected.json index 5355bf80b74..f43796fbc94 100644 --- a/tests/packagedcode/data/cargo/scan-package-only.expected.json +++ b/tests/packagedcode/data/cargo/scan-package-only.expected.json @@ -293,7 +293,10 @@ "url": null } ], - "keywords": [], + "keywords": [ + "apple", + "xar" + ], "homepage_url": "https://github.com/indygreg/PyOxidizer", "download_url": null, "size": null, @@ -316,8 +319,245 @@ "notice_text": null, "source_packages": [], "file_references": [], - "extra_data": {}, - "dependencies": [], + "extra_data": { + "rust_edition": "2021" + }, + "dependencies": [ + { + "purl": "pkg:cargo/base64", + "extracted_requirement": "0.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/bcder", + "extracted_requirement": "0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/bzip2", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/chrono", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.4", + "features": [ + "serde" + ] + } + }, + { + "purl": "pkg:cargo/digest", + "extracted_requirement": "0.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/log", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/md-5", + "extracted_requirement": "0.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/flate2", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/rand", + "extracted_requirement": "0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/reqwest", + "extracted_requirement": "0.11", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.11", + "default-features": false + } + }, + { + "purl": "pkg:cargo/scroll", + "extracted_requirement": "0.11", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.11", + "features": [ + "derive" + ] + } + }, + { + "purl": "pkg:cargo/serde-xml-rs", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0", + "features": [ + "derive" + ] + } + }, + { + "purl": "pkg:cargo/sha1", + "extracted_requirement": "0.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/sha2", + "extracted_requirement": "0.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/thiserror", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/url", + "extracted_requirement": "2.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/xml-rs", + "extracted_requirement": "0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/xz2", + "extracted_requirement": "0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/cryptographic-message-syntax", + "extracted_requirement": "0.15.0-pre", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "../cryptographic-message-syntax", + "version": "0.15.0-pre" + } + }, + { + "purl": "pkg:cargo/x509-certificate", + "extracted_requirement": "0.13.0-pre", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "../x509-certificate", + "version": "0.13.0-pre" + } + } + ], "repository_homepage_url": "https://crates.io/crates/apple-xar", "repository_download_url": "https://crates.io/api/v1/crates/apple-xar/0.4.0-pre/download", "api_data_url": "https://crates.io/api/v1/crates/apple-xar", @@ -365,7 +605,17 @@ "url": null } ], - "keywords": [], + "keywords": [ + "search", + "text", + "aho", + "multi", + "double-array", + "text-processing", + "algorithms", + "data-structures", + "no-std" + ], "homepage_url": "https://github.com/daac-tools/daachorse", "download_url": null, "size": null, @@ -394,7 +644,8 @@ "bench", "daacfind" ] - } + }, + "rust_edition": "2021" }, "dependencies": [], "repository_homepage_url": "https://crates.io/crates/daachorse", diff --git a/tests/packagedcode/data/cargo/scan.expected.json b/tests/packagedcode/data/cargo/scan.expected.json index 8af8ca3ac2c..75039382a7c 100644 --- a/tests/packagedcode/data/cargo/scan.expected.json +++ b/tests/packagedcode/data/cargo/scan.expected.json @@ -19,7 +19,10 @@ "url": null } ], - "keywords": [], + "keywords": [ + "apple", + "xar" + ], "homepage_url": "https://github.com/indygreg/PyOxidizer", "download_url": null, "size": null, @@ -64,7 +67,9 @@ "extracted_license_statement": "MPL-2.0", "notice_text": null, "source_packages": [], - "extra_data": {}, + "extra_data": { + "rust_edition": "2021" + }, "repository_homepage_url": "https://crates.io/crates/apple-xar", "repository_download_url": "https://crates.io/api/v1/crates/apple-xar/0.4.0-pre/download", "api_data_url": "https://crates.io/api/v1/crates/apple-xar", @@ -103,7 +108,17 @@ "url": null } ], - "keywords": [], + "keywords": [ + "search", + "text", + "aho", + "multi", + "double-array", + "text-processing", + "algorithms", + "data-structures", + "no-std" + ], "homepage_url": "https://github.com/daac-tools/daachorse", "download_url": null, "size": null, @@ -154,7 +169,8 @@ "bench", "daacfind" ] - } + }, + "rust_edition": "2021" }, "repository_homepage_url": "https://crates.io/crates/daachorse", "repository_download_url": "https://crates.io/api/v1/crates/daachorse/0.4.1/download", @@ -170,6 +186,324 @@ } ], "dependencies": [ + { + "purl": "pkg:cargo/base64", + "extracted_requirement": "0.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/base64?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/bcder", + "extracted_requirement": "0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/bcder?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/bzip2", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/bzip2?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/chrono", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.4", + "features": [ + "serde" + ] + }, + "dependency_uid": "pkg:cargo/chrono?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/digest", + "extracted_requirement": "0.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/digest?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/log", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/log?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/md-5", + "extracted_requirement": "0.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/md-5?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/flate2", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/flate2?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/rand", + "extracted_requirement": "0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/rand?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/reqwest", + "extracted_requirement": "0.11", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.11", + "default-features": false + }, + "dependency_uid": "pkg:cargo/reqwest?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/scroll", + "extracted_requirement": "0.11", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.11", + "features": [ + "derive" + ] + }, + "dependency_uid": "pkg:cargo/scroll?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/serde-xml-rs", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/serde-xml-rs?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0", + "features": [ + "derive" + ] + }, + "dependency_uid": "pkg:cargo/serde?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/sha1", + "extracted_requirement": "0.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/sha1?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/sha2", + "extracted_requirement": "0.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/sha2?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/thiserror", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/thiserror?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/url", + "extracted_requirement": "2.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/url?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/xml-rs", + "extracted_requirement": "0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/xml-rs?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/xz2", + "extracted_requirement": "0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/xz2?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/cryptographic-message-syntax", + "extracted_requirement": "0.15.0-pre", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "../cryptographic-message-syntax", + "version": "0.15.0-pre" + }, + "dependency_uid": "pkg:cargo/cryptographic-message-syntax?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/x509-certificate", + "extracted_requirement": "0.13.0-pre", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "../x509-certificate", + "version": "0.13.0-pre" + }, + "dependency_uid": "pkg:cargo/x509-certificate?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/apple-xar@0.4.0-pre?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "scan/Cargo.toml", + "datasource_id": "cargo_toml" + }, { "purl": "pkg:cargo/ahash@0.7.4", "extracted_requirement": "0.7.4", @@ -759,7 +1093,10 @@ "url": null } ], - "keywords": [], + "keywords": [ + "apple", + "xar" + ], "homepage_url": "https://github.com/indygreg/PyOxidizer", "download_url": null, "size": null, @@ -805,8 +1142,245 @@ "notice_text": null, "source_packages": [], "file_references": [], - "extra_data": {}, - "dependencies": [], + "extra_data": { + "rust_edition": "2021" + }, + "dependencies": [ + { + "purl": "pkg:cargo/base64", + "extracted_requirement": "0.13", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/bcder", + "extracted_requirement": "0.6", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/bzip2", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/chrono", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.4", + "features": [ + "serde" + ] + } + }, + { + "purl": "pkg:cargo/digest", + "extracted_requirement": "0.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/log", + "extracted_requirement": "0.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/md-5", + "extracted_requirement": "0.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/flate2", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/rand", + "extracted_requirement": "0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/reqwest", + "extracted_requirement": "0.11", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.11", + "default-features": false + } + }, + { + "purl": "pkg:cargo/scroll", + "extracted_requirement": "0.11", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.11", + "features": [ + "derive" + ] + } + }, + { + "purl": "pkg:cargo/serde-xml-rs", + "extracted_requirement": "0.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0", + "features": [ + "derive" + ] + } + }, + { + "purl": "pkg:cargo/sha1", + "extracted_requirement": "0.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/sha2", + "extracted_requirement": "0.10", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/thiserror", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/url", + "extracted_requirement": "2.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/xml-rs", + "extracted_requirement": "0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/xz2", + "extracted_requirement": "0.1", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/cryptographic-message-syntax", + "extracted_requirement": "0.15.0-pre", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "../cryptographic-message-syntax", + "version": "0.15.0-pre" + } + }, + { + "purl": "pkg:cargo/x509-certificate", + "extracted_requirement": "0.13.0-pre", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "../x509-certificate", + "version": "0.13.0-pre" + } + } + ], "repository_homepage_url": "https://crates.io/crates/apple-xar", "repository_download_url": "https://crates.io/api/v1/crates/apple-xar/0.4.0-pre/download", "api_data_url": "https://crates.io/api/v1/crates/apple-xar", @@ -856,7 +1430,17 @@ "url": null } ], - "keywords": [], + "keywords": [ + "search", + "text", + "aho", + "multi", + "double-array", + "text-processing", + "algorithms", + "data-structures", + "no-std" + ], "homepage_url": "https://github.com/daac-tools/daachorse", "download_url": null, "size": null, @@ -908,7 +1492,8 @@ "bench", "daacfind" ] - } + }, + "rust_edition": "2021" }, "dependencies": [], "repository_homepage_url": "https://crates.io/crates/daachorse", diff --git a/tests/packagedcode/data/plugin/cargo-package-expected.json b/tests/packagedcode/data/plugin/cargo-package-expected.json index dcd0333054f..2777416d81d 100644 --- a/tests/packagedcode/data/plugin/cargo-package-expected.json +++ b/tests/packagedcode/data/plugin/cargo-package-expected.json @@ -19,7 +19,14 @@ "url": null } ], - "keywords": [], + "keywords": [ + "argument", + "cli", + "arg", + "parser", + "parse", + "command-line-interface" + ], "homepage_url": "https://clap.rs/", "download_url": null, "size": null, @@ -64,7 +71,9 @@ "extracted_license_statement": "MIT", "notice_text": null, "source_packages": [], - "extra_data": {}, + "extra_data": { + "documentation_url": "https://docs.rs/clap/" + }, "repository_homepage_url": "https://crates.io/crates/clap", "repository_download_url": "https://crates.io/api/v1/crates/clap/2.32.0/download", "api_data_url": "https://crates.io/api/v1/crates/clap", @@ -78,7 +87,188 @@ "purl": "pkg:cargo/clap@2.32.0" } ], - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:cargo/bitflags", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/bitflags?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/clap@2.32.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/unicode-width", + "extracted_requirement": "0.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/unicode-width?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/clap@2.32.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/textwrap", + "extracted_requirement": "0.10.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/textwrap?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/clap@2.32.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/strsim", + "extracted_requirement": "0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.8" + }, + "dependency_uid": "pkg:cargo/strsim?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/clap@2.32.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/yaml-rust", + "extracted_requirement": "0.3.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.3.5" + }, + "dependency_uid": "pkg:cargo/yaml-rust?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/clap@2.32.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/clippy", + "extracted_requirement": "~0.0.166", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "~0.0.166" + }, + "dependency_uid": "pkg:cargo/clippy?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/clap@2.32.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/atty", + "extracted_requirement": "0.2.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.2.2" + }, + "dependency_uid": "pkg:cargo/atty?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/clap@2.32.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/vec_map", + "extracted_requirement": "0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.8" + }, + "dependency_uid": "pkg:cargo/vec_map?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/clap@2.32.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/term_size", + "extracted_requirement": "0.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.3.0" + }, + "dependency_uid": "pkg:cargo/term_size?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/clap@2.32.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/regex", + "extracted_requirement": "1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/regex?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/clap@2.32.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/lazy_static", + "extracted_requirement": "~1.1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/lazy_static?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/clap@2.32.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/version-sync", + "extracted_requirement": "0.5", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/version-sync?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/clap@2.32.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Cargo.toml", + "datasource_id": "cargo_toml" + } + ], "files": [ { "path": "Cargo.toml", @@ -103,7 +293,14 @@ "url": null } ], - "keywords": [], + "keywords": [ + "argument", + "cli", + "arg", + "parser", + "parse", + "command-line-interface" + ], "homepage_url": "https://clap.rs/", "download_url": null, "size": null, @@ -149,8 +346,143 @@ "notice_text": null, "source_packages": [], "file_references": [], - "extra_data": {}, - "dependencies": [], + "extra_data": { + "documentation_url": "https://docs.rs/clap/" + }, + "dependencies": [ + { + "purl": "pkg:cargo/bitflags", + "extracted_requirement": "1.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/unicode-width", + "extracted_requirement": "0.1.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/textwrap", + "extracted_requirement": "0.10.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/strsim", + "extracted_requirement": "0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.8" + } + }, + { + "purl": "pkg:cargo/yaml-rust", + "extracted_requirement": "0.3.5", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.3.5" + } + }, + { + "purl": "pkg:cargo/clippy", + "extracted_requirement": "~0.0.166", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "~0.0.166" + } + }, + { + "purl": "pkg:cargo/atty", + "extracted_requirement": "0.2.2", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.2.2" + } + }, + { + "purl": "pkg:cargo/vec_map", + "extracted_requirement": "0.8", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.8" + } + }, + { + "purl": "pkg:cargo/term_size", + "extracted_requirement": "0.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.3.0" + } + }, + { + "purl": "pkg:cargo/regex", + "extracted_requirement": "1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/lazy_static", + "extracted_requirement": "~1.1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:cargo/version-sync", + "extracted_requirement": "0.5", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], "repository_homepage_url": "https://crates.io/crates/clap", "repository_download_url": "https://crates.io/api/v1/crates/clap/2.32.0/download", "api_data_url": "https://crates.io/api/v1/crates/clap", diff --git a/tests/packagedcode/test_cargo.py b/tests/packagedcode/test_cargo.py index ad7cbe9e631..da13a17c475 100644 --- a/tests/packagedcode/test_cargo.py +++ b/tests/packagedcode/test_cargo.py @@ -71,6 +71,18 @@ def test_parse_cargo_toml_tauri_workspace(self): packages_data = cargo.CargoTomlHandler.parse(test_file) self.check_packages_data(packages_data, expected_loc, regen=REGEN_TEST_FIXTURES) + def test_parse_cargo_toml_workspace_with_dependencies(self): + test_file = self.get_test_loc('cargo/cargo_toml/boring-main/Cargo.toml') + expected_loc = self.get_test_loc('cargo/cargo_toml/boring-main/Cargo.toml.expected') + packages_data = cargo.CargoTomlHandler.parse(test_file) + self.check_packages_data(packages_data, expected_loc, regen=REGEN_TEST_FIXTURES) + + def test_parse_cargo_toml_workspace_with_dependencies_child(self): + test_file = self.get_test_loc('cargo/cargo_toml/boring-child/Cargo.toml') + expected_loc = self.get_test_loc('cargo/cargo_toml/boring-child/Cargo.toml.expected') + packages_data = cargo.CargoTomlHandler.parse(test_file) + self.check_packages_data(packages_data, expected_loc, regen=REGEN_TEST_FIXTURES) + def test_parse_cargo_toml_tauri_workspace_in_version(self): test_file = self.get_test_loc('cargo/cargo_toml/tauri-examples/Cargo.toml') expected_loc = self.get_test_loc('cargo/cargo_toml/tauri-examples/Cargo.toml.expected') @@ -125,11 +137,20 @@ def test_scan_cli_works_package_only(self): expected_file, result_file, remove_uuid=True, regen=REGEN_TEST_FIXTURES ) - def test_scan_works_on_cargo_workspace(self): - test_file = self.get_test_loc('cargo/cargo-with-workspace') - expected_file = self.get_test_loc('cargo/cargo-with-workspace.expected.json') + def test_scan_works_on_cargo_workspace_tauri(self): + test_file = self.get_test_loc('cargo/cargo-with-workspace/tauri/') + expected_file = self.get_test_loc('cargo/cargo-with-workspace/tauri.expected.json') + result_file = self.get_temp_file('results.json') + run_scan_click(['--package', test_file, '--json', result_file]) + check_json_scan( + expected_file, result_file, remove_uuid=True, regen=REGEN_TEST_FIXTURES + ) + + def test_scan_works_on_cargo_workspace_boring(self): + test_file = self.get_test_loc('cargo/cargo-with-workspace/boring/') + expected_file = self.get_test_loc('cargo/cargo-with-workspace/boring.expected.json') result_file = self.get_temp_file('results.json') - run_scan_click(['--package', '--license', test_file, '--json', result_file]) + run_scan_click(['--package', test_file, '--json', result_file]) check_json_scan( expected_file, result_file, remove_uuid=True, regen=REGEN_TEST_FIXTURES ) diff --git a/tests/summarycode/data/score/no_license_ambiguity-expected.json b/tests/summarycode/data/score/no_license_ambiguity-expected.json index 7ed3276d13f..33bcbae6ddf 100644 --- a/tests/summarycode/data/score/no_license_ambiguity-expected.json +++ b/tests/summarycode/data/score/no_license_ambiguity-expected.json @@ -38,7 +38,12 @@ "url": null } ], - "keywords": [], + "keywords": [ + "random", + "rng", + "algorithms", + "no-std" + ], "homepage_url": "https://rust-random.github.io/book", "download_url": null, "size": null, @@ -91,7 +96,9 @@ "rand_chacha", "rand_pcg" ] - } + }, + "documentation_url": "https://docs.rs/rand", + "rust_edition": "2018" }, "repository_homepage_url": "https://crates.io/crates/rand", "repository_download_url": "https://crates.io/api/v1/crates/rand/0.8.5/download", @@ -106,7 +113,129 @@ "purl": "pkg:cargo/rand@0.8.5" } ], - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:cargo/rand_core", + "extracted_requirement": "0.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "rand_core", + "version": "0.6.0" + }, + "dependency_uid": "pkg:cargo/rand_core?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/rand@0.8.5?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "no_license_ambiguity/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/log", + "extracted_requirement": "0.4.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.4.4" + }, + "dependency_uid": "pkg:cargo/log?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/rand@0.8.5?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "no_license_ambiguity/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0.103", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0.103", + "features": [ + "derive" + ] + }, + "dependency_uid": "pkg:cargo/serde?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/rand@0.8.5?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "no_license_ambiguity/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/rand_chacha", + "extracted_requirement": "0.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "rand_chacha", + "version": "0.3.0", + "default-features": false + }, + "dependency_uid": "pkg:cargo/rand_chacha?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/rand@0.8.5?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "no_license_ambiguity/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/packed_simd", + "extracted_requirement": "0.3.7", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "package": "packed_simd_2", + "version": "0.3.7", + "features": [ + "into_bits" + ] + }, + "dependency_uid": "pkg:cargo/packed_simd?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/rand@0.8.5?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "no_license_ambiguity/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/rand_pcg", + "extracted_requirement": "0.3.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "rand_pcg", + "version": "0.3.0" + }, + "dependency_uid": "pkg:cargo/rand_pcg?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/rand@0.8.5?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "no_license_ambiguity/Cargo.toml", + "datasource_id": "cargo_toml" + }, + { + "purl": "pkg:cargo/bincode", + "extracted_requirement": "1.2.1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:cargo/bincode?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:cargo/rand@0.8.5?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "no_license_ambiguity/Cargo.toml", + "datasource_id": "cargo_toml" + } + ], "license_detections": [ { "identifier": "apache_2_0-e3938c59-cc73-037c-3372-e20c26c25f48", @@ -483,7 +612,12 @@ "url": null } ], - "keywords": [], + "keywords": [ + "random", + "rng", + "algorithms", + "no-std" + ], "homepage_url": "https://rust-random.github.io/book", "download_url": null, "size": null, @@ -537,9 +671,105 @@ "rand_chacha", "rand_pcg" ] - } + }, + "documentation_url": "https://docs.rs/rand", + "rust_edition": "2018" }, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:cargo/rand_core", + "extracted_requirement": "0.6.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "rand_core", + "version": "0.6.0" + } + }, + { + "purl": "pkg:cargo/log", + "extracted_requirement": "0.4.4", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "0.4.4" + } + }, + { + "purl": "pkg:cargo/serde", + "extracted_requirement": "1.0.103", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "version": "1.0.103", + "features": [ + "derive" + ] + } + }, + { + "purl": "pkg:cargo/rand_chacha", + "extracted_requirement": "0.3.0", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "rand_chacha", + "version": "0.3.0", + "default-features": false + } + }, + { + "purl": "pkg:cargo/packed_simd", + "extracted_requirement": "0.3.7", + "scope": "dependencies", + "is_runtime": true, + "is_optional": true, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "package": "packed_simd_2", + "version": "0.3.7", + "features": [ + "into_bits" + ] + } + }, + { + "purl": "pkg:cargo/rand_pcg", + "extracted_requirement": "0.3.0", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "path": "rand_pcg", + "version": "0.3.0" + } + }, + { + "purl": "pkg:cargo/bincode", + "extracted_requirement": "1.2.1", + "scope": "dev-dependencies", + "is_runtime": false, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], "repository_homepage_url": "https://crates.io/crates/rand", "repository_download_url": "https://crates.io/api/v1/crates/rand/0.8.5/download", "api_data_url": "https://crates.io/api/v1/crates/rand", From d9776db8c839e18398479b872b0694706df598ae Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Tue, 28 May 2024 18:57:16 +0530 Subject: [PATCH 02/19] Add support for Swift package manager Signed-off-by: Keshav Priyadarshi --- src/packagedcode/__init__.py | 4 + src/packagedcode/swift.py | 282 +++++++++++++++++++++++++++++++++++ 2 files changed, 286 insertions(+) create mode 100644 src/packagedcode/swift.py diff --git a/src/packagedcode/__init__.py b/src/packagedcode/__init__.py index 752710c2850..85757e4c21e 100644 --- a/src/packagedcode/__init__.py +++ b/src/packagedcode/__init__.py @@ -39,6 +39,7 @@ from packagedcode import readme from packagedcode import rpm from packagedcode import rubygems +from packagedcode import swift from packagedcode import win_pe from packagedcode import windows @@ -196,6 +197,9 @@ rubygems.GemspecInExtractedGemHandler, rubygems.GemspecHandler, + swift.SwiftManifestJsonHandler, + swift.SwiftPackageResolvedHandler, + windows.MicrosoftUpdateManifestHandler, win_pe.WindowsExecutableHandler, diff --git a/src/packagedcode/swift.py b/src/packagedcode/swift.py new file mode 100644 index 00000000000..2cf04915eb5 --- /dev/null +++ b/src/packagedcode/swift.py @@ -0,0 +1,282 @@ +# 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. +# + +import io +import json +import logging +import os +from urllib import parse + +from packagedcode import models +from packageurl import PackageURL + +""" +Handle the resolved file and JSON dump of the manifest for Swift packages. +https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html + +Run the command below before running the scan: +``swift package dump-package > Package.swift.json`` +""" + + +SCANCODE_DEBUG_PACKAGE = os.environ.get("SCANCODE_DEBUG_PACKAGE", False) + +TRACE = SCANCODE_DEBUG_PACKAGE + + +def logger_debug(*args): + pass + + +logger = logging.getLogger(__name__) + +if TRACE: + import sys + + 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)) + + +class SwiftManifestJsonHandler(models.DatafileHandler): + datasource_id = "swift_package_manifest_json" + path_patterns = ("*/Package.swift.json",) + default_package_type = "swift" + default_primary_language = "swift" + description = "json dump of swift manifest" + documentation_url = "https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html" + + @classmethod + def _parse(cls, swift_manifest, package_only=False): + + if TRACE: + logger_debug( + f"SwiftManifestJsonHandler: manifest: package: {swift_manifest}" + ) + + dependencies = get_dependencies(swift_manifest.get("dependencies")) + + package_data = dict( + datasource_id=cls.datasource_id, + type=cls.default_package_type, + primary_language=cls.default_primary_language, + namespace=None, + name=swift_manifest.get("name"), + dependencies=dependencies, + ) + + return models.PackageData.from_data(package_data, package_only) + + @classmethod + def parse(cls, location, package_only=False): + with io.open(location, encoding="utf-8") as loc: + swift_manifest = json.load(loc) + + yield cls._parse(swift_manifest, package_only) + + @classmethod + def assemble( + cls, + package_data, + resource, + codebase, + package_adder=models.add_to_package, + ): + """ + Use the dependencies from `Package.resolved` to create the + top-level package with resolved dependencies. + """ + siblings = resource.siblings(codebase) + swift_resolved_package_resource = [ + r for r in siblings if r.name == "Package.resolved" + ] + dependencies_from_manifest = package_data.dependencies + + processed_dependencies = [] + if swift_resolved_package_resource: + swift_resolved_package_resource = swift_resolved_package_resource[0] + swift_resolved_package_data = swift_resolved_package_resource.package_data + + for package in swift_resolved_package_data: + version = package.get("version") + name = package.get("name") + + purl = PackageURL( + type=cls.default_package_type, name=name, version=version + ) + processed_dependencies.append( + models.DependentPackage( + purl=purl.to_string(), + scope="install", + is_runtime=True, + is_optional=False, + is_resolved=True, + extracted_requirement=version, + ) + ) + + for dependency in dependencies_from_manifest[:]: + dependency_purl = PackageURL.from_string(dependency.purl) + + if dependency_purl.name == name: + dependencies_from_manifest.remove(dependency) + + processed_dependencies.extend(dependencies_from_manifest) + + datafile_path = resource.path + if package_data.purl: + package = models.Package.from_package_data( + package_data=package_data, + datafile_path=datafile_path, + ) + + if swift_resolved_package_resource: + package.datafile_paths.append(swift_resolved_package_resource.path) + package.datasource_ids.append(SwiftPackageResolvedHandler.datasource_id) + + package.populate_license_fields() + yield package + + parent = resource.parent(codebase) + cls.assign_package_to_resources( + package=package, + resource=parent, + codebase=codebase, + package_adder=package_adder, + ) + + if processed_dependencies: + yield from models.Dependency.from_dependent_packages( + dependent_packages=processed_dependencies, + datafile_path=datafile_path, + datasource_id=package_data.datasource_id, + package_uid=package.package_uid, + ) + yield resource + + +class SwiftPackageResolvedHandler(models.DatafileHandler): + datasource_id = "swift_package_resolved" + path_patterns = ("*/Package.resolved",) + default_package_type = "swift" + default_primary_language = "swift" + description = "resolved dependency for swift package" + documentation_url = ( + "https://docs.swift.org/package-manager/PackageDescription/" + "PackageDescription.html#package-dependency" + ) + + @classmethod + def parse(cls, location, package_only=False): + with io.open(location, encoding="utf-8") as loc: + package_resolved = json.load(loc) + + pinned = package_resolved.get("pins", []) + + for dependency in pinned: + name = dependency.get("identity") + kind = dependency.get("kind") + location = dependency.get("location") + state = dependency.get("state", {}) + version = None + + if location and kind == "remoteSourceControl": + name = get_canonical_name(location) + + version = state.get("version") + + if not version: + version = state.get("revision") + + package_data = dict( + datasource_id=cls.datasource_id, + type=cls.default_package_type, + primary_language=cls.default_primary_language, + namespace=None, + name=name, + version=version, + ) + yield models.PackageData.from_data(package_data, package_only) + + @classmethod + def assemble( + cls, package_data, resource, codebase, package_adder=models.add_to_package + ): + siblings = resource.siblings(codebase) + swift_manifest_resource = [ + r for r in siblings if r.name == "Package.swift.json" + ] + + # Skip the assembly if the ``Package.swift.json`` manifest is present. + # SwiftManifestJsonHandler's assembly will take care of the resolved + # dependencies from Package.resolved file. + if swift_manifest_resource: + return [] + + yield from super(SwiftPackageResolvedHandler, cls).assemble( + package_data=package_data, + resource=resource, + codebase=codebase, + package_adder=package_adder, + ) + + +def get_dependencies(dependencies): + dependent_packages = [] + for dependency in dependencies or []: + source = dependency.get("sourceControl") + if not source: + continue + + source = source[0] + name = source.get("identity") + version = None + is_resolved = False + + location = source.get("location") + if remote := location.get("remote"): + name = get_canonical_name(remote[0].get("urlString")) + + requirement = source.get("requirement") + if exact := requirement.get("exact"): + version = exact[0] + is_resolved = True + elif range := requirement.get("range"): + bound = range[0] + lower_bound = bound.get("lowerBound") + upper_bound = bound.get("upperBound") + version = f"vers:swift/>={lower_bound}|<{upper_bound}" + + purl = PackageURL( + type="swift", + name=name, + version=version if is_resolved else None, + ) + + dependent_packages.append( + models.DependentPackage( + purl=purl.to_string(), + scope="install", + is_runtime=True, + is_optional=False, + is_resolved=is_resolved, + extracted_requirement=version, + ) + ) + return dependent_packages + + +def get_canonical_name(url): + parsed_url = parse.urlparse(url) + hostname = parsed_url.hostname + path = parsed_url.path.removesuffix(".git") + + return parse.quote(hostname + path, safe="") + From dafa9b9696caacc22a65121561242631444a734a Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Tue, 28 May 2024 18:58:16 +0530 Subject: [PATCH 03/19] Update the available package parsers doc Signed-off-by: Keshav Priyadarshi --- .../reference/available_package_parsers.rst | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/source/reference/available_package_parsers.rst b/docs/source/reference/available_package_parsers.rst index 5b435abaa1f..833dd99462c 100644 --- a/docs/source/reference/available_package_parsers.rst +++ b/docs/source/reference/available_package_parsers.rst @@ -233,6 +233,7 @@ parsers in scancode-toolkit during documentation builds. - https://r-pkgs.org/description.html * - Debian control file - extracted layout - ``*/control.tar.gz-extract/control`` + ``*/control.tar.xz-extract/control`` - ``deb`` - ``debian_control_extracted_deb`` - None @@ -716,6 +717,19 @@ parsers in scancode-toolkit during documentation builds. - ``rpm_installed_database_sqlite`` - None - https://fedoraproject.org/wiki/Changes/Sqlite_Rpmdb + * - RPM mariner distroless package manifest + - ``*var/lib/rpmmanifest/container-manifest-2`` + - ``rpm`` + - ``rpm_mariner_manifest`` + - None + - https://github.com/microsoft/marinara/ + * - RPM mariner distroless package license files + - ``*usr/share/licenses/*/COPYING*`` + ``*usr/share/licenses/*/LICENSE*`` + - ``rpm`` + - ``rpm_package_licenses`` + - None + - https://github.com/microsoft/marinara/ * - RPM specfile - ``*.spec`` - ``rpm`` @@ -734,6 +748,18 @@ parsers in scancode-toolkit during documentation builds. - ``squashfs_disk_image`` - None - https://en.wikipedia.org/wiki/SquashFS + * - json dump of swift manifest + - ``*/Package.swift.json`` + - ``swift`` + - ``swift_package_manifest_json`` + - swift + - https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html + * - resolved dependency for swift package + - ``*/Package.resolved`` + - ``swift`` + - ``swift_package_resolved`` + - swift + - https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html#package-dependency * - Java Web Application Archive - ``*.war`` - ``war`` From 12ee23b8cc13a8a53eb24428a9bd754f66306885 Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Tue, 28 May 2024 19:34:32 +0530 Subject: [PATCH 04/19] Regen test fixture for help.txt Signed-off-by: Keshav Priyadarshi --- tests/packagedcode/data/plugin/help.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/packagedcode/data/plugin/help.txt b/tests/packagedcode/data/plugin/help.txt index 8fb8389b38f..ff87045349c 100755 --- a/tests/packagedcode/data/plugin/help.txt +++ b/tests/packagedcode/data/plugin/help.txt @@ -804,6 +804,20 @@ Package type: squashfs description: Squashfs disk image path_patterns: -------------------------------------------- +Package type: swift + datasource_id: swift_package_manifest_json + documentation URL: https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html + primary language: swift + description: json dump of swift manifest + path_patterns: '*/Package.swift.json' +-------------------------------------------- +Package type: swift + datasource_id: swift_package_resolved + documentation URL: https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html#package-dependency + primary language: swift + description: resolved dependency for swift package + path_patterns: '*/Package.resolved' +-------------------------------------------- Package type: war datasource_id: java_war_archive documentation URL: https://en.wikipedia.org/wiki/WAR_(file_format) From d06af37a761fdb4f0580e176eea5758d18080844 Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Wed, 29 May 2024 00:13:06 +0530 Subject: [PATCH 05/19] Test support for swift package manager Signed-off-by: Keshav Priyadarshi --- src/packagedcode/swift.py | 3 +- .../mapboxmaps_manifest/Package.swift.json | 323 +++++++++++++++++ .../mapboxmaps_manifest/src/mapbox.swift | 1 + .../Package.resolved | 32 ++ .../Package.swift.json | 323 +++++++++++++++++ .../src/mapbox.swift | 1 + .../mapboxmaps_resolved/Package.resolved | 32 ++ .../mapboxmaps_resolved/src/mapbox.swift | 1 + ...ift-maboxmaps-manifest-parse-expected.json | 75 ++++ ...ift-maboxmaps-resolved-parse-expected.json | 128 +++++++ ...anifest-and-resolved-package-expected.json | 335 ++++++++++++++++++ ...-mapboxmaps-manifest-package-expected.json | 197 ++++++++++ ...-mapboxmaps-resolved-package-expected.json | 297 ++++++++++++++++ tests/packagedcode/test_swift.py | 103 ++++++ 14 files changed, 1850 insertions(+), 1 deletion(-) create mode 100644 tests/packagedcode/data/swift/packages/mapboxmaps_manifest/Package.swift.json create mode 100644 tests/packagedcode/data/swift/packages/mapboxmaps_manifest/src/mapbox.swift create mode 100644 tests/packagedcode/data/swift/packages/mapboxmaps_manifest_and_resolved/Package.resolved create mode 100644 tests/packagedcode/data/swift/packages/mapboxmaps_manifest_and_resolved/Package.swift.json create mode 100644 tests/packagedcode/data/swift/packages/mapboxmaps_manifest_and_resolved/src/mapbox.swift create mode 100644 tests/packagedcode/data/swift/packages/mapboxmaps_resolved/Package.resolved create mode 100644 tests/packagedcode/data/swift/packages/mapboxmaps_resolved/src/mapbox.swift create mode 100644 tests/packagedcode/data/swift/swift-maboxmaps-manifest-parse-expected.json create mode 100644 tests/packagedcode/data/swift/swift-maboxmaps-resolved-parse-expected.json create mode 100644 tests/packagedcode/data/swift/swift-mapboxmaps-manifest-and-resolved-package-expected.json create mode 100644 tests/packagedcode/data/swift/swift-mapboxmaps-manifest-package-expected.json create mode 100644 tests/packagedcode/data/swift/swift-mapboxmaps-resolved-package-expected.json create mode 100644 tests/packagedcode/test_swift.py diff --git a/src/packagedcode/swift.py b/src/packagedcode/swift.py index 2cf04915eb5..10b2493adef 100644 --- a/src/packagedcode/swift.py +++ b/src/packagedcode/swift.py @@ -19,8 +19,9 @@ Handle the resolved file and JSON dump of the manifest for Swift packages. https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html -Run the command below before running the scan: +Run the commands below before running the scan: ``swift package dump-package > Package.swift.json`` +``swift package resolve`` """ diff --git a/tests/packagedcode/data/swift/packages/mapboxmaps_manifest/Package.swift.json b/tests/packagedcode/data/swift/packages/mapboxmaps_manifest/Package.swift.json new file mode 100644 index 00000000000..b52452c1fbf --- /dev/null +++ b/tests/packagedcode/data/swift/packages/mapboxmaps_manifest/Package.swift.json @@ -0,0 +1,323 @@ +{ + "cLanguageStandard" : null, + "cxxLanguageStandard" : null, + "dependencies" : [ + { + "sourceControl" : [ + { + "identity" : "turf-swift", + "location" : { + "remote" : [ + { + "urlString" : "https://github.com/mapbox/turf-swift.git" + } + ] + }, + "productFilter" : null, + "requirement" : { + "range" : [ + { + "lowerBound" : "2.8.0", + "upperBound" : "3.0.0" + } + ] + } + } + ] + }, + { + "sourceControl" : [ + { + "identity" : "mapbox-core-maps-ios", + "location" : { + "remote" : [ + { + "urlString" : "https://github.com/mapbox/mapbox-core-maps-ios.git" + } + ] + }, + "productFilter" : null, + "requirement" : { + "exact" : [ + "11.4.0-rc.2" + ] + } + } + ] + }, + { + "sourceControl" : [ + { + "identity" : "mapbox-common-ios", + "location" : { + "remote" : [ + { + "urlString" : "https://github.com/mapbox/mapbox-common-ios.git" + } + ] + }, + "productFilter" : null, + "requirement" : { + "exact" : [ + "24.4.0-rc.2" + ] + } + } + ] + } + ], + "name" : "MapboxMaps", + "packageKind" : { + "root" : [ + "/workspace" + ] + }, + "pkgConfig" : null, + "platforms" : [ + { + "options" : [ + + ], + "platformName" : "ios", + "version" : "12.0" + }, + { + "options" : [ + + ], + "platformName" : "macos", + "version" : "10.15" + }, + { + "options" : [ + + ], + "platformName" : "visionos", + "version" : "1.0" + } + ], + "products" : [ + { + "name" : "MapboxMaps", + "targets" : [ + "MapboxMaps" + ], + "type" : { + "library" : [ + "automatic" + ] + } + } + ], + "providers" : null, + "swiftLanguageVersions" : null, + "targets" : [ + { + "dependencies" : [ + { + "product" : [ + "MapboxCoreMaps", + "mapbox-core-maps-ios", + null, + null + ] + }, + { + "product" : [ + "MapboxCommon", + "mapbox-common-ios", + null, + null + ] + }, + { + "product" : [ + "Turf", + "turf-swift", + null, + null + ] + } + ], + "exclude" : [ + "Info.plist" + ], + "name" : "MapboxMaps", + "packageAccess" : true, + "resources" : [ + { + "path" : "MapboxMaps.json", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "PrivacyInfo.xcprivacy", + "rule" : { + "copy" : { + + } + } + } + ], + "settings" : [ + + ], + "type" : "regular" + }, + { + "dependencies" : [ + { + "byName" : [ + "MapboxMaps", + null + ] + } + ], + "exclude" : [ + + ], + "name" : "MapboxMapsTests", + "packageAccess" : true, + "resources" : [ + { + "path" : "MigrationGuide/Fixtures/polygon.geojson", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Helpers/MapboxAccessToken", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Resources/empty-style-chicago.json", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testDoesNotShowAttribution().png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testDoesNotShowLogo().png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testDoesNotShowLogoAndAttribution().png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testShowsLogoAndAttribution().png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotAttribution-100.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotAttribution-150.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotAttribution-200.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotAttribution-250.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotAttribution-300.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotAttribution-50.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotLogoVisibility.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotOverlay.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Resources/MapInitOptionsTests.xib", + "rule" : { + "process" : { + + } + } + } + ], + "settings" : [ + + ], + "type" : "test" + } + ], + "toolsVersion" : { + "_version" : "5.9.0" + } +} diff --git a/tests/packagedcode/data/swift/packages/mapboxmaps_manifest/src/mapbox.swift b/tests/packagedcode/data/swift/packages/mapboxmaps_manifest/src/mapbox.swift new file mode 100644 index 00000000000..9cfc54157c9 --- /dev/null +++ b/tests/packagedcode/data/swift/packages/mapboxmaps_manifest/src/mapbox.swift @@ -0,0 +1 @@ +// Test file for swift package. \ No newline at end of file diff --git a/tests/packagedcode/data/swift/packages/mapboxmaps_manifest_and_resolved/Package.resolved b/tests/packagedcode/data/swift/packages/mapboxmaps_manifest_and_resolved/Package.resolved new file mode 100644 index 00000000000..91a82660725 --- /dev/null +++ b/tests/packagedcode/data/swift/packages/mapboxmaps_manifest_and_resolved/Package.resolved @@ -0,0 +1,32 @@ +{ + "pins" : [ + { + "identity" : "mapbox-common-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mapbox/mapbox-common-ios.git", + "state" : { + "revision" : "9c04997ed32c5b2506eb704f9f7a16367b5dcc64", + "version" : "24.4.0" + } + }, + { + "identity" : "mapbox-core-maps-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mapbox/mapbox-core-maps-ios.git", + "state" : { + "revision" : "c7897628028afb2c008d50c5d5d4054768c99340", + "version" : "11.4.0" + } + }, + { + "identity" : "turf-swift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mapbox/turf-swift.git", + "state" : { + "revision" : "213050191cfcb3d5aa76e1fa90c6ff1e182a42ca", + "version" : "2.8.0" + } + } + ], + "version" : 2 +} diff --git a/tests/packagedcode/data/swift/packages/mapboxmaps_manifest_and_resolved/Package.swift.json b/tests/packagedcode/data/swift/packages/mapboxmaps_manifest_and_resolved/Package.swift.json new file mode 100644 index 00000000000..b52452c1fbf --- /dev/null +++ b/tests/packagedcode/data/swift/packages/mapboxmaps_manifest_and_resolved/Package.swift.json @@ -0,0 +1,323 @@ +{ + "cLanguageStandard" : null, + "cxxLanguageStandard" : null, + "dependencies" : [ + { + "sourceControl" : [ + { + "identity" : "turf-swift", + "location" : { + "remote" : [ + { + "urlString" : "https://github.com/mapbox/turf-swift.git" + } + ] + }, + "productFilter" : null, + "requirement" : { + "range" : [ + { + "lowerBound" : "2.8.0", + "upperBound" : "3.0.0" + } + ] + } + } + ] + }, + { + "sourceControl" : [ + { + "identity" : "mapbox-core-maps-ios", + "location" : { + "remote" : [ + { + "urlString" : "https://github.com/mapbox/mapbox-core-maps-ios.git" + } + ] + }, + "productFilter" : null, + "requirement" : { + "exact" : [ + "11.4.0-rc.2" + ] + } + } + ] + }, + { + "sourceControl" : [ + { + "identity" : "mapbox-common-ios", + "location" : { + "remote" : [ + { + "urlString" : "https://github.com/mapbox/mapbox-common-ios.git" + } + ] + }, + "productFilter" : null, + "requirement" : { + "exact" : [ + "24.4.0-rc.2" + ] + } + } + ] + } + ], + "name" : "MapboxMaps", + "packageKind" : { + "root" : [ + "/workspace" + ] + }, + "pkgConfig" : null, + "platforms" : [ + { + "options" : [ + + ], + "platformName" : "ios", + "version" : "12.0" + }, + { + "options" : [ + + ], + "platformName" : "macos", + "version" : "10.15" + }, + { + "options" : [ + + ], + "platformName" : "visionos", + "version" : "1.0" + } + ], + "products" : [ + { + "name" : "MapboxMaps", + "targets" : [ + "MapboxMaps" + ], + "type" : { + "library" : [ + "automatic" + ] + } + } + ], + "providers" : null, + "swiftLanguageVersions" : null, + "targets" : [ + { + "dependencies" : [ + { + "product" : [ + "MapboxCoreMaps", + "mapbox-core-maps-ios", + null, + null + ] + }, + { + "product" : [ + "MapboxCommon", + "mapbox-common-ios", + null, + null + ] + }, + { + "product" : [ + "Turf", + "turf-swift", + null, + null + ] + } + ], + "exclude" : [ + "Info.plist" + ], + "name" : "MapboxMaps", + "packageAccess" : true, + "resources" : [ + { + "path" : "MapboxMaps.json", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "PrivacyInfo.xcprivacy", + "rule" : { + "copy" : { + + } + } + } + ], + "settings" : [ + + ], + "type" : "regular" + }, + { + "dependencies" : [ + { + "byName" : [ + "MapboxMaps", + null + ] + } + ], + "exclude" : [ + + ], + "name" : "MapboxMapsTests", + "packageAccess" : true, + "resources" : [ + { + "path" : "MigrationGuide/Fixtures/polygon.geojson", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Helpers/MapboxAccessToken", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Resources/empty-style-chicago.json", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testDoesNotShowAttribution().png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testDoesNotShowLogo().png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testDoesNotShowLogoAndAttribution().png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testShowsLogoAndAttribution().png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotAttribution-100.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotAttribution-150.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotAttribution-200.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotAttribution-250.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotAttribution-300.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotAttribution-50.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotLogoVisibility.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Snapshot/testSnapshotOverlay.png", + "rule" : { + "copy" : { + + } + } + }, + { + "path" : "Resources/MapInitOptionsTests.xib", + "rule" : { + "process" : { + + } + } + } + ], + "settings" : [ + + ], + "type" : "test" + } + ], + "toolsVersion" : { + "_version" : "5.9.0" + } +} diff --git a/tests/packagedcode/data/swift/packages/mapboxmaps_manifest_and_resolved/src/mapbox.swift b/tests/packagedcode/data/swift/packages/mapboxmaps_manifest_and_resolved/src/mapbox.swift new file mode 100644 index 00000000000..9cfc54157c9 --- /dev/null +++ b/tests/packagedcode/data/swift/packages/mapboxmaps_manifest_and_resolved/src/mapbox.swift @@ -0,0 +1 @@ +// Test file for swift package. \ No newline at end of file diff --git a/tests/packagedcode/data/swift/packages/mapboxmaps_resolved/Package.resolved b/tests/packagedcode/data/swift/packages/mapboxmaps_resolved/Package.resolved new file mode 100644 index 00000000000..91a82660725 --- /dev/null +++ b/tests/packagedcode/data/swift/packages/mapboxmaps_resolved/Package.resolved @@ -0,0 +1,32 @@ +{ + "pins" : [ + { + "identity" : "mapbox-common-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mapbox/mapbox-common-ios.git", + "state" : { + "revision" : "9c04997ed32c5b2506eb704f9f7a16367b5dcc64", + "version" : "24.4.0" + } + }, + { + "identity" : "mapbox-core-maps-ios", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mapbox/mapbox-core-maps-ios.git", + "state" : { + "revision" : "c7897628028afb2c008d50c5d5d4054768c99340", + "version" : "11.4.0" + } + }, + { + "identity" : "turf-swift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/mapbox/turf-swift.git", + "state" : { + "revision" : "213050191cfcb3d5aa76e1fa90c6ff1e182a42ca", + "version" : "2.8.0" + } + } + ], + "version" : 2 +} diff --git a/tests/packagedcode/data/swift/packages/mapboxmaps_resolved/src/mapbox.swift b/tests/packagedcode/data/swift/packages/mapboxmaps_resolved/src/mapbox.swift new file mode 100644 index 00000000000..9cfc54157c9 --- /dev/null +++ b/tests/packagedcode/data/swift/packages/mapboxmaps_resolved/src/mapbox.swift @@ -0,0 +1 @@ +// Test file for swift package. \ No newline at end of file diff --git a/tests/packagedcode/data/swift/swift-maboxmaps-manifest-parse-expected.json b/tests/packagedcode/data/swift/swift-maboxmaps-manifest-parse-expected.json new file mode 100644 index 00000000000..2ebf4cd1243 --- /dev/null +++ b/tests/packagedcode/data/swift/swift-maboxmaps-manifest-parse-expected.json @@ -0,0 +1,75 @@ +[ + { + "type": "swift", + "namespace": null, + "name": "MapboxMaps", + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift", + "extracted_requirement": "vers:swift/>=2.8.0|<3.0.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0-rc.2", + "extracted_requirement": "11.4.0-rc.2", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0-rc.2", + "extracted_requirement": "24.4.0-rc.2", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "swift_package_manifest_json", + "purl": "pkg:swift/MapboxMaps" + } +] \ No newline at end of file diff --git a/tests/packagedcode/data/swift/swift-maboxmaps-resolved-parse-expected.json b/tests/packagedcode/data/swift/swift-maboxmaps-resolved-parse-expected.json new file mode 100644 index 00000000000..e6837705999 --- /dev/null +++ b/tests/packagedcode/data/swift/swift-maboxmaps-resolved-parse-expected.json @@ -0,0 +1,128 @@ +[ + { + "type": "swift", + "namespace": null, + "name": "github.com%2Fmapbox%2Fmapbox-common-ios", + "version": "24.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "swift_package_resolved", + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0" + }, + { + "type": "swift", + "namespace": null, + "name": "github.com%2Fmapbox%2Fmapbox-core-maps-ios", + "version": "11.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "swift_package_resolved", + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0" + }, + { + "type": "swift", + "namespace": null, + "name": "github.com%2Fmapbox%2Fturf-swift", + "version": "2.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "swift_package_resolved", + "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0" + } +] \ No newline at end of file diff --git a/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-and-resolved-package-expected.json b/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-and-resolved-package-expected.json new file mode 100644 index 00000000000..3f9b5d67d33 --- /dev/null +++ b/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-and-resolved-package-expected.json @@ -0,0 +1,335 @@ +{ + "packages": [ + { + "type": "swift", + "namespace": null, + "name": "MapboxMaps", + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "extra_data": {}, + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "package_uid": "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "Package.swift.json", + "Package.resolved" + ], + "datasource_ids": [ + "swift_package_manifest_json", + "swift_package_resolved" + ], + "purl": "pkg:swift/MapboxMaps" + } + ], + "dependencies": [ + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0", + "extracted_requirement": "24.4.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Package.swift.json", + "datasource_id": "swift_package_manifest_json" + }, + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0", + "extracted_requirement": "11.4.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Package.swift.json", + "datasource_id": "swift_package_manifest_json" + }, + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0", + "extracted_requirement": "2.8.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Package.swift.json", + "datasource_id": "swift_package_manifest_json" + } + ], + "files": [ + { + "path": "Package.resolved", + "type": "file", + "package_data": [ + { + "type": "swift", + "namespace": null, + "name": "github.com%2Fmapbox%2Fmapbox-common-ios", + "version": "24.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "swift_package_resolved", + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0" + }, + { + "type": "swift", + "namespace": null, + "name": "github.com%2Fmapbox%2Fmapbox-core-maps-ios", + "version": "11.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "swift_package_resolved", + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0" + }, + { + "type": "swift", + "namespace": null, + "name": "github.com%2Fmapbox%2Fturf-swift", + "version": "2.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "swift_package_resolved", + "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0" + } + ], + "for_packages": [ + "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "Package.swift.json", + "type": "file", + "package_data": [ + { + "type": "swift", + "namespace": null, + "name": "MapboxMaps", + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift", + "extracted_requirement": "vers:swift/>=2.8.0|<3.0.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0-rc.2", + "extracted_requirement": "11.4.0-rc.2", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0-rc.2", + "extracted_requirement": "24.4.0-rc.2", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "swift_package_manifest_json", + "purl": "pkg:swift/MapboxMaps" + } + ], + "for_packages": [ + "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "src", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "src/mapbox.swift", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-package-expected.json b/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-package-expected.json new file mode 100644 index 00000000000..a222719a3c7 --- /dev/null +++ b/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-package-expected.json @@ -0,0 +1,197 @@ +{ + "packages": [ + { + "type": "swift", + "namespace": null, + "name": "MapboxMaps", + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "extra_data": {}, + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "package_uid": "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "Package.swift.json" + ], + "datasource_ids": [ + "swift_package_manifest_json" + ], + "purl": "pkg:swift/MapboxMaps" + } + ], + "dependencies": [ + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift", + "extracted_requirement": "vers:swift/>=2.8.0|<3.0.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:swift/github.com%252Fmapbox%252Fturf-swift?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Package.swift.json", + "datasource_id": "swift_package_manifest_json" + }, + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0-rc.2", + "extracted_requirement": "11.4.0-rc.2", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0-rc.2?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Package.swift.json", + "datasource_id": "swift_package_manifest_json" + }, + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0-rc.2", + "extracted_requirement": "24.4.0-rc.2", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {}, + "dependency_uid": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0-rc.2?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Package.swift.json", + "datasource_id": "swift_package_manifest_json" + } + ], + "files": [ + { + "path": "Package.swift.json", + "type": "file", + "package_data": [ + { + "type": "swift", + "namespace": null, + "name": "MapboxMaps", + "version": null, + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift", + "extracted_requirement": "vers:swift/>=2.8.0|<3.0.0", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0-rc.2", + "extracted_requirement": "11.4.0-rc.2", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0-rc.2", + "extracted_requirement": "24.4.0-rc.2", + "scope": "install", + "is_runtime": true, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "swift_package_manifest_json", + "purl": "pkg:swift/MapboxMaps" + } + ], + "for_packages": [ + "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "src", + "type": "directory", + "package_data": [], + "for_packages": [ + "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "src/mapbox.swift", + "type": "file", + "package_data": [], + "for_packages": [ + "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/packagedcode/data/swift/swift-mapboxmaps-resolved-package-expected.json b/tests/packagedcode/data/swift/swift-mapboxmaps-resolved-package-expected.json new file mode 100644 index 00000000000..bf851a0a30d --- /dev/null +++ b/tests/packagedcode/data/swift/swift-mapboxmaps-resolved-package-expected.json @@ -0,0 +1,297 @@ +{ + "packages": [ + { + "type": "swift", + "namespace": null, + "name": "github.com%2Fmapbox%2Fmapbox-common-ios", + "version": "24.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "extra_data": {}, + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "package_uid": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "Package.resolved" + ], + "datasource_ids": [ + "swift_package_resolved" + ], + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0" + }, + { + "type": "swift", + "namespace": null, + "name": "github.com%2Fmapbox%2Fmapbox-core-maps-ios", + "version": "11.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "extra_data": {}, + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "package_uid": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "Package.resolved" + ], + "datasource_ids": [ + "swift_package_resolved" + ], + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0" + }, + { + "type": "swift", + "namespace": null, + "name": "github.com%2Fmapbox%2Fturf-swift", + "version": "2.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "extra_data": {}, + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "package_uid": "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "Package.resolved" + ], + "datasource_ids": [ + "swift_package_resolved" + ], + "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0" + } + ], + "dependencies": [], + "files": [ + { + "path": "Package.resolved", + "type": "file", + "package_data": [ + { + "type": "swift", + "namespace": null, + "name": "github.com%2Fmapbox%2Fmapbox-common-ios", + "version": "24.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "swift_package_resolved", + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0" + }, + { + "type": "swift", + "namespace": null, + "name": "github.com%2Fmapbox%2Fmapbox-core-maps-ios", + "version": "11.4.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "swift_package_resolved", + "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0" + }, + { + "type": "swift", + "namespace": null, + "name": "github.com%2Fmapbox%2Fturf-swift", + "version": "2.8.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "swift_package_resolved", + "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0" + } + ], + "for_packages": [ + "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "src", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "src/mapbox.swift", + "type": "file", + "package_data": [], + "for_packages": [], + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/packagedcode/test_swift.py b/tests/packagedcode/test_swift.py new file mode 100644 index 00000000000..9dcfef78ba8 --- /dev/null +++ b/tests/packagedcode/test_swift.py @@ -0,0 +1,103 @@ +# +# 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. +# + +import os.path + +from packagedcode import swift +from packages_test_utils import PackageTester +from scancode.cli_test_utils import check_json_scan +from scancode.cli_test_utils import run_scan_click +from scancode_config import REGEN_TEST_FIXTURES + + +class TestSwiftHandler(PackageTester): + test_data_dir = os.path.join(os.path.dirname(__file__), "data/swift") + + def test_parse_for_mapboxmaps_manifest(self): + test_file = self.get_test_loc( + "packages/mapboxmaps_manifest_and_resolved/Package.swift.json" + ) + expected_loc = self.get_test_loc("swift-maboxmaps-manifest-parse-expected.json") + packages = swift.SwiftManifestJsonHandler.parse(test_file) + self.check_packages_data(packages, expected_loc, regen=REGEN_TEST_FIXTURES) + + def test_parse_for_mapboxmaps_resolved(self): + test_file = self.get_test_loc( + "packages/mapboxmaps_manifest_and_resolved/Package.resolved" + ) + expected_loc = self.get_test_loc("swift-maboxmaps-resolved-parse-expected.json") + packages = swift.SwiftPackageResolvedHandler.parse(test_file) + self.check_packages_data(packages, expected_loc, regen=REGEN_TEST_FIXTURES) + + +class TestSwiftEndtoEnd(PackageTester): + test_data_dir = os.path.join(os.path.dirname(__file__), "data/swift") + + def test_package_scan_swift_end_to_end_full_mapboxmaps_manifest_only(self): + test_dir = self.get_test_loc("packages/mapboxmaps_manifest") + result_file = self.get_temp_file("json") + expected_file = self.get_test_loc( + "swift-mapboxmaps-manifest-package-expected.json" + ) + run_scan_click( + [ + "--package", + "--strip-root", + "--processes", + "-1", + test_dir, + "--json", + result_file, + ] + ) + check_json_scan( + expected_file, result_file, remove_uuid=True, regen=REGEN_TEST_FIXTURES + ) + + def test_package_scan_swift_end_to_end_full_mapboxmaps_manifest_and_resolved(self): + test_dir = self.get_test_loc("packages/mapboxmaps_manifest_and_resolved") + result_file = self.get_temp_file("json") + expected_file = self.get_test_loc( + "swift-mapboxmaps-manifest-and-resolved-package-expected.json" + ) + run_scan_click( + [ + "--package", + "--strip-root", + "--processes", + "-1", + test_dir, + "--json", + result_file, + ] + ) + check_json_scan( + expected_file, result_file, remove_uuid=True, regen=REGEN_TEST_FIXTURES + ) + + def test_package_scan_swift_end_to_end_full_mapboxmaps_resolved_only(self): + test_dir = self.get_test_loc("packages/mapboxmaps_resolved") + result_file = self.get_temp_file("json") + expected_file = self.get_test_loc( + "swift-mapboxmaps-resolved-package-expected.json" + ) + run_scan_click( + [ + "--package", + "--strip-root", + "--processes", + "-1", + test_dir, + "--json", + result_file, + ] + ) + check_json_scan( + expected_file, result_file, remove_uuid=True, regen=REGEN_TEST_FIXTURES + ) From b1f17bce31f270d320644c10d7311ed3352352bf Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Wed, 29 May 2024 00:28:05 +0530 Subject: [PATCH 06/19] Update CHANGELOG Signed-off-by: Keshav Priyadarshi --- CHANGELOG.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index c0da1d326ac..39fb7e8a3e5 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -34,6 +34,15 @@ v33.0.0 (next next, roadmap) of these in other summary plugins. See https://github.com/nexB/scancode-toolkit/issues/1745 +- We now support parsing the Swift manifest JSON dump and the ``Package.resolved`` file https://github.com/nexB/scancode-toolkit/issues/2657. +- Run the commands below on your local Swift project before running the scan. + - :: + + swift package dump-package > Package.swift.json + - :: + + swift package resolve + v32.1.0 (next, roadmap) ---------------------------- From 31c57aa7197e0a6cc90bc142dbaac614881100e0 Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Wed, 29 May 2024 21:23:12 +0530 Subject: [PATCH 07/19] Use proper case for default_primary_language Signed-off-by: Keshav Priyadarshi Co-authored-by: Philippe Ombredanne --- src/packagedcode/swift.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packagedcode/swift.py b/src/packagedcode/swift.py index 10b2493adef..9e2fc3f0a6d 100644 --- a/src/packagedcode/swift.py +++ b/src/packagedcode/swift.py @@ -50,7 +50,7 @@ class SwiftManifestJsonHandler(models.DatafileHandler): datasource_id = "swift_package_manifest_json" path_patterns = ("*/Package.swift.json",) default_package_type = "swift" - default_primary_language = "swift" + default_primary_language = "Swift" description = "json dump of swift manifest" documentation_url = "https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html" From de88a5539ed51e62322e49a5993cc2096ff8f8a5 Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Wed, 29 May 2024 21:27:49 +0530 Subject: [PATCH 08/19] Add detail to JSON dump-package command Signed-off-by: Keshav Priyadarshi Co-authored-by: Philippe Ombredanne --- src/packagedcode/swift.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/packagedcode/swift.py b/src/packagedcode/swift.py index 9e2fc3f0a6d..5c57d73eef8 100644 --- a/src/packagedcode/swift.py +++ b/src/packagedcode/swift.py @@ -20,7 +20,8 @@ https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html Run the commands below before running the scan: -``swift package dump-package > Package.swift.json`` + +- To create a parsable JSON version of the Package.swift manifest, run this: ``swift package dump-package > Package.swift.json`` ``swift package resolve`` """ From 75ea06a888d8c1585e4fe522f8b3f87f8b20e7a6 Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Wed, 29 May 2024 21:29:19 +0530 Subject: [PATCH 09/19] Add detail to package resolve command Signed-off-by: Keshav Priyadarshi Co-authored-by: Philippe Ombredanne --- src/packagedcode/swift.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packagedcode/swift.py b/src/packagedcode/swift.py index 5c57d73eef8..78073025366 100644 --- a/src/packagedcode/swift.py +++ b/src/packagedcode/swift.py @@ -22,7 +22,7 @@ Run the commands below before running the scan: - To create a parsable JSON version of the Package.swift manifest, run this: ``swift package dump-package > Package.swift.json`` -``swift package resolve`` +- To create the Package.resolved lock file, run this: ``swift package resolve`` """ From 98860b3c15f1e43dc55a5c5e269834db62b49093 Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Wed, 29 May 2024 21:32:04 +0530 Subject: [PATCH 10/19] Refine description for SwiftManifestJsonHandler Signed-off-by: Keshav Priyadarshi Co-authored-by: Philippe Ombredanne --- src/packagedcode/swift.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packagedcode/swift.py b/src/packagedcode/swift.py index 78073025366..814cc18c272 100644 --- a/src/packagedcode/swift.py +++ b/src/packagedcode/swift.py @@ -52,7 +52,7 @@ class SwiftManifestJsonHandler(models.DatafileHandler): path_patterns = ("*/Package.swift.json",) default_package_type = "swift" default_primary_language = "Swift" - description = "json dump of swift manifest" + description = "JSON dump of Package.swift created with ``swift package dump-package > Package.swift.json``" documentation_url = "https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html" @classmethod From 4f8753a95ef79d75c4299ade470d821c325e23a5 Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Wed, 29 May 2024 21:32:50 +0530 Subject: [PATCH 11/19] Refine description for SwiftPackageResolvedHandler Signed-off-by: Keshav Priyadarshi Co-authored-by: Philippe Ombredanne --- src/packagedcode/swift.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packagedcode/swift.py b/src/packagedcode/swift.py index 814cc18c272..fb01816462f 100644 --- a/src/packagedcode/swift.py +++ b/src/packagedcode/swift.py @@ -169,7 +169,7 @@ class SwiftPackageResolvedHandler(models.DatafileHandler): path_patterns = ("*/Package.resolved",) default_package_type = "swift" default_primary_language = "swift" - description = "resolved dependency for swift package" + description = "Resolved full dependency lockfile for Package.swift created with ``swift package resolve``" documentation_url = ( "https://docs.swift.org/package-manager/PackageDescription/" "PackageDescription.html#package-dependency" From c259071f9161e3cf7b1908cb6b91cbb3ecff6227 Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Wed, 29 May 2024 21:35:18 +0530 Subject: [PATCH 12/19] Use the exact name used upstream for the scope Signed-off-by: Keshav Priyadarshi Co-authored-by: Philippe Ombredanne --- src/packagedcode/swift.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packagedcode/swift.py b/src/packagedcode/swift.py index fb01816462f..c8d76a30b8e 100644 --- a/src/packagedcode/swift.py +++ b/src/packagedcode/swift.py @@ -116,7 +116,7 @@ def assemble( processed_dependencies.append( models.DependentPackage( purl=purl.to_string(), - scope="install", + scope="dependencies", is_runtime=True, is_optional=False, is_resolved=True, From a213ae8198f22f91a7cf8a047db3ef3897eecdb4 Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Fri, 31 May 2024 22:30:57 +0530 Subject: [PATCH 13/19] Add namespace to swift PURLs - Use the last segment as name and the rest as namespace Signed-off-by: Keshav Priyadarshi --- src/packagedcode/swift.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/packagedcode/swift.py b/src/packagedcode/swift.py index c8d76a30b8e..07da1ac731a 100644 --- a/src/packagedcode/swift.py +++ b/src/packagedcode/swift.py @@ -188,9 +188,10 @@ def parse(cls, location, package_only=False): location = dependency.get("location") state = dependency.get("state", {}) version = None + namespace = None if location and kind == "remoteSourceControl": - name = get_canonical_name(location) + namespace, name = get_namespace_and_name(location) version = state.get("version") @@ -201,7 +202,7 @@ def parse(cls, location, package_only=False): datasource_id=cls.datasource_id, type=cls.default_package_type, primary_language=cls.default_primary_language, - namespace=None, + namespace=namespace, name=name, version=version, ) @@ -238,13 +239,14 @@ def get_dependencies(dependencies): continue source = source[0] + namespace = None name = source.get("identity") version = None is_resolved = False location = source.get("location") if remote := location.get("remote"): - name = get_canonical_name(remote[0].get("urlString")) + namespace, name = get_namespace_and_name(remote[0].get("urlString")) requirement = source.get("requirement") if exact := requirement.get("exact"): @@ -258,6 +260,7 @@ def get_dependencies(dependencies): purl = PackageURL( type="swift", + namespace=namespace, name=name, version=version if is_resolved else None, ) @@ -265,7 +268,7 @@ def get_dependencies(dependencies): dependent_packages.append( models.DependentPackage( purl=purl.to_string(), - scope="install", + scope="dependencies", is_runtime=True, is_optional=False, is_resolved=is_resolved, @@ -275,10 +278,11 @@ def get_dependencies(dependencies): return dependent_packages -def get_canonical_name(url): +def get_namespace_and_name(url): parsed_url = parse.urlparse(url) hostname = parsed_url.hostname path = parsed_url.path.removesuffix(".git") + canonical_name = hostname + path - return parse.quote(hostname + path, safe="") + return canonical_name.rsplit("/", 1) From 603d992cfba8f346730d3a298f913c9bcb28e46b Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Fri, 31 May 2024 23:32:20 +0530 Subject: [PATCH 14/19] Add support for version 1 and 2 of Package.resolved Signed-off-by: Keshav Priyadarshi --- .../reference/available_package_parsers.rst | 7 +- src/packagedcode/swift.py | 95 ++++-- tests/packagedcode/data/plugin/help.txt | 8 +- .../fastlane_resolved_v1/Package.resolved | 16 + .../src/mapbox.swift | 0 .../mapboxmaps_resolved/Package.resolved | 32 -- ...fastlane-resolved-v1-package-expected.json | 119 +++++++ ...ift-maboxmaps-manifest-parse-expected.json | 14 +- ...ift-maboxmaps-resolved-parse-expected.json | 18 +- ...anifest-and-resolved-package-expected.json | 52 +-- ...-mapboxmaps-manifest-package-expected.json | 34 +- ...-mapboxmaps-resolved-package-expected.json | 297 ------------------ tests/packagedcode/test_swift.py | 4 +- 13 files changed, 273 insertions(+), 423 deletions(-) create mode 100644 tests/packagedcode/data/swift/packages/fastlane_resolved_v1/Package.resolved rename tests/packagedcode/data/swift/packages/{mapboxmaps_resolved => fastlane_resolved_v1}/src/mapbox.swift (100%) delete mode 100644 tests/packagedcode/data/swift/packages/mapboxmaps_resolved/Package.resolved create mode 100644 tests/packagedcode/data/swift/swift-fastlane-resolved-v1-package-expected.json delete mode 100644 tests/packagedcode/data/swift/swift-mapboxmaps-resolved-package-expected.json diff --git a/docs/source/reference/available_package_parsers.rst b/docs/source/reference/available_package_parsers.rst index 833dd99462c..45a3a4c15ee 100644 --- a/docs/source/reference/available_package_parsers.rst +++ b/docs/source/reference/available_package_parsers.rst @@ -748,14 +748,15 @@ parsers in scancode-toolkit during documentation builds. - ``squashfs_disk_image`` - None - https://en.wikipedia.org/wiki/SquashFS - * - json dump of swift manifest + * - JSON dump of Package.swift created with ``swift package dump-package > Package.swift.json`` - ``*/Package.swift.json`` - ``swift`` - ``swift_package_manifest_json`` - - swift + - Swift - https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html - * - resolved dependency for swift package + * - Resolved full dependency lockfile for Package.swift created with ``swift package resolve`` - ``*/Package.resolved`` + ``*/.package.resolved`` - ``swift`` - ``swift_package_resolved`` - swift diff --git a/src/packagedcode/swift.py b/src/packagedcode/swift.py index 07da1ac731a..b7ada928fdf 100644 --- a/src/packagedcode/swift.py +++ b/src/packagedcode/swift.py @@ -166,7 +166,7 @@ def assemble( class SwiftPackageResolvedHandler(models.DatafileHandler): datasource_id = "swift_package_resolved" - path_patterns = ("*/Package.resolved",) + path_patterns = ("*/Package.resolved", "*/.package.resolved") default_package_type = "swift" default_primary_language = "swift" description = "Resolved full dependency lockfile for Package.swift created with ``swift package resolve``" @@ -179,35 +179,18 @@ class SwiftPackageResolvedHandler(models.DatafileHandler): def parse(cls, location, package_only=False): with io.open(location, encoding="utf-8") as loc: package_resolved = json.load(loc) + + resolved_doc_version = package_resolved.get("version") - pinned = package_resolved.get("pins", []) + if resolved_doc_version in [2, 3]: + yield from packages_from_resolved_v2_and_v3(package_resolved) + + if resolved_doc_version == 1: + yield from packages_from_resolved_v1(package_resolved) - for dependency in pinned: - name = dependency.get("identity") - kind = dependency.get("kind") - location = dependency.get("location") - state = dependency.get("state", {}) - version = None - namespace = None - if location and kind == "remoteSourceControl": - namespace, name = get_namespace_and_name(location) - - version = state.get("version") - - if not version: - version = state.get("revision") - - package_data = dict( - datasource_id=cls.datasource_id, - type=cls.default_package_type, - primary_language=cls.default_primary_language, - namespace=namespace, - name=name, - version=version, - ) - yield models.PackageData.from_data(package_data, package_only) + @classmethod def assemble( cls, package_data, resource, codebase, package_adder=models.add_to_package @@ -229,6 +212,66 @@ def assemble( codebase=codebase, package_adder=package_adder, ) + +def packages_from_resolved_v2_and_v3(package_resolved): + pinned = package_resolved.get("pins", []) + + for dependency in pinned: + name = dependency.get("identity") + kind = dependency.get("kind") + location = dependency.get("location") + state = dependency.get("state", {}) + version = None + namespace = None + + if location and kind == "remoteSourceControl": + namespace, name = get_namespace_and_name(location) + + version = state.get("version") + + if not version: + version = state.get("revision") + + package_data = dict( + datasource_id=SwiftPackageResolvedHandler.datasource_id, + type=SwiftPackageResolvedHandler.default_package_type, + primary_language=SwiftPackageResolvedHandler.default_primary_language, + namespace=namespace, + name=name, + version=version, + ) + yield models.PackageData.from_data(package_data, False) + +def packages_from_resolved_v1(package_resolved): + object = package_resolved.get("object", {}) + pinned = object.get("pins", []) + + for dependency in pinned: + name = dependency.get("package") + + repository_url = dependency.get("repositoryURL") + state = dependency.get("state", {}) + version = None + namespace = None + + if repository_url: + namespace, name = get_namespace_and_name(repository_url) + + version = state.get("version") + + if not version: + version = state.get("revision") + + package_data = dict( + datasource_id=SwiftPackageResolvedHandler.datasource_id, + type=SwiftPackageResolvedHandler.default_package_type, + primary_language=SwiftPackageResolvedHandler.default_primary_language, + namespace=namespace, + name=name, + version=version, + ) + yield models.PackageData.from_data(package_data, False) + def get_dependencies(dependencies): diff --git a/tests/packagedcode/data/plugin/help.txt b/tests/packagedcode/data/plugin/help.txt index ff87045349c..7fd5350bace 100755 --- a/tests/packagedcode/data/plugin/help.txt +++ b/tests/packagedcode/data/plugin/help.txt @@ -807,16 +807,16 @@ Package type: squashfs Package type: swift datasource_id: swift_package_manifest_json documentation URL: https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html - primary language: swift - description: json dump of swift manifest + primary language: Swift + description: JSON dump of Package.swift created with ``swift package dump-package > Package.swift.json`` path_patterns: '*/Package.swift.json' -------------------------------------------- Package type: swift datasource_id: swift_package_resolved documentation URL: https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html#package-dependency primary language: swift - description: resolved dependency for swift package - path_patterns: '*/Package.resolved' + description: Resolved full dependency lockfile for Package.swift created with ``swift package resolve`` + path_patterns: '*/Package.resolved', '*/.package.resolved' -------------------------------------------- Package type: war datasource_id: java_war_archive diff --git a/tests/packagedcode/data/swift/packages/fastlane_resolved_v1/Package.resolved b/tests/packagedcode/data/swift/packages/fastlane_resolved_v1/Package.resolved new file mode 100644 index 00000000000..91aa2bec40f --- /dev/null +++ b/tests/packagedcode/data/swift/packages/fastlane_resolved_v1/Package.resolved @@ -0,0 +1,16 @@ +{ + "object": { + "pins": [ + { + "package": "SwiftShell", + "repositoryURL": "https://github.com/kareman/SwiftShell", + "state": { + "branch": null, + "revision": "99680b2efc7c7dbcace1da0b3979d266f02e213c", + "version": "5.1.0" + } + } + ] + }, + "version": 1 +} \ No newline at end of file diff --git a/tests/packagedcode/data/swift/packages/mapboxmaps_resolved/src/mapbox.swift b/tests/packagedcode/data/swift/packages/fastlane_resolved_v1/src/mapbox.swift similarity index 100% rename from tests/packagedcode/data/swift/packages/mapboxmaps_resolved/src/mapbox.swift rename to tests/packagedcode/data/swift/packages/fastlane_resolved_v1/src/mapbox.swift diff --git a/tests/packagedcode/data/swift/packages/mapboxmaps_resolved/Package.resolved b/tests/packagedcode/data/swift/packages/mapboxmaps_resolved/Package.resolved deleted file mode 100644 index 91a82660725..00000000000 --- a/tests/packagedcode/data/swift/packages/mapboxmaps_resolved/Package.resolved +++ /dev/null @@ -1,32 +0,0 @@ -{ - "pins" : [ - { - "identity" : "mapbox-common-ios", - "kind" : "remoteSourceControl", - "location" : "https://github.com/mapbox/mapbox-common-ios.git", - "state" : { - "revision" : "9c04997ed32c5b2506eb704f9f7a16367b5dcc64", - "version" : "24.4.0" - } - }, - { - "identity" : "mapbox-core-maps-ios", - "kind" : "remoteSourceControl", - "location" : "https://github.com/mapbox/mapbox-core-maps-ios.git", - "state" : { - "revision" : "c7897628028afb2c008d50c5d5d4054768c99340", - "version" : "11.4.0" - } - }, - { - "identity" : "turf-swift", - "kind" : "remoteSourceControl", - "location" : "https://github.com/mapbox/turf-swift.git", - "state" : { - "revision" : "213050191cfcb3d5aa76e1fa90c6ff1e182a42ca", - "version" : "2.8.0" - } - } - ], - "version" : 2 -} diff --git a/tests/packagedcode/data/swift/swift-fastlane-resolved-v1-package-expected.json b/tests/packagedcode/data/swift/swift-fastlane-resolved-v1-package-expected.json new file mode 100644 index 00000000000..dac90300299 --- /dev/null +++ b/tests/packagedcode/data/swift/swift-fastlane-resolved-v1-package-expected.json @@ -0,0 +1,119 @@ +{ + "packages": [ + { + "type": "swift", + "namespace": "github.com/kareman", + "name": "SwiftShell", + "version": "5.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "extra_data": {}, + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "package_uid": "pkg:swift/github.com/kareman/SwiftShell@5.1.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_paths": [ + "Package.resolved" + ], + "datasource_ids": [ + "swift_package_resolved" + ], + "purl": "pkg:swift/github.com/kareman/SwiftShell@5.1.0" + } + ], + "dependencies": [], + "files": [ + { + "path": "Package.resolved", + "type": "file", + "package_data": [ + { + "type": "swift", + "namespace": "github.com/kareman", + "name": "SwiftShell", + "version": "5.1.0", + "qualifiers": {}, + "subpath": null, + "primary_language": "swift", + "description": null, + "release_date": null, + "parties": [], + "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, + "holder": null, + "declared_license_expression": null, + "declared_license_expression_spdx": null, + "license_detections": [], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": null, + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [], + "repository_homepage_url": null, + "repository_download_url": null, + "api_data_url": null, + "datasource_id": "swift_package_resolved", + "purl": "pkg:swift/github.com/kareman/SwiftShell@5.1.0" + } + ], + "for_packages": [ + "pkg:swift/github.com/kareman/SwiftShell@5.1.0?uuid=fixed-uid-done-for-testing-5642512d1758" + ], + "scan_errors": [] + }, + { + "path": "src", + "type": "directory", + "package_data": [], + "for_packages": [], + "scan_errors": [] + }, + { + "path": "src/mapbox.swift", + "type": "file", + "package_data": [], + "for_packages": [], + "scan_errors": [] + } + ] +} \ No newline at end of file diff --git a/tests/packagedcode/data/swift/swift-maboxmaps-manifest-parse-expected.json b/tests/packagedcode/data/swift/swift-maboxmaps-manifest-parse-expected.json index 2ebf4cd1243..d73cf4d918b 100644 --- a/tests/packagedcode/data/swift/swift-maboxmaps-manifest-parse-expected.json +++ b/tests/packagedcode/data/swift/swift-maboxmaps-manifest-parse-expected.json @@ -6,7 +6,7 @@ "version": null, "qualifiers": {}, "subpath": null, - "primary_language": "swift", + "primary_language": "Swift", "description": null, "release_date": null, "parties": [], @@ -36,9 +36,9 @@ "extra_data": {}, "dependencies": [ { - "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift", + "purl": "pkg:swift/github.com/mapbox/turf-swift", "extracted_requirement": "vers:swift/>=2.8.0|<3.0.0", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": false, @@ -46,9 +46,9 @@ "extra_data": {} }, { - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0-rc.2", + "purl": "pkg:swift/github.com/mapbox/mapbox-core-maps-ios@11.4.0-rc.2", "extracted_requirement": "11.4.0-rc.2", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": true, @@ -56,9 +56,9 @@ "extra_data": {} }, { - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0-rc.2", + "purl": "pkg:swift/github.com/mapbox/mapbox-common-ios@24.4.0-rc.2", "extracted_requirement": "24.4.0-rc.2", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": true, diff --git a/tests/packagedcode/data/swift/swift-maboxmaps-resolved-parse-expected.json b/tests/packagedcode/data/swift/swift-maboxmaps-resolved-parse-expected.json index e6837705999..71bf3ebc80f 100644 --- a/tests/packagedcode/data/swift/swift-maboxmaps-resolved-parse-expected.json +++ b/tests/packagedcode/data/swift/swift-maboxmaps-resolved-parse-expected.json @@ -1,8 +1,8 @@ [ { "type": "swift", - "namespace": null, - "name": "github.com%2Fmapbox%2Fmapbox-common-ios", + "namespace": "github.com/mapbox", + "name": "mapbox-common-ios", "version": "24.4.0", "qualifiers": {}, "subpath": null, @@ -39,12 +39,12 @@ "repository_download_url": null, "api_data_url": null, "datasource_id": "swift_package_resolved", - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0" + "purl": "pkg:swift/github.com/mapbox/mapbox-common-ios@24.4.0" }, { "type": "swift", - "namespace": null, - "name": "github.com%2Fmapbox%2Fmapbox-core-maps-ios", + "namespace": "github.com/mapbox", + "name": "mapbox-core-maps-ios", "version": "11.4.0", "qualifiers": {}, "subpath": null, @@ -81,12 +81,12 @@ "repository_download_url": null, "api_data_url": null, "datasource_id": "swift_package_resolved", - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0" + "purl": "pkg:swift/github.com/mapbox/mapbox-core-maps-ios@11.4.0" }, { "type": "swift", - "namespace": null, - "name": "github.com%2Fmapbox%2Fturf-swift", + "namespace": "github.com/mapbox", + "name": "turf-swift", "version": "2.8.0", "qualifiers": {}, "subpath": null, @@ -123,6 +123,6 @@ "repository_download_url": null, "api_data_url": null, "datasource_id": "swift_package_resolved", - "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0" + "purl": "pkg:swift/github.com/mapbox/turf-swift@2.8.0" } ] \ No newline at end of file diff --git a/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-and-resolved-package-expected.json b/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-and-resolved-package-expected.json index 3f9b5d67d33..5a19fbd4472 100644 --- a/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-and-resolved-package-expected.json +++ b/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-and-resolved-package-expected.json @@ -7,7 +7,7 @@ "version": null, "qualifiers": {}, "subpath": null, - "primary_language": "swift", + "primary_language": "Swift", "description": null, "release_date": null, "parties": [], @@ -51,43 +51,43 @@ ], "dependencies": [ { - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0", + "purl": "pkg:swift/mapbox-common-ios@24.4.0", "extracted_requirement": "24.4.0", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:swift/mapbox-common-ios@24.4.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "Package.swift.json", "datasource_id": "swift_package_manifest_json" }, { - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0", + "purl": "pkg:swift/mapbox-core-maps-ios@11.4.0", "extracted_requirement": "11.4.0", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:swift/mapbox-core-maps-ios@11.4.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "Package.swift.json", "datasource_id": "swift_package_manifest_json" }, { - "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0", + "purl": "pkg:swift/turf-swift@2.8.0", "extracted_requirement": "2.8.0", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:swift/turf-swift@2.8.0?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "Package.swift.json", "datasource_id": "swift_package_manifest_json" @@ -100,8 +100,8 @@ "package_data": [ { "type": "swift", - "namespace": null, - "name": "github.com%2Fmapbox%2Fmapbox-common-ios", + "namespace": "github.com/mapbox", + "name": "mapbox-common-ios", "version": "24.4.0", "qualifiers": {}, "subpath": null, @@ -138,12 +138,12 @@ "repository_download_url": null, "api_data_url": null, "datasource_id": "swift_package_resolved", - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0" + "purl": "pkg:swift/github.com/mapbox/mapbox-common-ios@24.4.0" }, { "type": "swift", - "namespace": null, - "name": "github.com%2Fmapbox%2Fmapbox-core-maps-ios", + "namespace": "github.com/mapbox", + "name": "mapbox-core-maps-ios", "version": "11.4.0", "qualifiers": {}, "subpath": null, @@ -180,12 +180,12 @@ "repository_download_url": null, "api_data_url": null, "datasource_id": "swift_package_resolved", - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0" + "purl": "pkg:swift/github.com/mapbox/mapbox-core-maps-ios@11.4.0" }, { "type": "swift", - "namespace": null, - "name": "github.com%2Fmapbox%2Fturf-swift", + "namespace": "github.com/mapbox", + "name": "turf-swift", "version": "2.8.0", "qualifiers": {}, "subpath": null, @@ -222,7 +222,7 @@ "repository_download_url": null, "api_data_url": null, "datasource_id": "swift_package_resolved", - "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0" + "purl": "pkg:swift/github.com/mapbox/turf-swift@2.8.0" } ], "for_packages": [ @@ -241,7 +241,7 @@ "version": null, "qualifiers": {}, "subpath": null, - "primary_language": "swift", + "primary_language": "Swift", "description": null, "release_date": null, "parties": [], @@ -271,9 +271,9 @@ "extra_data": {}, "dependencies": [ { - "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift", + "purl": "pkg:swift/github.com/mapbox/turf-swift", "extracted_requirement": "vers:swift/>=2.8.0|<3.0.0", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": false, @@ -281,9 +281,9 @@ "extra_data": {} }, { - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0-rc.2", + "purl": "pkg:swift/github.com/mapbox/mapbox-core-maps-ios@11.4.0-rc.2", "extracted_requirement": "11.4.0-rc.2", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": true, @@ -291,9 +291,9 @@ "extra_data": {} }, { - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0-rc.2", + "purl": "pkg:swift/github.com/mapbox/mapbox-common-ios@24.4.0-rc.2", "extracted_requirement": "24.4.0-rc.2", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": true, diff --git a/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-package-expected.json b/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-package-expected.json index a222719a3c7..83b16f420af 100644 --- a/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-package-expected.json +++ b/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-package-expected.json @@ -7,7 +7,7 @@ "version": null, "qualifiers": {}, "subpath": null, - "primary_language": "swift", + "primary_language": "Swift", "description": null, "release_date": null, "parties": [], @@ -49,43 +49,43 @@ ], "dependencies": [ { - "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift", + "purl": "pkg:swift/github.com/mapbox/turf-swift", "extracted_requirement": "vers:swift/>=2.8.0|<3.0.0", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": false, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:swift/github.com%252Fmapbox%252Fturf-swift?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:swift/github.com/mapbox/turf-swift?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "Package.swift.json", "datasource_id": "swift_package_manifest_json" }, { - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0-rc.2", + "purl": "pkg:swift/github.com/mapbox/mapbox-core-maps-ios@11.4.0-rc.2", "extracted_requirement": "11.4.0-rc.2", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0-rc.2?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:swift/github.com/mapbox/mapbox-core-maps-ios@11.4.0-rc.2?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "Package.swift.json", "datasource_id": "swift_package_manifest_json" }, { - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0-rc.2", + "purl": "pkg:swift/github.com/mapbox/mapbox-common-ios@24.4.0-rc.2", "extracted_requirement": "24.4.0-rc.2", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": true, "resolved_package": {}, "extra_data": {}, - "dependency_uid": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0-rc.2?uuid=fixed-uid-done-for-testing-5642512d1758", + "dependency_uid": "pkg:swift/github.com/mapbox/mapbox-common-ios@24.4.0-rc.2?uuid=fixed-uid-done-for-testing-5642512d1758", "for_package_uid": "pkg:swift/MapboxMaps?uuid=fixed-uid-done-for-testing-5642512d1758", "datafile_path": "Package.swift.json", "datasource_id": "swift_package_manifest_json" @@ -103,7 +103,7 @@ "version": null, "qualifiers": {}, "subpath": null, - "primary_language": "swift", + "primary_language": "Swift", "description": null, "release_date": null, "parties": [], @@ -133,9 +133,9 @@ "extra_data": {}, "dependencies": [ { - "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift", + "purl": "pkg:swift/github.com/mapbox/turf-swift", "extracted_requirement": "vers:swift/>=2.8.0|<3.0.0", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": false, @@ -143,9 +143,9 @@ "extra_data": {} }, { - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0-rc.2", + "purl": "pkg:swift/github.com/mapbox/mapbox-core-maps-ios@11.4.0-rc.2", "extracted_requirement": "11.4.0-rc.2", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": true, @@ -153,9 +153,9 @@ "extra_data": {} }, { - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0-rc.2", + "purl": "pkg:swift/github.com/mapbox/mapbox-common-ios@24.4.0-rc.2", "extracted_requirement": "24.4.0-rc.2", - "scope": "install", + "scope": "dependencies", "is_runtime": true, "is_optional": false, "is_resolved": true, diff --git a/tests/packagedcode/data/swift/swift-mapboxmaps-resolved-package-expected.json b/tests/packagedcode/data/swift/swift-mapboxmaps-resolved-package-expected.json deleted file mode 100644 index bf851a0a30d..00000000000 --- a/tests/packagedcode/data/swift/swift-mapboxmaps-resolved-package-expected.json +++ /dev/null @@ -1,297 +0,0 @@ -{ - "packages": [ - { - "type": "swift", - "namespace": null, - "name": "github.com%2Fmapbox%2Fmapbox-common-ios", - "version": "24.4.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "swift", - "description": null, - "release_date": null, - "parties": [], - "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, - "holder": null, - "declared_license_expression": null, - "declared_license_expression_spdx": null, - "license_detections": [], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": null, - "notice_text": null, - "source_packages": [], - "extra_data": {}, - "repository_homepage_url": null, - "repository_download_url": null, - "api_data_url": null, - "package_uid": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "datafile_paths": [ - "Package.resolved" - ], - "datasource_ids": [ - "swift_package_resolved" - ], - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0" - }, - { - "type": "swift", - "namespace": null, - "name": "github.com%2Fmapbox%2Fmapbox-core-maps-ios", - "version": "11.4.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "swift", - "description": null, - "release_date": null, - "parties": [], - "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, - "holder": null, - "declared_license_expression": null, - "declared_license_expression_spdx": null, - "license_detections": [], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": null, - "notice_text": null, - "source_packages": [], - "extra_data": {}, - "repository_homepage_url": null, - "repository_download_url": null, - "api_data_url": null, - "package_uid": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "datafile_paths": [ - "Package.resolved" - ], - "datasource_ids": [ - "swift_package_resolved" - ], - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0" - }, - { - "type": "swift", - "namespace": null, - "name": "github.com%2Fmapbox%2Fturf-swift", - "version": "2.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "swift", - "description": null, - "release_date": null, - "parties": [], - "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, - "holder": null, - "declared_license_expression": null, - "declared_license_expression_spdx": null, - "license_detections": [], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": null, - "notice_text": null, - "source_packages": [], - "extra_data": {}, - "repository_homepage_url": null, - "repository_download_url": null, - "api_data_url": null, - "package_uid": "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "datafile_paths": [ - "Package.resolved" - ], - "datasource_ids": [ - "swift_package_resolved" - ], - "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0" - } - ], - "dependencies": [], - "files": [ - { - "path": "Package.resolved", - "type": "file", - "package_data": [ - { - "type": "swift", - "namespace": null, - "name": "github.com%2Fmapbox%2Fmapbox-common-ios", - "version": "24.4.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "swift", - "description": null, - "release_date": null, - "parties": [], - "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, - "holder": null, - "declared_license_expression": null, - "declared_license_expression_spdx": null, - "license_detections": [], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": null, - "repository_download_url": null, - "api_data_url": null, - "datasource_id": "swift_package_resolved", - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0" - }, - { - "type": "swift", - "namespace": null, - "name": "github.com%2Fmapbox%2Fmapbox-core-maps-ios", - "version": "11.4.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "swift", - "description": null, - "release_date": null, - "parties": [], - "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, - "holder": null, - "declared_license_expression": null, - "declared_license_expression_spdx": null, - "license_detections": [], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": null, - "repository_download_url": null, - "api_data_url": null, - "datasource_id": "swift_package_resolved", - "purl": "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0" - }, - { - "type": "swift", - "namespace": null, - "name": "github.com%2Fmapbox%2Fturf-swift", - "version": "2.8.0", - "qualifiers": {}, - "subpath": null, - "primary_language": "swift", - "description": null, - "release_date": null, - "parties": [], - "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, - "holder": null, - "declared_license_expression": null, - "declared_license_expression_spdx": null, - "license_detections": [], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": null, - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": null, - "repository_download_url": null, - "api_data_url": null, - "datasource_id": "swift_package_resolved", - "purl": "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0" - } - ], - "for_packages": [ - "pkg:swift/github.com%252Fmapbox%252Fmapbox-common-ios@24.4.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "pkg:swift/github.com%252Fmapbox%252Fmapbox-core-maps-ios@11.4.0?uuid=fixed-uid-done-for-testing-5642512d1758", - "pkg:swift/github.com%252Fmapbox%252Fturf-swift@2.8.0?uuid=fixed-uid-done-for-testing-5642512d1758" - ], - "scan_errors": [] - }, - { - "path": "src", - "type": "directory", - "package_data": [], - "for_packages": [], - "scan_errors": [] - }, - { - "path": "src/mapbox.swift", - "type": "file", - "package_data": [], - "for_packages": [], - "scan_errors": [] - } - ] -} \ No newline at end of file diff --git a/tests/packagedcode/test_swift.py b/tests/packagedcode/test_swift.py index 9dcfef78ba8..0318c514489 100644 --- a/tests/packagedcode/test_swift.py +++ b/tests/packagedcode/test_swift.py @@ -82,10 +82,10 @@ def test_package_scan_swift_end_to_end_full_mapboxmaps_manifest_and_resolved(sel ) def test_package_scan_swift_end_to_end_full_mapboxmaps_resolved_only(self): - test_dir = self.get_test_loc("packages/mapboxmaps_resolved") + test_dir = self.get_test_loc("packages/fastlane_resolved_v1") result_file = self.get_temp_file("json") expected_file = self.get_test_loc( - "swift-mapboxmaps-resolved-package-expected.json" + "swift-fastlane-resolved-v1-package-expected.json" ) run_scan_click( [ From d4acaefeca2b34b627e8eb78dca0e87a44070d34 Mon Sep 17 00:00:00 2001 From: Keshav Priyadarshi Date: Fri, 31 May 2024 23:43:40 +0530 Subject: [PATCH 15/19] Keep the platform details in the extra_data field Signed-off-by: Keshav Priyadarshi --- src/packagedcode/swift.py | 15 ++++--- ...ift-maboxmaps-manifest-parse-expected.json | 20 +++++++++- ...anifest-and-resolved-package-expected.json | 40 ++++++++++++++++++- ...-mapboxmaps-manifest-package-expected.json | 40 ++++++++++++++++++- 4 files changed, 102 insertions(+), 13 deletions(-) diff --git a/src/packagedcode/swift.py b/src/packagedcode/swift.py index b7ada928fdf..2dc9b5e3551 100644 --- a/src/packagedcode/swift.py +++ b/src/packagedcode/swift.py @@ -64,6 +64,7 @@ def _parse(cls, swift_manifest, package_only=False): ) dependencies = get_dependencies(swift_manifest.get("dependencies")) + platforms = swift_manifest.get("platforms", []) package_data = dict( datasource_id=cls.datasource_id, @@ -72,6 +73,7 @@ def _parse(cls, swift_manifest, package_only=False): namespace=None, name=swift_manifest.get("name"), dependencies=dependencies, + extra_data={"platforms": platforms}, ) return models.PackageData.from_data(package_data, package_only) @@ -179,18 +181,15 @@ class SwiftPackageResolvedHandler(models.DatafileHandler): def parse(cls, location, package_only=False): with io.open(location, encoding="utf-8") as loc: package_resolved = json.load(loc) - + resolved_doc_version = package_resolved.get("version") if resolved_doc_version in [2, 3]: yield from packages_from_resolved_v2_and_v3(package_resolved) - + if resolved_doc_version == 1: yield from packages_from_resolved_v1(package_resolved) - - - @classmethod def assemble( cls, package_data, resource, codebase, package_adder=models.add_to_package @@ -212,7 +211,8 @@ def assemble( codebase=codebase, package_adder=package_adder, ) - + + def packages_from_resolved_v2_and_v3(package_resolved): pinned = package_resolved.get("pins", []) @@ -242,6 +242,7 @@ def packages_from_resolved_v2_and_v3(package_resolved): ) yield models.PackageData.from_data(package_data, False) + def packages_from_resolved_v1(package_resolved): object = package_resolved.get("object", {}) pinned = object.get("pins", []) @@ -273,7 +274,6 @@ def packages_from_resolved_v1(package_resolved): yield models.PackageData.from_data(package_data, False) - def get_dependencies(dependencies): dependent_packages = [] for dependency in dependencies or []: @@ -328,4 +328,3 @@ def get_namespace_and_name(url): canonical_name = hostname + path return canonical_name.rsplit("/", 1) - diff --git a/tests/packagedcode/data/swift/swift-maboxmaps-manifest-parse-expected.json b/tests/packagedcode/data/swift/swift-maboxmaps-manifest-parse-expected.json index d73cf4d918b..e5abef4a602 100644 --- a/tests/packagedcode/data/swift/swift-maboxmaps-manifest-parse-expected.json +++ b/tests/packagedcode/data/swift/swift-maboxmaps-manifest-parse-expected.json @@ -33,7 +33,25 @@ "notice_text": null, "source_packages": [], "file_references": [], - "extra_data": {}, + "extra_data": { + "platforms": [ + { + "options": [], + "platformName": "ios", + "version": "12.0" + }, + { + "options": [], + "platformName": "macos", + "version": "10.15" + }, + { + "options": [], + "platformName": "visionos", + "version": "1.0" + } + ] + }, "dependencies": [ { "purl": "pkg:swift/github.com/mapbox/turf-swift", diff --git a/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-and-resolved-package-expected.json b/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-and-resolved-package-expected.json index 5a19fbd4472..047652da151 100644 --- a/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-and-resolved-package-expected.json +++ b/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-and-resolved-package-expected.json @@ -33,7 +33,25 @@ "extracted_license_statement": null, "notice_text": null, "source_packages": [], - "extra_data": {}, + "extra_data": { + "platforms": [ + { + "options": [], + "platformName": "ios", + "version": "12.0" + }, + { + "options": [], + "platformName": "macos", + "version": "10.15" + }, + { + "options": [], + "platformName": "visionos", + "version": "1.0" + } + ] + }, "repository_homepage_url": null, "repository_download_url": null, "api_data_url": null, @@ -268,7 +286,25 @@ "notice_text": null, "source_packages": [], "file_references": [], - "extra_data": {}, + "extra_data": { + "platforms": [ + { + "options": [], + "platformName": "ios", + "version": "12.0" + }, + { + "options": [], + "platformName": "macos", + "version": "10.15" + }, + { + "options": [], + "platformName": "visionos", + "version": "1.0" + } + ] + }, "dependencies": [ { "purl": "pkg:swift/github.com/mapbox/turf-swift", diff --git a/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-package-expected.json b/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-package-expected.json index 83b16f420af..41a8e80982c 100644 --- a/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-package-expected.json +++ b/tests/packagedcode/data/swift/swift-mapboxmaps-manifest-package-expected.json @@ -33,7 +33,25 @@ "extracted_license_statement": null, "notice_text": null, "source_packages": [], - "extra_data": {}, + "extra_data": { + "platforms": [ + { + "options": [], + "platformName": "ios", + "version": "12.0" + }, + { + "options": [], + "platformName": "macos", + "version": "10.15" + }, + { + "options": [], + "platformName": "visionos", + "version": "1.0" + } + ] + }, "repository_homepage_url": null, "repository_download_url": null, "api_data_url": null, @@ -130,7 +148,25 @@ "notice_text": null, "source_packages": [], "file_references": [], - "extra_data": {}, + "extra_data": { + "platforms": [ + { + "options": [], + "platformName": "ios", + "version": "12.0" + }, + { + "options": [], + "platformName": "macos", + "version": "10.15" + }, + { + "options": [], + "platformName": "visionos", + "version": "1.0" + } + ] + }, "dependencies": [ { "purl": "pkg:swift/github.com/mapbox/turf-swift", From b69f3399724fbf752769a4362f45fd9d75ae4ba0 Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Mon, 10 Jun 2024 21:00:34 +0530 Subject: [PATCH 16/19] Update CHANGELOG with cargo updates Signed-off-by: Ayan Sinha Mahapatra --- CHANGELOG.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index c0da1d326ac..b5ba1c27078 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -34,6 +34,16 @@ v33.0.0 (next next, roadmap) of these in other summary plugins. See https://github.com/nexB/scancode-toolkit/issues/1745 +- Improve cargo package detection support with various improvements + and bugfixes: + - Fix for parser crashing on cargo workspaces + - Fix a bug in dependency parsing (we were not returning any dependencies) + - Also support getting dependency versions from workspace + - Support more attributes from cargo + - Better handle workspace data thorugh extra_data attribute + See https://github.com/nexB/scancode-toolkit/pull/3783 + + v32.1.0 (next, roadmap) ---------------------------- From b2968dcdf97edba56c77be3ec60ab57064c8008a Mon Sep 17 00:00:00 2001 From: Vasily Pozdnyakov Date: Mon, 10 Jun 2024 17:38:44 +0200 Subject: [PATCH 17/19] Add new Apache or MIT license rule #3738 (#3750) * Fix false positive license detection #3738 Signed-off-by: Vasily Pozdnyakov --- .../data/rules/mit_and_apache-2.0_10.RULE | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/licensedcode/data/rules/mit_and_apache-2.0_10.RULE diff --git a/src/licensedcode/data/rules/mit_and_apache-2.0_10.RULE b/src/licensedcode/data/rules/mit_and_apache-2.0_10.RULE new file mode 100644 index 00000000000..169cfe27b6e --- /dev/null +++ b/src/licensedcode/data/rules/mit_and_apache-2.0_10.RULE @@ -0,0 +1,13 @@ +--- +license_expression: mit OR apache-2.0 +is_license_notice: yes +relevance: 100 +referenced_filenames: + - LICENSE_MIT + - LICENSE_APACHE +--- + +This source code is licensed under both the {{MIT}} license found in the +LICENSE_MIT file in the root directory of this source tree and the {{Apache}} +License, Version 2.0 found in the LICENSE_APACHE file in the root directory +of this source tree. \ No newline at end of file From 3202d75f6bac10acea4722e8b09b6a11d9ab9739 Mon Sep 17 00:00:00 2001 From: Swastik Sharma <81990329+swastkk@users.noreply.github.com> Date: Mon, 10 Jun 2024 21:11:19 +0530 Subject: [PATCH 18/19] Update documentation for errors in Mac M1 (#3749) Signed-off-by: swastik --- docs/source/getting-started/install.rst | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/source/getting-started/install.rst b/docs/source/getting-started/install.rst index d27f7f92854..d890150420f 100644 --- a/docs/source/getting-started/install.rst +++ b/docs/source/getting-started/install.rst @@ -160,6 +160,32 @@ in the extracted directory and run:: This will configure ScanCode and display the command line :ref:`cli_help_text`. +.. note:: + If you encounter a "No matching distribution" error while running the ``./configure`` command on a Mac M1, it may indicate compatibility issues with the current architecture. Here's a step-by-step guide to address this: + + - **Change Mac M1 Architecture to x86_64:** + Switch the architecture from amd64 to x86_64 using the command: + :: + + env /usr/bin/arch -x86_64 /bin/zsh --login + - **Use Rosetta Translation:** + Enable Rosetta translation in Terminal by executing: + :: + + softwareupdate --install-rosetta + - **Transition Homebrew from arm64 to Intel:** + Change Homebrew from the arm64 architecture to the Intel (x86) architecture by running: + :: + + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" + - **Install Intel-Specific Python:** + Use Homebrew to install Python specifically optimized for Intel architecture with: + :: + + /usr/local/Homebrew/bin/brew install python3 + + Then rerun the ``./configure`` command. This sets up the project according to the new architecture and ensures proper configuration. + Following these steps should help resolve compatibility issues and allow smooth operation of the project on Mac M1 devices. .. _windows_app_install: From e16662669d0d206cf28d43fe7e4847d3ac3234dc Mon Sep 17 00:00:00 2001 From: Ayan Sinha Mahapatra Date: Mon, 10 Jun 2024 21:32:12 +0530 Subject: [PATCH 19/19] Update to SPDX license list 3.24.0 (#3795) * Update to SPDX license list 3.24.0 Reference: https://github.com/nexB/scancode-toolkit/issues/3787 Reference: https://github.com/spdx/license-list-XML/releases/tag/v3.24.0 Signed-off-by: Philippe Ombredanne Co-authored-by: Philippe Ombredanne --- CHANGELOG.rst | 15 +- .../data/licenses/3dslicer-1.0.LICENSE | 6 +- .../data/licenses/amd-historical.LICENSE | 6 +- .../data/licenses/any-osi.LICENSE | 18 ++ ...terisk-linking-protocols-exception.LICENSE | 25 +++ .../licenses/bsd-2-clause-first-lines.LICENSE | 39 ++++ .../data/licenses/catharon-osl.LICENSE | 4 +- .../data/licenses/codesourcery-2004.LICENSE | 6 +- .../data/licenses/cve-tou.LICENSE | 6 +- .../data/licenses/fftpack-2004.LICENSE | 5 +- .../data/licenses/gutmann.LICENSE | 16 ++ .../hpnd-export-us-acknowledgement.LICENSE | 37 ++++ ...nd-sell-variant-mit-disclaimer-rev.LICENSE | 27 +++ .../data/licenses/hpnd-uc-export-us.LICENSE | 20 ++ .../data/licenses/intel-osl-1993.LICENSE | 6 +- .../data/licenses/mit-khronos-old.LICENSE | 38 ++++ .../mit-no-advert-export-control.LICENSE | 7 +- .../data/licenses/mit-taylor-variant.LICENSE | 6 +- src/licensedcode/data/licenses/ncbi.LICENSE | 13 +- .../data/licenses/pcre2-exception.LICENSE | 21 ++ src/licensedcode/data/licenses/ppl.LICENSE | 112 ++++++++++ .../rrdtool-floss-exception-2.0.LICENSE | 8 +- .../data/licenses/sun-ppp-2000.LICENSE | 25 +++ .../data/licenses/threeparttable.LICENSE | 17 ++ .../data/licenses/x11-oar.LICENSE | 5 +- src/licensedcode/data/licenses/xzoom.LICENSE | 25 +++ .../data/rules/3dslicer-1.0_2.RULE | 208 ++++++++++++++++++ .../data/rules/3dslicer-1.0_3.RULE | 11 + .../data/rules/3dslicer-1.0_4.RULE | 9 + src/licensedcode/data/rules/any-osi_1.RULE | 11 + src/licensedcode/data/rules/any-osi_2.RULE | 7 + .../data/rules/fftpack-2004_2.RULE | 45 ++++ .../data/rules/free-unknown_94.RULE | 1 + .../data/rules/freebsd-doc_5.RULE | 5 +- ...ort-control_and_proprietary-license_1.RULE | 5 +- .../data/rules/other-copyleft_34.RULE | 6 +- .../data/rules/other-permissive_322.RULE | 6 +- .../data/rules/other-permissive_bsdish_1.RULE | 4 + .../data/rules/proprietary-license_928.RULE | 4 + .../data/rules/us-govt-public-domain_25.RULE | 6 +- .../data/datadriven/lic1/camellia_bsd.c.yml | 2 +- ...ntel-sound.copyright-detailed.expected.yml | 16 +- .../copyright-detailed.expected.yml | 23 +- .../copyright-detailed.expected.yml | 23 +- .../copyright-detailed.expected.yml | 60 +++-- .../copyright-detailed.expected.yml | 60 +++-- .../libkrb5-3/copyright-detailed.expected.yml | 60 +++-- 47 files changed, 939 insertions(+), 146 deletions(-) create mode 100644 src/licensedcode/data/licenses/any-osi.LICENSE create mode 100644 src/licensedcode/data/licenses/asterisk-linking-protocols-exception.LICENSE create mode 100644 src/licensedcode/data/licenses/bsd-2-clause-first-lines.LICENSE create mode 100644 src/licensedcode/data/licenses/gutmann.LICENSE create mode 100644 src/licensedcode/data/licenses/hpnd-export-us-acknowledgement.LICENSE create mode 100644 src/licensedcode/data/licenses/hpnd-sell-variant-mit-disclaimer-rev.LICENSE create mode 100644 src/licensedcode/data/licenses/hpnd-uc-export-us.LICENSE create mode 100644 src/licensedcode/data/licenses/mit-khronos-old.LICENSE create mode 100644 src/licensedcode/data/licenses/pcre2-exception.LICENSE create mode 100644 src/licensedcode/data/licenses/ppl.LICENSE create mode 100644 src/licensedcode/data/licenses/sun-ppp-2000.LICENSE create mode 100644 src/licensedcode/data/licenses/threeparttable.LICENSE create mode 100644 src/licensedcode/data/licenses/xzoom.LICENSE create mode 100644 src/licensedcode/data/rules/3dslicer-1.0_2.RULE create mode 100644 src/licensedcode/data/rules/3dslicer-1.0_3.RULE create mode 100644 src/licensedcode/data/rules/3dslicer-1.0_4.RULE create mode 100644 src/licensedcode/data/rules/any-osi_1.RULE create mode 100644 src/licensedcode/data/rules/any-osi_2.RULE create mode 100644 src/licensedcode/data/rules/fftpack-2004_2.RULE diff --git a/CHANGELOG.rst b/CHANGELOG.rst index e11ca9714bd..cc5a7b69d05 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -52,8 +52,19 @@ v33.0.0 (next next, roadmap) swift package resolve -v32.1.0 (next, roadmap) ----------------------------- +- New and updated licenses, including support for newly released + SPDX license list versions: + - SPDX License List 3.24: + This release of the SPDX license list had 25 new licenses + and exceptions, and out of them 12 were present as licenses + and 5 were present as rules already. There were 3 new + license/exception texts added, and the rest 5 were either + texts with small variations, additions to texts or several + rule texts together. And the rest have been added as new licenses. + For more details see https://github.com/nexB/scancode-toolkit/pull/3795 + +v32.1.0 - 2024-03-23 +--------------------- New CLI options: diff --git a/src/licensedcode/data/licenses/3dslicer-1.0.LICENSE b/src/licensedcode/data/licenses/3dslicer-1.0.LICENSE index ffa357f1737..45a2e9e9d56 100644 --- a/src/licensedcode/data/licenses/3dslicer-1.0.LICENSE +++ b/src/licensedcode/data/licenses/3dslicer-1.0.LICENSE @@ -5,11 +5,15 @@ name: 3D Slicer Contribution and Software License Agreement v1.0 category: Permissive owner: Slicer Project homepage_url: https://www.slicer.org/wiki/License -spdx_license_key: LicenseRef-scancode-3dslicer-1.0 +spdx_license_key: 3D-Slicer-1.0 +other_spdx_license_keys: + - LicenseRef-scancode-3dslicer-1.0 text_urls: - https://github.com/Slicer/Slicer/blob/v4.6.2/COPYRIGHT.txt faq_url: https://www.slicer.org/wiki/CommercialUse other_urls: + - https://slicer.readthedocs.io/en/latest/user_guide/about.html#license + - https://github.com/Slicer/Slicer/blob/main/License.txt - http://www.slicer.org - http://wiki.na-mic.org/Wiki/index.php/Slicer3 ignorable_authors: diff --git a/src/licensedcode/data/licenses/amd-historical.LICENSE b/src/licensedcode/data/licenses/amd-historical.LICENSE index 3a41158bae2..a2d9d5bb27d 100644 --- a/src/licensedcode/data/licenses/amd-historical.LICENSE +++ b/src/licensedcode/data/licenses/amd-historical.LICENSE @@ -5,7 +5,11 @@ name: AMD Historical License category: Permissive owner: Advanced Micro Devices notes: this is a short historical permissive license seen in the newlib C library -spdx_license_key: LicenseRef-scancode-amd-historical +spdx_license_key: AMD-newlib +other_spdx_license_keys: + - LicenseRef-scancode-amd-historical +other_urls: + - https://sourceware.org/git/?p=newlib-cygwin.git;a=blob;f=newlib/libc/sys/a29khif/_close.S;h=04f52ae00de1dafbd9055ad8d73c5c697a3aae7f;hb=HEAD --- This software is the property of Advanced Micro Devices, Inc (AMD) which diff --git a/src/licensedcode/data/licenses/any-osi.LICENSE b/src/licensedcode/data/licenses/any-osi.LICENSE new file mode 100644 index 00000000000..ba0e6a3e0f1 --- /dev/null +++ b/src/licensedcode/data/licenses/any-osi.LICENSE @@ -0,0 +1,18 @@ +--- +key: any-osi +short_name: Any OSI License +name: Any OSI License +category: Unstated License +owner: Unspecified +spdx_license_key: any-OSI +minimum_coverage: 100 +other_urls: + - http://www.opensource.org/licenses/alphabetical + - https://metacpan.org/pod/Exporter::Tidy#LICENSE +ignorable_urls: + - http://www.opensource.org/licenses/alphabetical +--- + +Pick your favourite OSI approved license :) + +http://www.opensource.org/licenses/alphabetical \ No newline at end of file diff --git a/src/licensedcode/data/licenses/asterisk-linking-protocols-exception.LICENSE b/src/licensedcode/data/licenses/asterisk-linking-protocols-exception.LICENSE new file mode 100644 index 00000000000..7148b663fcf --- /dev/null +++ b/src/licensedcode/data/licenses/asterisk-linking-protocols-exception.LICENSE @@ -0,0 +1,25 @@ +--- +key: asterisk-linking-protocols-exception +short_name: Asterisk linking protocols exception +name: Asterisk linking protocols exception +owner: Asterisk +category: Copyleft Limited +is_exception: yes +spdx_license_key: Asterisk-linking-protocols-exception +other_urls: + - https://github.com/asterisk/asterisk/blob/115d7c01e32ccf4566a99e9d74e2b88830985a0b/LICENSE#L27 +--- + +Specific permission is also granted to link Asterisk with OpenSSL, OpenH323 +UniMRCP, and/or the UW IMAP Toolkit and distribute the resulting binary files. + +In addition, Asterisk implements several management/control protocols. +This includes the Asterisk Manager Interface (AMI), the Asterisk Gateway +Interface (AGI), and the Asterisk REST Interface (ARI). It is our belief +that applications using these protocols to manage or control an Asterisk +instance do not have to be licensed under the GPL or a compatible license, +as we believe these protocols do not create a 'derivative work' as referred +to in the GPL. However, should any court or other judiciary body find that +these protocols do fall under the terms of the GPL, then we hereby grant you a +license to use these protocols in combination with Asterisk in external +applications licensed under any license you wish. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/bsd-2-clause-first-lines.LICENSE b/src/licensedcode/data/licenses/bsd-2-clause-first-lines.LICENSE new file mode 100644 index 00000000000..f12854e9adb --- /dev/null +++ b/src/licensedcode/data/licenses/bsd-2-clause-first-lines.LICENSE @@ -0,0 +1,39 @@ +--- +key: bsd-2-clause-first-lines +short_name: BSD 2-Clause first lines +name: BSD 2-Clause - first lines requirement +owner: Nippon Telegraph and Telephone Corporation +category: Permissive +notes: | + Added in SPDX license list 3.24 + This was previously the license rule: freebsd-doc_5.RULE +spdx_license_key: BSD-2-Clause-first-lines +other_urls: + - https://github.com/krb5/krb5/blob/krb5-1.21.2-final/NOTICE#L664-L690 + - https://web.mit.edu/kerberos/krb5-1.21/doc/mitK5license.html +--- + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer as the first lines of this file unmodified. + +2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY NTT "AS IS" AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL NTT BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/catharon-osl.LICENSE b/src/licensedcode/data/licenses/catharon-osl.LICENSE index 5d05d0fe1f9..35abca76ed4 100644 --- a/src/licensedcode/data/licenses/catharon-osl.LICENSE +++ b/src/licensedcode/data/licenses/catharon-osl.LICENSE @@ -5,7 +5,9 @@ name: Catharon Open Source License category: Permissive owner: Catharon homepage_url: https://github.com/scummvm/scummvm/blob/master/LICENSES/CatharonLicense.txt -spdx_license_key: LicenseRef-scancode-catharon-osl +spdx_license_key: Catharon +other_spdx_license_keys: + - LicenseRef-scancode-catharon-osl text_urls: - https://github.com/scummvm/scummvm/tree/master/engines/ags/lib/freetype-2.1.3/autohint - https://www.copperspice.com/docs/cs_overview/legal-3rdparty.html diff --git a/src/licensedcode/data/licenses/codesourcery-2004.LICENSE b/src/licensedcode/data/licenses/codesourcery-2004.LICENSE index bb1856f6709..20e75f637d2 100644 --- a/src/licensedcode/data/licenses/codesourcery-2004.LICENSE +++ b/src/licensedcode/data/licenses/codesourcery-2004.LICENSE @@ -5,7 +5,11 @@ name: CodeSourcery 2004 category: Permissive owner: CodeSourcery homepage_url: https://git.linaro.org/toolchain/newlib.git/tree/newlib/libc/misc/init.c -spdx_license_key: LicenseRef-scancode-codesourcery-2004 +spdx_license_key: HPND-merchantability-variant +other_spdx_license_keys: + - LicenseRef-scancode-codesourcery-2004 +other_urls: + - https://sourceware.org/git/?p=newlib-cygwin.git;a=blob;f=newlib/libc/misc/fini.c;hb=HEAD --- Permission to use, copy, modify, and distribute this file diff --git a/src/licensedcode/data/licenses/cve-tou.LICENSE b/src/licensedcode/data/licenses/cve-tou.LICENSE index 89460f0286e..52bcc933350 100644 --- a/src/licensedcode/data/licenses/cve-tou.LICENSE +++ b/src/licensedcode/data/licenses/cve-tou.LICENSE @@ -5,7 +5,11 @@ name: Common Vulnerability Enumeration ToU License category: Permissive owner: Mitre homepage_url: https://cve.mitre.org/about/termsofuse.html -spdx_license_key: LicenseRef-scancode-cve-tou +spdx_license_key: cve-tou +other_spdx_license_keys: + - LicenseRef-scancode-cve-tou +other_urls: + - https://www.cve.org/Legal/TermsOfUse --- CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, diff --git a/src/licensedcode/data/licenses/fftpack-2004.LICENSE b/src/licensedcode/data/licenses/fftpack-2004.LICENSE index acf12f9b6e0..f9ea0db610a 100644 --- a/src/licensedcode/data/licenses/fftpack-2004.LICENSE +++ b/src/licensedcode/data/licenses/fftpack-2004.LICENSE @@ -5,11 +5,14 @@ name: FFTPACK License 2004 category: Permissive owner: NCAR homepage_url: https://github.com/marton78/pffft/blob/master/pffft.c -spdx_license_key: LicenseRef-scancode-fftpack-2004 +spdx_license_key: NCL +other_spdx_license_keys: + - LicenseRef-scancode-fftpack-2004 text_urls: - https://bitbucket.org/jpommier/pffft/src/master/pffft.c other_urls: - https://github.com/nexB/scancode-toolkit/issues/1978 + - https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/src/modules/module-filter-chain/pffft.c?ref_type=heads#L1-52 standard_notice: | http://www.cisl.ucar.edu/css/software/fftpack5/ftpk.html Copyright (c) 2004 the University Corporation for Atmospheric diff --git a/src/licensedcode/data/licenses/gutmann.LICENSE b/src/licensedcode/data/licenses/gutmann.LICENSE new file mode 100644 index 00000000000..b5dfbe2dc50 --- /dev/null +++ b/src/licensedcode/data/licenses/gutmann.LICENSE @@ -0,0 +1,16 @@ +--- +key: gutmann +short_name: Gutmann License +name: Gutmann License +owner: Peter Gutmann +category: Permissive +notes: | + Added in SPDX license list 3.24 + This was previously the license rule: other-permissive_bsdish_1.RULE +spdx_license_key: Gutmann +other_urls: + - https://www.cs.auckland.ac.nz/~pgut001/dumpasn1.c +--- + +You can use this code in whatever way you want, as long as you don't try +to claim you wrote it. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/hpnd-export-us-acknowledgement.LICENSE b/src/licensedcode/data/licenses/hpnd-export-us-acknowledgement.LICENSE new file mode 100644 index 00000000000..29fcbcb3ac5 --- /dev/null +++ b/src/licensedcode/data/licenses/hpnd-export-us-acknowledgement.LICENSE @@ -0,0 +1,37 @@ +--- +key: hpnd-export-us-acknowledgement +short_name: HPND US export acknowledgment +name: HPND with US Government export control warning and acknowledgment +owner: Regents of the University of California +category: Free Restricted +notes: | + Added in SPDX license list 3.24 + This was previously mit-no-advert-export-control_and_proprietary-license_1.RULE +spdx_license_key: HPND-export-US-acknowledgement +other_urls: + - https://github.com/krb5/krb5/blob/krb5-1.21.2-final/NOTICE#L831-L852 + - https://web.mit.edu/kerberos/krb5-1.21/doc/mitK5license.html +ignorable_authors: + - the University of Southern California +--- + +EXPORT OF THIS SOFTWARE from the United States of America may +require a specific license from the United States Government. It +is the responsibility of any person or organization +contemplating export to obtain such a license before exporting. + +WITHIN THAT CONSTRAINT, permission to copy, modify, and distribute +this software and its documentation in source and binary forms is +hereby granted, provided that any documentation or other materials +related to such distribution or use acknowledge that the software +was developed by the University of Southern California. + +DISCLAIMER OF WARRANTY. THIS SOFTWARE IS PROVIDED "AS IS". The +University of Southern California MAKES NO REPRESENTATIONS OR +WARRANTIES, EXPRESS OR IMPLIED. By way of example, but not +limitation, the University of Southern California MAKES NO +REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY +PARTICULAR PURPOSE. The University of Southern California shall not +be held liable for any liability nor for any direct, indirect, or +consequential damages with respect to any claim by the user or +distributor of the ksu software. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/hpnd-sell-variant-mit-disclaimer-rev.LICENSE b/src/licensedcode/data/licenses/hpnd-sell-variant-mit-disclaimer-rev.LICENSE new file mode 100644 index 00000000000..38c6a5cb617 --- /dev/null +++ b/src/licensedcode/data/licenses/hpnd-sell-variant-mit-disclaimer-rev.LICENSE @@ -0,0 +1,27 @@ +--- +key: hpnd-sell-variant-mit-disclaimer-rev +short_name: HPND sell variant with MIT disclaimer reverse +name: HPND sell variant with MIT disclaimer - reverse +owner: Ian Stapleton Cordasco +category: Permissive +notes: Added in SPDX license list 3.24 +spdx_license_key: HPND-sell-variant-MIT-disclaimer-rev +other_urls: + - https://github.com/sigmavirus24/x11-ssh-askpass/blob/master/dynlist.c +--- + +Disclaimer: + +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 author(s) 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. + +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. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/hpnd-uc-export-us.LICENSE b/src/licensedcode/data/licenses/hpnd-uc-export-us.LICENSE new file mode 100644 index 00000000000..0f360e3ed8a --- /dev/null +++ b/src/licensedcode/data/licenses/hpnd-uc-export-us.LICENSE @@ -0,0 +1,20 @@ +--- +key: hpnd-uc-export-us +short_name: HPND UC US export warning +name: Historical Permission Notice and Disclaimer - University of California, US export warning +owner: Regents of the University of California +category: Free Restricted +spdx_license_key: HPND-UC-export-US +notes: Added in SPDX license list 3.24 +other_urls: + - https://github.com/RTimothyEdwards/magic/blob/master/LICENSE +--- + +Permission to use, copy, modify, and distribute this +software and its documentation for any purpose and without +fee is hereby granted, provided that the above copyright +notice appear in all copies. The University of California +makes no representations about the suitability of this +software for any purpose. It is provided "as is" without +express or implied warranty. Export of this software outside +of the United States of America may require an export license. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/intel-osl-1993.LICENSE b/src/licensedcode/data/licenses/intel-osl-1993.LICENSE index ce10e444403..e9821bb7681 100644 --- a/src/licensedcode/data/licenses/intel-osl-1993.LICENSE +++ b/src/licensedcode/data/licenses/intel-osl-1993.LICENSE @@ -4,7 +4,11 @@ short_name: Intel OSL 1993 name: Intel Open Source License 1993 category: Permissive owner: Intel Corporation -spdx_license_key: LicenseRef-scancode-intel-osl-1993 +spdx_license_key: HPND-Intel +other_spdx_license_keys: + - LicenseRef-scancode-intel-osl-1993 +other_urls: + - https://sourceware.org/git/?p=newlib-cygwin.git;a=blob;f=newlib/libc/machine/i960/memcpy.S;hb=HEAD --- Intel hereby grants you permission to copy, modify, and distribute this diff --git a/src/licensedcode/data/licenses/mit-khronos-old.LICENSE b/src/licensedcode/data/licenses/mit-khronos-old.LICENSE new file mode 100644 index 00000000000..f74508bdf5f --- /dev/null +++ b/src/licensedcode/data/licenses/mit-khronos-old.LICENSE @@ -0,0 +1,38 @@ +--- +key: mit-khronos-old +short_name: MIT Khronos - old variant +name: MIT Khronos - old variant +category: Permissive +owner: Khronos Group +notes: | + Added in SPDX license list 3.24 + This is the same as khronos.LICENSE except the third paragraph +spdx_license_key: MIT-Khronos-old +other_urls: + - https://github.com/KhronosGroup/SPIRV-Cross/blob/main/LICENSES/LicenseRef-KhronosFreeUse.txt + - https://www.khronos.org/registry/ +ignorable_urls: + - https://www.khronos.org/registry/ +--- + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and/or associated documentation files (the "Materials"), +to deal in the Materials without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Materials, and to permit persons to whom the +Materials are 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 Materials. + +MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS +STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND +HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ + +THE MATERIALS ARE 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 MATERIALS OR THE USE OR OTHER DEALINGS +IN THE MATERIALS. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/mit-no-advert-export-control.LICENSE b/src/licensedcode/data/licenses/mit-no-advert-export-control.LICENSE index baa7b001545..5bf10f49a18 100644 --- a/src/licensedcode/data/licenses/mit-no-advert-export-control.LICENSE +++ b/src/licensedcode/data/licenses/mit-no-advert-export-control.LICENSE @@ -8,7 +8,12 @@ homepage_url: https://fedoraproject.org/wiki/Licensing:Xerox?rd=Licensing/Xerox notes: | Per Fedora, this license is very similar to MIT, except that it requires that US Export Control laws be followed, which makes it GPL-Incompatible. -spdx_license_key: LicenseRef-scancode-mit-no-advert-export-control +spdx_license_key: HPND-export2-US +other_spdx_license_keys: + - LicenseRef-scancode-mit-no-advert-export-control +other_urls: + - https://web.mit.edu/kerberos/krb5-1.21/doc/mitK5license.html + - https://github.com/krb5/krb5/blob/krb5-1.21.2-final/NOTICE#L111-L133 minimum_coverage: 70 --- diff --git a/src/licensedcode/data/licenses/mit-taylor-variant.LICENSE b/src/licensedcode/data/licenses/mit-taylor-variant.LICENSE index ddbae540563..ed53aec5e9e 100644 --- a/src/licensedcode/data/licenses/mit-taylor-variant.LICENSE +++ b/src/licensedcode/data/licenses/mit-taylor-variant.LICENSE @@ -4,7 +4,11 @@ short_name: MIT Taylor Variant name: MIT Taylor Variant category: Permissive owner: Unspecified -spdx_license_key: LicenseRef-scancode-mit-taylor-variant +spdx_license_key: pkgconf +other_spdx_license_keys: + - LicenseRef-scancode-mit-taylor-variant +other_urls: + - https://github.com/pkgconf/pkgconf/blob/master/cli/main.c#L8 --- Permission to use, copy, modify, and/or distribute this software for any purpose diff --git a/src/licensedcode/data/licenses/ncbi.LICENSE b/src/licensedcode/data/licenses/ncbi.LICENSE index 42cb2e39cc2..9015612817b 100644 --- a/src/licensedcode/data/licenses/ncbi.LICENSE +++ b/src/licensedcode/data/licenses/ncbi.LICENSE @@ -5,9 +5,20 @@ name: NCBI Public Domain Notice category: Public Domain owner: NCBI homepage_url: https://github.com/ncbi/ngs/blob/master/LICENSE#L8 -spdx_license_key: LicenseRef-scancode-ncbi +spdx_license_key: NCBI-PD +other_spdx_license_keys: + - LicenseRef-scancode-ncbi other_urls: - https://blast.ncbi.nlm.nih.gov/Blast.cgi + - https://github.com/ncbi/sra-tools/blob/e8e5b6af4edc460156ad9ce5902d0779cffbf685/LICENSE + - https://github.com/ncbi/datasets/blob/0ea4cd16b61e5b799d9cc55aecfa016d6c9bd2bf/LICENSE.md + - https://github.com/ncbi/gprobe/blob/de64d30fee8b4c4013094d7d3139ea89b5dd1ace/LICENSE + - https://github.com/ncbi/egapx/blob/08930b9dec0c69b2d1a05e5153c7b95ef0a3eb0f/LICENSE + - https://github.com/ncbi/datasets/blob/master/LICENSE.md +notes: | + Added in SPDX license list 3.24 + This was before the us-govt-public-domain_25.RULE + Earlier text is now a rule --- PUBLIC DOMAIN NOTICE diff --git a/src/licensedcode/data/licenses/pcre2-exception.LICENSE b/src/licensedcode/data/licenses/pcre2-exception.LICENSE new file mode 100644 index 00000000000..1d924d527fa --- /dev/null +++ b/src/licensedcode/data/licenses/pcre2-exception.LICENSE @@ -0,0 +1,21 @@ +--- +key: pcre2-exception +short_name: PCRE2 exception +name: PCRE2 exception +owner: University of Cambridge +category: Unstated License +is_exception: yes +spdx_license_key: PCRE2-exception +other_urls: + - https://www.pcre.org/licence.txt +notes: Added in SPDX license list 3.24 +--- + +EXEMPTION FOR BINARY LIBRARY-LIKE PACKAGES +------------------------------------------ + +The second condition in the BSD licence (covering binary redistributions) does +not apply all the way down a chain of software. If binary package A includes +PCRE2, it must respect the condition, but if package B is software that +includes package A, the condition is not imposed on package B unless it uses +PCRE2 independently. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/ppl.LICENSE b/src/licensedcode/data/licenses/ppl.LICENSE new file mode 100644 index 00000000000..014e8fa1c26 --- /dev/null +++ b/src/licensedcode/data/licenses/ppl.LICENSE @@ -0,0 +1,112 @@ +--- +key: ppl +short_name: Peer Production License +name: Peer Production License +category: Copyleft +owner: p2pfoundation.net +spdx_license_key: PPL +other_urls: + - https://wiki.p2pfoundation.net/Peer_Production_License + - http://www.networkcultures.org/_uploads/%233notebook_telekommunist.pdf +ignorable_authors: + - John Magyar, B.A., J.D. and Dmytri Kleiner +ignorable_urls: + - http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode +--- + +Peer Production License + +Created by John Magyar, B.A., J.D. and Dmytri Kleiner, the following Peer Production License, a model for a Copyfarleft license, has been derived from the Creative Commons ‘Attribution-NonCommercial-ShareAlike' license available at http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode. + +LICENSE + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS COPYFARLEFT PUBLIC LICENSE ("LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND ALL OTHER APPLICABLE LAWS. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED IN THIS LICENSE, YOU AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN AS CONSIDERATION FOR ACCEPTING THE TERMS AND CONDITIONS OF THIS LICENSE AND FOR AGREEING TO BE BOUND BY THE TERMS AND CONDITIONS OF THIS LICENSE. + +1. DEFINITIONS + + a. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. + + b. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. + + c. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale, gift or any other transfer of possession or ownership. + + d. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. + + e. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. + + f. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. + + g. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. + + h. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. + + i. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. + +2. FAIR DEALING RIGHTS +Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. LICENSE GRANT +Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + + a. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; + + b. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; + + c. to Distribute and Publicly Perform the Work including as incorporated in Collections; and, + + d. to Distribute and Publicly Perform Adaptations. The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(f). + +4. RESTRICTIONS +The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + + a. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(d), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(d), as requested. + + b. Subject to the exception in Section 4(c), you may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. + + c. You may exercise the rights granted in Section 3 for commercial purposes only if: + + i. You are a worker-owned business or worker-owned collective; and + + ii. all financial gain, surplus, profits and benefits produced by the business or collective are distributed among the worker-owners + + d. Any use by a business that is privately owned and managed, and that seeks to generate profit from the labor of employees paid by salary or other wages, is not permitted under this license. + + e. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and, (iv) consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(d) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. + + f. For the avoidance of doubt: + + i. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; + + ii. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, + + iii.Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). + + g. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. + +5. REPRESENTATIONS, WARRANTIES AND DISCLAIMER + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR 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, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. LIMITATION ON LIABILITY + +EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. TERMINATION + + a. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. + + b. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. + +8. MISCELLANEOUS + + a. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. + + b. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. + + c. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + + d. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. + + e. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. + + f. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. \ No newline at end of file diff --git a/src/licensedcode/data/licenses/rrdtool-floss-exception-2.0.LICENSE b/src/licensedcode/data/licenses/rrdtool-floss-exception-2.0.LICENSE index d36fc8b0613..3022eac1c7c 100644 --- a/src/licensedcode/data/licenses/rrdtool-floss-exception-2.0.LICENSE +++ b/src/licensedcode/data/licenses/rrdtool-floss-exception-2.0.LICENSE @@ -6,16 +6,20 @@ category: Copyleft Limited owner: RRDtool Project homepage_url: https://raw.github.com/oetiker/rrdtool-1.x/master/COPYRIGHT is_exception: yes -spdx_license_key: LicenseRef-scancode-rrdtool-floss-exception-2.0 +spdx_license_key: RRDtool-FLOSS-exception-2.0 +other_spdx_license_keys: + - LicenseRef-scancode-rrdtool-floss-exception-2.0 other_urls: - http://www.gnu.org/licenses/gpl-2.0.txt + - https://github.com/oetiker/rrdtool-1.x/blob/master/COPYRIGHT#L25-L90 + - https://oss.oetiker.ch/rrdtool/license.en.html ignorable_urls: - http://www.mysql.com/company/legal/licensing/foss-exception.html --- FLOSS License Exception ======================= -(Adapted from http://www.mysql.com/company/legal/licensing/foss-exception.html ) +(Adapted from http://www.mysql.com/company/legal/licensing/foss-exception.html) I want specified Free/Libre and Open Source Software ("FLOSS") applications to be able to use specified GPL-licensed RRDtool diff --git a/src/licensedcode/data/licenses/sun-ppp-2000.LICENSE b/src/licensedcode/data/licenses/sun-ppp-2000.LICENSE new file mode 100644 index 00000000000..5ee7c593c54 --- /dev/null +++ b/src/licensedcode/data/licenses/sun-ppp-2000.LICENSE @@ -0,0 +1,25 @@ +--- +key: sun-ppp-2000 +short_name: Sun PPP License (2000) +name: Sun PPP License (2000) +owner: Oracle (Sun) +category: Permissive +spdx_license_key: Sun-PPP-2000 +notes: | + Added in SPDX license list 3.24 + This is different from sun-prop-non-commercial as + the `NON-COMMERCIAL` part is missing. +other_urls: + - https://github.com/ppp-project/ppp/blob/master/modules/ppp_ahdlc.c#L7-L19 +--- + +Permission to use, copy, modify, and distribute this software and its +documentation is hereby granted, provided that the above copyright +notice appears in all copies. + +SUN MAKES NO REPRESENTATION OR WARRANTIES ABOUT THE SUITABILITY OF +THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR +ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR +DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES \ No newline at end of file diff --git a/src/licensedcode/data/licenses/threeparttable.LICENSE b/src/licensedcode/data/licenses/threeparttable.LICENSE new file mode 100644 index 00000000000..e0539d1dd7f --- /dev/null +++ b/src/licensedcode/data/licenses/threeparttable.LICENSE @@ -0,0 +1,17 @@ +--- +key: threeparttable +short_name: threeparttable License +name: threeparttable License +owner: Fedora +category: Permissive +notes: | + Added in SPDX license list 3.24 + This was previously the license rule: other-permissive_322.RULE +spdx_license_key: threeparttable +other_urls: + - https://fedoraproject.org/wiki/Licensing/Threeparttable +--- + +This file may be distributed, modified, and used in other works with just +one restriction: modified versions must clearly indicate the modification +(a name change, or a displayed message, or ?). \ No newline at end of file diff --git a/src/licensedcode/data/licenses/x11-oar.LICENSE b/src/licensedcode/data/licenses/x11-oar.LICENSE index 671c4eae242..8b0944571a9 100644 --- a/src/licensedcode/data/licenses/x11-oar.LICENSE +++ b/src/licensedcode/data/licenses/x11-oar.LICENSE @@ -4,9 +4,12 @@ short_name: X11-Style (OAR) name: X11-Style (OAR) category: Permissive owner: OAR - On-Line Applications Research Corporation -spdx_license_key: LicenseRef-scancode-x11-oar +spdx_license_key: OAR +other_spdx_license_keys: + - LicenseRef-scancode-x11-oar other_urls: - http://www.oarcorp.com/index.htm + - https://sourceware.org/git/?p=newlib-cygwin.git;a=blob;f=newlib/libc/string/strsignal.c;hb=HEAD#l35 minimum_coverage: 80 --- diff --git a/src/licensedcode/data/licenses/xzoom.LICENSE b/src/licensedcode/data/licenses/xzoom.LICENSE new file mode 100644 index 00000000000..8fb3c7c2446 --- /dev/null +++ b/src/licensedcode/data/licenses/xzoom.LICENSE @@ -0,0 +1,25 @@ +--- +key: xzoom +short_name: xzoom License +name: xzoom License +owner: Itai Nahshon +category: Permissive +notes: | + Added in SPDX license list 3.24 + This was previously the license rule: other-copyleft_34.RULE +spdx_license_key: xzoom +other_urls: + - https://metadata.ftp-master.debian.org/changelogs//main/x/xzoom/xzoom_0.3-27_copyright +--- + +This program is distributed with no warranty. + +Source files for this program may be distributed freely. +Modifications to this file are okay as long as: + a. This copyright notice and comment are preserved and + left at the top of the file. + b. The man page is fixed to reflect the change. + c. The author of this change adds his name and change + description to the list of changes below. +Executable files may be distributed with sources, or with +exact location where the source code can be obtained. \ No newline at end of file diff --git a/src/licensedcode/data/rules/3dslicer-1.0_2.RULE b/src/licensedcode/data/rules/3dslicer-1.0_2.RULE new file mode 100644 index 00000000000..bd07339b2eb --- /dev/null +++ b/src/licensedcode/data/rules/3dslicer-1.0_2.RULE @@ -0,0 +1,208 @@ +--- +license_expression: 3dslicer-1.0 +is_license_text: yes +notes: This is from https://www.slicer.org/LICENSE +ignorable_authors: + - The Brigham and Women's Hospital, Inc. +ignorable_urls: + - http://www.slicer.org/ +--- + +For more information, please see: + + http://www.slicer.org + +The {{3D Slicer license}} below is a BSD style license, with extensions +to cover contributions and other issues specific to 3D Slicer. + + +{{3D Slicer Contribution and Software License Agreement}} ("Agreement") +Version 1.0 (December 20, 2005) + +This Agreement covers contributions to and downloads from the 3D +Slicer project ("Slicer") maintained by The Brigham and Women's +Hospital, Inc. ("Brigham"). Part A of this Agreement applies to +contributions of software and/or data to Slicer (including making +revisions of or additions to code and/or data already in Slicer). Part +B of this Agreement applies to downloads of software and/or data from +Slicer. Part C of this Agreement applies to all transactions with +Slicer. If you distribute Software (as defined below) downloaded from +Slicer, all of the paragraphs of Part B of this Agreement must be +included with and apply to such Software. + +Your contribution of software and/or data to Slicer (including prior +to the date of the first publication of this Agreement, each a +"Contribution") and/or downloading, copying, modifying, displaying, +distributing or use of any software and/or data from Slicer +(collectively, the "Software") constitutes acceptance of all of the +terms and conditions of this Agreement. If you do not agree to such +terms and conditions, you have no right to contribute your +Contribution, or to download, copy, modify, display, distribute or use +the Software. + +PART A. CONTRIBUTION AGREEMENT - License to Brigham with Right to +Sublicense ("Contribution Agreement"). + +1. As used in this Contribution Agreement, "you" means the individual + contributing the Contribution to Slicer and the institution or + entity which employs or is otherwise affiliated with such + individual in connection with such Contribution. + +2. This Contribution Agreement applies to all Contributions made to + Slicer, including without limitation Contributions made prior to + the date of first publication of this Agreement. If at any time you + make a Contribution to Slicer, you represent that (i) you are + legally authorized and entitled to make such Contribution and to + grant all licenses granted in this Contribution Agreement with + respect to such Contribution; (ii) if your Contribution includes + any patient data, all such data is de-identified in accordance with + U.S. confidentiality and security laws and requirements, including + but not limited to the Health Insurance Portability and + Accountability Act (HIPAA) and its regulations, and your disclosure + of such data for the purposes contemplated by this Agreement is + properly authorized and in compliance with all applicable laws and + regulations; and (iii) you have preserved in the Contribution all + applicable attributions, copyright notices and licenses for any + third party software or data included in the Contribution. + +3. Except for the licenses granted in this Agreement, you reserve all + right, title and interest in your Contribution. + +4. You hereby grant to Brigham, with the right to sublicense, a + perpetual, worldwide, non-exclusive, no charge, royalty-free, + irrevocable license to use, reproduce, make derivative works of, + display and distribute the Contribution. If your Contribution is + protected by patent, you hereby grant to Brigham, with the right to + sublicense, a perpetual, worldwide, non-exclusive, no-charge, + royalty-free, irrevocable license under your interest in patent + rights covering the Contribution, to make, have made, use, sell and + otherwise transfer your Contribution, alone or in combination with + any other code. + +5. You acknowledge and agree that Brigham may incorporate your + Contribution into Slicer and may make Slicer available to members + of the public on an open source basis under terms substantially in + accordance with the Software License set forth in Part B of this + Agreement. You further acknowledge and agree that Brigham shall + have no liability arising in connection with claims resulting from + your breach of any of the terms of this Agreement. + +6. YOU WARRANT THAT TO THE BEST OF YOUR KNOWLEDGE YOUR CONTRIBUTION + DOES NOT CONTAIN ANY CODE THAT REQURES OR PRESCRIBES AN "OPEN + SOURCE LICENSE" FOR DERIVATIVE WORKS (by way of non-limiting + example, the GNU General Public License or other so-called + "reciprocal" license that requires any derived work to be licensed + under the GNU General Public License or other "open source + license"). + +PART B. DOWNLOADING AGREEMENT - License from Brigham with Right to +Sublicense ("Software License"). + +1. As used in this Software License, "you" means the individual + downloading and/or using, reproducing, modifying, displaying and/or + distributing the Software and the institution or entity which + employs or is otherwise affiliated with such individual in + connection therewith. The Brigham and Women?s Hospital, + Inc. ("Brigham") hereby grants you, with right to sublicense, with + respect to Brigham's rights in the software, and data, if any, + which is the subject of this Software License (collectively, the + "Software"), a royalty-free, non-exclusive license to use, + reproduce, make derivative works of, display and distribute the + Software, provided that: + +(a) you accept and adhere to all of the terms and conditions of this +Software License; + +(b) in connection with any copy of or sublicense of all or any portion +of the Software, all of the terms and conditions in this Software +License shall appear in and shall apply to such copy and such +sublicense, including without limitation all source and executable +forms and on any user documentation, prefaced with the following +words: "All or portions of this licensed product (such portions are +the "Software") have been obtained under license from The Brigham and +Women's Hospital, Inc. and are subject to the following terms and +conditions:" + +(c) you preserve and maintain all applicable attributions, copyright +notices and licenses included in or applicable to the Software; + +(d) modified versions of the Software must be clearly identified and +marked as such, and must not be misrepresented as being the original +Software; and + +(e) you consider making, but are under no obligation to make, the +source code of any of your modifications to the Software freely +available to others on an open source basis. + +2. The license granted in this Software License includes without + limitation the right to (i) incorporate the Software into + proprietary programs (subject to any restrictions applicable to + such programs), (ii) add your own copyright statement to your + modifications of the Software, and (iii) provide additional or + different license terms and conditions in your sublicenses of + modifications of the Software; provided that in each case your use, + reproduction or distribution of such modifications otherwise + complies with the conditions stated in this Software License. + +3. This Software License does not grant any rights with respect to + third party software, except those rights that Brigham has been + authorized by a third party to grant to you, and accordingly you + are solely responsible for (i) obtaining any permissions from third + parties that you need to use, reproduce, make derivative works of, + display and distribute the Software, and (ii) informing your + sublicensees, including without limitation your end-users, of their + obligations to secure any such required permissions. + +4. The Software has been designed for research purposes only and has + not been reviewed or approved by the Food and Drug Administration + or by any other agency. YOU ACKNOWLEDGE AND AGREE THAT CLINICAL + APPLICATIONS ARE NEITHER RECOMMENDED NOR ADVISED. Any + commercialization of the Software is at the sole risk of the party + or parties engaged in such commercialization. You further agree to + use, reproduce, make derivative works of, display and distribute + the Software in compliance with all applicable governmental laws, + regulations and orders, including without limitation those relating + to export and import control. + +5. The Software is provided "AS IS" and neither Brigham nor any + contributor to the software (each a "Contributor") shall have any + obligation to provide maintenance, support, updates, enhancements + or modifications thereto. BRIGHAM AND ALL CONTRIBUTORS SPECIFICALLY + DISCLAIM ALL EXPRESS AND IMPLIED WARRANTIES OF ANY KIND INCLUDING, + BUT NOT LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR + A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + BRIGHAM OR ANY CONTRIBUTOR BE LIABLE TO ANY PARTY FOR DIRECT, + INDIRECT, SPECIAL, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY ARISING IN ANY WAY + RELATED TO THE SOFTWARE, EVEN IF BRIGHAM OR ANY CONTRIBUTOR HAS + BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. TO THE MAXIMUM + EXTENT NOT PROHIBITED BY LAW OR REGULATION, YOU FURTHER ASSUME ALL + LIABILITY FOR YOUR USE, REPRODUCTION, MAKING OF DERIVATIVE WORKS, + DISPLAY, LICENSE OR DISTRIBUTION OF THE SOFTWARE AND AGREE TO + INDEMNIFY AND HOLD HARMLESS BRIGHAM AND ALL CONTRIBUTORS FROM AND + AGAINST ANY AND ALL CLAIMS, SUITS, ACTIONS, DEMANDS AND JUDGMENTS + ARISING THEREFROM. + +6. None of the names, logos or trademarks of Brigham or any of + Brigham's affiliates or any of the Contributors, or any funding + agency, may be used to endorse or promote products produced in + whole or in part by operation of the Software or derived from or + based on the Software without specific prior written permission + from the applicable party. + +7. Any use, reproduction or distribution of the Software which is not + in accordance with this Software License shall automatically revoke + all rights granted to you under this Software License and render + Paragraphs 1 and 2 of this Software License null and void. + +8. This Software License does not grant any rights in or to any + intellectual property owned by Brigham or any Contributor except + those rights expressly granted hereunder. + +PART C. MISCELLANEOUS + +This Agreement shall be governed by and construed in accordance with +the laws of The Commonwealth of Massachusetts without regard to +principles of conflicts of law. This Agreement shall supercede and +replace any license terms that you may have agreed to previously with +respect to Slicer. \ No newline at end of file diff --git a/src/licensedcode/data/rules/3dslicer-1.0_3.RULE b/src/licensedcode/data/rules/3dslicer-1.0_3.RULE new file mode 100644 index 00000000000..71ebde2a593 --- /dev/null +++ b/src/licensedcode/data/rules/3dslicer-1.0_3.RULE @@ -0,0 +1,11 @@ +--- +license_expression: 3dslicer-1.0 +is_license_notice: yes +ignorable_urls: + - http://www.slicer.org/ +--- + +For more information, please see: +http://www.slicer.org +The {{3D Slicer license}} below is a BSD style license, with extensions +to cover contributions and other issues specific to 3D Slicer. \ No newline at end of file diff --git a/src/licensedcode/data/rules/3dslicer-1.0_4.RULE b/src/licensedcode/data/rules/3dslicer-1.0_4.RULE new file mode 100644 index 00000000000..a0e36083210 --- /dev/null +++ b/src/licensedcode/data/rules/3dslicer-1.0_4.RULE @@ -0,0 +1,9 @@ +--- +license_expression: 3dslicer-1.0 +is_license_reference: yes +is_continuous: yes +ignorable_urls: + - https://www.slicer.org/LICENSE +--- + +{{https://www.slicer.org/LICENSE}} \ No newline at end of file diff --git a/src/licensedcode/data/rules/any-osi_1.RULE b/src/licensedcode/data/rules/any-osi_1.RULE new file mode 100644 index 00000000000..412b3af8f8a --- /dev/null +++ b/src/licensedcode/data/rules/any-osi_1.RULE @@ -0,0 +1,11 @@ +--- +license_expression: any-osi +is_license_text: yes +minimum_coverage: 100 +ignorable_urls: + - http://www.opensource.org/licenses/ +--- + +Pick your favourite OSI approved license :) + +http://www.opensource.org/licenses/ \ No newline at end of file diff --git a/src/licensedcode/data/rules/any-osi_2.RULE b/src/licensedcode/data/rules/any-osi_2.RULE new file mode 100644 index 00000000000..9401d3639a4 --- /dev/null +++ b/src/licensedcode/data/rules/any-osi_2.RULE @@ -0,0 +1,7 @@ +--- +license_expression: any-osi +is_license_text: yes +minimum_coverage: 100 +--- + +Pick your favourite OSI approved license \ No newline at end of file diff --git a/src/licensedcode/data/rules/fftpack-2004_2.RULE b/src/licensedcode/data/rules/fftpack-2004_2.RULE new file mode 100644 index 00000000000..50cc793c59e --- /dev/null +++ b/src/licensedcode/data/rules/fftpack-2004_2.RULE @@ -0,0 +1,45 @@ +--- +license_expression: fftpack-2004 +is_license_text: yes +ignorable_copyrights: + - Copyright (c) 2004 the University Corporation for Atmospheric Research 'UCAR +ignorable_holders: + - the University Corporation for Atmospheric Research 'UCAR +ignorable_authors: + - NCAR's Computational and Information Systems Laboratory, UCAR, www.cisl.ucar.edu +ignorable_urls: + - http://www.cisl.ucar.edu/ +--- + +Copyright (c) 2004 the University Corporation for Atmospheric +Research ("UCAR"). All rights reserved. Developed by NCAR's +Computational and Information Systems Laboratory, UCAR, +www.cisl.ucar.edu. + +Redistribution and use of the Software in source and binary forms, +with or without modification, is permitted provided that the +following conditions are met: + +- Neither the names of NCAR's Computational and Information Systems +Laboratory, the University Corporation for Atmospheric Research, +nor the names of its sponsors or contributors may be used to +endorse or promote products derived from this Software without +specific prior written permission. + +- Redistributions of source code must retain the above copyright +notices, this list of conditions, and the disclaimer below. + +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions, and the disclaimer below in the +documentation and/or other materials provided with the +distribution. + +THIS 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 CONTRIBUTORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL 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 WITH THE +SOFTWARE. \ No newline at end of file diff --git a/src/licensedcode/data/rules/free-unknown_94.RULE b/src/licensedcode/data/rules/free-unknown_94.RULE index 691ab6aa615..2784cdd8104 100644 --- a/src/licensedcode/data/rules/free-unknown_94.RULE +++ b/src/licensedcode/data/rules/free-unknown_94.RULE @@ -2,6 +2,7 @@ license_expression: free-unknown is_license_reference: yes relevance: 100 +is_deprecated: yes ignorable_urls: - http://www.opensource.org/licenses/ --- diff --git a/src/licensedcode/data/rules/freebsd-doc_5.RULE b/src/licensedcode/data/rules/freebsd-doc_5.RULE index e7e2fe48d57..ded03bf49da 100644 --- a/src/licensedcode/data/rules/freebsd-doc_5.RULE +++ b/src/licensedcode/data/rules/freebsd-doc_5.RULE @@ -1,7 +1,10 @@ --- license_expression: freebsd-doc is_license_text: yes -relevance: 100 +is_deprecated: yes +notes: | + Added in SPDX license list 3.24 + Replaced by license: bsd-2-clause-first-lines --- Redistribution and use in source and binary forms, with or without diff --git a/src/licensedcode/data/rules/mit-no-advert-export-control_and_proprietary-license_1.RULE b/src/licensedcode/data/rules/mit-no-advert-export-control_and_proprietary-license_1.RULE index 9a67189a654..60c7b512dc7 100644 --- a/src/licensedcode/data/rules/mit-no-advert-export-control_and_proprietary-license_1.RULE +++ b/src/licensedcode/data/rules/mit-no-advert-export-control_and_proprietary-license_1.RULE @@ -2,7 +2,10 @@ license_expression: mit-no-advert-export-control AND proprietary-license is_license_text: yes relevance: 100 -notes: this is a modified mit-no-advert-export-control with extra extensive notification requirements +is_deprecated: yes +notes: | + This is now the hpnd-export-us-acknowledgement LICENSE + this is a modified mit-no-advert-export-control with extra extensive notification requirements reported as proprietary-license. It is found in kerberos for a section related to "Portions of the implementation of the Fortuna-like PRNG are subject to the following notice" and with "Copyright (C) 1994 by the University of Southern California" diff --git a/src/licensedcode/data/rules/other-copyleft_34.RULE b/src/licensedcode/data/rules/other-copyleft_34.RULE index cc406ea35c3..7599fbf4d16 100644 --- a/src/licensedcode/data/rules/other-copyleft_34.RULE +++ b/src/licensedcode/data/rules/other-copyleft_34.RULE @@ -1,7 +1,11 @@ --- license_expression: other-copyleft is_license_text: yes -notes: seen in https://metadata.ftp-master.debian.org/changelogs//main/x/xzoom/xzoom_0.3-27_copyright +is_deprecated: yes +notes: | + seen in https://metadata.ftp-master.debian.org/changelogs//main/x/xzoom/xzoom_0.3-27_copyright + Added in SPDX license list 3.24 + Replaced by license: xzoom.LICENSE --- This program is distributed with no warranty. diff --git a/src/licensedcode/data/rules/other-permissive_322.RULE b/src/licensedcode/data/rules/other-permissive_322.RULE index 720105c99bc..9258e78b902 100644 --- a/src/licensedcode/data/rules/other-permissive_322.RULE +++ b/src/licensedcode/data/rules/other-permissive_322.RULE @@ -1,7 +1,11 @@ --- license_expression: other-permissive is_license_text: yes -notes: https://fedoraproject.org/wiki/Licensing/Threeparttable +is_deprecated: yes +notes: | + https://fedoraproject.org/wiki/Licensing/Threeparttable + Added in SPDX license list 3.24 + Replaced by license: threeparttable.LICENSE --- This file may be distributed, modified, and used in other works with just diff --git a/src/licensedcode/data/rules/other-permissive_bsdish_1.RULE b/src/licensedcode/data/rules/other-permissive_bsdish_1.RULE index b0cfbb63b85..bcee0688f4b 100644 --- a/src/licensedcode/data/rules/other-permissive_bsdish_1.RULE +++ b/src/licensedcode/data/rules/other-permissive_bsdish_1.RULE @@ -1,6 +1,10 @@ --- license_expression: other-permissive is_license_reference: yes +is_deprecated: yes +notes: | + Added in SPDX license list 3.24 + Replaced by license: gutmann.LICENSE --- You can use this code in whatever way you want, as long as you don't try diff --git a/src/licensedcode/data/rules/proprietary-license_928.RULE b/src/licensedcode/data/rules/proprietary-license_928.RULE index 1535a457ae6..5795a86c7d7 100644 --- a/src/licensedcode/data/rules/proprietary-license_928.RULE +++ b/src/licensedcode/data/rules/proprietary-license_928.RULE @@ -1,6 +1,10 @@ --- license_expression: proprietary-license is_license_text: yes +is_deprecated: yes +notes: | + Added in SPDX license list 3.24 + This is now ppl.LICENSE --- LICENSE diff --git a/src/licensedcode/data/rules/us-govt-public-domain_25.RULE b/src/licensedcode/data/rules/us-govt-public-domain_25.RULE index f34ecf9d801..a77416f58e9 100644 --- a/src/licensedcode/data/rules/us-govt-public-domain_25.RULE +++ b/src/licensedcode/data/rules/us-govt-public-domain_25.RULE @@ -2,7 +2,11 @@ license_expression: us-govt-public-domain is_license_text: yes relevance: 100 -notes: Seen in BLAST +is_deprecated: yes +notes: | + Added in SPDX license list 3.24 + This is now ncbi-pd.LICENSE + Seen in BLAST --- This software/database is a "United States Government Work" under the diff --git a/tests/licensedcode/data/datadriven/lic1/camellia_bsd.c.yml b/tests/licensedcode/data/datadriven/lic1/camellia_bsd.c.yml index 9ee5d35f413..fc489fa43d7 100644 --- a/tests/licensedcode/data/datadriven/lic1/camellia_bsd.c.yml +++ b/tests/licensedcode/data/datadriven/lic1/camellia_bsd.c.yml @@ -1,2 +1,2 @@ license_expressions: - - freebsd-doc + - bsd-2-clause-first-lines diff --git a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-intel-sound.copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-intel-sound.copyright-detailed.expected.yml index 3a3f82863b2..4ad8de09a1a 100644 --- a/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-intel-sound.copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-2019-11-15/non-free/f/firmware-nonfree/stable_firmware-intel-sound.copyright-detailed.expected.yml @@ -8,10 +8,10 @@ declared_license_expression: intel AND intel AND (intel AND (bsd-new AND other-p AND delorie-historical AND intel-osl-1993) declared_license_expression_spdx: LicenseRef-scancode-intel AND LicenseRef-scancode-intel AND (LicenseRef-scancode-intel AND (BSD-3-Clause AND LicenseRef-scancode-other-permissive AND - LicenseRef-scancode-other-copyleft) AND BSD-3-Clause AND dtoa AND SMLNJ AND LicenseRef-scancode-amd-historical - AND SunPro AND HP-1986 AND LicenseRef-scancode-nilsson-historical AND LicenseRef-scancode-newlib-historical + LicenseRef-scancode-other-copyleft) AND BSD-3-Clause AND dtoa AND SMLNJ AND AMD-newlib AND + SunPro AND HP-1986 AND LicenseRef-scancode-nilsson-historical AND LicenseRef-scancode-newlib-historical AND BSD-2-Clause AND LicenseRef-scancode-x11-hanson AND LicenseRef-scancode-delorie-historical - AND LicenseRef-scancode-intel-osl-1993) + AND HPND-Intel) other_license_expression: other_license_expression_spdx: license_detections: @@ -124,10 +124,10 @@ license_detections: AND x11-lucent AND standard-ml-nj AND amd-historical AND sunpro AND hp-1986 AND nilsson-historical AND newlib-historical AND bsd-simplified AND x11-hanson AND delorie-historical AND intel-osl-1993 license_expression_spdx: LicenseRef-scancode-intel AND (BSD-3-Clause AND LicenseRef-scancode-other-permissive - AND LicenseRef-scancode-other-copyleft) AND BSD-3-Clause AND dtoa AND SMLNJ AND LicenseRef-scancode-amd-historical + AND LicenseRef-scancode-other-copyleft) AND BSD-3-Clause AND dtoa AND SMLNJ AND AMD-newlib AND SunPro AND HP-1986 AND LicenseRef-scancode-nilsson-historical AND LicenseRef-scancode-newlib-historical AND BSD-2-Clause AND LicenseRef-scancode-x11-hanson AND LicenseRef-scancode-delorie-historical - AND LicenseRef-scancode-intel-osl-1993 + AND HPND-Intel matches: - license_expression: intel spdx_license_expression: LicenseRef-scancode-intel @@ -308,7 +308,7 @@ license_detections: ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - license_expression: amd-historical - spdx_license_expression: LicenseRef-scancode-amd-historical + spdx_license_expression: AMD-newlib from_file: start_line: 236 end_line: 247 @@ -449,7 +449,7 @@ license_detections: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - license_expression: amd-historical - spdx_license_expression: LicenseRef-scancode-amd-historical + spdx_license_expression: AMD-newlib from_file: start_line: 343 end_line: 354 @@ -721,7 +721,7 @@ license_detections: This file is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - license_expression: intel-osl-1993 - spdx_license_expression: LicenseRef-scancode-intel-osl-1993 + spdx_license_expression: HPND-Intel from_file: start_line: 563 end_line: 585 diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright-detailed.expected.yml index 879187c57b3..d33a47e2c3a 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-10-base/copyright-detailed.expected.yml @@ -29,12 +29,11 @@ declared_license_expression_spdx: GPL-3.0-or-later WITH GCC-exception-3.1 AND GP AND BSD-4.3TAHOE AND BSD-4-Clause-UC AND BSD-3-Clause AND BSD-4-Clause-UC AND BSD-3-Clause-flex AND BSD-4-Clause-UC AND (GPL-3.0-only AND GPL-2.0-only AND LGPL-3.0-or-later WITH LicenseRef-scancode-cygwin-exception-lgpl-3.0-plus AND LicenseRef-scancode-other-copyleft AND LicenseRef-scancode-other-permissive) AND dtoa - AND LicenseRef-scancode-amd-historical AND SunPro AND HP-1986 AND LicenseRef-scancode-nilsson-historical - AND LicenseRef-scancode-newlib-historical AND BSD-3-Clause AND LicenseRef-scancode-amd-historical - AND BSD-3-Clause AND BSD-2-Clause AND BSD-2-Clause AND BSD-2-Clause AND LicenseRef-scancode-x11-hanson - AND BSD-2-Clause AND BSD-3-Clause AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND LGPL-2.0-or-later - AND LGPL-2.0-or-later AND LicenseRef-scancode-intel-osl-1993 AND HP-1986 AND Spencer-94 AND - BSD-2-Clause AND BSD-2-Clause AND BSD-2-Clause AND BSD-3-Clause AND LicenseRef-scancode-unicode + AND AMD-newlib AND SunPro AND HP-1986 AND LicenseRef-scancode-nilsson-historical AND LicenseRef-scancode-newlib-historical + AND BSD-3-Clause AND AMD-newlib AND BSD-3-Clause AND BSD-2-Clause AND BSD-2-Clause AND BSD-2-Clause + AND LicenseRef-scancode-x11-hanson AND BSD-2-Clause AND BSD-3-Clause AND LGPL-2.0-or-later + AND LGPL-2.1-or-later AND LGPL-2.0-or-later AND LGPL-2.0-or-later AND HPND-Intel AND HP-1986 + AND Spencer-94 AND BSD-2-Clause AND BSD-2-Clause AND BSD-2-Clause AND BSD-3-Clause AND LicenseRef-scancode-unicode AND LicenseRef-scancode-unicode AND LGPL-2.1-or-later other_license_expression: other_license_expression_spdx: @@ -1284,10 +1283,10 @@ license_detections: OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. identifier: x11_lucent-0e33f797-24ab-9665-2d4b-10a0ff4d546d - license_expression: amd-historical - license_expression_spdx: LicenseRef-scancode-amd-historical + license_expression_spdx: AMD-newlib matches: - license_expression: amd-historical - spdx_license_expression: LicenseRef-scancode-amd-historical + spdx_license_expression: AMD-newlib from_file: start_line: 944 end_line: 955 @@ -1448,10 +1447,10 @@ license_detections: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. identifier: bsd_new-ddbdf2af-d93f-9912-6c83-1167bb9d3f80 - license_expression: amd-historical - license_expression_spdx: LicenseRef-scancode-amd-historical + license_expression_spdx: AMD-newlib matches: - license_expression: amd-historical - spdx_license_expression: LicenseRef-scancode-amd-historical + spdx_license_expression: AMD-newlib from_file: start_line: 1061 end_line: 1072 @@ -1808,10 +1807,10 @@ license_detections: \ PURPOSE. See the\nGNU Library General Public License for more details." identifier: lgpl_2_1_plus_and_lgpl_2_0_plus-ce146db9-f01c-90ae-37cc-692163db9888 - license_expression: intel-osl-1993 - license_expression_spdx: LicenseRef-scancode-intel-osl-1993 + license_expression_spdx: HPND-Intel matches: - license_expression: intel-osl-1993 - spdx_license_expression: LicenseRef-scancode-intel-osl-1993 + spdx_license_expression: HPND-Intel from_file: start_line: 1314 end_line: 1336 diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright-detailed.expected.yml index b20efc4be46..10e1b315090 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/gcc-9-base/copyright-detailed.expected.yml @@ -36,12 +36,11 @@ declared_license_expression_spdx: GPL-3.0-or-later WITH GCC-exception-3.1 AND GP AND BSD-4-Clause-UC AND BSD-3-Clause AND BSD-4-Clause-UC AND BSD-3-Clause-flex AND BSD-4-Clause-UC AND (GPL-3.0-only AND GPL-2.0-only AND LGPL-3.0-or-later WITH LicenseRef-scancode-cygwin-exception-lgpl-3.0-plus AND LicenseRef-scancode-other-copyleft AND LicenseRef-scancode-other-permissive) AND dtoa - AND LicenseRef-scancode-amd-historical AND SunPro AND HP-1986 AND LicenseRef-scancode-nilsson-historical - AND LicenseRef-scancode-newlib-historical AND BSD-3-Clause AND LicenseRef-scancode-amd-historical - AND BSD-3-Clause AND BSD-2-Clause AND BSD-2-Clause AND BSD-2-Clause AND LicenseRef-scancode-x11-hanson - AND BSD-2-Clause AND BSD-3-Clause AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND LGPL-2.0-or-later - AND LGPL-2.0-or-later AND LicenseRef-scancode-intel-osl-1993 AND HP-1986 AND Spencer-94 AND - BSD-2-Clause AND BSD-2-Clause AND BSD-2-Clause AND BSD-3-Clause + AND AMD-newlib AND SunPro AND HP-1986 AND LicenseRef-scancode-nilsson-historical AND LicenseRef-scancode-newlib-historical + AND BSD-3-Clause AND AMD-newlib AND BSD-3-Clause AND BSD-2-Clause AND BSD-2-Clause AND BSD-2-Clause + AND LicenseRef-scancode-x11-hanson AND BSD-2-Clause AND BSD-3-Clause AND LGPL-2.0-or-later + AND LGPL-2.1-or-later AND LGPL-2.0-or-later AND LGPL-2.0-or-later AND HPND-Intel AND HP-1986 + AND Spencer-94 AND BSD-2-Clause AND BSD-2-Clause AND BSD-2-Clause AND BSD-3-Clause other_license_expression: other_license_expression_spdx: license_detections: @@ -1650,10 +1649,10 @@ license_detections: OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. identifier: x11_lucent-0e33f797-24ab-9665-2d4b-10a0ff4d546d - license_expression: amd-historical - license_expression_spdx: LicenseRef-scancode-amd-historical + license_expression_spdx: AMD-newlib matches: - license_expression: amd-historical - spdx_license_expression: LicenseRef-scancode-amd-historical + spdx_license_expression: AMD-newlib from_file: start_line: 1152 end_line: 1163 @@ -1814,10 +1813,10 @@ license_detections: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. identifier: bsd_new-ddbdf2af-d93f-9912-6c83-1167bb9d3f80 - license_expression: amd-historical - license_expression_spdx: LicenseRef-scancode-amd-historical + license_expression_spdx: AMD-newlib matches: - license_expression: amd-historical - spdx_license_expression: LicenseRef-scancode-amd-historical + spdx_license_expression: AMD-newlib from_file: start_line: 1269 end_line: 1280 @@ -2174,10 +2173,10 @@ license_detections: \ PURPOSE. See the\nGNU Library General Public License for more details." identifier: lgpl_2_1_plus_and_lgpl_2_0_plus-ce146db9-f01c-90ae-37cc-692163db9888 - license_expression: intel-osl-1993 - license_expression_spdx: LicenseRef-scancode-intel-osl-1993 + license_expression_spdx: HPND-Intel matches: - license_expression: intel-osl-1993 - spdx_license_expression: LicenseRef-scancode-intel-osl-1993 + spdx_license_expression: HPND-Intel from_file: start_line: 1522 end_line: 1544 diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright-detailed.expected.yml index 9cbbf38d92a..dd14f5bd9ab 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libgssapi-krb5-2/copyright-detailed.expected.yml @@ -3,19 +3,18 @@ declared_license_expression: bsd-simplified AND generic-export-compliance AND cc proprietary-license AND openvision AND mit-no-advert-export-control AND brian-gladman-3-clause AND bsd-new AND mit AND bsd-simplified AND mit AND bsd-new AND bsd-new AND michigan-disclaimer AND fsf-unlimited-no-warranty AND mit-no-advert-export-control AND openldap-2.8 AND bsd-new - AND bsd-new AND bsd-new AND freebsd-doc AND cmu-uc AND nrl-permission AND ietf-trust AND mit-old-style - AND mit AND bsd-simplified AND (mit-no-advert-export-control AND proprietary-license) AND - bsd-original-uc AND mit-no-advert-export-control AND bsd-original AND mit AND isc AND isc - AND other-permissive AND bsd-new AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations - AND bsd-new AND (bsd-simplified OR gpl-2.0-plus) AND bsd-new AND bsd-simplified + AND bsd-new AND bsd-new AND bsd-2-clause-first-lines AND cmu-uc AND nrl-permission AND ietf-trust + AND mit-old-style AND mit AND bsd-simplified AND hpnd-export-us-acknowledgement AND bsd-original-uc + AND mit-no-advert-export-control AND bsd-original AND mit AND isc AND isc AND other-permissive + AND bsd-new AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations AND + bsd-new AND (bsd-simplified OR gpl-2.0-plus) AND bsd-new AND bsd-simplified declared_license_expression_spdx: BSD-2-Clause AND LicenseRef-scancode-generic-export-compliance - AND CC-BY-SA-3.0 AND LicenseRef-scancode-proprietary-license AND OpenVision AND LicenseRef-scancode-mit-no-advert-export-control + AND CC-BY-SA-3.0 AND LicenseRef-scancode-proprietary-license AND OpenVision AND HPND-export2-US AND LicenseRef-scancode-brian-gladman-3-clause AND BSD-3-Clause AND MIT AND BSD-2-Clause AND MIT AND BSD-3-Clause AND BSD-3-Clause AND LicenseRef-scancode-michigan-disclaimer AND FSFULLRWD - AND LicenseRef-scancode-mit-no-advert-export-control AND OLDAP-2.8 AND BSD-3-Clause AND BSD-3-Clause - AND BSD-3-Clause AND FreeBSD-DOC AND MIT-CMU AND CMU-Mach-nodoc AND LicenseRef-scancode-ietf-trust - AND LicenseRef-scancode-mit-old-style AND MIT AND BSD-2-Clause AND (LicenseRef-scancode-mit-no-advert-export-control - AND LicenseRef-scancode-proprietary-license) AND BSD-4-Clause-UC AND LicenseRef-scancode-mit-no-advert-export-control + AND HPND-export2-US AND OLDAP-2.8 AND BSD-3-Clause AND BSD-3-Clause AND BSD-3-Clause AND BSD-2-Clause-first-lines + AND MIT-CMU AND CMU-Mach-nodoc AND LicenseRef-scancode-ietf-trust AND LicenseRef-scancode-mit-old-style + AND MIT AND BSD-2-Clause AND HPND-export-US-acknowledgement AND BSD-4-Clause-UC AND HPND-export2-US AND BSD-4-Clause AND MIT AND ISC AND ISC AND LicenseRef-scancode-other-permissive AND BSD-3-Clause AND LicenseRef-scancode-rsa-md4 AND RSA-MD AND LicenseRef-scancode-rsa-1990 AND HPND-export-US-modify AND BSD-3-Clause AND (BSD-2-Clause OR GPL-2.0-or-later) AND BSD-3-Clause AND BSD-2-Clause @@ -178,10 +177,10 @@ license_detections: community. identifier: openvision-b949c9b9-c46a-bdde-9343-730f91a4f4a8 - license_expression: mit-no-advert-export-control - license_expression_spdx: LicenseRef-scancode-mit-no-advert-export-control + license_expression_spdx: HPND-export2-US matches: - license_expression: mit-no-advert-export-control - spdx_license_expression: LicenseRef-scancode-mit-no-advert-export-control + spdx_license_expression: HPND-export2-US from_file: start_line: 128 end_line: 146 @@ -562,10 +561,10 @@ license_detections: PURPOSE. identifier: fsf_unlimited_no_warranty-005cbd82-97e0-5c6c-e111-cd46d95d2c5a - license_expression: mit-no-advert-export-control - license_expression_spdx: LicenseRef-scancode-mit-no-advert-export-control + license_expression_spdx: HPND-export2-US matches: - license_expression: mit-no-advert-export-control - spdx_license_expression: LicenseRef-scancode-mit-no-advert-export-control + spdx_license_expression: HPND-export2-US from_file: start_line: 485 end_line: 503 @@ -799,11 +798,11 @@ license_detections: ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. identifier: bsd_new-bcd7c498-0b2c-5abe-4ee7-1e4d56c69bcc - - license_expression: freebsd-doc - license_expression_spdx: FreeBSD-DOC + - license_expression: bsd-2-clause-first-lines + license_expression_spdx: BSD-2-Clause-first-lines matches: - - license_expression: freebsd-doc - spdx_license_expression: FreeBSD-DOC + - license_expression: bsd-2-clause-first-lines + spdx_license_expression: BSD-2-Clause-first-lines from_file: start_line: 682 end_line: 705 @@ -812,8 +811,8 @@ license_detections: matched_length: 185 match_coverage: '100.0' rule_relevance: 100 - rule_identifier: freebsd-doc_5.RULE - rule_url: https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/freebsd-doc_5.RULE + rule_identifier: bsd-2-clause-first-lines.LICENSE + rule_url: https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/bsd-2-clause-first-lines.LICENSE matched_text: | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -839,7 +838,7 @@ license_detections: STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - identifier: freebsd_doc-9db33af1-af77-1b9f-27f4-0ae766439a3a + identifier: bsd_2_clause_first_lines-6f015fc4-b8cd-90a5-10f6-9b14c7ee7bfd - license_expression: cmu-uc license_expression_spdx: MIT-CMU matches: @@ -990,9 +989,8 @@ license_detections: CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. identifier: mit-cacd5c0c-204a-85c2-affc-e4c125b2492a - - license_expression: bsd-simplified AND (mit-no-advert-export-control AND proprietary-license) - license_expression_spdx: BSD-2-Clause AND (LicenseRef-scancode-mit-no-advert-export-control - AND LicenseRef-scancode-proprietary-license) + - license_expression: bsd-simplified AND hpnd-export-us-acknowledgement + license_expression_spdx: BSD-2-Clause AND HPND-export-US-acknowledgement matches: - license_expression: bsd-simplified spdx_license_expression: BSD-2-Clause @@ -1031,8 +1029,8 @@ license_detections: OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - license_expression: mit-no-advert-export-control AND proprietary-license - spdx_license_expression: LicenseRef-scancode-mit-no-advert-export-control AND LicenseRef-scancode-proprietary-license + - license_expression: hpnd-export-us-acknowledgement + spdx_license_expression: HPND-export-US-acknowledgement from_file: start_line: 837 end_line: 856 @@ -1041,8 +1039,8 @@ license_detections: matched_length: 165 match_coverage: '100.0' rule_relevance: 100 - rule_identifier: mit-no-advert-export-control_and_proprietary-license_1.RULE - rule_url: https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit-no-advert-export-control_and_proprietary-license_1.RULE + rule_identifier: hpnd-export-us-acknowledgement.LICENSE + rule_url: https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/hpnd-export-us-acknowledgement.LICENSE matched_text: | EXPORT OF THIS SOFTWARE from the United States of America may require a specific license from the United States Government. It @@ -1064,7 +1062,7 @@ license_detections: be held liable for any liability nor for any direct, indirect, or consequential damages with respect to any claim by the user or distributor of the ksu software. - identifier: bsd_simplified_and__mit_no_advert_export_control_and_proprietary_license-345b28a9-f29e-4bc5-6160-59a84fd1aadf + identifier: bsd_simplified_and_hpnd_export_us_acknowledgement-44301bcd-fd8f-70e4-66c1-5897d73ac6aa - license_expression: bsd-original-uc license_expression_spdx: BSD-4-Clause-UC matches: @@ -1117,10 +1115,10 @@ license_detections: SUCH DAMAGE. identifier: bsd_original_uc-f28cb4d4-6336-ee60-f186-4c1929d3a4b0 - license_expression: mit-no-advert-export-control - license_expression_spdx: LicenseRef-scancode-mit-no-advert-export-control + license_expression_spdx: HPND-export2-US matches: - license_expression: mit-no-advert-export-control - spdx_license_expression: LicenseRef-scancode-mit-no-advert-export-control + spdx_license_expression: HPND-export2-US from_file: start_line: 907 end_line: 922 diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright-detailed.expected.yml index 9cbbf38d92a..dd14f5bd9ab 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libk5crypto3/copyright-detailed.expected.yml @@ -3,19 +3,18 @@ declared_license_expression: bsd-simplified AND generic-export-compliance AND cc proprietary-license AND openvision AND mit-no-advert-export-control AND brian-gladman-3-clause AND bsd-new AND mit AND bsd-simplified AND mit AND bsd-new AND bsd-new AND michigan-disclaimer AND fsf-unlimited-no-warranty AND mit-no-advert-export-control AND openldap-2.8 AND bsd-new - AND bsd-new AND bsd-new AND freebsd-doc AND cmu-uc AND nrl-permission AND ietf-trust AND mit-old-style - AND mit AND bsd-simplified AND (mit-no-advert-export-control AND proprietary-license) AND - bsd-original-uc AND mit-no-advert-export-control AND bsd-original AND mit AND isc AND isc - AND other-permissive AND bsd-new AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations - AND bsd-new AND (bsd-simplified OR gpl-2.0-plus) AND bsd-new AND bsd-simplified + AND bsd-new AND bsd-new AND bsd-2-clause-first-lines AND cmu-uc AND nrl-permission AND ietf-trust + AND mit-old-style AND mit AND bsd-simplified AND hpnd-export-us-acknowledgement AND bsd-original-uc + AND mit-no-advert-export-control AND bsd-original AND mit AND isc AND isc AND other-permissive + AND bsd-new AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations AND + bsd-new AND (bsd-simplified OR gpl-2.0-plus) AND bsd-new AND bsd-simplified declared_license_expression_spdx: BSD-2-Clause AND LicenseRef-scancode-generic-export-compliance - AND CC-BY-SA-3.0 AND LicenseRef-scancode-proprietary-license AND OpenVision AND LicenseRef-scancode-mit-no-advert-export-control + AND CC-BY-SA-3.0 AND LicenseRef-scancode-proprietary-license AND OpenVision AND HPND-export2-US AND LicenseRef-scancode-brian-gladman-3-clause AND BSD-3-Clause AND MIT AND BSD-2-Clause AND MIT AND BSD-3-Clause AND BSD-3-Clause AND LicenseRef-scancode-michigan-disclaimer AND FSFULLRWD - AND LicenseRef-scancode-mit-no-advert-export-control AND OLDAP-2.8 AND BSD-3-Clause AND BSD-3-Clause - AND BSD-3-Clause AND FreeBSD-DOC AND MIT-CMU AND CMU-Mach-nodoc AND LicenseRef-scancode-ietf-trust - AND LicenseRef-scancode-mit-old-style AND MIT AND BSD-2-Clause AND (LicenseRef-scancode-mit-no-advert-export-control - AND LicenseRef-scancode-proprietary-license) AND BSD-4-Clause-UC AND LicenseRef-scancode-mit-no-advert-export-control + AND HPND-export2-US AND OLDAP-2.8 AND BSD-3-Clause AND BSD-3-Clause AND BSD-3-Clause AND BSD-2-Clause-first-lines + AND MIT-CMU AND CMU-Mach-nodoc AND LicenseRef-scancode-ietf-trust AND LicenseRef-scancode-mit-old-style + AND MIT AND BSD-2-Clause AND HPND-export-US-acknowledgement AND BSD-4-Clause-UC AND HPND-export2-US AND BSD-4-Clause AND MIT AND ISC AND ISC AND LicenseRef-scancode-other-permissive AND BSD-3-Clause AND LicenseRef-scancode-rsa-md4 AND RSA-MD AND LicenseRef-scancode-rsa-1990 AND HPND-export-US-modify AND BSD-3-Clause AND (BSD-2-Clause OR GPL-2.0-or-later) AND BSD-3-Clause AND BSD-2-Clause @@ -178,10 +177,10 @@ license_detections: community. identifier: openvision-b949c9b9-c46a-bdde-9343-730f91a4f4a8 - license_expression: mit-no-advert-export-control - license_expression_spdx: LicenseRef-scancode-mit-no-advert-export-control + license_expression_spdx: HPND-export2-US matches: - license_expression: mit-no-advert-export-control - spdx_license_expression: LicenseRef-scancode-mit-no-advert-export-control + spdx_license_expression: HPND-export2-US from_file: start_line: 128 end_line: 146 @@ -562,10 +561,10 @@ license_detections: PURPOSE. identifier: fsf_unlimited_no_warranty-005cbd82-97e0-5c6c-e111-cd46d95d2c5a - license_expression: mit-no-advert-export-control - license_expression_spdx: LicenseRef-scancode-mit-no-advert-export-control + license_expression_spdx: HPND-export2-US matches: - license_expression: mit-no-advert-export-control - spdx_license_expression: LicenseRef-scancode-mit-no-advert-export-control + spdx_license_expression: HPND-export2-US from_file: start_line: 485 end_line: 503 @@ -799,11 +798,11 @@ license_detections: ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. identifier: bsd_new-bcd7c498-0b2c-5abe-4ee7-1e4d56c69bcc - - license_expression: freebsd-doc - license_expression_spdx: FreeBSD-DOC + - license_expression: bsd-2-clause-first-lines + license_expression_spdx: BSD-2-Clause-first-lines matches: - - license_expression: freebsd-doc - spdx_license_expression: FreeBSD-DOC + - license_expression: bsd-2-clause-first-lines + spdx_license_expression: BSD-2-Clause-first-lines from_file: start_line: 682 end_line: 705 @@ -812,8 +811,8 @@ license_detections: matched_length: 185 match_coverage: '100.0' rule_relevance: 100 - rule_identifier: freebsd-doc_5.RULE - rule_url: https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/freebsd-doc_5.RULE + rule_identifier: bsd-2-clause-first-lines.LICENSE + rule_url: https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/bsd-2-clause-first-lines.LICENSE matched_text: | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -839,7 +838,7 @@ license_detections: STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - identifier: freebsd_doc-9db33af1-af77-1b9f-27f4-0ae766439a3a + identifier: bsd_2_clause_first_lines-6f015fc4-b8cd-90a5-10f6-9b14c7ee7bfd - license_expression: cmu-uc license_expression_spdx: MIT-CMU matches: @@ -990,9 +989,8 @@ license_detections: CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. identifier: mit-cacd5c0c-204a-85c2-affc-e4c125b2492a - - license_expression: bsd-simplified AND (mit-no-advert-export-control AND proprietary-license) - license_expression_spdx: BSD-2-Clause AND (LicenseRef-scancode-mit-no-advert-export-control - AND LicenseRef-scancode-proprietary-license) + - license_expression: bsd-simplified AND hpnd-export-us-acknowledgement + license_expression_spdx: BSD-2-Clause AND HPND-export-US-acknowledgement matches: - license_expression: bsd-simplified spdx_license_expression: BSD-2-Clause @@ -1031,8 +1029,8 @@ license_detections: OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - license_expression: mit-no-advert-export-control AND proprietary-license - spdx_license_expression: LicenseRef-scancode-mit-no-advert-export-control AND LicenseRef-scancode-proprietary-license + - license_expression: hpnd-export-us-acknowledgement + spdx_license_expression: HPND-export-US-acknowledgement from_file: start_line: 837 end_line: 856 @@ -1041,8 +1039,8 @@ license_detections: matched_length: 165 match_coverage: '100.0' rule_relevance: 100 - rule_identifier: mit-no-advert-export-control_and_proprietary-license_1.RULE - rule_url: https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit-no-advert-export-control_and_proprietary-license_1.RULE + rule_identifier: hpnd-export-us-acknowledgement.LICENSE + rule_url: https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/hpnd-export-us-acknowledgement.LICENSE matched_text: | EXPORT OF THIS SOFTWARE from the United States of America may require a specific license from the United States Government. It @@ -1064,7 +1062,7 @@ license_detections: be held liable for any liability nor for any direct, indirect, or consequential damages with respect to any claim by the user or distributor of the ksu software. - identifier: bsd_simplified_and__mit_no_advert_export_control_and_proprietary_license-345b28a9-f29e-4bc5-6160-59a84fd1aadf + identifier: bsd_simplified_and_hpnd_export_us_acknowledgement-44301bcd-fd8f-70e4-66c1-5897d73ac6aa - license_expression: bsd-original-uc license_expression_spdx: BSD-4-Clause-UC matches: @@ -1117,10 +1115,10 @@ license_detections: SUCH DAMAGE. identifier: bsd_original_uc-f28cb4d4-6336-ee60-f186-4c1929d3a4b0 - license_expression: mit-no-advert-export-control - license_expression_spdx: LicenseRef-scancode-mit-no-advert-export-control + license_expression_spdx: HPND-export2-US matches: - license_expression: mit-no-advert-export-control - spdx_license_expression: LicenseRef-scancode-mit-no-advert-export-control + spdx_license_expression: HPND-export2-US from_file: start_line: 907 end_line: 922 diff --git a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright-detailed.expected.yml b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright-detailed.expected.yml index 9cbbf38d92a..dd14f5bd9ab 100644 --- a/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright-detailed.expected.yml +++ b/tests/packagedcode/data/debian/copyright/debian-slim-2021-04-07/usr/share/doc/libkrb5-3/copyright-detailed.expected.yml @@ -3,19 +3,18 @@ declared_license_expression: bsd-simplified AND generic-export-compliance AND cc proprietary-license AND openvision AND mit-no-advert-export-control AND brian-gladman-3-clause AND bsd-new AND mit AND bsd-simplified AND mit AND bsd-new AND bsd-new AND michigan-disclaimer AND fsf-unlimited-no-warranty AND mit-no-advert-export-control AND openldap-2.8 AND bsd-new - AND bsd-new AND bsd-new AND freebsd-doc AND cmu-uc AND nrl-permission AND ietf-trust AND mit-old-style - AND mit AND bsd-simplified AND (mit-no-advert-export-control AND proprietary-license) AND - bsd-original-uc AND mit-no-advert-export-control AND bsd-original AND mit AND isc AND isc - AND other-permissive AND bsd-new AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations - AND bsd-new AND (bsd-simplified OR gpl-2.0-plus) AND bsd-new AND bsd-simplified + AND bsd-new AND bsd-new AND bsd-2-clause-first-lines AND cmu-uc AND nrl-permission AND ietf-trust + AND mit-old-style AND mit AND bsd-simplified AND hpnd-export-us-acknowledgement AND bsd-original-uc + AND mit-no-advert-export-control AND bsd-original AND mit AND isc AND isc AND other-permissive + AND bsd-new AND rsa-md4 AND rsa-md5 AND rsa-1990 AND mit-with-modification-obligations AND + bsd-new AND (bsd-simplified OR gpl-2.0-plus) AND bsd-new AND bsd-simplified declared_license_expression_spdx: BSD-2-Clause AND LicenseRef-scancode-generic-export-compliance - AND CC-BY-SA-3.0 AND LicenseRef-scancode-proprietary-license AND OpenVision AND LicenseRef-scancode-mit-no-advert-export-control + AND CC-BY-SA-3.0 AND LicenseRef-scancode-proprietary-license AND OpenVision AND HPND-export2-US AND LicenseRef-scancode-brian-gladman-3-clause AND BSD-3-Clause AND MIT AND BSD-2-Clause AND MIT AND BSD-3-Clause AND BSD-3-Clause AND LicenseRef-scancode-michigan-disclaimer AND FSFULLRWD - AND LicenseRef-scancode-mit-no-advert-export-control AND OLDAP-2.8 AND BSD-3-Clause AND BSD-3-Clause - AND BSD-3-Clause AND FreeBSD-DOC AND MIT-CMU AND CMU-Mach-nodoc AND LicenseRef-scancode-ietf-trust - AND LicenseRef-scancode-mit-old-style AND MIT AND BSD-2-Clause AND (LicenseRef-scancode-mit-no-advert-export-control - AND LicenseRef-scancode-proprietary-license) AND BSD-4-Clause-UC AND LicenseRef-scancode-mit-no-advert-export-control + AND HPND-export2-US AND OLDAP-2.8 AND BSD-3-Clause AND BSD-3-Clause AND BSD-3-Clause AND BSD-2-Clause-first-lines + AND MIT-CMU AND CMU-Mach-nodoc AND LicenseRef-scancode-ietf-trust AND LicenseRef-scancode-mit-old-style + AND MIT AND BSD-2-Clause AND HPND-export-US-acknowledgement AND BSD-4-Clause-UC AND HPND-export2-US AND BSD-4-Clause AND MIT AND ISC AND ISC AND LicenseRef-scancode-other-permissive AND BSD-3-Clause AND LicenseRef-scancode-rsa-md4 AND RSA-MD AND LicenseRef-scancode-rsa-1990 AND HPND-export-US-modify AND BSD-3-Clause AND (BSD-2-Clause OR GPL-2.0-or-later) AND BSD-3-Clause AND BSD-2-Clause @@ -178,10 +177,10 @@ license_detections: community. identifier: openvision-b949c9b9-c46a-bdde-9343-730f91a4f4a8 - license_expression: mit-no-advert-export-control - license_expression_spdx: LicenseRef-scancode-mit-no-advert-export-control + license_expression_spdx: HPND-export2-US matches: - license_expression: mit-no-advert-export-control - spdx_license_expression: LicenseRef-scancode-mit-no-advert-export-control + spdx_license_expression: HPND-export2-US from_file: start_line: 128 end_line: 146 @@ -562,10 +561,10 @@ license_detections: PURPOSE. identifier: fsf_unlimited_no_warranty-005cbd82-97e0-5c6c-e111-cd46d95d2c5a - license_expression: mit-no-advert-export-control - license_expression_spdx: LicenseRef-scancode-mit-no-advert-export-control + license_expression_spdx: HPND-export2-US matches: - license_expression: mit-no-advert-export-control - spdx_license_expression: LicenseRef-scancode-mit-no-advert-export-control + spdx_license_expression: HPND-export2-US from_file: start_line: 485 end_line: 503 @@ -799,11 +798,11 @@ license_detections: ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. identifier: bsd_new-bcd7c498-0b2c-5abe-4ee7-1e4d56c69bcc - - license_expression: freebsd-doc - license_expression_spdx: FreeBSD-DOC + - license_expression: bsd-2-clause-first-lines + license_expression_spdx: BSD-2-Clause-first-lines matches: - - license_expression: freebsd-doc - spdx_license_expression: FreeBSD-DOC + - license_expression: bsd-2-clause-first-lines + spdx_license_expression: BSD-2-Clause-first-lines from_file: start_line: 682 end_line: 705 @@ -812,8 +811,8 @@ license_detections: matched_length: 185 match_coverage: '100.0' rule_relevance: 100 - rule_identifier: freebsd-doc_5.RULE - rule_url: https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/freebsd-doc_5.RULE + rule_identifier: bsd-2-clause-first-lines.LICENSE + rule_url: https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/bsd-2-clause-first-lines.LICENSE matched_text: | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -839,7 +838,7 @@ license_detections: STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - identifier: freebsd_doc-9db33af1-af77-1b9f-27f4-0ae766439a3a + identifier: bsd_2_clause_first_lines-6f015fc4-b8cd-90a5-10f6-9b14c7ee7bfd - license_expression: cmu-uc license_expression_spdx: MIT-CMU matches: @@ -990,9 +989,8 @@ license_detections: CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. identifier: mit-cacd5c0c-204a-85c2-affc-e4c125b2492a - - license_expression: bsd-simplified AND (mit-no-advert-export-control AND proprietary-license) - license_expression_spdx: BSD-2-Clause AND (LicenseRef-scancode-mit-no-advert-export-control - AND LicenseRef-scancode-proprietary-license) + - license_expression: bsd-simplified AND hpnd-export-us-acknowledgement + license_expression_spdx: BSD-2-Clause AND HPND-export-US-acknowledgement matches: - license_expression: bsd-simplified spdx_license_expression: BSD-2-Clause @@ -1031,8 +1029,8 @@ license_detections: OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - license_expression: mit-no-advert-export-control AND proprietary-license - spdx_license_expression: LicenseRef-scancode-mit-no-advert-export-control AND LicenseRef-scancode-proprietary-license + - license_expression: hpnd-export-us-acknowledgement + spdx_license_expression: HPND-export-US-acknowledgement from_file: start_line: 837 end_line: 856 @@ -1041,8 +1039,8 @@ license_detections: matched_length: 165 match_coverage: '100.0' rule_relevance: 100 - rule_identifier: mit-no-advert-export-control_and_proprietary-license_1.RULE - rule_url: https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit-no-advert-export-control_and_proprietary-license_1.RULE + rule_identifier: hpnd-export-us-acknowledgement.LICENSE + rule_url: https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/hpnd-export-us-acknowledgement.LICENSE matched_text: | EXPORT OF THIS SOFTWARE from the United States of America may require a specific license from the United States Government. It @@ -1064,7 +1062,7 @@ license_detections: be held liable for any liability nor for any direct, indirect, or consequential damages with respect to any claim by the user or distributor of the ksu software. - identifier: bsd_simplified_and__mit_no_advert_export_control_and_proprietary_license-345b28a9-f29e-4bc5-6160-59a84fd1aadf + identifier: bsd_simplified_and_hpnd_export_us_acknowledgement-44301bcd-fd8f-70e4-66c1-5897d73ac6aa - license_expression: bsd-original-uc license_expression_spdx: BSD-4-Clause-UC matches: @@ -1117,10 +1115,10 @@ license_detections: SUCH DAMAGE. identifier: bsd_original_uc-f28cb4d4-6336-ee60-f186-4c1929d3a4b0 - license_expression: mit-no-advert-export-control - license_expression_spdx: LicenseRef-scancode-mit-no-advert-export-control + license_expression_spdx: HPND-export2-US matches: - license_expression: mit-no-advert-export-control - spdx_license_expression: LicenseRef-scancode-mit-no-advert-export-control + spdx_license_expression: HPND-export2-US from_file: start_line: 907 end_line: 922